I2ScanActivity.java 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. package epson.scan.activity;
  2. import android.content.Intent;
  3. import android.content.IntentFilter;
  4. import android.graphics.Rect;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.os.Handler;
  8. import android.os.Message;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.TextView;
  14. import com.epson.iprint.prtlogger.CommonLog;
  15. import com.epson.iprint.shared.SharedParamScan;
  16. import com.epson.lib.escani2.EscanI2Lib;
  17. import com.epson.lib.escani2.I2LibScannerInfoAndCapability;
  18. import com.epson.lib.escani2.ScanI2Params;
  19. import com.epson.lib.escani2.ScanSize;
  20. import com.epson.lib.escani2.ScannerI2Info;
  21. import com.epson.mobilephone.common.wifidirect.NfcTagUtils;
  22. import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
  23. import java.io.File;
  24. import java.io.IOException;
  25. import java.lang.ref.WeakReference;
  26. import java.util.ArrayList;
  27. import java.util.Iterator;
  28. import java.util.Locale;
  29. import epson.common.Constants;
  30. import epson.print.ActivityIACommon;
  31. import epson.print.ActivityNfcPrinter;
  32. import epson.print.ActivityPrintWeb;
  33. import epson.print.CommonDefine;
  34. import epson.print.CustomTitleDialogFragment;
  35. import epson.print.EPImageUtil;
  36. import epson.print.R;
  37. import epson.scan.i2lib.I2ScanParamManager;
  38. import epson.scan.i2lib.I2ScanTask;
  39. import epson.scan.lib.ScanInfoStorage;
  40. import epson.server.screens.StorageServer;
  41. import epson.server.utils.Define;
  42. public class I2ScanActivity extends ActivityIACommon implements I2ScanAreaView.FlickCallback, CustomTitleDialogFragment.Callback, ScanContinueParam.ScanContinueDialogButtonClick {
  43. private static final int DIALOG_ID_CONFIRM_CANCEL = 1;
  44. private static final int DIALOG_ID_SCAN_ERROR = 2;
  45. private static final String DIALOG_TAG_CONFIRM_CANCEL = "cancel-dialog";
  46. private static final String DIALOG_TAG_SCAN_END = "scan-end";
  47. private static final String DIALOG_TAG_SCAN_ERROR = "scan-error";
  48. private static final String PARAM_KEY_SCAN_AUTO_START = "scan-auto-start";
  49. private static final int REQUEST_CODE_I2SETTING = 1;
  50. private static final int REQUEST_CODE_NFC_SCANNER_CHANGE = 5;
  51. private static final int REQUEST_CODE_PRINT = 2;
  52. private static final int REQUEST_CODE_START_MAIL_ACTIVITY = 3;
  53. private static final int REQUEST_CODE_WIFI_DIRECT_SIMPLE_AP_CONNECT = 4;
  54. public static final int RESULT_ESC_I_VERSION_CHANGE = 1;
  55. private static final String TAG = "I2ScanActivity";
  56. private boolean mActivityIsVisible;
  57. private int mCurrentPage;
  58. private SharedParamScan mExternalIntentData;
  59. private I2ScanAreaView mI2ScanAreaView;
  60. private I2ScanTask mI2ScanTask;
  61. private final LocalHandler mLocalHandler = new LocalHandler(this);
  62. private CustomButtonWrapper mMailButton;
  63. private Button mNextPageButton;
  64. private TextView mPageDisplayText;
  65. private Button mPreviousPageButton;
  66. private CustomButtonWrapper mPrintButton;
  67. private ProgressCallback mProgressCallback;
  68. private View mProgressViewGroup;
  69. private CustomButtonWrapper mSaveButton;
  70. private Button mScanButton;
  71. private Button mScanCancelButton;
  72. private ArrayList<String> mScanFileList;
  73. private int[] mScanFileSizeAndOffset;
  74. private CommonLog mScanLog;
  75. private TextView mScanProgressText;
  76. private boolean mStartScanAtScannerChanged;
  77. protected void onCreate(Bundle bundle) {
  78. super.onCreate(bundle);
  79. setContentView(R.layout.activity_i2_scan);
  80. mScanFileList = new ArrayList<>();
  81. mProgressCallback = new ProgressCallback();
  82. setActionBar(R.string.str_scan_btn, true);
  83. mI2ScanAreaView = (I2ScanAreaView) findViewById(R.id.areaView);
  84. mI2ScanAreaView.setFlickCallback(this);
  85. mProgressViewGroup = findViewById(R.id.llScanningProgress);
  86. mScanProgressText = (TextView) findViewById(R.id.scanProgressText);
  87. mPageDisplayText = (TextView) findViewById(R.id.tvScanResult);
  88. mSaveButton = new CustomButtonWrapper((Button) findViewById(R.id.btnSave), R.drawable.scan_save);
  89. mSaveButton.setOnClickListener(new View.OnClickListener() {
  90. public void onClick(View view) {
  91. I2ScanActivity.this.onSaveButtonClicked();
  92. }
  93. });
  94. mMailButton = new CustomButtonWrapper((Button) findViewById(R.id.btnMail), R.drawable.scan_mail);
  95. mMailButton.setOnClickListener(new View.OnClickListener() {
  96. public void onClick(View view) {
  97. I2ScanActivity.this.startMailActivity();
  98. }
  99. });
  100. mPrintButton = new CustomButtonWrapper((Button) findViewById(R.id.btnPrint), R.drawable.scan_print);
  101. mPrintButton.setOnClickListener(new View.OnClickListener() {
  102. public void onClick(View view) {
  103. I2ScanActivity.this.startPrintActivity();
  104. }
  105. });
  106. mScanButton = (Button) findViewById(R.id.btnScan);
  107. mScanButton.setOnClickListener(new View.OnClickListener() {
  108. public void onClick(View view) {
  109. I2ScanActivity i2ScanActivity = I2ScanActivity.this;
  110. ScanContinueParam.judgeScanContinue(i2ScanActivity, i2ScanActivity.mScanFileList);
  111. }
  112. });
  113. mScanCancelButton = (Button) findViewById(R.id.btnCancelScan);
  114. mScanCancelButton.setOnClickListener(new View.OnClickListener() {
  115. public void onClick(View view) {
  116. I2ScanActivity.this.confirmCancelScan();
  117. }
  118. });
  119. mNextPageButton = (Button) findViewById(R.id.btnNext);
  120. mNextPageButton.setOnClickListener(new View.OnClickListener() {
  121. public void onClick(View view) {
  122. I2ScanActivity.this.changePage(1);
  123. }
  124. });
  125. mPreviousPageButton = (Button) findViewById(R.id.btnPrev);
  126. mPreviousPageButton.setOnClickListener(new View.OnClickListener() {
  127. public void onClick(View view) {
  128. I2ScanActivity.this.changePage(-1);
  129. }
  130. });
  131. mExternalIntentData = ScanActivityCommonParams.getExternalIntentData(getIntent());
  132. if (!returnToI1ActivityIfEscIVersionMismatch()) {
  133. mProgressViewGroup.setVisibility(View.GONE);
  134. if (bundle == null) {
  135. resetUserDefineSize(false);
  136. }
  137. updateUi();
  138. mScanLog = ScanActivityCommonParams.getCommonLog(getIntent());
  139. startScanIfNeeded(getIntent());
  140. }
  141. }
  142. private void startScanIfNeeded(Intent intent) {
  143. if (ScanActivityCommonParams.startScanAtActivityChange(intent)) {
  144. mStartScanAtScannerChanged = false;
  145. requestStartScan();
  146. }
  147. }
  148. private void resetUserDefineSize(boolean z) {
  149. ScanI2Params loadScanI2Params = I2ScanParamManager.loadScanI2Params(this);
  150. if (z || loadScanI2Params.scanSize.isPixelSize()) {
  151. try {
  152. I2ScanParamManager.updateScanSize(this, ScanSize.getLocaleDefaultSize());
  153. } catch (IOException unused) {
  154. }
  155. }
  156. }
  157. private void updateUi() {
  158. int[] iArr;
  159. int[] iArr2;
  160. I2LibScannerInfoAndCapability i2ScannerAllInfo = ScannerPropertyWrapper.load(this).getI2ScannerAllInfo();
  161. if (i2ScannerAllInfo == null || i2ScannerAllInfo.scannerI2Info == null) {
  162. ScanInfoStorage.saveEscIVersion(this, 0);
  163. ScannerPropertyWrapper.clearSavedData(this);
  164. returnToI1ActivityIfEscIVersionMismatch();
  165. return;
  166. }
  167. ScannerI2Info scannerI2Info = i2ScannerAllInfo.scannerI2Info;
  168. ScanI2Params loadScanI2Params = I2ScanParamManager.loadScanI2Params(this);
  169. SharedParamScan sharedParamScan = mExternalIntentData;
  170. if (sharedParamScan != null) {
  171. iArr = new int[]{sharedParamScan.getPixel_main(), mExternalIntentData.getPixel_sub(), 0, 0};
  172. iArr2 = scannerI2Info.getSensorPixelSize(loadScanI2Params.inputUnit, mExternalIntentData.getRes_main(), mExternalIntentData.getRes_sub());
  173. } else {
  174. iArr = loadScanI2Params.scanSize.getSize(scannerI2Info, loadScanI2Params);
  175. iArr2 = scannerI2Info.getSensorPixelSize(loadScanI2Params.inputUnit, loadScanI2Params.resolutionMain, loadScanI2Params.resolutionSub);
  176. }
  177. if (loadScanI2Params.inputUnit == EscanI2Lib.InputUnit.ADF) {
  178. mI2ScanAreaView.setArea(iArr[0], iArr[1]);
  179. } else {
  180. mI2ScanAreaView.setMovableAreaModeSize(iArr2[0], iArr2[1], new Rect(iArr[2], iArr[3], iArr[0] + iArr[2], iArr[1] + iArr[3]));
  181. }
  182. displayScanFileList();
  183. if (mExternalIntentData != null) {
  184. mMailButton.setVisibility(View.GONE);
  185. mPrintButton.setVisibility(View.GONE);
  186. }
  187. }
  188. private boolean returnToI1ActivityIfEscIVersionMismatch() {
  189. if (ScanInfoStorage.loadEscIVersion(this) == 2) {
  190. return false;
  191. }
  192. Intent intent = new Intent();
  193. intent.putExtra(PARAM_KEY_SCAN_AUTO_START, mStartScanAtScannerChanged);
  194. setResult(1, intent);
  195. mStartScanAtScannerChanged = false;
  196. finish();
  197. return true;
  198. }
  199. private void startScan() {
  200. I2ScanTask i2ScanTask = mI2ScanTask;
  201. if (i2ScanTask == null || i2ScanTask.getStatus() == AsyncTask.Status.FINISHED) {
  202. saveScanSizeIfChanged();
  203. mScanCancelButton.setEnabled(true);
  204. mScanCancelButton.setVisibility(View.VISIBLE);
  205. mScanButton.setEnabled(false);
  206. mProgressViewGroup.setVisibility(View.VISIBLE);
  207. mPageDisplayText.setVisibility(View.GONE);
  208. mNextPageButton.setVisibility(View.GONE);
  209. mPreviousPageButton.setVisibility(View.GONE);
  210. mI2ScanAreaView.setPromptStringVisibility(4);
  211. if (!WiFiDirectManager.isNeedConnect(this, WiFiDirectManager.DEVICE_TYPE_SCANNER) || !WiFiDirectManager.reconnect(this, WiFiDirectManager.DEVICE_TYPE_SCANNER, 4)) {
  212. if (!ScanContinueParam.isContinueScanning()) {
  213. ScanCount.countUpScanPage(this);
  214. }
  215. mI2ScanTask = new I2ScanTask(this, mProgressCallback, mExternalIntentData, mScanLog);
  216. mI2ScanTask.execute(new Void[0]);
  217. }
  218. }
  219. }
  220. private void confirmCancelScan() {
  221. if (mI2ScanTask != null && mActivityIsVisible) {
  222. mProgressViewGroup.setVisibility(4);
  223. CustomTitleDialogFragment.newInstance(1, getString(R.string.str_msg_scan_cancel), 0, R.string.str_yes, R.string.str_no).show(getSupportFragmentManager(), DIALOG_TAG_CONFIRM_CANCEL);
  224. }
  225. }
  226. private void localScanEnd(I2ScanTask.TaskError taskError) {
  227. dismissCancelConfirmDialog();
  228. updateScanEnd();
  229. updateScanFileList(taskError);
  230. displayScanFileList();
  231. }
  232. private void updateScanEnd() {
  233. mProgressViewGroup.setVisibility(View.GONE);
  234. mScanButton.setEnabled(true);
  235. }
  236. private void showProgressWithoutTextViewCancelButton() {
  237. mProgressViewGroup.setVisibility(View.VISIBLE);
  238. mScanCancelButton.setVisibility(4);
  239. mScanProgressText.setVisibility(4);
  240. }
  241. protected void onResume() {
  242. super.onResume();
  243. NfcTagUtils.enableForegroundDispatch(this, (IntentFilter[]) null, (String[][]) null);
  244. mActivityIsVisible = true;
  245. }
  246. protected void onPause() {
  247. super.onPause();
  248. mActivityIsVisible = false;
  249. NfcTagUtils.disableForegroundDispatch(this);
  250. }
  251. protected void onStop() {
  252. super.onStop();
  253. if (mProgressViewGroup.getVisibility() == 0) {
  254. cancelScan();
  255. }
  256. dismissCancelConfirmDialog();
  257. }
  258. private void dismissCancelConfirmDialog() {
  259. CustomTitleDialogFragment customTitleDialogFragment = (CustomTitleDialogFragment) getSupportFragmentManager().findFragmentByTag(DIALOG_TAG_CONFIRM_CANCEL);
  260. if (customTitleDialogFragment != null) {
  261. customTitleDialogFragment.dismiss();
  262. }
  263. }
  264. private void cancelScan() {
  265. mProgressViewGroup.setVisibility(View.VISIBLE);
  266. I2ScanTask i2ScanTask = mI2ScanTask;
  267. if (i2ScanTask != null) {
  268. i2ScanTask.cancelScan();
  269. mScanCancelButton.setEnabled(false);
  270. }
  271. }
  272. protected void onNewIntent(Intent intent) {
  273. super.onNewIntent(intent);
  274. I2ScanTask i2ScanTask = mI2ScanTask;
  275. if ((i2ScanTask == null || i2ScanTask.getStatus() == AsyncTask.Status.FINISHED) && "android.nfc.action.NDEF_DISCOVERED".equals(intent.getAction())) {
  276. checkNfcTagAndStartProcess(intent);
  277. }
  278. }
  279. private void checkNfcTagAndStartProcess(Intent intent) {
  280. NfcTagUtils.EpsonNfcConnectInfo parseNECTag = NfcTagUtils.parseNECTag(this, intent);
  281. if (parseNECTag != null) {
  282. ScannerPropertyWrapper.load(this).getScannerId();
  283. Intent intent2 = new Intent();
  284. intent2.setClass(this, ActivityNfcPrinter.class);
  285. intent2.putExtra(ActivityNfcPrinter.CONNECTINFO, parseNECTag);
  286. intent2.putExtra(ActivityNfcPrinter.CHANGEMODE, 2);
  287. startActivityForResult(intent2, 5);
  288. mStartScanAtScannerChanged = true;
  289. }
  290. }
  291. protected void onSaveInstanceState(Bundle bundle) {
  292. super.onSaveInstanceState(bundle);
  293. }
  294. public void onBackPressed() {
  295. if (mProgressViewGroup.getVisibility() != 0) {
  296. resetUserDefineSize(mI2ScanAreaView.isScanAreaModified());
  297. ScanActivity.removeTempContents(this);
  298. finish();
  299. }
  300. }
  301. private void onSaveButtonClicked() {
  302. if (mExternalIntentData == null) {
  303. startSaveActivity();
  304. } else if (!mScanFileList.isEmpty()) {
  305. showProgressWithoutTextViewCancelButton();
  306. new ImageConvertAndFinishTask(mExternalIntentData).execute(new ArrayList[]{mScanFileList});
  307. }
  308. }
  309. private void startSaveActivity() {
  310. ArrayList<String> arrayList = mScanFileList;
  311. if (arrayList != null && arrayList.size() > 0) {
  312. Intent intent = new Intent(this, StorageServer.class);
  313. intent.putExtra(Define.PICK_SERVER_FOR, 2);
  314. intent.putStringArrayListExtra(Define.SAVING_FILE_PATH, arrayList);
  315. intent.putExtra(StorageServer.FOR_PRINT_LOGGER_CALL_FROM, 1);
  316. startActivity(intent);
  317. }
  318. }
  319. private void startMailActivity() {
  320. if (!mScanFileList.isEmpty()) {
  321. Intent intent = new Intent(this, MailActivity.class);
  322. intent.putStringArrayListExtra(Define.SAVING_FILE_PATH, mScanFileList);
  323. startActivityForResult(intent, 3);
  324. }
  325. }
  326. private void startPrintActivity() {
  327. if (!mScanFileList.isEmpty()) {
  328. Intent intent = new Intent(this, ActivityPrintWeb.class);
  329. intent.putExtra("from", 1);
  330. intent.putStringArrayListExtra("print_web", mScanFileList);
  331. intent.putExtra("print_log", ScanActivity.getPrintLog());
  332. startActivityForResult(intent, 2);
  333. }
  334. }
  335. public boolean onCreateOptionsMenu(Menu menu) {
  336. getMenuInflater().inflate(R.menu.scan_menu, menu);
  337. return true;
  338. }
  339. public boolean onOptionsItemSelected(MenuItem menuItem) {
  340. if (menuItem.getItemId() != R.id.btn_scan_settings) {
  341. return super.onOptionsItemSelected(menuItem);
  342. }
  343. goSettingActivity();
  344. return true;
  345. }
  346. private void saveScanSizeIfChanged() {
  347. if (mI2ScanAreaView.isScanAreaModified()) {
  348. Rect movableScanArea = mI2ScanAreaView.getMovableScanArea();
  349. try {
  350. I2ScanParamManager.updateScanSize(this, new ScanSize(movableScanArea.width(), movableScanArea.height(), movableScanArea.left, movableScanArea.top));
  351. } catch (IOException unused) {
  352. }
  353. }
  354. }
  355. private void goSettingActivity() {
  356. saveScanSizeIfChanged();
  357. boolean z = mExternalIntentData != null;
  358. startActivityForResult(I2ScanSettingActivity.getStartIntent(this, z, z, mExternalIntentData), 1);
  359. }
  360. protected void onActivityResult(int i, int i2, Intent intent) {
  361. boolean z = false;
  362. if (i != 1) {
  363. switch (i) {
  364. case 4:
  365. if (i2 == -1) {
  366. requestStartScan();
  367. return;
  368. } else {
  369. updateScanEnd();
  370. return;
  371. }
  372. case 5:
  373. onI2SettingEnd(i2, false);
  374. return;
  375. default:
  376. return;
  377. }
  378. } else {
  379. if (i2 != -1 || I2ScanSettingActivity.getOldDataValidation(intent)) {
  380. z = true;
  381. }
  382. onI2SettingEnd(i2, z);
  383. }
  384. }
  385. private void onI2SettingEnd(int i, boolean z) {
  386. if (!returnToI1ActivityIfEscIVersionMismatch() && i == -1) {
  387. if (!z) {
  388. mScanFileList.clear();
  389. mCurrentPage = 0;
  390. ScanContinueParam.resetParameter();
  391. ScanActivity.removeTempContents(this);
  392. }
  393. updateUi();
  394. if (mStartScanAtScannerChanged) {
  395. mStartScanAtScannerChanged = false;
  396. requestStartScan();
  397. }
  398. }
  399. }
  400. private void requestStartScan() {
  401. runOnUiThread(new Runnable() {
  402. public void run() {
  403. I2ScanActivity.this.startScan();
  404. }
  405. });
  406. }
  407. private void updateScanFileList(I2ScanTask.TaskError taskError) {
  408. if (!isFinishing() && !I2ScanTask.TaskError.isInvalidScanArea(taskError)) {
  409. if (mI2ScanTask != null) {
  410. if (ScanContinueParam.isContinueScanning()) {
  411. mScanFileList.addAll(mI2ScanTask.getScanFileList());
  412. } else {
  413. mScanFileList.clear();
  414. mScanFileList.addAll(mI2ScanTask.getScanFileList());
  415. }
  416. int size = mScanFileList.size();
  417. if (size > 0) {
  418. ScanCount.saveScanCount(getApplicationContext(), size);
  419. ScanContinueParam.setScannedFileCount(size);
  420. if (ScanContinueParam.isReachMaximumScan() && I2ScanParamManager.loadScanI2Params(this).inputUnit == EscanI2Lib.InputUnit.ADF) {
  421. ScanContinueParam.showScanErrorLimit(this);
  422. }
  423. ScannerI2Info scannerI2Info = ScannerPropertyWrapper.load(this).getI2ScannerAllInfo().scannerI2Info;
  424. ScanI2Params loadScanI2Params = I2ScanParamManager.loadScanI2Params(this);
  425. SharedParamScan sharedParamScan = mExternalIntentData;
  426. if (sharedParamScan == null) {
  427. mScanFileSizeAndOffset = loadScanI2Params.scanSize.getValidScanSize(scannerI2Info, loadScanI2Params);
  428. } else {
  429. mScanFileSizeAndOffset = new int[]{sharedParamScan.getPixel_main(), mExternalIntentData.getPixel_sub(), 0, 0};
  430. }
  431. }
  432. } else {
  433. mScanFileList.clear();
  434. }
  435. if (taskError != null && !taskError.isCancel()) {
  436. displayScanError(taskError);
  437. }
  438. }
  439. }
  440. private void displayScanError(@NonNull I2ScanTask.TaskError taskError) {
  441. String str;
  442. if (mActivityIsVisible) {
  443. int[] i2ScanErrorTitleAndMessage = getI2ScanErrorTitleAndMessage(taskError);
  444. if (i2ScanErrorTitleAndMessage[1] == 0) {
  445. str = "";
  446. } else {
  447. str = getString(i2ScanErrorTitleAndMessage[1]);
  448. }
  449. CustomTitleDialogFragment.newInstance(2, str, i2ScanErrorTitleAndMessage[0], R.string.str_ok, 0).show(getSupportFragmentManager(), DIALOG_TAG_SCAN_ERROR);
  450. }
  451. }
  452. /* JADX WARNING: Code restructure failed: missing block: B:24:0x005f, code lost:
  453. r1[0] = epson.print.R.string.str_err_msg_scan_coveropen_title;
  454. r1[1] = epson.print.R.string.str_err_msg_scan_coveropen;
  455. */
  456. /* JADX WARNING: Code restructure failed: missing block: B:25:0x006a, code lost:
  457. r1[0] = epson.print.R.string.str_err_msg_scan_paperjam_title;
  458. r1[1] = epson.print.R.string.str_err_msg_scan_paperjam;
  459. */
  460. /* JADX WARNING: Code restructure failed: missing block: B:26:0x0075, code lost:
  461. r1[0] = epson.print.R.string.str_err_msg_scan_paperout_title;
  462. r1[1] = epson.print.R.string.str_err_msg_scan_paperout;
  463. */
  464. /* Code decompiled incorrectly, please refer to instructions dump. */
  465. private int[] getI2ScanErrorTitleAndMessage(@android.support.annotation.NonNull epson.scan.i2lib.I2ScanTask.TaskError r8) {
  466. /*
  467. r7 = this;
  468. r0 = 2
  469. int[] r1 = new int[r0]
  470. int r2 = r8.error1
  471. r3 = 2131625131(0x7f0e04ab, float:1.8877461E38)
  472. r4 = 2131625132(0x7f0e04ac, float:1.8877463E38)
  473. r5 = 1
  474. r6 = 0
  475. switch(r2) {
  476. case 1: goto L_0x0028;
  477. case 2: goto L_0x0012;
  478. default: goto L_0x0010;
  479. }
  480. L_0x0010:
  481. goto L_0x00b6
  482. L_0x0012:
  483. int r8 = r8.error2
  484. if (r8 == r0) goto L_0x001c
  485. r1[r6] = r4
  486. r1[r5] = r3
  487. goto L_0x00b6
  488. L_0x001c:
  489. r8 = 2131625276(0x7f0e053c, float:1.8877755E38)
  490. r1[r6] = r8
  491. r8 = 2131625194(0x7f0e04ea, float:1.887759E38)
  492. r1[r5] = r8
  493. goto L_0x00b6
  494. L_0x0028:
  495. int r8 = r8.error2
  496. r0 = -500001(0xfffffffffff85edf, float:NaN)
  497. if (r8 == r0) goto L_0x00ac
  498. r0 = -5007(0xffffffffffffec71, float:NaN)
  499. if (r8 == r0) goto L_0x00a1
  500. r0 = -1501(0xfffffffffffffa23, float:NaN)
  501. if (r8 == r0) goto L_0x0096
  502. r0 = -1300(0xfffffffffffffaec, float:NaN)
  503. if (r8 == r0) goto L_0x008b
  504. r0 = -1114(0xfffffffffffffba6, float:NaN)
  505. if (r8 == r0) goto L_0x0080
  506. r0 = -1100(0xfffffffffffffbb4, float:NaN)
  507. if (r8 == r0) goto L_0x0080
  508. switch(r8) {
  509. case -5003: goto L_0x0075;
  510. case -5002: goto L_0x006a;
  511. case -5001: goto L_0x005f;
  512. default: goto L_0x0046;
  513. }
  514. L_0x0046:
  515. switch(r8) {
  516. case -215: goto L_0x005f;
  517. case -214: goto L_0x0080;
  518. case -213: goto L_0x0096;
  519. case -212: goto L_0x006a;
  520. case -211: goto L_0x00a1;
  521. case -210: goto L_0x0075;
  522. default: goto L_0x0049;
  523. }
  524. L_0x0049:
  525. switch(r8) {
  526. case -202: goto L_0x0054;
  527. case -201: goto L_0x0054;
  528. default: goto L_0x004c;
  529. }
  530. L_0x004c:
  531. switch(r8) {
  532. case -102: goto L_0x0054;
  533. case -101: goto L_0x0054;
  534. default: goto L_0x004f;
  535. }
  536. L_0x004f:
  537. r1[r6] = r4
  538. r1[r5] = r3
  539. goto L_0x00b6
  540. L_0x0054:
  541. r8 = 2131625073(0x7f0e0471, float:1.8877344E38)
  542. r1[r6] = r8
  543. r8 = 2131625120(0x7f0e04a0, float:1.8877439E38)
  544. r1[r5] = r8
  545. goto L_0x00b6
  546. L_0x005f:
  547. r8 = 2131625128(0x7f0e04a8, float:1.8877455E38)
  548. r1[r6] = r8
  549. r8 = 2131625127(0x7f0e04a7, float:1.8877453E38)
  550. r1[r5] = r8
  551. goto L_0x00b6
  552. L_0x006a:
  553. r8 = 2131625137(0x7f0e04b1, float:1.8877473E38)
  554. r1[r6] = r8
  555. r8 = 2131625136(0x7f0e04b0, float:1.8877471E38)
  556. r1[r5] = r8
  557. goto L_0x00b6
  558. L_0x0075:
  559. r8 = 2131625139(0x7f0e04b3, float:1.8877478E38)
  560. r1[r6] = r8
  561. r8 = 2131625138(0x7f0e04b2, float:1.8877475E38)
  562. r1[r5] = r8
  563. goto L_0x00b6
  564. L_0x0080:
  565. r8 = 2131625126(0x7f0e04a6, float:1.8877451E38)
  566. r1[r6] = r8
  567. r8 = 2131625125(0x7f0e04a5, float:1.887745E38)
  568. r1[r5] = r8
  569. goto L_0x00b6
  570. L_0x008b:
  571. r8 = 2131625135(0x7f0e04af, float:1.887747E38)
  572. r1[r6] = r8
  573. r8 = 2131625134(0x7f0e04ae, float:1.8877467E38)
  574. r1[r5] = r8
  575. goto L_0x00b6
  576. L_0x0096:
  577. r8 = 2131625124(0x7f0e04a4, float:1.8877447E38)
  578. r1[r6] = r8
  579. r8 = 2131625123(0x7f0e04a3, float:1.8877445E38)
  580. r1[r5] = r8
  581. goto L_0x00b6
  582. L_0x00a1:
  583. r8 = 2131625130(0x7f0e04aa, float:1.887746E38)
  584. r1[r6] = r8
  585. r8 = 2131625129(0x7f0e04a9, float:1.8877457E38)
  586. r1[r5] = r8
  587. goto L_0x00b6
  588. L_0x00ac:
  589. r8 = 2131624371(0x7f0e01b3, float:1.887592E38)
  590. r1[r6] = r8
  591. r8 = 2131625160(0x7f0e04c8, float:1.887752E38)
  592. r1[r5] = r8
  593. L_0x00b6:
  594. return r1
  595. */
  596. throw new UnsupportedOperationException("Method not decompiled: epson.scan.activity.I2ScanActivity.getI2ScanErrorTitleAndMessage(epson.scan.i2lib.I2ScanTask$TaskError):int[]");
  597. }
  598. /* access modifiers changed from: package-private */
  599. @VisibleForTesting
  600. public void setScanFileList(ArrayList<String> arrayList, int[] iArr) {
  601. mScanFileList = arrayList;
  602. if (mScanFileList == null) {
  603. mScanFileList = new ArrayList<>();
  604. }
  605. mScanFileSizeAndOffset = iArr;
  606. displayScanFileList();
  607. }
  608. private void displayScanFileList() {
  609. if (!isFinishing()) {
  610. boolean z = true;
  611. int i = 0;
  612. if (!mScanFileList.isEmpty()) {
  613. mCurrentPage = mScanFileList.size() - 1;
  614. if (mScanFileList.size() <= 1) {
  615. mPageDisplayText.setVisibility(View.GONE);
  616. } else {
  617. mPageDisplayText.setVisibility(View.VISIBLE);
  618. }
  619. } else {
  620. mCurrentPage = 0;
  621. z = false;
  622. }
  623. mSaveButton.setEnabled(z);
  624. mMailButton.setEnabled(z);
  625. mPrintButton.setEnabled(z);
  626. I2ScanAreaView i2ScanAreaView = mI2ScanAreaView;
  627. if (z) {
  628. i = 4;
  629. }
  630. i2ScanAreaView.setPromptStringVisibility(i);
  631. updateScanPreviewPage();
  632. }
  633. }
  634. private void changePage(int i) {
  635. mCurrentPage += i;
  636. int i2 = mCurrentPage;
  637. if (i2 < 0) {
  638. mCurrentPage = 0;
  639. } else if (i2 >= mScanFileList.size()) {
  640. mCurrentPage = mScanFileList.size() - 1;
  641. }
  642. updateScanPreviewPage();
  643. }
  644. private void updateScanPreviewPage() {
  645. int size = mScanFileList.size();
  646. int i = 0;
  647. if (size > 1) {
  648. mPageDisplayText.setVisibility(View.VISIBLE);
  649. TextView textView = mPageDisplayText;
  650. textView.setText((mCurrentPage + 1) + Constants.CROSS + size);
  651. } else {
  652. mPageDisplayText.setVisibility(View.GONE);
  653. }
  654. int i2 = mCurrentPage > 0 ? 0 : 8;
  655. if (mCurrentPage >= mScanFileList.size() - 1) {
  656. i = 8;
  657. }
  658. mPreviousPageButton.setVisibility(i2);
  659. mNextPageButton.setVisibility(i);
  660. if (mScanFileList.isEmpty()) {
  661. mI2ScanAreaView.setPreviewImage((String) null, (int[]) null);
  662. } else {
  663. mI2ScanAreaView.setPreviewImage(mScanFileList.get(mCurrentPage), mScanFileSizeAndOffset);
  664. }
  665. mI2ScanAreaView.invalidate();
  666. }
  667. private void updateScanProgressPreview(int i, int i2) {
  668. File scanFile = mI2ScanTask.getScanFile(i, i2);
  669. if (scanFile != null || scanFile.canRead()) {
  670. mI2ScanAreaView.setPreviewImage(scanFile.getPath());
  671. mI2ScanAreaView.invalidate();
  672. }
  673. }
  674. public void flick(int i) {
  675. changePage(i);
  676. }
  677. public void onLocalNegativeCallback(int i) {
  678. if (i == 1) {
  679. mScanCancelButton.setEnabled(true);
  680. mProgressViewGroup.setVisibility(View.VISIBLE);
  681. }
  682. }
  683. public void onLocalPositiveCallback(int i) {
  684. if (i == 1) {
  685. cancelScan();
  686. }
  687. }
  688. private void finishWithScanParam(@NonNull ArrayList<String> arrayList) {
  689. Intent intent = new Intent();
  690. intent.putExtra("scan-file", arrayList);
  691. setResult(-1, intent);
  692. finish();
  693. }
  694. public void onRequestScanAction() {
  695. startScan();
  696. }
  697. private class ProgressCallback implements I2ScanTask.ScanResultReceiver {
  698. private ProgressCallback() {
  699. }
  700. public void onProgressUpdate(int i, int i2) {
  701. I2ScanActivity.mLocalHandler.sendUpdateScanProgressPreviewMessage(i, i2);
  702. }
  703. public void onScanEnd(I2ScanTask.TaskError taskError) {
  704. I2ScanActivity.this.localScanEnd(taskError);
  705. }
  706. }
  707. static boolean getAutoStartRequestedFromReturnIntent(Intent intent) {
  708. if (intent == null) {
  709. return false;
  710. }
  711. return intent.getBooleanExtra(PARAM_KEY_SCAN_AUTO_START, false);
  712. }
  713. private static class LocalHandler extends Handler {
  714. static final int MESSAGE_UPDATE_PREVIEW = 1;
  715. private final WeakReference<I2ScanActivity> mActivity;
  716. LocalHandler(I2ScanActivity i2ScanActivity) {
  717. mActivity = new WeakReference<>(i2ScanActivity);
  718. }
  719. public void handleMessage(Message message) {
  720. I2ScanActivity i2ScanActivity;
  721. if (message.what == 1 && (i2ScanActivity = (I2ScanActivity) mActivity.get()) != null && !i2ScanActivity.isFinishing()) {
  722. i2ScanActivity.updateScanProgressPreview(message.arg1, message.arg2);
  723. }
  724. }
  725. private void sendUpdateScanProgressPreviewMessage(int i, int i2) {
  726. removeMessages(1);
  727. sendMessage(obtainMessage(1, i, i2));
  728. }
  729. }
  730. private class ImageConvertAndFinishTask extends AsyncTask<ArrayList<String>, Void, Integer> {
  731. private final int ERROR_CODE_FILE_WRITE_ERROR = 2;
  732. private final int ERROR_CODE_NO_ERROR = 0;
  733. private final int ERROR_CODE_NO_FILE = 1;
  734. private ArrayList<String> mScanFileList;
  735. private SharedParamScan mScanParams;
  736. ImageConvertAndFinishTask(@NonNull SharedParamScan sharedParamScan) {
  737. mScanParams = sharedParamScan;
  738. }
  739. protected Integer doInBackground(ArrayList<String>... arrayListArr) {
  740. int i;
  741. if (arrayListArr.length <= 0) {
  742. return 1;
  743. }
  744. ArrayList<String> arrayList = arrayListArr[0];
  745. if (arrayList.size() <= 0) {
  746. return 1;
  747. }
  748. File file = new File(mScanParams.getFolder_name());
  749. if (!file.exists() && !file.mkdirs()) {
  750. return 2;
  751. }
  752. mScanFileList = new ArrayList<>();
  753. EPImageUtil ePImageUtil = new EPImageUtil();
  754. String str = file.getPath() + CommonDefine.SLASH + mScanParams.getFile_name() + "_%03d.bmp";
  755. boolean z = mScanParams.getScan_type() == 3;
  756. Iterator<String> it = arrayList.iterator();
  757. int i2 = 0;
  758. while (it.hasNext()) {
  759. String next = it.next();
  760. i2++;
  761. String format = String.format(Locale.US, str, new Object[]{Integer.valueOf(i2)});
  762. if (z) {
  763. i = EPImageUtil.jpegTo1BitBmpPixelRoundDown(next, format, 127);
  764. } else {
  765. i = ePImageUtil.jpg2bmp(next, format, 1);
  766. }
  767. if (i != 0) {
  768. return 2;
  769. }
  770. mScanFileList.add(format);
  771. }
  772. return 0;
  773. }
  774. protected void onPostExecute(Integer num) {
  775. I2ScanActivity.this.updateScanEnd();
  776. if (num != null && num.intValue() != 1) {
  777. if (num.intValue() == 0) {
  778. ArrayList<String> arrayList = mScanFileList;
  779. if (arrayList != null) {
  780. I2ScanActivity.this.finishWithScanParam(arrayList);
  781. return;
  782. }
  783. return;
  784. }
  785. I2ScanActivity.this.displayScanError(convertError(num.intValue()));
  786. }
  787. }
  788. @NonNull
  789. private I2ScanTask.TaskError convertError(int i) {
  790. return new I2ScanTask.TaskError(1, i != 2 ? EscanI2Lib.ERROR_CODE_GENERAL_ERROR : -202);
  791. }
  792. }
  793. }