GoogleV3UploadClient.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.epson.iprint.storage.gdrivev3;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.os.AsyncTask;
  5. import android.support.annotation.NonNull;
  6. import com.epson.iprint.storage.StorageItem;
  7. import com.epson.iprint.storage.StorageServiceClient;
  8. import com.epson.iprint.storage.gdrivev3.IprintGoogleSignIn;
  9. import epson.print.R;
  10. public class GoogleV3UploadClient extends StorageServiceClient {
  11. public static final String UPLOAD_FOLDER_NAME = "Epson iPrint";
  12. private static boolean sCheckSignIn;
  13. private IprintGoogleSignIn mIprintGoogleSignIn = new IprintGoogleSignIn();
  14. public boolean isSupportedUploadType(StorageServiceClient.UploadFileType uploadFileType) {
  15. return true;
  16. }
  17. public static boolean isCheckSignIn() {
  18. return sCheckSignIn;
  19. }
  20. public static void setSingInValue(boolean z) {
  21. sCheckSignIn = z;
  22. }
  23. public GoogleV3UploadClient() {
  24. sCheckSignIn = false;
  25. }
  26. public StorageServiceClient.Uploader getUploader(Context context, StorageServiceClient.UploadFileType uploadFileType, String str, String str2) {
  27. return new GoogleV3Uploader(context, new UploadInfo(uploadFileType, str, str2));
  28. }
  29. public StorageServiceClient.Downloader getDownloader(Context context, StorageItem storageItem, String str) {
  30. throw new UnsupportedOperationException();
  31. }
  32. @NonNull
  33. public StorageServiceClient.Enumerator getEnumerator(Context context) {
  34. throw new UnsupportedOperationException();
  35. }
  36. public boolean isSignedIn(Context context) {
  37. if (!isCheckSignIn()) {
  38. return false;
  39. }
  40. return this.mIprintGoogleSignIn.isSignInValid(context, IprintGoogleSignIn.OperationType.UPLOAD);
  41. }
  42. public boolean revokeSignedInData(Activity activity) {
  43. activity.startActivity(GoogleV3UploadSignInActivity.getDisconnectIntent(activity));
  44. return false;
  45. }
  46. public String getStorageServiceName(Context context) {
  47. return context.getString(R.string.google_drive);
  48. }
  49. class GoogleV3Uploader extends StorageServiceClient.Uploader {
  50. private final Context mContext;
  51. private UploadInfo mUploadInfo;
  52. public boolean isCancelable() {
  53. return false;
  54. }
  55. public GoogleV3Uploader(Context context, @NonNull UploadInfo uploadInfo) {
  56. super();
  57. this.mContext = context.getApplicationContext();
  58. this.mUploadInfo = uploadInfo;
  59. }
  60. public void start(StorageServiceClient.UploadCompletion uploadCompletion) {
  61. new UploadTask(this.mContext, uploadCompletion).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new UploadInfo[]{this.mUploadInfo});
  62. }
  63. }
  64. private static class UploadTask extends AsyncTask<UploadInfo, Void, Void> {
  65. private final Context mContext;
  66. private final StorageServiceClient.UploadCompletion mUploadNotifier;
  67. UploadTask(Context context, StorageServiceClient.UploadCompletion uploadCompletion) {
  68. this.mContext = context;
  69. this.mUploadNotifier = uploadCompletion;
  70. }
  71. /* access modifiers changed from: protected */
  72. public Void doInBackground(UploadInfo... uploadInfoArr) {
  73. if (uploadInfoArr == null || uploadInfoArr[0] == null) {
  74. this.mUploadNotifier.onUploadComplete((String) null, (String) null, StorageServiceClient.ProcessError.ERROR);
  75. return null;
  76. }
  77. UploadInfo uploadInfo = uploadInfoArr[0];
  78. DriveWriter createDriveWriter = DriveWriter.createDriveWriter(this.mContext);
  79. try {
  80. createDriveWriter.uploadFile(uploadInfo.originalLocalPath, uploadInfo.uploadFilename, uploadInfo.fileType == StorageServiceClient.UploadFileType.PDF ? "application/pdf" : "image/jpeg", createDriveWriter.findOrCreateFolder("Epson iPrint"));
  81. notifyUploadEnd(uploadInfo, StorageServiceClient.ProcessError.NONE);
  82. return null;
  83. } catch (Exception unused) {
  84. notifyUploadEnd(uploadInfo, StorageServiceClient.ProcessError.ERROR);
  85. return null;
  86. }
  87. }
  88. private void notifyUploadEnd(UploadInfo uploadInfo, StorageServiceClient.ProcessError processError) {
  89. StorageServiceClient.UploadCompletion uploadCompletion = this.mUploadNotifier;
  90. if (uploadCompletion != null) {
  91. uploadCompletion.onUploadComplete(uploadInfo.originalLocalPath, uploadInfo.uploadFilename, processError);
  92. }
  93. }
  94. }
  95. public static class UploadInfo {
  96. StorageServiceClient.UploadFileType fileType;
  97. String originalLocalPath;
  98. String uploadFilename;
  99. public UploadInfo(@NonNull StorageServiceClient.UploadFileType uploadFileType, @NonNull String str, @NonNull String str2) {
  100. this.fileType = uploadFileType;
  101. this.originalLocalPath = str;
  102. this.uploadFilename = str2;
  103. }
  104. }
  105. }