PreviewScanTask.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. package epson.print.copy.Component.ecopycomponent;
  2. import android.app.Activity;
  3. import android.graphics.Bitmap;
  4. import android.graphics.Canvas;
  5. import android.graphics.Matrix;
  6. import android.graphics.Paint;
  7. import android.graphics.RectF;
  8. import android.os.AsyncTask;
  9. import epson.print.copy.Component.ecopycomponent.ECopyComponent;
  10. import epson.print.copy.Component.ecopycomponent.ECopyOptionItem;
  11. import epson.print.copy.Component.ecopycomponent.ECopyPreview;
  12. import epson.print.copy.Component.escandevice.EScanDevice;
  13. import epson.print.copy.Component.escandevice.IScanController;
  14. import java.util.HashMap;
  15. class PreviewScanTask extends AsyncTask<Void, Void, Void> implements IScanController, ECopyComponent.ITask {
  16. boolean cancelRequested;
  17. Canvas canvas;
  18. ECopyPreview copyPreview;
  19. ECopyOptionContext optionContext;
  20. Bitmap previewScanBitmap;
  21. HashMap<Integer, Object> properties = new HashMap<>();
  22. float scale;
  23. ECopyComponent.ICopyStatusListener statusListener;
  24. ECopyComponent.ICopySystemSettings systemSettings;
  25. public void setClientID(String str) {
  26. }
  27. public void setRequestConnectionTimeout(int i) {
  28. }
  29. public PreviewScanTask(ECopyPreview eCopyPreview, ECopyComponent.ICopyStatusListener iCopyStatusListener) {
  30. this.copyPreview = eCopyPreview;
  31. this.statusListener = iCopyStatusListener;
  32. }
  33. private void setPropertyValue(int i, Object obj) {
  34. this.properties.put(Integer.valueOf(i), obj);
  35. }
  36. public ECopyComponent.ICopyCancelRequest start() {
  37. super.execute(new Void[0]);
  38. return new ECopyComponent.ICopyCancelRequest() {
  39. public void cancel() {
  40. synchronized (this) {
  41. PreviewScanTask.this.cancelRequested = true;
  42. }
  43. }
  44. };
  45. }
  46. public void setSystemSettings(ECopyComponent.ICopySystemSettings iCopySystemSettings) {
  47. this.systemSettings = iCopySystemSettings;
  48. }
  49. public void setOptionContext(ECopyOptionContext eCopyOptionContext) {
  50. int i;
  51. this.optionContext = eCopyOptionContext;
  52. if (this.optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XScale).getSelectedChoice() != ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit) {
  53. ECopyOptionItem copyOptionItemOf = this.optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSize);
  54. switch (copyOptionItemOf.getSelectedChoice()) {
  55. case PrintMediaSize_A4:
  56. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_A4;
  57. break;
  58. case PrintMediaSize_B5:
  59. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_B5;
  60. break;
  61. case PrintMediaSize_L:
  62. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_L;
  63. break;
  64. case PrintMediaSize_2L:
  65. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_2L;
  66. break;
  67. case PrintMediaSize_Postcard:
  68. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_HAGAKI;
  69. break;
  70. case PrintMediaSize_KG:
  71. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_KG;
  72. break;
  73. case PrintMediaSize_8x10in:
  74. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_6GIRI;
  75. break;
  76. }
  77. }
  78. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_AUTOFIT;
  79. ECopyComponent.ECopyType copyType = this.optionContext.getCopyType();
  80. if (copyType == ECopyComponent.ECopyType.A4_2up || copyType == ECopyComponent.ECopyType.A4_2up_Book) {
  81. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_A4;
  82. } else if (copyType == ECopyComponent.ECopyType.B5_2up || copyType == ECopyComponent.ECopyType.B5_2up_Book) {
  83. i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_B5;
  84. }
  85. setPropertyValue(3, Integer.valueOf(i));
  86. setPropertyValue(1, 65536);
  87. setPropertyValue(2, Integer.valueOf(IScanController.CPPREV_VALUE_SCAN_RESO_PREVIEW));
  88. }
  89. /* access modifiers changed from: protected */
  90. public Void doInBackground(Void... voidArr) {
  91. setPropertyValue(4, this.systemSettings.getPrinterIPAddress());
  92. EScanDevice.nativeStartScan(this);
  93. return null;
  94. }
  95. public int getIntegerValue(int i) {
  96. return ((Integer) this.properties.get(Integer.valueOf(i))).intValue();
  97. }
  98. public String getStringValue(int i) {
  99. return (String) this.properties.get(Integer.valueOf(i));
  100. }
  101. public boolean isCancelRequested() {
  102. boolean z;
  103. synchronized (this) {
  104. z = this.cancelRequested;
  105. }
  106. return z;
  107. }
  108. public void setScanStatusChanged(final int i, final int i2) {
  109. ((Activity) this.copyPreview.getContext()).runOnUiThread(new Runnable() {
  110. public void run() {
  111. ECopyComponent.ICopyStatusListener.CopyTaskResult copyTaskResult;
  112. switch (i) {
  113. case 1:
  114. PreviewScanTask previewScanTask = PreviewScanTask.this;
  115. previewScanTask.previewScanBitmap = null;
  116. previewScanTask.statusListener.onStarted(ECopyComponent.ICopyStatusListener.CopyTaskType.Preview);
  117. return;
  118. case 2:
  119. int i = i2;
  120. if (i != 3) {
  121. switch (i) {
  122. case 0:
  123. copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Succeed;
  124. break;
  125. case 1:
  126. copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Canceled;
  127. break;
  128. default:
  129. copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.ErrorOther;
  130. break;
  131. }
  132. } else {
  133. copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Busy;
  134. }
  135. PreviewScanTask.this.statusListener.onFinished(ECopyComponent.ICopyStatusListener.CopyTaskType.Preview, copyTaskResult);
  136. return;
  137. case 3:
  138. PreviewScanTask.this.previewScanBitmap.eraseColor(-1);
  139. return;
  140. case 4:
  141. PreviewScanTask.this.copyPreview.drawScanPreview(PreviewScanTask.this.previewScanBitmap);
  142. return;
  143. default:
  144. return;
  145. }
  146. }
  147. });
  148. }
  149. public void setScanImageSize(int i, int i2) {
  150. this.copyPreview.calculateScanImageSize(i, i2, new ECopyPreview.ScanImageSizeCalculator() {
  151. public void onScanImageSize(int i, int i2, float f) {
  152. PreviewScanTask previewScanTask = PreviewScanTask.this;
  153. previewScanTask.scale = f;
  154. previewScanTask.previewScanBitmap = Bitmap.createBitmap(i, i2, Bitmap.Config.ARGB_8888);
  155. PreviewScanTask previewScanTask2 = PreviewScanTask.this;
  156. previewScanTask2.canvas = new Canvas(previewScanTask2.previewScanBitmap);
  157. }
  158. });
  159. }
  160. public void setScanImageBlockReceived(int[] iArr, int i, int i2, int i3, int i4) {
  161. Bitmap createBitmap = Bitmap.createBitmap(iArr, i3, i4, Bitmap.Config.ARGB_8888);
  162. Matrix matrix = new Matrix();
  163. float f = this.scale;
  164. matrix.postScale(f, f);
  165. float f2 = this.scale;
  166. matrix.postTranslate(((float) i) * f2, ((float) i2) * f2);
  167. this.canvas.drawBitmap(createBitmap, matrix, (Paint) null);
  168. }
  169. public void setCopyFrameSize(int i, int i2, int i3, int i4) {
  170. RectF rectF = new RectF((float) i, (float) i2, (float) i3, (float) i4);
  171. synchronized (this) {
  172. if (this.cancelRequested) {
  173. rectF = new RectF();
  174. }
  175. }
  176. this.copyPreview.setPaperFrame(rectF);
  177. }
  178. }