FolderFindTask.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package epson.print.imgsel;
  2. import android.content.Context;
  3. import android.graphics.Bitmap;
  4. import android.os.AsyncTask;
  5. import epson.print.imgsel.ImageFinder;
  6. import java.io.IOException;
  7. import java.lang.ref.WeakReference;
  8. import java.util.Collection;
  9. class FolderFindTask extends AsyncTask<ImageFinder, Object, Void> implements ImageFinder.Canceller {
  10. private Context mApplicationContext;
  11. private WeakReference<ImageFolderListFragment> mFragmentReference;
  12. public FolderFindTask(ImageFolderListFragment imageFolderListFragment) {
  13. this.mFragmentReference = new WeakReference<>(imageFolderListFragment);
  14. this.mApplicationContext = imageFolderListFragment.getActivity().getApplicationContext();
  15. }
  16. protected void onPostExecute(Void voidR) {
  17. ImageFolderListFragment imageFolderListFragment = (ImageFolderListFragment) this.mFragmentReference.get();
  18. if (imageFolderListFragment != null) {
  19. imageFolderListFragment.onFolderFindTaskEnd();
  20. }
  21. }
  22. protected Void doInBackground(ImageFinder... imageFinderArr) {
  23. Collection<ImageFolderInfo> folderPhotoList;
  24. if (!isCancelled() && imageFinderArr != null && imageFinderArr.length > 0 && (folderPhotoList = imageFinderArr[0].getFolderPhotoList(this, this.mApplicationContext.getContentResolver())) != null) {
  25. for (ImageFolderInfo next : folderPhotoList) {
  26. if (isCancelled()) {
  27. return null;
  28. }
  29. taskAddItem(next);
  30. }
  31. }
  32. return null;
  33. }
  34. private void localSleep(int i) {
  35. try {
  36. Thread.sleep((long) i);
  37. } catch (InterruptedException e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. private void taskAddItem(ImageFolderInfo imageFolderInfo) {
  42. Bitmap bitmap;
  43. try {
  44. bitmap = AltThumbnailCache.createThumbnail(imageFolderInfo.getFileName(0), this.mApplicationContext.getContentResolver(), imageFolderInfo.getId(0));
  45. } catch (IOException e) {
  46. e.printStackTrace();
  47. bitmap = null;
  48. }
  49. publishProgress(new Object[]{imageFolderInfo, bitmap});
  50. }
  51. protected void onProgressUpdate(Object... objArr) {
  52. ImageFolderListFragment imageFolderListFragment;
  53. if (!isCancelled() && (imageFolderListFragment = (ImageFolderListFragment) this.mFragmentReference.get()) != null) {
  54. imageFolderListFragment.addItem(objArr[0], objArr[1]);
  55. }
  56. }
  57. public boolean checkCanceled() {
  58. return isCancelled();
  59. }
  60. }