EpsoniPrintSharedActivity.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. package com.epson.iprint.shared;
  2. import android.app.Activity;
  3. import android.arch.lifecycle.Observer;
  4. import android.arch.lifecycle.ViewModelProviders;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.os.Message;
  10. import androidx.appcompat.app.AppCompatActivity;
  11. import androidx.fragment.app.FragmentActivity;
  12. import com.epson.iprint.prtlogger.CommonLog;
  13. import com.epson.iprint.prtlogger.NewLoggerController;
  14. import com.epson.iprint.prtlogger.PrintLog;
  15. import com.epson.mobilephone.common.license.LicenseTopActivity;
  16. import epson.common.Constants;
  17. import epson.common.DialogProgress;
  18. import epson.common.DialogProgressViewModel;
  19. import epson.common.ExternalFileUtils;
  20. import epson.common.IprintLicenseInfo;
  21. import epson.common.IprintUserSurveyInfo;
  22. import epson.common.Utils;
  23. import epson.print.ActivityRequestPermissions;
  24. import epson.print.ActivityViewImageSelect;
  25. import epson.print.R;
  26. import epson.print.EPImageUtil;
  27. import epson.print.MyPrinter;
  28. import epson.print.Util.EPLog;
  29. import epson.print.WebviewActivity;
  30. import epson.scan.activity.ScanActivity;
  31. import java.io.File;
  32. import java.io.IOException;
  33. import java.util.ArrayList;
  34. import java.util.Deque;
  35. public class EpsoniPrintSharedActivity extends AppCompatActivity implements Runnable {
  36. public static final String ACTION_CONFIRM_PRINTER_SCANNER_SELECTION = "com.epson.iprint.isSetDevice";
  37. public static final String ACTION_PHOTO_PRINT = "com.epson.iprint.photo";
  38. public static final String ACTION_SCAN = "com.epson.iprint.scan";
  39. public static final String ACTION_WEB_PRINT = "com.epson.iprint.web";
  40. public static final String ACTIVITY_GET_PRINTER_INFORMATION = "epson.maintain.activity.GetPrinterReplyData";
  41. private static final int ACTIVITY_INTENT_PARAMETER_ERROR_ = 1;
  42. public static final String ACTIVITY_SCAN = "epson.scan.activity.ScanActivity";
  43. public static final String DIALOG_WAIT = "dialog_wait";
  44. public static final String GET_PRINTER_INFORMATION = "com.epson.iprint.status";
  45. public static final int INK_STATUS_ERROR = -1;
  46. public static final int INK_STATUS_INK_END = 2;
  47. public static final int INK_STATUS_INK_LOW = 1;
  48. public static final int INK_STATUS_NORMAL = 0;
  49. private static final int ISSETDEVICE_DEVICE_NOT_SET = 0;
  50. private static final int ISSETDEVICE_LOCAL_DEVICE_SET = -1;
  51. private static final int ISSETDEVICE_REMOTE_DEVICE_SET = -2;
  52. private static final String LOG_TAG = "iPrintSharedActivity";
  53. public static final String PACKAGE_PANASONIC_FAX = "com.panasonic.psn.fax";
  54. public static final String PARAM_KEY_CALLER_PACKAGE_NAME = "PACKAGE_NAME";
  55. private static final int REQUEST_CODE_LICENSE_CHECK = 101;
  56. private static final int REQUEST_PHOTO_CUSTOM = 10;
  57. private static final int REQUEST_RUNTIMEPERMMISSION = 100;
  58. private static final int REQUEST_SCAN_CUSTOM = 20;
  59. private static final int REQUEST_STATUS_CUSTOM = 99;
  60. private static final int REQUEST_WEB_CUSTOM = 30;
  61. public static final int RESULT_NO_SD_ERROR = 1;
  62. public static final int RESULT_PARAM_ERROR = 0;
  63. Handler mHandler = new Handler() {
  64. public void handleMessage(Message message) {
  65. if (message.what != 0) {
  66. EPLog.m318w(EpsoniPrintSharedActivity.LOG_TAG, "handleMessage::default");
  67. EpsoniPrintSharedActivity.this.CleanUp();
  68. return;
  69. }
  70. EPLog.m313i(EpsoniPrintSharedActivity.LOG_TAG, "handleMessage::0");
  71. EpsoniPrintSharedActivity.this.setWait();
  72. }
  73. };
  74. private DialogProgressViewModel mModelDialog;
  75. private Thread thread;
  76. /* access modifiers changed from: protected */
  77. public void onCreate(Bundle bundle) {
  78. EPLog.m313i(LOG_TAG, "onCreate");
  79. super.onCreate(bundle);
  80. this.mModelDialog = (DialogProgressViewModel) ViewModelProviders.m2of((FragmentActivity) this).get(DialogProgressViewModel.class);
  81. this.mModelDialog.getDialogJob().observe(this, new Observer() {
  82. public final void onChanged(Object obj) {
  83. EpsoniPrintSharedActivity.lambda$onCreate$0(EpsoniPrintSharedActivity.this, (Deque) obj);
  84. }
  85. });
  86. NewLoggerController.stopLoggerIfNotAgreed(this);
  87. if (bundle == null) {
  88. startLicenseCheckActivity();
  89. } else if (!IprintLicenseInfo.isAgreedCurrentVersion(this)) {
  90. finish();
  91. } else {
  92. nextOnCreate();
  93. }
  94. }
  95. public static /* synthetic */ void lambda$onCreate$0(EpsoniPrintSharedActivity epsoniPrintSharedActivity, Deque deque) {
  96. String[] checkQueue = epsoniPrintSharedActivity.mModelDialog.checkQueue();
  97. if (checkQueue != null) {
  98. String str = checkQueue[0];
  99. String str2 = checkQueue[1];
  100. if (str2.equals("do_show")) {
  101. epsoniPrintSharedActivity.showDialog(str);
  102. }
  103. if (str2.equals("do_dismiss")) {
  104. epsoniPrintSharedActivity.dismissDialog(str);
  105. }
  106. }
  107. }
  108. private void startLicenseCheckActivity() {
  109. IprintLicenseInfo.beforeLicenseCheck(getApplicationContext());
  110. startActivityForResult(LicenseTopActivity.getStartIntent(getApplicationContext(), new IprintLicenseInfo(), new IprintUserSurveyInfo()), 101);
  111. }
  112. private void nextOnCreate() {
  113. Intent intent = getIntent();
  114. intent.getAction();
  115. if (intent.getExtras() != null) {
  116. try {
  117. InitTempFolder();
  118. CheckAction(intent.getAction());
  119. ManagePreferences managePreferences = new ManagePreferences();
  120. managePreferences.resetSavedFlag(getApplicationContext(), "PrintSetting");
  121. managePreferences.pushPreferrences(getApplicationContext());
  122. String action = intent.getAction();
  123. if (action.equals(GET_PRINTER_INFORMATION)) {
  124. Intent intent2 = new Intent();
  125. intent2.setClassName(getPackageName(), ACTIVITY_GET_PRINTER_INFORMATION);
  126. startActivityForResult(intent2, 99);
  127. } else if (action.equals(ACTION_CONFIRM_PRINTER_SCANNER_SELECTION)) {
  128. setPrinterScannerSelectionInfo();
  129. } else {
  130. if (!IprintLicenseInfo.isAgreedCurrentVersion(this)) {
  131. finish();
  132. }
  133. this.mHandler.sendEmptyMessage(0);
  134. }
  135. } catch (SharedDataException e) {
  136. e.printStackTrace();
  137. setResult(1);
  138. finish();
  139. } catch (IOException e2) {
  140. e2.printStackTrace();
  141. setResult(2);
  142. finish();
  143. }
  144. } else {
  145. throw new SharedDataException("bundle null error");
  146. }
  147. }
  148. /* access modifiers changed from: package-private */
  149. public boolean CheckAction(String str) throws SharedDataException {
  150. if (str.equals(ACTION_PHOTO_PRINT) || str.equals(ACTION_SCAN) || str.equals(ACTION_WEB_PRINT) || str.equals(GET_PRINTER_INFORMATION) || str.equals(ACTION_CONFIRM_PRINTER_SCANNER_SELECTION)) {
  151. return true;
  152. }
  153. throw new SharedDataException("action error");
  154. }
  155. public void run() {
  156. EPLog.m313i(LOG_TAG, "run");
  157. try {
  158. Thread.sleep(100);
  159. } catch (InterruptedException unused) {
  160. }
  161. EPLog.m313i(LOG_TAG, "run::1");
  162. this.mHandler.sendEmptyMessage(1);
  163. }
  164. /* access modifiers changed from: private */
  165. public void setWait() {
  166. this.mModelDialog.doShow(DIALOG_WAIT);
  167. this.thread = new Thread(new Runnable() {
  168. public void run() {
  169. EpsoniPrintSharedActivity.this.backgroundJob();
  170. }
  171. });
  172. try {
  173. if (ActivityRequestPermissions.isRuntimePermissionSupported() && getIntent().getAction().equals(ACTION_PHOTO_PRINT) && 4 == getIntent().getExtras().getInt("FILE_TYPE", 2)) {
  174. String[] strArr = {"android.permission.WRITE_EXTERNAL_STORAGE"};
  175. ActivityRequestPermissions.Permission permission = new ActivityRequestPermissions.Permission(strArr[0], new String[]{getString(R.string.permission_dialog_title), getString(R.string.permission_dialog_title)}, new String[]{ActivityRequestPermissions.DialogParameter.setMessage2((Context) this, getString(R.string.permission_dialog_message_storage)), ActivityRequestPermissions.DialogParameter.setMessage3A((Context) this, getString(R.string.permission_dialog_message_storage), getString(R.string.permission_function_storage))});
  176. if (!ActivityRequestPermissions.checkPermission(this, strArr)) {
  177. ActivityRequestPermissions.requestPermission((Activity) this, permission, 100);
  178. return;
  179. }
  180. }
  181. } catch (Exception e) {
  182. e.printStackTrace();
  183. }
  184. this.thread.start();
  185. }
  186. /* access modifiers changed from: private */
  187. public void backgroundJob() {
  188. int i;
  189. EPLog.m313i(LOG_TAG, "backgroundJob");
  190. Intent intent = getIntent();
  191. if (intent == null) {
  192. setResult(1);
  193. finish();
  194. return;
  195. }
  196. Intent intent2 = new Intent();
  197. Bundle extras = intent.getExtras();
  198. if (extras == null) {
  199. setResult(1);
  200. finish();
  201. return;
  202. }
  203. try {
  204. if (intent.getAction().equals(ACTION_PHOTO_PRINT)) {
  205. SharedParamPhoto sharedParamPhoto = new SharedParamPhoto();
  206. sharedParamPhoto.setParam(extras);
  207. if (sharedParamPhoto.getPackage_name().indexOf(PACKAGE_PANASONIC_FAX) != -1) {
  208. new ManagePreferences().setPreferences(PACKAGE_PANASONIC_FAX, getApplicationContext());
  209. } else {
  210. new ManagePreferences().setPreferences(sharedParamPhoto.getMedia_type(), sharedParamPhoto.getMedia_size(), sharedParamPhoto.getColor_mode(), sharedParamPhoto.getLayout_type(), getApplicationContext());
  211. }
  212. if (sharedParamPhoto.isTIFF()) {
  213. convertTiff(sharedParamPhoto);
  214. }
  215. intent2.setClass(this, ActivityViewImageSelect.class);
  216. intent2.setAction(intent.getAction());
  217. intent2.putExtra("extParam", sharedParamPhoto);
  218. intent2.putExtra("print_log", getPhotoPrintLog(sharedParamPhoto.getPackage_name(), 4097));
  219. i = 10;
  220. } else if (intent.getAction().equals(ACTION_SCAN)) {
  221. SharedParamScan sharedParamScan = new SharedParamScan();
  222. sharedParamScan.setParam(extras);
  223. if (sharedParamScan.getPixel_main() <= 0 || sharedParamScan.getPixel_sub() <= 0 || sharedParamScan.getRes_main() <= 0 || sharedParamScan.getRes_sub() <= 0) {
  224. throw new SharedDataException("resolution or pixel error.");
  225. }
  226. intent2.setClass(this, ScanActivity.class);
  227. intent2.setAction(intent.getAction());
  228. intent2.putExtra("extParam", sharedParamScan);
  229. intent2.putExtra(ScanActivity.PARAM_KEY_SCAN_LOG, getScanLog(getCallerPackage(intent2)));
  230. i = 20;
  231. } else if (intent.getAction().equals(ACTION_WEB_PRINT)) {
  232. String charSequence = extras.getCharSequence("URL").toString();
  233. if (charSequence.length() > 0) {
  234. intent2.setClass(this, WebviewActivity.class);
  235. intent2.setAction(intent.getAction());
  236. intent2.putExtra("android.intent.extra.TEXT", charSequence);
  237. intent2.putExtra("print_log", getPhotoPrintLog(extras.getString(PARAM_KEY_CALLER_PACKAGE_NAME), PrintLog.PRINT_SOURCE_EXTERNAL_APP_WEB));
  238. i = 30;
  239. } else {
  240. throw new SharedDataException("URL error");
  241. }
  242. } else {
  243. setResult(1);
  244. finish();
  245. return;
  246. }
  247. startActivityForResult(intent2, i);
  248. this.mHandler.sendEmptyMessageDelayed(1, 500);
  249. } catch (SharedDataException e) {
  250. e.printStackTrace();
  251. setResult(1);
  252. finish();
  253. } catch (NullPointerException e2) {
  254. e2.printStackTrace();
  255. setResult(1);
  256. finish();
  257. }
  258. }
  259. private String getCallerPackage(Intent intent) {
  260. String stringExtra;
  261. if (intent == null || (stringExtra = intent.getStringExtra(PARAM_KEY_CALLER_PACKAGE_NAME)) == null) {
  262. return getCallingPackage();
  263. }
  264. return stringExtra;
  265. }
  266. private CommonLog getScanLog(String str) {
  267. CommonLog commonLog = new CommonLog();
  268. commonLog.action = PrintLog.ACTION_EXTERNAL_APP_SCAN;
  269. commonLog.callerPackage = str;
  270. return commonLog;
  271. }
  272. private PrintLog getPhotoPrintLog(String str, int i) {
  273. PrintLog printLog = new PrintLog();
  274. printLog.uiRoute = i;
  275. printLog.callerPackage = str;
  276. if (printLog.callerPackage == null) {
  277. printLog.callerPackage = getCallingPackage();
  278. }
  279. return printLog;
  280. }
  281. private int checkPrinterSelection() {
  282. if (getSharedPreferences("PrintSetting", 0).getString(Constants.PRINTER_NAME, "").length() <= 0) {
  283. return 0;
  284. }
  285. return MyPrinter.isRemotePrinter(this) ? -2 : -1;
  286. }
  287. private int checkScannerSelection() {
  288. String prefString = Utils.getPrefString(getApplicationContext(), Constants.SCAN_REFS_USED_SCANNER_PATH, Constants.SCAN_REFS_SCANNER_MODEL);
  289. return (prefString.equals(getString(R.string.str_lbl_title_scan)) || prefString.equals("")) ? 0 : -1;
  290. }
  291. private void setPrinterScannerSelectionInfo() {
  292. int i;
  293. switch (getIntent().getIntExtra("DEVICE_TYPE", -1)) {
  294. case 0:
  295. i = checkPrinterSelection();
  296. break;
  297. case 1:
  298. i = checkScannerSelection();
  299. break;
  300. default:
  301. i = 1;
  302. break;
  303. }
  304. setResult(i);
  305. finish();
  306. }
  307. private void convertTiff(SharedParamPhoto sharedParamPhoto) {
  308. EPImageUtil ePImageUtil = new EPImageUtil();
  309. ArrayList<String> arrayFileFullPath = sharedParamPhoto.getArrayFileFullPath();
  310. ArrayList<String> arrayFilePath = sharedParamPhoto.getArrayFilePath();
  311. for (int i = 0; i < arrayFilePath.size(); i++) {
  312. String tempSharedDir = ExternalFileUtils.getInstance(this).getTempSharedDir();
  313. ePImageUtil.tiff2bmp(arrayFileFullPath.get(i), new File(tempSharedDir, Utils.getPreffix(arrayFilePath.get(i)) + ".bmp").getPath());
  314. String tempSharedDir2 = ExternalFileUtils.getInstance(this).getTempSharedDir();
  315. sharedParamPhoto.setArrayFileFullPath(i, new File(tempSharedDir2, Utils.getPreffix(arrayFilePath.get(i)) + ".bmp").getPath());
  316. }
  317. }
  318. private void showDialog(String str) {
  319. DialogProgress dialogProgress;
  320. if (((str.hashCode() == 23812620 && str.equals(DIALOG_WAIT)) ? (char) 0 : 65535) != 0) {
  321. dialogProgress = null;
  322. } else {
  323. dialogProgress = DialogProgress.newInstance(str, 0, getString(R.string.str_wait));
  324. }
  325. if (dialogProgress != null) {
  326. dialogProgress.setCancelable(true);
  327. dialogProgress.show(getSupportFragmentManager(), str);
  328. }
  329. }
  330. private void dismissDialog(String str) {
  331. DialogFragment dialogFragment = (DialogFragment) getSupportFragmentManager().findFragmentByTag(str);
  332. if (dialogFragment != null) {
  333. dialogFragment.dismiss();
  334. }
  335. }
  336. /* access modifiers changed from: protected */
  337. public void onActivityResult(int i, int i2, Intent intent) {
  338. super.onActivityResult(i, i2, intent);
  339. EPLog.m313i(LOG_TAG, "onActivityResult::requestCode = " + i + "/requestCode = " + i2);
  340. if (i == 10) {
  341. setResult(i2);
  342. } else if (i == 20) {
  343. Intent intent2 = new Intent();
  344. if (intent != null) {
  345. intent2.putExtra("FILE_NAME", ScanActivity.getScanFileListFromReturnIntent(intent));
  346. }
  347. setResult(i2, intent2);
  348. } else if (i != 30) {
  349. switch (i) {
  350. case 99:
  351. Intent intent3 = new Intent();
  352. if (intent == null) {
  353. setResult(i2);
  354. break;
  355. } else {
  356. SharedParamStatus sharedParamStatus = (SharedParamStatus) intent.getSerializableExtra("extStatus");
  357. if (sharedParamStatus == null) {
  358. setResult(i2);
  359. break;
  360. } else {
  361. intent3.putExtra(Constants.PRINTER_NAME, sharedParamStatus.getPrinter_name());
  362. intent3.putExtra("INK_NAME", sharedParamStatus.getArrayOutInkName());
  363. intent3.putExtra("INK_REMAIN", sharedParamStatus.getArrayOutInkRemain());
  364. intent3.putExtra("STATUS_VALUE", sharedParamStatus.getPrinter_status());
  365. intent3.putExtra("DEVICE_ID", sharedParamStatus.getPrinter_name());
  366. intent3.putExtra("INK_STATUS", sharedParamStatus.getExternInkStatus());
  367. setResult(i2, intent3);
  368. break;
  369. }
  370. }
  371. case 100:
  372. if (i2 == -1) {
  373. this.thread.start();
  374. break;
  375. } else {
  376. setResult(0);
  377. finish();
  378. break;
  379. }
  380. case 101:
  381. if (i2 != -1) {
  382. finish();
  383. return;
  384. } else {
  385. nextOnCreate();
  386. return;
  387. }
  388. }
  389. } else {
  390. setResult(i2);
  391. }
  392. finish();
  393. }
  394. /* access modifiers changed from: protected */
  395. public void onDestroy() {
  396. super.onDestroy();
  397. ManagePreferences managePreferences = new ManagePreferences();
  398. if (managePreferences.getSavedFlag(getApplicationContext(), "PrintSetting") == 0) {
  399. EPLog.m313i(LOG_TAG, "Preference 戻す");
  400. managePreferences.popPreferrences(getApplicationContext());
  401. }
  402. CleanUp();
  403. try {
  404. InitTempFolder();
  405. } catch (IOException unused) {
  406. }
  407. }
  408. /* access modifiers changed from: private */
  409. public void CleanUp() {
  410. Thread thread2 = this.thread;
  411. if (thread2 != null && thread2.isAlive()) {
  412. this.thread.interrupt();
  413. this.thread = null;
  414. }
  415. this.mModelDialog.doDismiss(DIALOG_WAIT);
  416. }
  417. private void InitTempFolder() throws IOException {
  418. ExternalFileUtils.getInstance(this).initTempSharedDir();
  419. }
  420. }