ScanActivity.java 97 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942
  1. package epson.scan.activity;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.content.IntentFilter;
  9. import android.content.SharedPreferences;
  10. import android.content.res.Configuration;
  11. import android.graphics.Bitmap;
  12. import android.graphics.Point;
  13. import android.graphics.RectF;
  14. import android.os.AsyncTask;
  15. import android.os.Build;
  16. import android.os.Bundle;
  17. import android.os.Handler;
  18. import android.os.StatFs;
  19. import android.view.Display;
  20. import android.view.GestureDetector;
  21. import android.view.KeyEvent;
  22. import android.view.Menu;
  23. import android.view.MenuItem;
  24. import android.view.MotionEvent;
  25. import android.view.View;
  26. import android.view.ViewTreeObserver;
  27. import android.widget.Button;
  28. import android.widget.FrameLayout;
  29. import android.widget.LinearLayout;
  30. import android.widget.TextView;
  31. import com.epson.iprint.prtlogger.Analytics;
  32. import com.epson.iprint.prtlogger.CommonLog;
  33. import com.epson.iprint.prtlogger.PrintLog;
  34. import com.epson.iprint.shared.EpsoniPrintSharedActivity;
  35. import com.epson.iprint.shared.SharedParamScan;
  36. import com.epson.mobilephone.common.PrintingLib.define.Constants;
  37. import com.epson.mobilephone.common.wifidirect.NfcTagUtils;
  38. import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
  39. import org.opencv.videoio.Videoio;
  40. import java.io.File;
  41. import java.io.FileNotFoundException;
  42. import java.io.IOException;
  43. import java.util.ArrayList;
  44. import java.util.Calendar;
  45. import epson.common.ExternalFileUtils;
  46. import epson.common.Utils;
  47. import epson.print.ActivityNfcPrinter;
  48. import epson.print.ActivityPrintWeb;
  49. import epson.print.ActivityRequestPermissions;
  50. import epson.print.CommonDefine;
  51. import epson.print.R;
  52. import epson.print.Util.EPLog;
  53. import epson.print.Util.Photo;
  54. import epson.scan.lib.I1ScanParams;
  55. import epson.scan.lib.ScanInfoStorage;
  56. import epson.scan.lib.ScanSizeHelper;
  57. import epson.scan.lib.ScannerInfo;
  58. import epson.scan.lib.escanLib;
  59. import epson.server.screens.StorageServer;
  60. import epson.server.utils.Define;
  61. public class ScanActivity extends ScanBaseView implements ScanContinueParam.ScanContinueDialogButtonClick {
  62. private static final int MESSAGE_CHECK_STATUS_AND_START_SCAN = 20;
  63. public static final String PARAM_KEY_SCAN_LOG = "scan-log";
  64. private static final int REQEST_RUNTIMEPERMMISSION = 4;
  65. private static final int REQUEST_CODE_ESC_I_VERSION_CHANGE = 20;
  66. static final String RETURN_KEY_SCAN_FILE = "scan-file";
  67. private static final int SCAN_CANCELED = -2;
  68. private static final int SCAN_DISMISS = -3;
  69. public static final int SCAN_ENDPAGE_CB = 11;
  70. private static final int SCAN_ERROR = -1;
  71. private static final int SCAN_FINISHED = 2;
  72. public static final int SCAN_RECV_IMGBLOCK_CB = 10;
  73. private static final int SCAN_REDRAWBITMAP = -100;
  74. private static final int START_SCAN = 0;
  75. private static final String TAG = "ScanActivity";
  76. private RectF area;
  77. private int areaHeightOnScreen = 0;
  78. private int areaWidthOnScreen = 0;
  79. private boolean bAutoStartScan = false;
  80. private Button btnCancelScan;
  81. private Button btnMail;
  82. private Button btnNext;
  83. private Button btnPrev;
  84. private Button btnPrint;
  85. private Button btnSave;
  86. private Button btnScan;
  87. private AlertDialog confirmAlertDialog;
  88. private int convertCount = 0;
  89. private Thread doscan;
  90. private int error = 0;
  91. private AlertDialog errorDialog;
  92. private escanLib escan;
  93. private SharedParamScan extParam;
  94. private FrameLayout flScanResult;
  95. private GestureDetector gestureDetector;
  96. private View.OnTouchListener gestureListener;
  97. private boolean isConfirmCancel = false;
  98. private boolean isCustomAction = false;
  99. private boolean isDecoding = false;
  100. private boolean isNeedClearBm = false;
  101. private boolean isNeedDeleteTempFile = true;
  102. private boolean isNeedGetScanSize = true;
  103. private boolean isNeedRedrawBitmap = false;
  104. private boolean isNeedScale = false;
  105. private boolean isNeedUpdateScanningArea = false;
  106. private boolean isStopScan = false;
  107. private LinearLayout llScanArea;
  108. private LinearLayout llScanAreaBackground;
  109. private LinearLayout llScanningProgress;
  110. private boolean mActivityPaused;
  111. private View.OnClickListener mButtonCancelScanListener = new View.OnClickListener() {
  112. public void onClick(View view) {
  113. String localClassName = ScanActivity.this.getLocalClassName();
  114. EPLog.i(localClassName, "isStopScan = " + ScanActivity.this.isStopScan);
  115. if (!ScanActivity.this.escan.isJobDone() && !ScanActivity.this.isStopScan) {
  116. ScanActivity.this.hideScanningPop();
  117. ScanActivity scanActivity = ScanActivity.this;
  118. scanActivity.confirmationDialog(scanActivity.getString(R.string.str_msg_scan_cancel));
  119. }
  120. }
  121. };
  122. private View.OnClickListener mButtonMailListener = new View.OnClickListener() {
  123. public void onClick(View view) {
  124. if (ScanActivity.this.totalScanned > 0 && ScanActivity.this.isCompletedScanProcess()) {
  125. Intent intent = new Intent(ScanActivity.this, MailActivity.class);
  126. intent.putStringArrayListExtra(Define.SAVING_FILE_PATH, ScanActivity.this.getListSavedJPGFilePath());
  127. ScanActivity.this.startActivityForResult(intent, 1);
  128. }
  129. }
  130. };
  131. private View.OnClickListener mButtonNextListener = new View.OnClickListener() {
  132. public void onClick(View view) {
  133. if (ScanActivity.this.isCompletedScanProcess()) {
  134. ScanActivity.this.curentViewingFile++;
  135. if (ScanActivity.this.curentViewingFile > 300 || ScanActivity.this.curentViewingFile > ScanActivity.this.totalScanned) {
  136. ScanActivity scanActivity = ScanActivity.this;
  137. scanActivity.curentViewingFile--;
  138. return;
  139. }
  140. ScanActivity scanActivity2 = ScanActivity.this;
  141. scanActivity2.updateThumbResult(scanActivity2.curentViewingFile);
  142. ScanActivity.this.showDisplayingResult();
  143. ScanActivity.this.scanArea.postInvalidate();
  144. }
  145. }
  146. };
  147. private View.OnClickListener mButtonPrevListener = new View.OnClickListener() {
  148. public void onClick(View view) {
  149. if (ScanActivity.this.isCompletedScanProcess()) {
  150. ScanActivity.this.curentViewingFile--;
  151. if (ScanActivity.this.curentViewingFile < 1) {
  152. ScanActivity.this.curentViewingFile++;
  153. return;
  154. }
  155. ScanActivity scanActivity = ScanActivity.this;
  156. scanActivity.updateThumbResult(scanActivity.curentViewingFile);
  157. ScanActivity.this.showDisplayingResult();
  158. ScanActivity.this.scanArea.postInvalidate();
  159. }
  160. }
  161. };
  162. private View.OnClickListener mButtonPrintListener = new View.OnClickListener() {
  163. public void onClick(View view) {
  164. if (ScanActivity.this.totalScanned > 0) {
  165. Intent intent = new Intent(ScanActivity.this, ActivityPrintWeb.class);
  166. intent.putExtra("from", 1);
  167. intent.putStringArrayListExtra("print_web", ScanActivity.this.getListSavedJPGFilePath());
  168. intent.putExtra("print_log", ScanActivity.getPrintLog());
  169. ScanActivity.this.startActivityForResult(intent, 3);
  170. }
  171. }
  172. };
  173. private View.OnClickListener mButtonSaveListener = new View.OnClickListener() {
  174. public void onClick(View view) {
  175. if (ScanActivity.this.totalScanned > 0 && ScanActivity.this.isCompletedScanProcess()) {
  176. if (ScanActivity.this.isCustomAction) {
  177. Intent intent = new Intent();
  178. if (ScanActivity.this.extParam != null) {
  179. intent.putExtra(ScanActivity.RETURN_KEY_SCAN_FILE, ScanActivity.this.extParam.getArrayOutFilePath());
  180. ScanActivity.this.setResult(-1, intent);
  181. ScanActivity.this.finish();
  182. return;
  183. }
  184. return;
  185. }
  186. Intent intent2 = new Intent(ScanActivity.this, StorageServer.class);
  187. intent2.putExtra(Define.PICK_SERVER_FOR, 2);
  188. intent2.putStringArrayListExtra(Define.SAVING_FILE_PATH, ScanActivity.this.getListSavedJPGFilePath());
  189. intent2.putExtra(StorageServer.FOR_PRINT_LOGGER_CALL_FROM, 1);
  190. ScanActivity.this.startActivityForResult(intent2, 1);
  191. }
  192. }
  193. };
  194. private View.OnClickListener mButtonScanListener = new View.OnClickListener() {
  195. public void onClick(View view) {
  196. ScanActivity.this.check3GAndStartPrint();
  197. }
  198. };
  199. private I1ScanParams mI1ScanParams;
  200. private ViewTreeObserver.OnPreDrawListener mOnPreDrawListener = new ViewTreeObserver.OnPreDrawListener() {
  201. public boolean onPreDraw() {
  202. int i;
  203. RectF bmRectF;
  204. if (!ScanActivity.mActivityPaused && ScanActivity.mScanAreaBackgroundViewSizeChanged) {
  205. boolean unused = ScanActivity.mScanAreaBackgroundViewSizeChanged = false;
  206. boolean unused2 = ScanActivity.this.isNeedGetScanSize = true;
  207. boolean unused3 = ScanActivity.this.isNeedScale = true;
  208. ScanActivity.this.llScanArea.invalidate();
  209. ScanActivity.this.llScanAreaBackground.invalidate();
  210. ScanActivity.this.scanArea.invalidate();
  211. ScanActivity.this.scanAreaBackground.invalidate();
  212. ScanActivity.this.flScanResult.invalidate();
  213. }
  214. if (ScanActivity.this.isNeedGetScanSize) {
  215. if (ScanActivity.this.isDoctable) {
  216. ScanActivity scanActivity = ScanActivity.this;
  217. scanActivity.setMaxwidth(Utils.getPrefInt(scanActivity.getContext(), Constants.SCAN_REFS_SUPPORTED_OPTIONS, Constants.SCAN_REFS_MAX_WIDTH));
  218. ScanActivity scanActivity2 = ScanActivity.this;
  219. scanActivity2.setMaxheight(Utils.getPrefInt(scanActivity2.getContext(), Constants.SCAN_REFS_SUPPORTED_OPTIONS, Constants.SCAN_REFS_MAX_HEIGHT));
  220. }
  221. if (ScanActivity.this.getMaxwidth() == 0) {
  222. ScanActivity.this.setMaxwidth(Constants.SCAN_MAX_WIDTH);
  223. }
  224. if (ScanActivity.this.getMaxheight() == 0) {
  225. ScanActivity.this.setMaxheight(Constants.SCAN_MAX_HEIGHT);
  226. }
  227. int prefInt = !"".equals(Utils.getPrefString(ScanActivity.this.getContext(), Constants.SCAN_REFS_USED_SCANNER_PATH, Constants.SCAN_REFS_SCANNER_MODEL)) ? Utils.getPrefInt(ScanActivity.this.getContext(), Constants.SCAN_REFS_USED_SCANNER_PATH, Constants.SCAN_REFS_SETTINGS_RESOLUTION) : 150;
  228. if (prefInt == ScanActivity.this.resolution && !ScanActivity.this.isDoctable) {
  229. boolean unused4 = ScanActivity.this.isNeedUpdateScanningArea = true;
  230. }
  231. int unused5 = ScanActivity.this.resolution = prefInt;
  232. ScanActivity scanActivity3 = ScanActivity.this;
  233. int unused6 = scanActivity3.areaHeightOnScreen = scanActivity3.llScanAreaBackground.getHeight();
  234. ScanActivity scanActivity4 = ScanActivity.this;
  235. int unused7 = scanActivity4.areaWidthOnScreen = scanActivity4.llScanAreaBackground.getWidth();
  236. }
  237. ScanActivity.this.initFrameWithScreensize();
  238. Point point = ScanActivity.this.getmBaseTop();
  239. Point point2 = ScanActivity.this.getmBaseBot();
  240. int i2 = point2.x - point.x;
  241. int i3 = point2.y - point.y;
  242. ScanActivity scanActivity5 = ScanActivity.this;
  243. scanActivity5.setmBaseTop(new Point((((scanActivity5.areaWidthOnScreen) - ScanActivity.this.getMaxScanWidthOnScreen())) / 2, ScanActivity.mARGIN_TOP_BOT));
  244. ScanActivity scanActivity6 = ScanActivity.this;
  245. scanActivity6.setmBaseBot(new Point(scanActivity6.areaWidthOnScreen - ScanActivity.this.getmBaseTop().x, ScanActivity.this.areaHeightOnScreen - ScanActivity.mARGIN_TOP_BOT));
  246. if (!ScanActivity.this.isDoctable && !ScanActivity.this.isNeedGetScanSize) {
  247. ScanActivity scanActivity7 = ScanActivity.this;
  248. scanActivity7.setPiBaseTop(new ScanBaseView.PointInfo(scanActivity7.getmBaseTop().x, ScanActivity.this.getmBaseTop().y));
  249. ScanActivity scanActivity8 = ScanActivity.this;
  250. scanActivity8.setPiBaseBot(new ScanBaseView.PointInfo(scanActivity8.getmBaseBot().x, ScanActivity.this.getmBaseBot().y));
  251. ScanActivity scanActivity9 = ScanActivity.this;
  252. scanActivity9.setmTop(scanActivity9.getmBaseTop());
  253. ScanActivity scanActivity10 = ScanActivity.this;
  254. scanActivity10.setmBot(scanActivity10.getmBaseBot());
  255. }
  256. if (ScanActivity.this.isNeedGetScanSize) {
  257. if (ScanActivity.this.isNeedUpdateScanningArea) {
  258. ScanActivity scanActivity11 = ScanActivity.this;
  259. scanActivity11.setPiBaseTop(new ScanBaseView.PointInfo(scanActivity11.getmBaseTop().x, ScanActivity.this.getmBaseTop().y));
  260. ScanActivity scanActivity12 = ScanActivity.this;
  261. scanActivity12.setPiBaseBot(new ScanBaseView.PointInfo(scanActivity12.getmBaseBot().x, ScanActivity.this.getmBaseBot().y));
  262. ScanActivity scanActivity13 = ScanActivity.this;
  263. scanActivity13.setmTop(scanActivity13.getmBaseTop());
  264. ScanActivity scanActivity14 = ScanActivity.this;
  265. scanActivity14.setmBot(scanActivity14.getmBaseBot());
  266. ScanActivity.this.setScreenStatus(1);
  267. }
  268. if (ScanActivity.this.isNeedScale) {
  269. boolean unused8 = ScanActivity.this.isNeedScale = false;
  270. Point point3 = new Point();
  271. float f = (float) i2;
  272. point2.x = (((float) ScanActivity.this.getmBaseTop().x) + (((float) ((ScanActivity.this.getmBaseBot().x - ScanActivity.this.getmBaseTop().x) * (ScanActivity.this.getmTop().x - point.x))) / f));
  273. float f2 = (float) i3;
  274. point2.y = (((float) ScanActivity.this.getmBaseTop().y) + (((float) ((ScanActivity.this.getmBaseBot().y - ScanActivity.this.getmBaseTop().y) * (ScanActivity.this.getmTop().y - point.y))) / f2));
  275. point3.x = (((float) ScanActivity.this.getmBaseTop().x) + (((float) ((ScanActivity.this.getmBaseBot().x - ScanActivity.this.getmBaseTop().x) * (ScanActivity.this.getmBot().x - point.x))) / f));
  276. point3.y = (((float) ScanActivity.this.getmBaseTop().y) + (((float) ((ScanActivity.this.getmBaseBot().y - ScanActivity.this.getmBaseTop().y) * (ScanActivity.this.getmBot().y - point.y))) / f2));
  277. ScanActivity scanActivity15 = ScanActivity.this;
  278. scanActivity15.setPiBaseTop(new ScanBaseView.PointInfo(point2.x, point2.y));
  279. ScanActivity scanActivity16 = ScanActivity.this;
  280. scanActivity16.setPiBaseBot(new ScanBaseView.PointInfo(point3.x, point3.y));
  281. ScanActivity.this.setmTop(point2);
  282. ScanActivity.this.setmBot(point3);
  283. if (!ScanActivity.this.isNeedRedrawBitmap && (bmRectF = ScanActivity.this.getBmRectF()) != null) {
  284. bmRectF.left = ((float) ScanActivity.this.getmBaseTop().x) + ((((float) (ScanActivity.this.getmBaseBot().x - ScanActivity.this.getmBaseTop().x)) * (bmRectF.left - ((float) point.x))) / f);
  285. bmRectF.top = ((float) ScanActivity.this.getmBaseTop().y) + ((((float) (ScanActivity.this.getmBaseBot().y - ScanActivity.this.getmBaseTop().y)) * (bmRectF.top - ((float) point.y))) / f2);
  286. bmRectF.right = ((float) ScanActivity.this.getmBaseTop().x) + ((((float) (ScanActivity.this.getmBaseBot().x - ScanActivity.this.getmBaseTop().x)) * (bmRectF.right - ((float) point.x))) / f);
  287. bmRectF.bottom = ((float) ScanActivity.this.getmBaseTop().y) + ((((float) (ScanActivity.this.getmBaseBot().y - ScanActivity.this.getmBaseTop().y)) * (bmRectF.bottom - ((float) point.y))) / f2);
  288. ScanActivity.this.setBmRectF(bmRectF);
  289. }
  290. }
  291. ScanActivity scanActivity17 = ScanActivity.this;
  292. scanActivity17.setmCenter(scanActivity17.calculateTheCenterPoint(scanActivity17.getmTop(), ScanActivity.this.getmBot()));
  293. ScanActivity scanActivity18 = ScanActivity.this;
  294. scanActivity18.setInSampleSize(Math.round((float) (100 / ((scanActivity18.areaHeightOnScreen * 100) / 650))));
  295. ScanActivity.this.get_bmOption().inSampleSize = ScanActivity.this.getInSampleSize();
  296. ScanActivity.this.setupScanArea();
  297. boolean unused9 = ScanActivity.this.isNeedGetScanSize = false;
  298. ScanActivity.this.setSetSize(true);
  299. SharedPreferences sharedPreferences = ScanActivity.this.context.getSharedPreferences(Constants.SCAN_REFS_USED_SCANNER_PATH, 0);
  300. if (ScanActivity.this.isDoctable) {
  301. i = sharedPreferences.getInt(Constants.SCAN_REFS_SCANNER_CHOSEN_SIZE_DOC, Constants.PaperName.EPS_MSID_UNKNOWN.getCode());
  302. } else {
  303. i = sharedPreferences.getInt(epson.common.Constants.SCAN_REFS_SCANNER_CHOSEN_SIZE_ADF, Constants.PaperName.EPS_MSID_UNKNOWN.getCode());
  304. }
  305. if (ScanActivity.this.isNeedUpdateScanningArea) {
  306. if (i == Constants.PaperName.EPS_MSID_UNKNOWN.getCode()) {
  307. ScanActivity.this.chooseScanSize(ScanSizeHelper.getDefaultScanSize());
  308. } else {
  309. ScanActivity.this.chooseScanSize(i);
  310. }
  311. }
  312. ScanActivity.this.scanArea.redrawCBHandler = ScanActivity.this.scanningProgressHandler;
  313. boolean unused10 = ScanActivity.this.isNeedUpdateScanningArea = false;
  314. }
  315. return true;
  316. }
  317. };
  318. private boolean mScanAreaBackgroundViewSizeChanged;
  319. private CommonLog mScanLog;
  320. private String oldScannerId;
  321. private int previousTotalScanned = 0;
  322. private int resolution = 0;
  323. private ScanBaseView.ScanAreaSet scanArea;
  324. private ScanBaseView.ScanAreaBackground scanAreaBackground;
  325. private int scanOrigin = 2;
  326. private Handler scanningProgressHandler = new Handler(new Handler.Callback() {
  327. /* JADX WARNING: Can't fix incorrect switch cases order */
  328. /* Code decompiled incorrectly, please refer to instructions dump. */
  329. public boolean handleMessage(android.os.Message r9) {
  330. /*
  331. r8 = this;
  332. epson.scan.activity.ScanActivity r0 = epson.scan.activity.ScanActivity.this
  333. boolean r0 = r0.isFinishing()
  334. r1 = -3
  335. r2 = -100
  336. r3 = 20
  337. r4 = 2
  338. r5 = 1
  339. if (r0 == 0) goto L_0x0021
  340. int r0 = r9.what
  341. if (r0 == r2) goto L_0x0020
  342. if (r0 == r1) goto L_0x0020
  343. if (r0 == r4) goto L_0x0020
  344. if (r0 == r3) goto L_0x0020
  345. switch(r0) {
  346. case -1: goto L_0x0020;
  347. case 0: goto L_0x0020;
  348. default: goto L_0x001c;
  349. }
  350. L_0x001c:
  351. switch(r0) {
  352. case 10: goto L_0x0020;
  353. case 11: goto L_0x0020;
  354. default: goto L_0x001f;
  355. }
  356. L_0x001f:
  357. goto L_0x0021
  358. L_0x0020:
  359. return r5
  360. L_0x0021:
  361. int r9 = r9.what
  362. r0 = 0
  363. if (r9 == r2) goto L_0x044e
  364. r2 = -1
  365. if (r9 == r4) goto L_0x03b2
  366. if (r9 == r3) goto L_0x0382
  367. r6 = 1000(0x3e8, double:4.94E-321)
  368. switch(r9) {
  369. case -3: goto L_0x037b;
  370. case -2: goto L_0x02a0;
  371. case -1: goto L_0x01a1;
  372. case 0: goto L_0x00ea;
  373. default: goto L_0x0030;
  374. }
  375. L_0x0030:
  376. switch(r9) {
  377. case 10: goto L_0x0093;
  378. case 11: goto L_0x0035;
  379. default: goto L_0x0033;
  380. }
  381. L_0x0033:
  382. goto L_0x047f
  383. L_0x0035:
  384. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  385. epson.scan.lib.escanLib r1 = r9.escan
  386. java.util.List r1 = r1.getListScannedFile()
  387. int r1 = r1.size()
  388. r9.totalScanned = r1
  389. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  390. int r9 = r9.totalScanned
  391. if (r9 >= r5) goto L_0x004c
  392. return r0
  393. L_0x004c:
  394. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  395. java.lang.String r9 = r9.getLocalClassName()
  396. java.lang.String r1 = "end page, waiting..."
  397. epson.print.Util.EPLog.i(r9, r1)
  398. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  399. int r9 = r9.convertCount
  400. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  401. epson.scan.lib.escanLib r1 = r1.escan
  402. java.util.List r1 = r1.getListScannedFile()
  403. int r1 = r1.size()
  404. if (r9 >= r1) goto L_0x0086
  405. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  406. epson.scan.lib.escanLib r1 = r9.escan
  407. java.util.List r1 = r1.getListScannedFile()
  408. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  409. int r2 = r2.convertCount
  410. java.lang.Object r1 = r1.get(r2)
  411. java.lang.String r1 = (java.lang.String) r1
  412. r9.convert(r1)
  413. L_0x0086:
  414. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  415. java.lang.String r9 = r9.getLocalClassName()
  416. java.lang.String r1 = "done add to list"
  417. epson.print.Util.EPLog.i(r9, r1)
  418. goto L_0x047f
  419. L_0x0093:
  420. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  421. epson.scan.lib.escanLib r1 = r9.escan
  422. java.util.List r1 = r1.getListScannedFile()
  423. int r1 = r1.size()
  424. r9.totalScanned = r1
  425. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  426. int r9 = r9.totalScanned
  427. if (r9 >= r5) goto L_0x00aa
  428. return r0
  429. L_0x00aa:
  430. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  431. epson.scan.lib.escanLib r9 = r9.escan
  432. boolean r9 = r9.isJobDone()
  433. if (r9 == 0) goto L_0x00b7
  434. return r5
  435. L_0x00b7:
  436. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this // Catch:{ RejectedExecutionException -> 0x00e4 }
  437. boolean r9 = r9.isDecoding // Catch:{ RejectedExecutionException -> 0x00e4 }
  438. if (r9 != 0) goto L_0x047f
  439. epson.scan.activity.ScanActivity$BitmapTask r9 = new epson.scan.activity.ScanActivity$BitmapTask // Catch:{ RejectedExecutionException -> 0x00e4 }
  440. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this // Catch:{ RejectedExecutionException -> 0x00e4 }
  441. r9.<init>() // Catch:{ RejectedExecutionException -> 0x00e4 }
  442. java.lang.String[] r1 = new java.lang.String[r5] // Catch:{ RejectedExecutionException -> 0x00e4 }
  443. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this // Catch:{ RejectedExecutionException -> 0x00e4 }
  444. epson.scan.lib.escanLib r2 = r2.escan // Catch:{ RejectedExecutionException -> 0x00e4 }
  445. java.util.List r2 = r2.getListScannedFile() // Catch:{ RejectedExecutionException -> 0x00e4 }
  446. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this // Catch:{ RejectedExecutionException -> 0x00e4 }
  447. int r3 = r3.totalScanned // Catch:{ RejectedExecutionException -> 0x00e4 }
  448. int r3 = r3 - r5
  449. java.lang.Object r2 = r2.get(r3) // Catch:{ RejectedExecutionException -> 0x00e4 }
  450. java.lang.String r2 = (java.lang.String) r2 // Catch:{ RejectedExecutionException -> 0x00e4 }
  451. r1[r0] = r2 // Catch:{ RejectedExecutionException -> 0x00e4 }
  452. r9.execute(r1) // Catch:{ RejectedExecutionException -> 0x00e4 }
  453. goto L_0x047f
  454. L_0x00e4:
  455. r9 = move-exception
  456. r9.printStackTrace()
  457. goto L_0x047f
  458. L_0x00ea:
  459. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  460. java.lang.String r9 = r9.getCallingPackage()
  461. java.lang.String r1 = "[EPSON SCAN] START SCAN"
  462. epson.print.Util.EPLog.i(r9, r1)
  463. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  464. boolean unused = r9.isStopScan = r0
  465. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  466. boolean unused = r9.isConfirmCancel = r0
  467. boolean r9 = epson.scan.activity.ScanContinueParam.isContinueScanning()
  468. if (r9 != 0) goto L_0x010a
  469. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  470. int unused = r9.convertCount = r0
  471. L_0x010a:
  472. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  473. boolean unused = r9.isDecoding = r0
  474. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  475. android.view.WindowManager r9 = r9.getWindowManager()
  476. android.view.Display r9 = r9.getDefaultDisplay()
  477. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  478. android.content.res.Resources r1 = r1.getResources()
  479. android.content.res.Configuration r1 = r1.getConfiguration()
  480. java.lang.String r2 = "display;"
  481. int r3 = r1.orientation
  482. java.lang.String r3 = java.lang.String.valueOf(r3)
  483. epson.print.Util.EPLog.i(r2, r3)
  484. java.lang.String r2 = "display;"
  485. int r3 = r9.getRotation()
  486. java.lang.String r3 = java.lang.String.valueOf(r3)
  487. epson.print.Util.EPLog.i(r2, r3)
  488. int r9 = r9.getRotation()
  489. r2 = 9
  490. r3 = 8
  491. switch(r9) {
  492. case 0: goto L_0x018b;
  493. case 1: goto L_0x017b;
  494. case 2: goto L_0x0161;
  495. case 3: goto L_0x0147;
  496. default: goto L_0x0146;
  497. }
  498. L_0x0146:
  499. goto L_0x019a
  500. L_0x0147:
  501. int r9 = android.os.Build.VERSION.SDK_INT
  502. if (r9 <= r3) goto L_0x015b
  503. int r9 = r1.orientation
  504. if (r9 != r5) goto L_0x0155
  505. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  506. r9.setRequestedOrientation(r5)
  507. goto L_0x019a
  508. L_0x0155:
  509. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  510. r9.setRequestedOrientation(r3)
  511. goto L_0x019a
  512. L_0x015b:
  513. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  514. r9.setRequestedOrientation(r5)
  515. goto L_0x019a
  516. L_0x0161:
  517. int r9 = android.os.Build.VERSION.SDK_INT
  518. if (r9 <= r3) goto L_0x0175
  519. int r9 = r1.orientation
  520. if (r9 != r4) goto L_0x016f
  521. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  522. r9.setRequestedOrientation(r3)
  523. goto L_0x019a
  524. L_0x016f:
  525. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  526. r9.setRequestedOrientation(r2)
  527. goto L_0x019a
  528. L_0x0175:
  529. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  530. r9.setRequestedOrientation(r5)
  531. goto L_0x019a
  532. L_0x017b:
  533. int r9 = r1.orientation
  534. if (r9 != r5) goto L_0x0185
  535. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  536. r9.setRequestedOrientation(r2)
  537. goto L_0x019a
  538. L_0x0185:
  539. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  540. r9.setRequestedOrientation(r0)
  541. goto L_0x019a
  542. L_0x018b:
  543. int r9 = r1.orientation
  544. if (r9 != r4) goto L_0x0195
  545. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  546. r9.setRequestedOrientation(r0)
  547. goto L_0x019a
  548. L_0x0195:
  549. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  550. r9.setRequestedOrientation(r5)
  551. L_0x019a:
  552. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  553. r9.showScanningPop()
  554. goto L_0x047f
  555. L_0x01a1:
  556. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  557. android.app.AlertDialog r9 = r9.confirmAlertDialog
  558. if (r9 == 0) goto L_0x01be
  559. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  560. android.app.AlertDialog r9 = r9.confirmAlertDialog
  561. boolean r9 = r9.isShowing()
  562. if (r9 == 0) goto L_0x01be
  563. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  564. android.app.AlertDialog r9 = r9.confirmAlertDialog
  565. r9.dismiss()
  566. L_0x01be:
  567. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  568. boolean unused = r9.isStopScan = r5
  569. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  570. android.os.Handler r9 = r9.scanningProgressHandler
  571. r9.sendEmptyMessage(r1)
  572. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  573. boolean r9 = r9.isCompletedScanProcess()
  574. if (r9 != 0) goto L_0x01df
  575. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  576. android.os.Handler r9 = r9.scanningProgressHandler
  577. r9.sendEmptyMessageDelayed(r2, r6)
  578. goto L_0x047f
  579. L_0x01df:
  580. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  581. r9.updateScreenPreviewToLastData()
  582. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  583. boolean r9 = r9.isConfirmCancel
  584. if (r9 == 0) goto L_0x01ee
  585. goto L_0x047f
  586. L_0x01ee:
  587. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  588. android.app.AlertDialog r9 = r9.errorDialog
  589. if (r9 == 0) goto L_0x037b
  590. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  591. android.app.AlertDialog r9 = r9.errorDialog
  592. boolean r9 = r9.isShowing()
  593. if (r9 != 0) goto L_0x037b
  594. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  595. epson.scan.lib.escanLib r9 = r9.escan
  596. int[] r9 = r9.getStatus()
  597. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  598. int r1 = r1.error
  599. r2 = -1100(0xfffffffffffffbb4, float:NaN)
  600. if (r1 != r2) goto L_0x0227
  601. r1 = r9[r5]
  602. r2 = 5
  603. if (r1 != r2) goto L_0x025d
  604. r1 = r9[r4]
  605. if (r1 == 0) goto L_0x025d
  606. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  607. r9 = r9[r4]
  608. int unused = r1.error = r9
  609. goto L_0x025d
  610. L_0x0227:
  611. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  612. int r1 = r1.error
  613. r3 = 2131625174(0x7f0e04d6, float:1.8877549E38)
  614. if (r1 == r3) goto L_0x025d
  615. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  616. int r1 = r1.error
  617. r3 = -1300(0xfffffffffffffaec, float:NaN)
  618. if (r1 == r3) goto L_0x025d
  619. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  620. int r1 = r1.error
  621. if (r1 == r2) goto L_0x025d
  622. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  623. int r1 = r1.error
  624. if (r1 == r5) goto L_0x025d
  625. r1 = r9[r4]
  626. r2 = 100
  627. if (r1 == r2) goto L_0x025d
  628. r1 = r9[r4]
  629. if (r1 == 0) goto L_0x025d
  630. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  631. r9 = r9[r4]
  632. int unused = r1.error = r9
  633. L_0x025d:
  634. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  635. java.lang.String r9 = r9.getCallingPackage()
  636. java.lang.StringBuilder r1 = new java.lang.StringBuilder
  637. r1.<init>()
  638. java.lang.String r2 = "error = "
  639. r1.append(r2)
  640. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  641. int r2 = r2.error
  642. r1.append(r2)
  643. java.lang.String r1 = r1.toString()
  644. epson.print.Util.EPLog.i(r9, r1)
  645. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  646. int r1 = r9.error
  647. r9.setupErrorMessage(r1)
  648. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  649. android.app.AlertDialog r9 = r9.errorDialog
  650. r9.show()
  651. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  652. android.content.Context r9 = r9.context
  653. java.lang.String r1 = "scanner"
  654. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  655. java.lang.String r2 = r2.usingScannerIp
  656. com.epson.mobilephone.common.wifidirect.WiFiDirectManager.disconnect(r9, r1, r2)
  657. goto L_0x037b
  658. L_0x02a0:
  659. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  660. boolean unused = r9.isStopScan = r5
  661. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  662. java.lang.Thread r9 = r9.doscan
  663. if (r9 == 0) goto L_0x02c2
  664. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  665. java.lang.Thread r9 = r9.doscan
  666. boolean r9 = r9.isAlive()
  667. if (r9 == 0) goto L_0x02c2
  668. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  669. java.lang.Thread r9 = r9.doscan
  670. r9.interrupt()
  671. L_0x02c2:
  672. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  673. epson.scan.lib.escanLib r9 = r9.escan
  674. boolean r9 = r9.isScanning()
  675. if (r9 != 0) goto L_0x02e7
  676. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  677. java.lang.String r9 = r9.getLocalClassName()
  678. java.lang.String r1 = "scan, cancel find"
  679. epson.print.Util.EPLog.i(r9, r1)
  680. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  681. epson.scan.lib.escanLib r9 = r9.escan
  682. r9.escanWrapperCancelFindScanner()
  683. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  684. r9.hideScanningPop()
  685. L_0x02e7:
  686. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  687. epson.scan.lib.escanLib r9 = r9.escan
  688. boolean r9 = r9.isScanning()
  689. r1 = -2
  690. if (r9 == 0) goto L_0x034f
  691. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  692. epson.scan.lib.escanLib r9 = r9.escan
  693. boolean r9 = r9.isJobDone()
  694. if (r9 != 0) goto L_0x034f
  695. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  696. epson.scan.lib.escanLib r9 = r9.escan
  697. boolean r9 = r9.isCanselOK()
  698. if (r9 != r5) goto L_0x032c
  699. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  700. java.lang.String r9 = r9.getLocalClassName()
  701. java.lang.String r2 = "isCanselOK OK"
  702. epson.print.Util.EPLog.i(r9, r2)
  703. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  704. java.lang.String r9 = r9.getLocalClassName()
  705. java.lang.String r2 = "scan, cancel scan job"
  706. epson.print.Util.EPLog.i(r9, r2)
  707. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  708. epson.scan.lib.escanLib r9 = r9.escan
  709. r9.cancelScanJob()
  710. goto L_0x034f
  711. L_0x032c:
  712. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  713. java.lang.String r9 = r9.getLocalClassName()
  714. java.lang.String r2 = "isCanselOK NO"
  715. epson.print.Util.EPLog.i(r9, r2)
  716. java.lang.Thread.sleep(r6) // Catch:{ InterruptedException -> 0x033b }
  717. goto L_0x033f
  718. L_0x033b:
  719. r9 = move-exception
  720. r9.printStackTrace()
  721. L_0x033f:
  722. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  723. android.os.Handler r9 = r9.scanningProgressHandler
  724. r9.sendEmptyMessage(r1)
  725. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  726. boolean unused = r9.isConfirmCancel = r0
  727. goto L_0x047f
  728. L_0x034f:
  729. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  730. boolean unused = r9.isConfirmCancel = r0
  731. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  732. boolean r9 = r9.isCompletedScanProcess()
  733. if (r9 != 0) goto L_0x0367
  734. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  735. android.os.Handler r9 = r9.scanningProgressHandler
  736. r9.sendEmptyMessageDelayed(r1, r6)
  737. goto L_0x047f
  738. L_0x0367:
  739. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  740. r9.updateScreenPreviewToLastData()
  741. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  742. android.content.Context r9 = r9.context
  743. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  744. java.lang.String r1 = r1.usingScannerIp
  745. epson.scan.lib.ScannerConnection.disconnectIfSimpleAp(r9, r1)
  746. goto L_0x047f
  747. L_0x037b:
  748. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  749. r9.hideScanningPop()
  750. goto L_0x047f
  751. L_0x0382:
  752. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  753. java.lang.Thread r9 = r9.doscan
  754. if (r9 == 0) goto L_0x0396
  755. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  756. java.lang.Thread r9 = r9.doscan
  757. boolean r9 = r9.isAlive()
  758. if (r9 != 0) goto L_0x039e
  759. L_0x0396:
  760. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  761. boolean r9 = r9.isValidArea()
  762. if (r9 != 0) goto L_0x03ab
  763. L_0x039e:
  764. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  765. android.os.Handler r9 = r9.scanningProgressHandler
  766. r1 = 300(0x12c, double:1.48E-321)
  767. r9.sendEmptyMessageDelayed(r3, r1)
  768. goto L_0x047f
  769. L_0x03ab:
  770. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  771. r9.scanStart()
  772. goto L_0x047f
  773. L_0x03b2:
  774. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  775. java.lang.String r9 = r9.getLocalClassName()
  776. java.lang.String r1 = "MESSAGE SCAN FINISHED!!!"
  777. epson.print.Util.EPLog.i(r9, r1)
  778. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  779. epson.scan.lib.escanLib r1 = r9.escan
  780. java.util.List r1 = r1.getListScannedFile()
  781. int r1 = r1.size()
  782. r9.totalScanned = r1
  783. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  784. int r9 = r9.totalScanned
  785. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  786. epson.scan.activity.ScanCount.saveScanCount(r1, r9)
  787. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  788. epson.scan.lib.escanLib r1 = r1.escan
  789. r1.setJobDone(r5)
  790. epson.scan.activity.ScanActivity r1 = epson.scan.activity.ScanActivity.this
  791. android.content.Context r1 = r1.getApplicationContext()
  792. int r1 = com.epson.iprint.prtlogger.Analytics.getConnectionType(r1)
  793. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  794. android.app.AlertDialog r3 = r3.confirmAlertDialog
  795. if (r3 == 0) goto L_0x0406
  796. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  797. android.app.AlertDialog r3 = r3.confirmAlertDialog
  798. boolean r3 = r3.isShowing()
  799. if (r3 == 0) goto L_0x0406
  800. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  801. android.app.AlertDialog r3 = r3.confirmAlertDialog
  802. r3.dismiss()
  803. L_0x0406:
  804. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  805. r3.updateDoneScanJob()
  806. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  807. java.util.ArrayList r3 = r3.getListSavedJPGFilePath()
  808. int r3 = r3.size()
  809. epson.scan.activity.ScanContinueParam.setScannedFileCount(r3)
  810. boolean r3 = epson.scan.activity.ScanContinueParam.isReachMaximumScan()
  811. if (r3 == 0) goto L_0x0431
  812. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  813. android.content.Context r3 = r3.context
  814. java.lang.String r4 = "epson.scanner.SelectedScanner"
  815. java.lang.String r6 = "SCAN_REFS_SETTINGS_SOURCE"
  816. int r3 = epson.common.Utils.getPrefInt(r3, r4, r6)
  817. if (r3 != r5) goto L_0x0431
  818. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  819. epson.scan.activity.ScanContinueParam.showScanErrorLimit(r3)
  820. L_0x0431:
  821. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  822. r3.setRequestedOrientation(r2)
  823. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  824. android.content.Context r2 = r2.context
  825. epson.scan.activity.ScanActivity r3 = epson.scan.activity.ScanActivity.this
  826. java.lang.String r3 = r3.usingScannerIp
  827. epson.scan.lib.ScannerConnection.disconnectIfSimpleAp(r2, r3)
  828. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  829. r2.loggerScanCountUp()
  830. epson.scan.activity.ScanActivity r2 = epson.scan.activity.ScanActivity.this
  831. r2.checkLoggerServer(r9, r1)
  832. goto L_0x047f
  833. L_0x044e:
  834. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  835. epson.scan.activity.ScanBaseView$ScanAreaSet r9 = r9.scanArea
  836. r1 = 0
  837. r9.redrawCBHandler = r1
  838. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  839. boolean r9 = r9.isNeedRedrawBitmap
  840. if (r9 != r5) goto L_0x0476
  841. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  842. boolean unused = r9.isNeedRedrawBitmap = r0
  843. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  844. android.graphics.RectF r1 = r9.getRectScanArea()
  845. android.graphics.RectF unused = r9.area = r1
  846. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  847. android.graphics.RectF r1 = r9.area
  848. r9.setBmRectF(r1)
  849. L_0x0476:
  850. epson.scan.activity.ScanActivity r9 = epson.scan.activity.ScanActivity.this
  851. epson.scan.activity.ScanBaseView$ScanAreaSet r9 = r9.scanArea
  852. r9.postInvalidate()
  853. L_0x047f:
  854. return r0
  855. */
  856. throw new UnsupportedOperationException("Method not decompiled: epson.scan.activity.ScanActivity.C240214.handleMessage(android.os.Message):boolean");
  857. }
  858. });
  859. private TextView tvScanResult;
  860. private String usingScannerId;
  861. private String usingScannerIp;
  862. private int usingScannerLocation;
  863. private String usingScannerModel;
  864. protected void onCreate(Bundle bundle) {
  865. super.onCreate(bundle);
  866. setContentView(R.layout.scan);
  867. setActionBar(R.string.str_scan_btn, true);
  868. setContext(this);
  869. mActivityPaused = true;
  870. mScanAreaBackgroundViewSizeChanged = false;
  871. ExternalFileUtils.getInstance(this).initTempViewDir();
  872. ExternalFileUtils.getInstance(this).initPrintDir();
  873. Intent intent = getIntent();
  874. if (intent.getAction() == null || !intent.getAction().equals(EpsoniPrintSharedActivity.ACTION_SCAN)) {
  875. extParam = new SharedParamScan();
  876. } else {
  877. isCustomAction = true;
  878. extParam = (SharedParamScan) intent.getSerializableExtra("extParam");
  879. }
  880. try {
  881. mScanLog = (CommonLog) intent.getSerializableExtra(PARAM_KEY_SCAN_LOG);
  882. } catch (ClassCastException unused) {
  883. }
  884. if (mScanLog == null) {
  885. mScanLog = new CommonLog();
  886. }
  887. btnScan = (Button) findViewById(R.id.btnScan);
  888. btnScan.setOnClickListener(mButtonScanListener);
  889. btnSave = (Button) findViewById(R.id.btnSave);
  890. btnSave.setOnClickListener(mButtonSaveListener);
  891. btnMail = (Button) findViewById(R.id.btnMail);
  892. btnMail.setOnClickListener(mButtonMailListener);
  893. btnPrint = (Button) findViewById(R.id.btnPrint);
  894. btnPrint.setOnClickListener(mButtonPrintListener);
  895. getSelectedScannerInfo();
  896. disableFunctionButtons();
  897. if (this.isCustomAction) {
  898. btnMail.setVisibility(View.GONE);
  899. btnPrint.setVisibility(View.GONE);
  900. }
  901. llScanAreaBackground = (LinearLayout) findViewById(R.id.llScanAreaBackground);
  902. scanAreaBackground = new ScanBaseView.ScanAreaBackground(getContext());
  903. llScanAreaBackground.addView(this.scanAreaBackground);
  904. tvScanResult = (TextView) findViewById(R.id.tvScanResult);
  905. scanArea = new ScanBaseView.ScanAreaSet(getContext());
  906. flScanResult = (FrameLayout) findViewById(R.id.flScanResult);
  907. gestureDetector = new GestureDetector(this, new ScanAreaGestureDetector());
  908. gestureListener = new View.OnTouchListener() {
  909. public boolean onTouch(View view, MotionEvent motionEvent) {
  910. ScanActivity.this.gestureDetector.onTouchEvent(motionEvent);
  911. ScanActivity.this.scanArea.onTouchEvent(motionEvent);
  912. return true;
  913. }
  914. };
  915. flScanResult.setOnTouchListener(this.gestureListener);
  916. btnNext = (Button) findViewById(R.id.btnNext);
  917. btnNext.setOnClickListener(mButtonNextListener);
  918. btnNext.setOnTouchListener(new View.OnTouchListener() {
  919. public boolean onTouch(View view, MotionEvent motionEvent) {
  920. switch (motionEvent.getAction()) {
  921. case 0:
  922. ScanActivity.this.btnNext.setBackgroundResource(R.drawable.bt_right_hover);
  923. return false;
  924. case 1:
  925. ScanActivity.this.btnNext.setBackgroundResource(R.drawable.bt_right_1);
  926. return false;
  927. default:
  928. return false;
  929. }
  930. }
  931. });
  932. btnPrev = (Button) findViewById(R.id.btnPrev);
  933. btnPrev.setOnClickListener(mButtonPrevListener);
  934. btnPrev.setOnTouchListener(new View.OnTouchListener() {
  935. public boolean onTouch(View view, MotionEvent motionEvent) {
  936. switch (motionEvent.getAction()) {
  937. case 0:
  938. ScanActivity.this.btnPrev.setBackgroundResource(R.drawable.bt_left_hover);
  939. return false;
  940. case 1:
  941. ScanActivity.this.btnPrev.setBackgroundResource(R.drawable.bt_left);
  942. return false;
  943. default:
  944. return false;
  945. }
  946. }
  947. });
  948. btnNext.setVisibility(View.GONE);
  949. btnPrev.setVisibility(View.GONE);
  950. errorDialog = new AlertDialog.Builder(this).create();
  951. escan = getEscan();
  952. escan.escanWrapperInitDriver(this);
  953. escan.setScanHandler(this.scanningProgressHandler);
  954. llScanArea = (LinearLayout) findViewById(R.id.llScanArea);
  955. llScanArea.addView(this.scanArea);
  956. llScanningProgress = (LinearLayout) findViewById(R.id.llScanningProgress);
  957. btnCancelScan = (Button) findViewById(R.id.btnCancelScan);
  958. btnCancelScan.setOnClickListener(mButtonCancelScanListener);
  959. llScanArea.getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListener);
  960. if (ActivityRequestPermissions.isRuntimePermissionSupported()) {
  961. String[] strArr = {"android.permission.WRITE_EXTERNAL_STORAGE"};
  962. 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))});
  963. if (!ActivityRequestPermissions.checkPermission(this, strArr)) {
  964. ActivityRequestPermissions.requestPermission((Activity) this, permission, 4);
  965. return;
  966. }
  967. }
  968. if (bundle == null && !startI2ActivityIfEscIVersionMismatch()) {
  969. }
  970. }
  971. private boolean startI2ActivityIfEscIVersionMismatch() {
  972. if (ScanInfoStorage.loadEscIVersion(this) != 2) {
  973. return false;
  974. }
  975. SharedParamScan sharedParamScan = null;
  976. setBm((Bitmap) null);
  977. boolean z = bAutoStartScan;
  978. if (this.isCustomAction) {
  979. sharedParamScan = extParam;
  980. }
  981. startActivityForResult(ScanActivityCommonParams.getEscIVersionChangeIntent(this, 2, z, sharedParamScan, mScanLog), 20);
  982. return true;
  983. }
  984. public void onScanAreaSizeChange() {
  985. mScanAreaBackgroundViewSizeChanged = true;
  986. }
  987. public boolean onKeyDown(int i, KeyEvent keyEvent) {
  988. LinearLayout linearLayout = llScanningProgress;
  989. if (linearLayout == null || linearLayout.getVisibility() != 0) {
  990. return super.onKeyDown(i, keyEvent);
  991. }
  992. return true;
  993. }
  994. protected void onRestart() {
  995. isNeedDeleteTempFile = false;
  996. super.onRestart();
  997. }
  998. protected void onStart() {
  999. if (this.isNeedDeleteTempFile) {
  1000. removeTempContents(this);
  1001. }
  1002. super.onStart();
  1003. }
  1004. public void onBackPressed() {
  1005. super.onBackPressed();
  1006. escan.escanWrapperReleaseDriver();
  1007. removeTempContents(this);
  1008. finish();
  1009. }
  1010. protected void onDestroy() {
  1011. removeTempContents(this);
  1012. if (this.isCustomAction) {
  1013. ArrayList<String> listSavedJPGFilePath = getListSavedJPGFilePath();
  1014. for (int i = 0; i < listSavedJPGFilePath.size(); i++) {
  1015. Utils.deleteTempFile(listSavedJPGFilePath.get(i));
  1016. }
  1017. }
  1018. System.gc();
  1019. super.onDestroy();
  1020. }
  1021. protected void onResume() {
  1022. super.onResume();
  1023. NfcTagUtils.enableForegroundDispatch(this, (IntentFilter[]) null, (String[][]) null);
  1024. mActivityPaused = false;
  1025. }
  1026. protected void onPause() {
  1027. super.onPause();
  1028. NfcTagUtils.disableForegroundDispatch(this);
  1029. mActivityPaused = true;
  1030. if (isFinishing()) {
  1031. escan.escanWrapperReleaseDriver();
  1032. }
  1033. }
  1034. protected void onNewIntent(Intent intent) {
  1035. NfcTagUtils.EpsonNfcConnectInfo parseNECTag;
  1036. super.onNewIntent(intent);
  1037. String action = intent.getAction();
  1038. Thread thread = doscan;
  1039. if ((thread == null || !thread.isAlive()) && "android.nfc.action.NDEF_DISCOVERED".equals(action) && (parseNECTag = NfcTagUtils.parseNECTag(this, intent)) != null) {
  1040. Intent intent2 = new Intent();
  1041. intent2.setClass(this, ActivityNfcPrinter.class);
  1042. intent2.putExtra(ActivityNfcPrinter.CONNECTINFO, parseNECTag);
  1043. intent2.putExtra(ActivityNfcPrinter.CHANGEMODE, 2);
  1044. startActivityForResult(intent2, 2);
  1045. bAutoStartScan = true;
  1046. }
  1047. }
  1048. public static void removeTempContents(Context context) {
  1049. File file = new File(ExternalFileUtils.getInstance(context).getScannedImageDir());
  1050. if (file.exists()) {
  1051. if (file.isDirectory()) {
  1052. for (File file2 : file.listFiles()) {
  1053. if (file2.isFile()) {
  1054. file2.delete();
  1055. }
  1056. }
  1057. }
  1058. if (file.isFile()) {
  1059. file.delete();
  1060. }
  1061. }
  1062. }
  1063. protected void onStop() {
  1064. isStopScan = true;
  1065. escan.setJobDone(false);
  1066. Thread thread = doscan;
  1067. if (thread != null && thread.isAlive()) {
  1068. scanningProgressHandler.sendEmptyMessage(-2);
  1069. }
  1070. AlertDialog alertDialog = errorDialog;
  1071. if (alertDialog != null && alertDialog.isShowing()) {
  1072. errorDialog.dismiss();
  1073. }
  1074. LinearLayout linearLayout = llScanningProgress;
  1075. if (linearLayout != null && linearLayout.getVisibility() == 0) {
  1076. llScanningProgress.setVisibility(View.GONE);
  1077. }
  1078. super.onStop();
  1079. }
  1080. public void onConfigurationChanged(Configuration configuration) {
  1081. super.onConfigurationChanged(configuration);
  1082. isNeedGetScanSize = true;
  1083. isNeedScale = true;
  1084. RectF rectF = area;
  1085. if (rectF != null) {
  1086. area = getRectScanArea();
  1087. if ((rectF.left) == (area.left) && (rectF.top) == (area.top) && (rectF.right) == (area.right) && (rectF.bottom) == (area.bottom)) {
  1088. isNeedRedrawBitmap = true;
  1089. } else {
  1090. isNeedRedrawBitmap = false;
  1091. }
  1092. }
  1093. if (mActivityPaused) {
  1094. mScanAreaBackgroundViewSizeChanged = true;
  1095. }
  1096. }
  1097. public boolean onCreateOptionsMenu(Menu menu) {
  1098. getMenuInflater().inflate(R.menu.scan_menu, menu);
  1099. super.onCreateOptionsMenu(menu);
  1100. return true;
  1101. }
  1102. public boolean onOptionsItemSelected(MenuItem menuItem) {
  1103. if (menuItem.getItemId() != R.id.btn_scan_settings) {
  1104. return super.onOptionsItemSelected(menuItem);
  1105. }
  1106. callScanSetting();
  1107. return true;
  1108. }
  1109. private void initFrameWithScreensize() {
  1110. int i = 20;
  1111. while (true) {
  1112. int i2 = areaHeightOnScreen;
  1113. if (i < i2) {
  1114. mARGIN_TOP_BOT = i;
  1115. setMaxScanHeightOnScreen((i2 - (mARGIN_TOP_BOT * 2)));
  1116. setScale((getMaxheight()) / getMaxScanHeightOnScreen());
  1117. setMaxScanWidthOnScreen((getMaxwidth()) / getScale());
  1118. if (getMaxScanWidthOnScreen() > ((this.areaWidthOnScreen - 20))) {
  1119. i += 10;
  1120. } else {
  1121. return;
  1122. }
  1123. } else {
  1124. return;
  1125. }
  1126. }
  1127. }
  1128. private void chooseScanSize(int i) {
  1129. int i2;
  1130. int i3;
  1131. int i4 = i;
  1132. if (i4 == Constants.PaperName.EPS_MSID_USER.getCode()) {
  1133. int i5 = resolution;
  1134. double d = i5 != 75 ? i5 != 300 ? 1.0d : 2.0d : 0.5d;
  1135. i3 = Utils.getPrefInt(this.context, epson.common.Constants.SCAN_REFS_SUPPORTED_OPTIONS, epson.common.Constants.SCAN_REFS_MAX_WIDTH);
  1136. i2 = Utils.getPrefInt(this.context, epson.common.Constants.SCAN_REFS_SUPPORTED_OPTIONS, epson.common.Constants.SCAN_REFS_MAX_HEIGHT);
  1137. if (i3 == 0) {
  1138. i3 = (1275.0d * d);
  1139. }
  1140. if (i2 == 0) {
  1141. i2 = (d * 1755.0d);
  1142. }
  1143. } else {
  1144. Point paperSize = ScanSizeHelper.getPaperSize(i4, resolution);
  1145. int i6 = paperSize.x;
  1146. i2 = paperSize.y;
  1147. i3 = i6;
  1148. }
  1149. if (this.isDoctable) {
  1150. if (this.scanOrigin == 2) {
  1151. setmTop(getmBaseTop());
  1152. double d2 = i3;
  1153. double d3 = i2;
  1154. setmBot(new Point(Math.ceil((getmBaseTop().x) + ((getMaxScanWidthOnScreen() * d2) / (getMaxwidth()))), Math.round((getmBaseTop().y) + ((getMaxScanHeightOnScreen() * d3) / (getMaxheight())))));
  1155. setPiBaseTop(new ScanBaseView.PointInfo(getmBaseTop().x, getmBaseTop().y));
  1156. setPiBaseBot(new ScanBaseView.PointInfo((getmBaseTop().x) + ((d2 * getMaxScanWidthOnScreen()) / (getMaxwidth())), (getmBaseTop().y) + ((d3 * getMaxScanHeightOnScreen()) / (getMaxheight()))));
  1157. setScreenStatus(1);
  1158. }
  1159. hideTotalScanned();
  1160. } else {
  1161. setMaxwidth(i3);
  1162. setMaxheight(i2);
  1163. setScale((getMaxheight()) / getMaxScanHeightOnScreen());
  1164. setMaxScanWidthOnScreen((((getMaxwidth()) / getScale())));
  1165. setmBaseTop(new Point((((areaWidthOnScreen) - getMaxScanWidthOnScreen())) / 2, mARGIN_TOP_BOT));
  1166. setmBaseBot(new Point(this.areaWidthOnScreen - getmBaseTop().x, areaHeightOnScreen - mARGIN_TOP_BOT));
  1167. setmTop(getmBaseTop());
  1168. setmBot(getmBaseBot());
  1169. setPiBaseTop(new ScanBaseView.PointInfo(((areaWidthOnScreen) - getMaxScanWidthOnScreen()) / 2.0d, mARGIN_TOP_BOT));
  1170. setPiBaseBot(new ScanBaseView.PointInfo((this.areaWidthOnScreen - getmBaseTop().x), (this.areaHeightOnScreen - mARGIN_TOP_BOT)));
  1171. if (this.isNeedClearBm) {
  1172. hideTotalScanned();
  1173. setBm((Bitmap) null);
  1174. }
  1175. }
  1176. setmCenter(calculateTheCenterPoint(getmTop(), getmBot()));
  1177. setSetSize(true);
  1178. scanArea.postInvalidate();
  1179. scanAreaBackground.postInvalidate();
  1180. if (this.isDoctable) {
  1181. Utils.savePref(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_CHOSEN_SIZE_DOC, i4);
  1182. } else {
  1183. Utils.savePref(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_CHOSEN_SIZE_ADF, i4);
  1184. }
  1185. }
  1186. private void nextPage() {
  1187. curentViewingFile++;
  1188. if (this.curentViewingFile > 300 || curentViewingFile > totalScanned) {
  1189. curentViewingFile--;
  1190. return;
  1191. }
  1192. updateThumbResult(this.curentViewingFile);
  1193. showDisplayingResult();
  1194. scanArea.postInvalidate();
  1195. }
  1196. private void prevPage() {
  1197. curentViewingFile--;
  1198. if (this.curentViewingFile < 1) {
  1199. curentViewingFile++;
  1200. return;
  1201. }
  1202. updateThumbResult(this.curentViewingFile);
  1203. showDisplayingResult();
  1204. scanArea.postInvalidate();
  1205. }
  1206. private void scanStart() {
  1207. if (this.usingScannerModel.equals(getString(R.string.str_lbl_title_scan)) || usingScannerModel.equals("")) {
  1208. new AlertDialog.Builder(this.context).setCancelable(false).setTitle(R.string.scanner_not_select).setMessage(getString(R.string.scanner_notselect_warning)).setPositiveButton(getString(R.string.str_ok), new DialogInterface.OnClickListener() {
  1209. public void onClick(DialogInterface dialogInterface, int i) {
  1210. }
  1211. }).show();
  1212. return;
  1213. }
  1214. if (this.isCustomAction) {
  1215. extParam.clearArrayOutFilePath();
  1216. }
  1217. Thread thread = doscan;
  1218. if ((thread == null || !thread.isAlive()) && isValidArea()) {
  1219. error = 0;
  1220. setBm((Bitmap) null);
  1221. isNeedClearBm = false;
  1222. scanAreaBackground.hideText(true);
  1223. scanAreaBackground.invalidate();
  1224. preparingForScan();
  1225. scanningProgressHandler.sendEmptyMessage(0);
  1226. doscan = new Thread() {
  1227. public void run() {
  1228. if (!WiFiDirectManager.isNeedConnect(ScanActivity.this, WiFiDirectManager.DEVICE_TYPE_SCANNER) || !WiFiDirectManager.reconnect(ScanActivity.this, WiFiDirectManager.DEVICE_TYPE_SCANNER, 10)) {
  1229. if (!ScanContinueParam.isContinueScanning()) {
  1230. ScanCount.countUpScanPage(ScanActivity.this.getApplicationContext());
  1231. }
  1232. if (!Utils.isMediaMounted()) {
  1233. int unused = ScanActivity.this.error = 101;
  1234. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1235. } else if (!ScanActivity.this.canStartScan()) {
  1236. int unused2 = ScanActivity.this.error = -1001;
  1237. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1238. } else if (ScanActivity.this.usingScannerId == null || ScanActivity.this.usingScannerId.trim().length() < 1) {
  1239. int unused3 = ScanActivity.this.error = -1300;
  1240. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1241. } else {
  1242. if (ScanActivity.this.usingScannerLocation != 3) {
  1243. ScanActivity scanActivity = ScanActivity.this;
  1244. int unused4 = scanActivity.error = scanActivity.escan.probeScannerById(ScanActivity.this.usingScannerId, ScanActivity.this.usingScannerIp);
  1245. if (ScanActivity.this.error == -1051) {
  1246. EPLog.m307e(ScanActivity.this.getLocalClassName(), "scan, ESCAN_ERR_LIB_NOT_INITIALIZED");
  1247. ScanActivity.this.escan.escanWrapperInitDriver(ScanActivity.this);
  1248. ScanActivity scanActivity2 = ScanActivity.this;
  1249. int unused5 = scanActivity2.error = scanActivity2.escan.probeScannerById(ScanActivity.this.usingScannerId, ScanActivity.this.usingScannerIp);
  1250. }
  1251. } else {
  1252. ScanActivity scanActivity3 = ScanActivity.this;
  1253. int unused6 = scanActivity3.error = scanActivity3.escan.probeScannerByIp(ScanActivity.this.usingScannerId, ScanActivity.this.usingScannerIp);
  1254. if (ScanActivity.this.error == -1051) {
  1255. EPLog.m307e(ScanActivity.this.getLocalClassName(), "scan, ESCAN_ERR_LIB_NOT_INITIALIZED");
  1256. ScanActivity.this.escan.escanWrapperInitDriver(ScanActivity.this);
  1257. ScanActivity scanActivity4 = ScanActivity.this;
  1258. int unused7 = scanActivity4.error = scanActivity4.escan.probeScannerByIp(ScanActivity.this.usingScannerId, ScanActivity.this.usingScannerIp);
  1259. }
  1260. }
  1261. if (ScanActivity.this.error == 0) {
  1262. EPLog.i(ScanActivity.this.getLocalClassName(), "scan, done probe");
  1263. if (ScanActivity.this.escan.getListFoundScanner() == null || ScanActivity.this.escan.getListFoundScanner().size() < 1) {
  1264. EPLog.m307e(ScanActivity.this.getLocalClassName(), "scan, ESCAN_ERR_SCANNER_NOT_FOUND");
  1265. int unused8 = ScanActivity.this.error = -1300;
  1266. if (!ScanActivity.this.isStopScan) {
  1267. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1268. return;
  1269. }
  1270. return;
  1271. }
  1272. ScanActivity scanActivity5 = ScanActivity.this;
  1273. int unused9 = scanActivity5.error = scanActivity5.escan.escanWrapperSetScanner(0);
  1274. if (ScanActivity.this.error != 0) {
  1275. int unused10 = ScanActivity.this.error = -1300;
  1276. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1277. return;
  1278. }
  1279. ScanActivity scanActivity6 = ScanActivity.this;
  1280. String unused11 = scanActivity6.usingScannerIp = scanActivity6.escan.getListFoundScanner().get(0).getIp();
  1281. ScanActivity.this.escan.resetEscanLib();
  1282. if (ScanActivity.this.escan.getListScannedFile() == null) {
  1283. EPLog.i(ScanActivity.this.getLocalClassName(), "scan, getListScannedFile == NULL");
  1284. ScanActivity.this.escan.setListScannedFile(new ArrayList());
  1285. } else if (!ScanContinueParam.isContinueScanning()) {
  1286. EPLog.i(ScanActivity.this.getLocalClassName(), "scan, getListScannedFile != NULL");
  1287. ScanActivity.this.escan.getListScannedFile().clear();
  1288. int unused12 = ScanActivity.this.previousTotalScanned = 0;
  1289. }
  1290. ScanActivity scanActivity7 = ScanActivity.this;
  1291. int unused13 = scanActivity7.error = scanActivity7.escan.GetSupportedOption();
  1292. ScanActivity.this.escan.makeJobAttribute(ScanActivity.this.getContext(), ScanActivity.this.extParam);
  1293. synchronized (ScanActivity.this) {
  1294. I1ScanParams unused14 = ScanActivity.mI1ScanParams = ScanActivity.this.escan.getScanParams();
  1295. }
  1296. if (ScanActivity.this.isStopScan || ScanActivity.this.escan.isScanning()) {
  1297. EPLog.m307e(ScanActivity.this.getLocalClassName(), "scan, after makeJobAttribute");
  1298. return;
  1299. }
  1300. ScanActivity scanActivity8 = ScanActivity.this;
  1301. String access$3300 = scanActivity8.makeImageName(scanActivity8.extParam);
  1302. String localClassName = ScanActivity.this.getLocalClassName();
  1303. EPLog.i(localClassName, "scan, fname = " + access$3300);
  1304. ScanActivity scanActivity9 = ScanActivity.this;
  1305. int unused15 = scanActivity9.error = scanActivity9.escan.startScanJob(access$3300);
  1306. String localClassName2 = ScanActivity.this.getLocalClassName();
  1307. EPLog.i(localClassName2, "[ESCAN][DONE] escanLib().startScanJob - return - " + ScanActivity.this.error);
  1308. if (ScanActivity.this.error == 40) {
  1309. boolean unused16 = ScanActivity.this.isStopScan = true;
  1310. int unused17 = ScanActivity.this.error = 0;
  1311. }
  1312. if (!ScanActivity.this.isStopScan) {
  1313. EPLog.m307e(ScanActivity.this.getLocalClassName(), "IN-> isStopScan.");
  1314. if (!(ScanActivity.this.escan.getStatus()[2] == 4 || (ScanActivity.this.error == 0 && ScanActivity.this.escan.getStatus()[2] == 0))) {
  1315. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1316. if (ScanActivity.this.escan.getListScannedFile().size() > 0) {
  1317. EPLog.m307e(ScanActivity.this.getLocalClassName(), "END SCAN because error.");
  1318. ScanActivity.this.scanningProgressHandler.sendEmptyMessageDelayed(2, 500);
  1319. }
  1320. EPLog.m307e(ScanActivity.this.getLocalClassName(), "SCAN error.");
  1321. return;
  1322. }
  1323. }
  1324. EPLog.i(ScanActivity.this.getLocalClassName(), "END SCAN NORMALY.");
  1325. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(2);
  1326. } else if (!ScanActivity.this.isStopScan) {
  1327. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-1);
  1328. }
  1329. }
  1330. }
  1331. }
  1332. };
  1333. doscan.start();
  1334. }
  1335. }
  1336. private void check3GAndStartPrint() {
  1337. ScanContinueParam.judgeScanContinue(this, getListSavedJPGFilePath());
  1338. }
  1339. private boolean canStartScan() {
  1340. StatFs statFs = new StatFs(CommonDefine.DEFAULT_DIR);
  1341. double availableBlocksLong = (statFs.getAvailableBlocksLong()) * (statFs.getBlockSizeLong());
  1342. double maxwidth = (getMaxwidth() * getMaxheight() * 3);
  1343. if (availableBlocksLong > (!this.isDoctable ? maxwidth * ((ScanContinueParam.getAvailableScanPageCount() + 1)) : maxwidth * 2.0d)) {
  1344. return true;
  1345. }
  1346. return false;
  1347. }
  1348. private String makeImageName(SharedParamScan sharedParamScan) {
  1349. StringBuilder sb;
  1350. if (sharedParamScan.isAvailable()) {
  1351. File file = new File(sharedParamScan.getFolder_name());
  1352. file.mkdirs();
  1353. sb = new StringBuilder(file.getPath());
  1354. sb.append(CommonDefine.SLASH);
  1355. sb.append(sharedParamScan.getFile_name());
  1356. } else {
  1357. File file2 = new File(ExternalFileUtils.getInstance(this).getScannedImageDir());
  1358. file2.mkdirs();
  1359. if (!ScanContinueParam.isContinueScanning()) {
  1360. removeTempScannedImage(file2);
  1361. ScanContinueParam.resetParameter();
  1362. }
  1363. Calendar instance = Calendar.getInstance();
  1364. sb = new StringBuilder(file2.getPath());
  1365. sb.append(CommonDefine.SLASH);
  1366. sb.append(instance.get(1));
  1367. sb.append(instance.get(2) + 1);
  1368. sb.append(instance.get(5));
  1369. sb.append(instance.get(11));
  1370. sb.append(instance.get(12));
  1371. sb.append(instance.get(13));
  1372. }
  1373. return sb.toString();
  1374. }
  1375. private static void removeTempScannedImage(File file) {
  1376. if (!file.exists()) {
  1377. return;
  1378. }
  1379. if (file.isDirectory()) {
  1380. for (File file2 : file.listFiles()) {
  1381. if (file2.isFile()) {
  1382. file2.delete();
  1383. }
  1384. }
  1385. } else if (file.isFile()) {
  1386. file.delete();
  1387. }
  1388. }
  1389. private void setupErrorMessage(int i) {
  1390. if (i != -500001) {
  1391. if (i != -1501) {
  1392. if (i != -1300) {
  1393. if (i != -1100) {
  1394. if (i == -1001) {
  1395. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_blank), getString(R.string.str_err_msg_out_of_memory_title), getString(R.string.str_ok));
  1396. return;
  1397. } else if (i != R.string.str_lbl_title_scan) {
  1398. switch (i) {
  1399. case 2:
  1400. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_coveropen_title), getString(R.string.str_err_msg_scan_coveropen), getString(R.string.str_ok));
  1401. return;
  1402. case 3:
  1403. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_paperjam_title), getString(R.string.str_err_msg_scan_paperjam), getString(R.string.str_ok));
  1404. return;
  1405. case 4:
  1406. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_paperout_title), getString(R.string.str_err_msg_scan_paperout), getString(R.string.str_ok));
  1407. return;
  1408. case 5:
  1409. break;
  1410. case 6:
  1411. break;
  1412. default:
  1413. switch (i) {
  1414. case 100:
  1415. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_adf_paperout_title), getString(R.string.str_err_msg_scan_adf_paperout), getString(R.string.str_ok));
  1416. return;
  1417. case 101:
  1418. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.unknow_error_title), getString(R.string.str_no_sdcard), getString(R.string.str_ok));
  1419. return;
  1420. default:
  1421. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_generic_internal_title), getString(R.string.str_err_msg_scan_generic_internal), getString(R.string.str_ok));
  1422. return;
  1423. }
  1424. }
  1425. } else {
  1426. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_lbl_title_scan), getString(R.string.str_ok));
  1427. return;
  1428. }
  1429. }
  1430. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_comm_title), getString(R.string.str_err_msg_scan_comm), getString(R.string.str_ok));
  1431. return;
  1432. }
  1433. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_not_found_title), getString(R.string.str_err_msg_scan_not_found_research), getString(R.string.str_ok));
  1434. return;
  1435. }
  1436. errorDialog = Utils.makeMessageBox(getContext(), getString(R.string.str_err_msg_scan_busy_title), getString(R.string.str_err_msg_scan_busy), getString(R.string.str_ok));
  1437. return;
  1438. }
  1439. errorDialog = Utils.makeMessageBox(this.context, getString(R.string.EPS_PRNERR_COMM_TITLE2), getString(R.string.str_ipprinter_comerror), getString(R.string.str_ok));
  1440. }
  1441. private void showScanningPop() {
  1442. LinearLayout linearLayout = llScanningProgress;
  1443. if (linearLayout != null) {
  1444. linearLayout.setVisibility(View.VISIBLE);
  1445. findViewById(R.id.llScanFunctionBar).invalidate();
  1446. }
  1447. EPLog.i(TAG, "addFlags : FLAG_KEEP_SCREEN_ON ");
  1448. getWindow().addFlags(128);
  1449. }
  1450. private void hideScanningPop() {
  1451. LinearLayout linearLayout = llScanningProgress;
  1452. if (linearLayout != null) {
  1453. linearLayout.setVisibility(View.GONE);
  1454. findViewById(R.id.llScanFunctionBar).invalidate();
  1455. }
  1456. EPLog.i(TAG, "clearFlags : FLAG_KEEP_SCREEN_ON ");
  1457. getWindow().clearFlags(128);
  1458. }
  1459. static PrintLog getPrintLog() {
  1460. PrintLog printLog = new PrintLog();
  1461. printLog.uiRoute = 4;
  1462. return printLog;
  1463. }
  1464. private void getSelectedScannerInfo() {
  1465. if (this.isNeedGetScanSize) {
  1466. String prefString = Utils.getPrefString(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_ID);
  1467. if (!this.isNeedUpdateScanningArea) {
  1468. if (prefString.equals(this.usingScannerId)) {
  1469. isNeedUpdateScanningArea = false;
  1470. } else {
  1471. isNeedUpdateScanningArea = true;
  1472. setBm((Bitmap) null);
  1473. }
  1474. }
  1475. usingScannerId = prefString;
  1476. usingScannerModel = Utils.getPrefString(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_MODEL);
  1477. usingScannerIp = Utils.getPrefString(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_IP);
  1478. usingScannerLocation = Utils.getPrefInt(getApplicationContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_LOCATION);
  1479. boolean z = Utils.getPrefInt(this.context, epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SETTINGS_SOURCE) == 0;
  1480. if (z != isDoctable) {
  1481. isNeedClearBm = true;
  1482. setBm((Bitmap) null);
  1483. } else {
  1484. isNeedClearBm = false;
  1485. }
  1486. if (!z && z == isDoctable && !this.isNeedUpdateScanningArea) {
  1487. isNeedUpdateScanningArea = false;
  1488. }
  1489. if (z && z == isDoctable && !this.isNeedUpdateScanningArea) {
  1490. isNeedUpdateScanningArea = false;
  1491. } else {
  1492. isNeedUpdateScanningArea = true;
  1493. }
  1494. isDoctable = z;
  1495. }
  1496. }
  1497. private void loggerScanCountUp() {
  1498. if (this.totalScanned > 0) {
  1499. }
  1500. }
  1501. private boolean isCompletedScanProcess() {
  1502. return getListSavedJPGFilePath().size() == totalScanned;
  1503. }
  1504. private void preparingForScan() {
  1505. escan.setJobDone(false);
  1506. escan.setScanning(false);
  1507. isConfirmCancel = false;
  1508. previousTotalScanned = escan.getListScannedFile().size();
  1509. area = getRectScanArea();
  1510. if (!ScanContinueParam.isContinueScanning()) {
  1511. totalScanned = 0;
  1512. curentViewingFile = 0;
  1513. hideTotalScanned();
  1514. disableFunctionButtons();
  1515. getListSavedJPGFilePath().clear();
  1516. }
  1517. }
  1518. private void showTotalScanned() {
  1519. tvScanResult.setVisibility(View.VISIBLE);
  1520. TextView textView = tvScanResult;
  1521. textView.setText(this.curentViewingFile + epson.common.Constants.CROSS + totalScanned);
  1522. }
  1523. private void hideTotalScanned() {
  1524. tvScanResult.setVisibility(View.GONE);
  1525. btnNext.setVisibility(View.GONE);
  1526. btnPrev.setVisibility(View.GONE);
  1527. }
  1528. private void showDisplayingResult() {
  1529. TextView textView = tvScanResult;
  1530. textView.setText(this.curentViewingFile + epson.common.Constants.CROSS + totalScanned);
  1531. }
  1532. private void updateDoneScanJob() {
  1533. totalScanned = escan.getListScannedFile().size();
  1534. if (this.totalScanned == previousTotalScanned) {
  1535. if (Utils.getPrefInt(this.context, epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SETTINGS_SOURCE) == 1) {
  1536. error = 100;
  1537. scanningProgressHandler.sendEmptyMessage(-1);
  1538. return;
  1539. }
  1540. totalScanned = escan.getListScannedFile().size();
  1541. if (this.totalScanned == previousTotalScanned) {
  1542. error = -1100;
  1543. scanningProgressHandler.sendEmptyMessage(-1);
  1544. return;
  1545. }
  1546. }
  1547. if (this.totalScanned > 0) {
  1548. enableFunctionButtons();
  1549. }
  1550. if (this.totalScanned > 1) {
  1551. curentViewingFile = totalScanned;
  1552. btnNext.setVisibility(View.VISIBLE);
  1553. btnPrev.setVisibility(View.GONE);
  1554. showTotalScanned();
  1555. }
  1556. if (!isCompletedScanProcess()) {
  1557. scanningProgressHandler.sendEmptyMessageDelayed(2, 1000);
  1558. return;
  1559. }
  1560. scanningProgressHandler.sendEmptyMessage(-3);
  1561. updateThumbResult(this.curentViewingFile);
  1562. }
  1563. private void updateScreenPreviewToLastData() {
  1564. if (this.totalScanned > 1) {
  1565. curentViewingFile = totalScanned;
  1566. showTotalScanned();
  1567. updateThumbResult(this.curentViewingFile);
  1568. }
  1569. }
  1570. private void updateThumbResult(int i) {
  1571. if (this.totalScanned >= 1) {
  1572. if (this.totalScanned > 1) {
  1573. if (this.curentViewingFile == totalScanned) {
  1574. btnNext.setVisibility(View.GONE);
  1575. } else {
  1576. btnNext.setVisibility(View.VISIBLE);
  1577. }
  1578. if (this.curentViewingFile == 1) {
  1579. btnPrev.setVisibility(View.GONE);
  1580. } else {
  1581. btnPrev.setVisibility(View.VISIBLE);
  1582. }
  1583. }
  1584. if (i < 1) {
  1585. i = 1;
  1586. }
  1587. if (i > totalScanned) {
  1588. i = totalScanned;
  1589. }
  1590. String str = getListSavedJPGFilePath().get(i - 1);
  1591. try {
  1592. int width = area.width();
  1593. int height = area.height();
  1594. if (width * height < 819200) {
  1595. width = 1024;
  1596. height = Videoio.CAP_PVAPI;
  1597. }
  1598. Bitmap createBitmapWithUri = Photo.createBitmapWithUri(str, width, height, false);
  1599. setBmRectF(this.area);
  1600. setBm(createBitmapWithUri);
  1601. scanArea.postInvalidate();
  1602. } catch (IOException e) {
  1603. e.printStackTrace();
  1604. } catch (OutOfMemoryError e2) {
  1605. e2.printStackTrace();
  1606. }
  1607. }
  1608. }
  1609. private void disableFunctionButtons() {
  1610. CustomButtonWrapper.setScanButtonState(this.btnSave, R.drawable.scan_save, R.string.str_save, false);
  1611. CustomButtonWrapper.setScanButtonState(this.btnMail, R.drawable.scan_mail, R.string.str_btn_mail, false);
  1612. CustomButtonWrapper.setScanButtonState(this.btnPrint, R.drawable.scan_print, R.string.str_print, false);
  1613. }
  1614. private void enableFunctionButtons() {
  1615. CustomButtonWrapper.setScanButtonState(this.btnSave, R.drawable.scan_save, R.string.str_save, true);
  1616. CustomButtonWrapper.setScanButtonState(this.btnMail, R.drawable.scan_mail, R.string.str_btn_mail, true);
  1617. CustomButtonWrapper.setScanButtonState(this.btnPrint, R.drawable.scan_print, R.string.str_print, true);
  1618. }
  1619. private void confirmationDialog(String str) {
  1620. if (!this.isConfirmCancel) {
  1621. confirmAlertDialog = new AlertDialog.Builder(this.context).create();
  1622. confirmAlertDialog.setIcon(R.drawable.ic_action_warning);
  1623. confirmAlertDialog.setCancelable(false);
  1624. confirmAlertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
  1625. public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
  1626. return keyEvent.getKeyCode() == 84;
  1627. }
  1628. });
  1629. confirmAlertDialog.setMessage(str);
  1630. confirmAlertDialog.setButton(-2, getText(R.string.str_no), new DialogInterface.OnClickListener() {
  1631. public void onClick(DialogInterface dialogInterface, int i) {
  1632. if (!ScanActivity.this.escan.isJobDone()) {
  1633. ScanActivity.this.showScanningPop();
  1634. }
  1635. boolean unused = ScanActivity.this.isConfirmCancel = false;
  1636. }
  1637. });
  1638. confirmAlertDialog.setButton(-1, getText(R.string.str_yes), new DialogInterface.OnClickListener() {
  1639. public void onClick(DialogInterface dialogInterface, int i) {
  1640. boolean unused = ScanActivity.this.isConfirmCancel = true;
  1641. String localClassName = ScanActivity.this.getLocalClassName();
  1642. EPLog.i(localClassName, "yes pressed, isConfirmCancel = " + ScanActivity.this.isConfirmCancel);
  1643. if (!ScanActivity.this.escan.isJobDone()) {
  1644. ScanActivity.this.showScanningPop();
  1645. }
  1646. ScanActivity.this.scanningProgressHandler.sendEmptyMessage(-2);
  1647. }
  1648. });
  1649. confirmAlertDialog.show();
  1650. }
  1651. }
  1652. protected void onActivityResult(int i, int i2, Intent intent) {
  1653. super.onActivityResult(i, i2, intent);
  1654. if (i != 10) {
  1655. if (i != 20) {
  1656. switch (i) {
  1657. case 2:
  1658. escan.resetEscanLib();
  1659. escan.escanWrapperInitDriver(this);
  1660. escan.setScanHandler(this.scanningProgressHandler);
  1661. onScanSettingEnd(i2, intent);
  1662. bAutoStartScan = false;
  1663. return;
  1664. case 4:
  1665. if (i2 != -1) {
  1666. onBackPressed();
  1667. return;
  1668. } else if (!startI2ActivityIfEscIVersionMismatch()) {
  1669. return;
  1670. } else {
  1671. return;
  1672. }
  1673. default:
  1674. return;
  1675. }
  1676. } else if (i2 == 1) {
  1677. bAutoStartScan = I2ScanActivity.getAutoStartRequestedFromReturnIntent(intent);
  1678. Intent intent2 = new Intent();
  1679. intent2.putExtra(ScanSettingsActivity.IS_NEW_SAVE, true);
  1680. intent2.putExtra(ScanSettingsActivity.NO_CLEAR_RESULT, false);
  1681. onScanSettingEnd(-1, intent2);
  1682. bAutoStartScan = false;
  1683. } else if (this.isCustomAction) {
  1684. setResult(i2, intent);
  1685. finish();
  1686. } else {
  1687. finish();
  1688. }
  1689. } else if (i2 != -1) {
  1690. hideScanningPop();
  1691. } else {
  1692. mButtonScanListener.onClick(this.btnScan);
  1693. EPLog.d(TAG, "Send CHECK_PRINTER Message.");
  1694. }
  1695. }
  1696. private void onScanSettingEnd(int i, Intent intent) {
  1697. if (i == -1) {
  1698. if (!startI2ActivityIfEscIVersionMismatch() && intent != null) {
  1699. Bundle extras = intent.getExtras();
  1700. String string = extras.getString(epson.common.Constants.ACT_RESULT);
  1701. if (string == null || !string.equals(epson.common.Constants.ACT_RESULT_BACK)) {
  1702. isNeedGetScanSize = extras.getBoolean(ScanSettingsActivity.IS_NEW_SAVE);
  1703. boolean z = extras.getBoolean(ScanSettingsActivity.NO_CLEAR_RESULT);
  1704. if (!z) {
  1705. setBm((Bitmap) null);
  1706. hideTotalScanned();
  1707. disableFunctionButtons();
  1708. removeTempContents(getApplicationContext());
  1709. if (this.escan.getListScannedFile() != null) {
  1710. escan.getListScannedFile().clear();
  1711. totalScanned = 0;
  1712. curentViewingFile = 0;
  1713. }
  1714. if (getListSavedJPGFilePath() != null) {
  1715. getListSavedJPGFilePath().clear();
  1716. }
  1717. ScanContinueParam.resetParameter();
  1718. }
  1719. getSelectedScannerInfo();
  1720. int prefInt = Utils.getPrefInt(getContext(), epson.common.Constants.SCAN_REFS_USED_SCANNER_PATH, epson.common.Constants.SCAN_REFS_SCANNER_CHOSEN_SIZE);
  1721. if (prefInt != Constants.PaperName.EPS_MSID_UNKNOWN.getCode()) {
  1722. chooseScanSize(prefInt);
  1723. } else {
  1724. String str = oldScannerId;
  1725. if (str == null || str.length() == 0 || usingScannerId.length() == 0 || oldScannerId.equals(this.usingScannerId)) {
  1726. int prefInt2 = Utils.getPrefInt(getContext(), epson.common.Constants.SCAN_REFS_SUPPORTED_OPTIONS, epson.common.Constants.SCAN_REFS_MAX_WIDTH);
  1727. int prefInt3 = Utils.getPrefInt(getContext(), epson.common.Constants.SCAN_REFS_SUPPORTED_OPTIONS, epson.common.Constants.SCAN_REFS_MAX_HEIGHT);
  1728. if (prefInt2 < getMaxwidth() || prefInt3 < getMaxheight()) {
  1729. chooseScanSize(ScanSizeHelper.getDefaultScanSize());
  1730. }
  1731. } else {
  1732. chooseScanSize(ScanSizeHelper.getDefaultScanSize());
  1733. }
  1734. }
  1735. if (!z) {
  1736. isNeedGetScanSize = true;
  1737. isNeedUpdateScanningArea = true;
  1738. }
  1739. if (this.bAutoStartScan) {
  1740. mButtonScanListener.onClick(this.btnScan);
  1741. EPLog.d(TAG, "Send CHECK_PRINTER Message.");
  1742. }
  1743. }
  1744. }
  1745. } else if (i == 0 && !startI2ActivityIfEscIVersionMismatch()) {
  1746. isNeedGetScanSize = false;
  1747. }
  1748. }
  1749. public void onRequestScanAction() {
  1750. scanStart();
  1751. }
  1752. class ScanAreaGestureDetector extends GestureDetector.SimpleOnGestureListener {
  1753. ScanAreaGestureDetector() {
  1754. }
  1755. public void onLongPress(MotionEvent motionEvent) {
  1756. ScanActivity scanActivity = ScanActivity.this;
  1757. scanActivity.bLongTouch = true;
  1758. scanActivity.scanArea.postInvalidate();
  1759. super.onLongPress(motionEvent);
  1760. }
  1761. public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float f, float f2) {
  1762. Display defaultDisplay = ScanActivity.this.getWindowManager().getDefaultDisplay();
  1763. Point point = new Point();
  1764. defaultDisplay.getSize(point);
  1765. float f3 = (float) point.y;
  1766. float f4 = (float) point.x;
  1767. if (f3 > f4) {
  1768. f3 = f4;
  1769. }
  1770. double rawX = ((motionEvent.getRawX() - motionEvent2.getRawX()));
  1771. if (rawX < ((-f3)) * 0.1d) {
  1772. ScanActivity.this.prevPage();
  1773. return false;
  1774. } else if (rawX <= (f3) * 0.1d) {
  1775. return false;
  1776. } else {
  1777. ScanActivity.this.nextPage();
  1778. return false;
  1779. }
  1780. }
  1781. }
  1782. private void callScanSetting() {
  1783. escan.escanWrapperReleaseDriver();
  1784. oldScannerId = usingScannerId;
  1785. Intent intent = new Intent(this, ScanSettingsActivity.class);
  1786. if (this.isCustomAction) {
  1787. if (this.extParam.getRes_main() > 0 && extParam.getRes_sub() > 0) {
  1788. intent.putExtra(ScanSettingsActivity.HIDE_RESOLUTION, true);
  1789. }
  1790. intent.putExtra(ScanSettingsActivity.HIDE_COLOR_MODE, true);
  1791. intent.putExtra(ScanSettingsActivity.PARAM_KEY_EXTERNAL_DATA, extParam);
  1792. }
  1793. intent.setAction("android.intent.action.VIEW");
  1794. startActivityForResult(intent, 2);
  1795. }
  1796. class BitmapTask extends AsyncTask<String, Void, Bitmap> {
  1797. public BitmapTask() {
  1798. }
  1799. protected Bitmap doInBackground(String... strArr) {
  1800. if (ScanActivity.this.escan.isJobDone()) {
  1801. return null;
  1802. }
  1803. return ScanActivity.this.showBitmap(strArr[0]);
  1804. }
  1805. protected void onPostExecute(Bitmap bitmap) {
  1806. ScanActivity.this.displayPreview(bitmap);
  1807. }
  1808. }
  1809. private Bitmap showBitmap(String str) {
  1810. Bitmap bitmap;
  1811. isDecoding = true;
  1812. EPLog.i(getCallingPackage(), "start decode for preview ");
  1813. File file = new File(str);
  1814. if (file.exists() && file.isFile()) {
  1815. try {
  1816. bitmap = Utils.decodeFile(file, areaHeightOnScreen - (mARGIN_TOP_BOT * 2));
  1817. } catch (FileNotFoundException e) {
  1818. e.printStackTrace();
  1819. } catch (OutOfMemoryError e2) {
  1820. e2.printStackTrace();
  1821. }
  1822. EPLog.i(getCallingPackage(), "end decode for preview ");
  1823. return bitmap;
  1824. }
  1825. bitmap = null;
  1826. EPLog.i(getCallingPackage(), "end decode for preview ");
  1827. return bitmap;
  1828. }
  1829. private void displayPreview(Bitmap bitmap) {
  1830. if (!this.escan.isJobDone()) {
  1831. EPLog.i(EpsoniPrintSharedActivity.ACTIVITY_SCAN, "update UI");
  1832. setBm(bitmap);
  1833. setBmRectF(this.area);
  1834. scanArea.postInvalidate();
  1835. }
  1836. isDecoding = false;
  1837. }
  1838. private void convert(String str) {
  1839. getListSavedJPGFilePath().add(str.substring(0, str.length() - 4).concat(".jpg"));
  1840. if (this.isCustomAction) {
  1841. extParam.setArrayOutFilePath(str);
  1842. } else {
  1843. Utils.deleteTempFile(str);
  1844. }
  1845. convertCount++;
  1846. updateThumbResult(this.convertCount);
  1847. }
  1848. @SuppressLint({"NewApi"})
  1849. static void localSetAllCaps(TextView textView, boolean z) {
  1850. if (Build.VERSION.SDK_INT >= 21) {
  1851. textView.setAllCaps(z);
  1852. }
  1853. }
  1854. private void checkLoggerServer(int i, int i2) {
  1855. I1ScanParams i1ScanParams;
  1856. if (mScanLog.action == 0) {
  1857. mScanLog.action = PrintLog.ACTION_SCAN;
  1858. }
  1859. CommonLog commonLog = mScanLog;
  1860. commonLog.numberOfSheet = i - previousTotalScanned;
  1861. commonLog.connectionType = i2;
  1862. ScannerInfo scannerInfo = new ScannerInfo();
  1863. ScanInfoStorage.getInstance().loadScannerConnectivityInfo(this, scannerInfo);
  1864. mScanLog.printerName = scannerInfo.getModelName();
  1865. synchronized (this) {
  1866. i1ScanParams = mI1ScanParams;
  1867. }
  1868. if (mScanLog.numberOfSheet > 0 && i1ScanParams != null) {
  1869. Analytics.sendScanI1Log(this, i1ScanParams, mScanLog, ScanContinueParam.isContinueScanning());
  1870. }
  1871. }
  1872. public static ArrayList<String> getScanFileListFromReturnIntent(@Nullable Intent intent) {
  1873. if (intent == null) {
  1874. return null;
  1875. }
  1876. return intent.getStringArrayListExtra(RETURN_KEY_SCAN_FILE);
  1877. }
  1878. }