123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package epson.print.copy.Component.ecopycomponent;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Matrix;
- import android.graphics.Paint;
- import android.graphics.RectF;
- import android.os.AsyncTask;
- import java.util.HashMap;
- import epson.print.copy.Component.escandevice.EScanDevice;
- import epson.print.copy.Component.escandevice.IScanController;
- class PreviewScanTask extends AsyncTask<Void, Void, Void> implements IScanController, ECopyComponent.ITask {
- boolean cancelRequested;
- Canvas canvas;
- ECopyPreview copyPreview;
- ECopyOptionContext optionContext;
- Bitmap previewScanBitmap;
- HashMap<Integer, Object> properties = new HashMap<>();
- float scale;
- ECopyComponent.ICopyStatusListener statusListener;
- ECopyComponent.ICopySystemSettings systemSettings;
- public void setClientID(String str) {
- }
- public void setRequestConnectionTimeout(int i) {
- }
- public PreviewScanTask(ECopyPreview eCopyPreview, ECopyComponent.ICopyStatusListener iCopyStatusListener) {
- copyPreview = eCopyPreview;
- statusListener = iCopyStatusListener;
- }
- private void setPropertyValue(int i, Object obj) {
- properties.put(Integer.valueOf(i), obj);
- }
- public ECopyComponent.ICopyCancelRequest start() {
- super.execute(new Void[0]);
- return new ECopyComponent.ICopyCancelRequest() {
- public void cancel() {
- synchronized (this) {
- cancelRequested = true;
- }
- }
- };
- }
- public void setSystemSettings(ECopyComponent.ICopySystemSettings iCopySystemSettings) {
- systemSettings = iCopySystemSettings;
- }
- public void setOptionContext(ECopyOptionContext eCopyOptionContext) {
- int i;
- optionContext = eCopyOptionContext;
- if (optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XScale).getSelectedChoice() != ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit) {
- ECopyOptionItem copyOptionItemOf = optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSize);
- switch (copyOptionItemOf.getSelectedChoice()) {
- case PrintMediaSize_A4:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_A4;
- break;
- case PrintMediaSize_B5:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_B5;
- break;
- case PrintMediaSize_L:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_L;
- break;
- case PrintMediaSize_2L:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_2L;
- break;
- case PrintMediaSize_Postcard:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_HAGAKI;
- break;
- case PrintMediaSize_KG:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_KG;
- break;
- case PrintMediaSize_8x10in:
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_6GIRI;
- break;
- }
- }
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_AUTOFIT;
- ECopyComponent.ECopyType copyType = optionContext.getCopyType();
- if (copyType == ECopyComponent.ECopyType.A4_2up || copyType == ECopyComponent.ECopyType.A4_2up_Book) {
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_A4;
- } else if (copyType == ECopyComponent.ECopyType.B5_2up || copyType == ECopyComponent.ECopyType.B5_2up_Book) {
- i = IScanController.CPPREV_VALUE_SCAN_COPYFRAME_B5;
- }
- setPropertyValue(3, Integer.valueOf(i));
- setPropertyValue(1, 65536);
- setPropertyValue(2, Integer.valueOf(IScanController.CPPREV_VALUE_SCAN_RESO_PREVIEW));
- }
- protected Void doInBackground(Void... voidArr) {
- setPropertyValue(4, systemSettings.getPrinterIPAddress());
- EScanDevice.nativeStartScan(this);
- return null;
- }
- public int getIntegerValue(int i) {
- return ((Integer) properties.get(Integer.valueOf(i))).intValue();
- }
- public String getStringValue(int i) {
- return (String) properties.get(Integer.valueOf(i));
- }
- public boolean isCancelRequested() {
- boolean z;
- synchronized (this) {
- z = cancelRequested;
- }
- return z;
- }
- public void setScanStatusChanged(final int i, final int i2) {
- ((Activity) copyPreview.getContext()).runOnUiThread(new Runnable() {
- public void run() {
- ECopyComponent.ICopyStatusListener.CopyTaskResult copyTaskResult;
- switch (i) {
- case 1:
- PreviewScanTask previewScanTask = PreviewScanTask.this;
- previewScanTask.previewScanBitmap = null;
- previewScanTask.statusListener.onStarted(ECopyComponent.ICopyStatusListener.CopyTaskType.Preview);
- return;
- case 2:
- int i = i2;
- if (i != 3) {
- switch (i) {
- case 0:
- copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Succeed;
- break;
- case 1:
- copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Canceled;
- break;
- default:
- copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.ErrorOther;
- break;
- }
- } else {
- copyTaskResult = ECopyComponent.ICopyStatusListener.CopyTaskResult.Busy;
- }
- statusListener.onFinished(ECopyComponent.ICopyStatusListener.CopyTaskType.Preview, copyTaskResult);
- return;
- case 3:
- previewScanBitmap.eraseColor(-1);
- return;
- case 4:
- copyPreview.drawScanPreview (previewScanBitmap);
- return;
- default:
- return;
- }
- }
- });
- }
- public void setScanImageSize(int i, int i2) {
- copyPreview.calculateScanImageSize(i, i2, new ECopyPreview.ScanImageSizeCalculator() {
- public void onScanImageSize(int i, int i2, float f) {
- PreviewScanTask previewScanTask = PreviewScanTask.this;
- previewScanTask.scale = f;
- previewScanTask.previewScanBitmap = Bitmap.createBitmap(i, i2, Bitmap.Config.ARGB_8888);
- PreviewScanTask previewScanTask2 = PreviewScanTask.this;
- previewScanTask2.canvas = new Canvas(previewScanTask2.previewScanBitmap);
- }
- });
- }
- public void setScanImageBlockReceived(int[] iArr, int i, int i2, int i3, int i4) {
- Bitmap createBitmap = Bitmap.createBitmap(iArr, i3, i4, Bitmap.Config.ARGB_8888);
- Matrix matrix = new Matrix();
- float f = scale;
- matrix.postScale(f, f);
- float f2 = scale;
- matrix.postTranslate(((float) i) * f2, ((float) i2) * f2);
- canvas.drawBitmap(createBitmap, matrix, (Paint) null);
- }
- public void setCopyFrameSize(int i, int i2, int i3, int i4) {
- RectF rectF = new RectF((float) i, (float) i2, (float) i3, (float) i4);
- synchronized (this) {
- if (cancelRequested) {
- rectF = new RectF();
- }
- }
- copyPreview.setPaperFrame(rectF);
- }
- }
|