DriveListTask.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.epson.iprint.storage.gdrivev3;
  2. import android.os.AsyncTask;
  3. import java.util.ArrayList;
  4. import java.util.Iterator;
  5. public class DriveListTask extends AsyncTask<OnlineFile, Void, ArrayList<OnlineFile>> {
  6. private Exception mException;
  7. private final ListTaskCompleteListener mListTaskCompleteListener;
  8. private final GoogleDownloader mMyDrive;
  9. public interface ListTaskCompleteListener {
  10. void listComplete(ArrayList<OnlineFile> arrayList);
  11. }
  12. DriveListTask(@NonNull GoogleDownloader googleDownloader, @NonNull ListTaskCompleteListener listTaskCompleteListener) {
  13. this.mMyDrive = googleDownloader;
  14. this.mListTaskCompleteListener = listTaskCompleteListener;
  15. }
  16. protected ArrayList<OnlineFile> doInBackground(OnlineFile... onlineFileArr) {
  17. try {
  18. return filterFiles(this.mMyDrive.listFile(onlineFileArr != null ? onlineFileArr[0] : null));
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. this.mException = e;
  22. return null;
  23. }
  24. }
  25. protected void onPostExecute(ArrayList<OnlineFile> arrayList) {
  26. this.mListTaskCompleteListener.listComplete(arrayList);
  27. }
  28. @NonNull
  29. private ArrayList<OnlineFile> filterFiles(@Nullable ArrayList<OnlineFile> arrayList) {
  30. if (arrayList == null) {
  31. return new ArrayList<>();
  32. }
  33. ArrayList<OnlineFile> arrayList2 = new ArrayList<>(arrayList.size());
  34. Iterator<OnlineFile> it = arrayList.iterator();
  35. while (it.hasNext()) {
  36. OnlineFile next = it.next();
  37. if (next.isDisplayFile()) {
  38. arrayList2.add(next);
  39. }
  40. }
  41. return arrayList2;
  42. }
  43. }