ECopyComponent.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. package epson.print.copy.Component.ecopycomponent;
  2. import android.content.Context;
  3. import com.epson.mobilephone.common.wifidirect.ActivityControlWiFi;
  4. import epson.common.Utils;
  5. import epson.print.copy.Component.ecopycomponent.ECopyOptionItem;
  6. import epson.print.copy.Component.ecopycomponent.ECopyPreview;
  7. import epson.print.copy.Component.ecopycomponent.RemoteCopyTask;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.Iterator;
  11. public final class ECopyComponent {
  12. String clientID;
  13. ICopyOptionListener optionChangedListener;
  14. ECopyOptionContext optionContext = new ECopyOptionContext();
  15. HashMap<Property, Object> properties = new HashMap<>();
  16. ICopySystemSettings systemSettings;
  17. public enum ECopyType {
  18. Standard,
  19. Borderless,
  20. A4_2up,
  21. B5_2up,
  22. A4_2up_Book,
  23. B5_2up_Book,
  24. Mirror,
  25. Photo
  26. }
  27. public interface ICopyCancelRequest {
  28. void cancel();
  29. }
  30. interface ICopyInvalidateResumeRequest extends ICopyResumeRequest {
  31. void invalidate();
  32. }
  33. public interface ICopyOptionContextListener {
  34. public enum ContextCreationError {
  35. ErrorCommunication,
  36. ErrorNotCopySupported,
  37. Error
  38. }
  39. void onCopyOptionContextCreated(ECopyType eCopyType, ECopyOptionContext eCopyOptionContext, ContextCreationError contextCreationError);
  40. }
  41. public interface ICopyOptionListener {
  42. public enum CopyOptionChangedError {
  43. ErrorCommunication,
  44. ErrorInvalidOption,
  45. Error
  46. }
  47. void onCopyOptionChanged(ECopyOptionItem eCopyOptionItem, ArrayList<ECopyOptionItem> arrayList, CopyOptionChangedError copyOptionChangedError);
  48. }
  49. public interface ICopyStatusListener {
  50. public enum CopyTaskProgress {
  51. Copying,
  52. Waiting2ndPage,
  53. Canceling,
  54. Scanning,
  55. Stopped,
  56. Processing
  57. }
  58. public enum CopyTaskResult {
  59. Succeed,
  60. Canceled,
  61. Busy,
  62. ErrorInvalidOption,
  63. ErrorCommunication,
  64. RemoveAdfPaper,
  65. ErrorOther
  66. }
  67. public enum CopyTaskType {
  68. Preview,
  69. Copy
  70. }
  71. void onFinished(CopyTaskType copyTaskType, CopyTaskResult copyTaskResult);
  72. void onProcessed(CopyTaskType copyTaskType, int i, int i2, CopyTaskProgress copyTaskProgress, ICopyResumeRequest iCopyResumeRequest);
  73. void onStarted(CopyTaskType copyTaskType);
  74. }
  75. public interface ICopySystemSettings {
  76. String getPrinterIPAddress();
  77. int getThickPaper();
  78. }
  79. protected interface ITask {
  80. void setClientID(String str);
  81. void setOptionContext(ECopyOptionContext eCopyOptionContext);
  82. void setRequestConnectionTimeout(int i);
  83. void setSystemSettings(ICopySystemSettings iCopySystemSettings);
  84. ICopyCancelRequest start();
  85. }
  86. public enum Property {
  87. RequestConnectionTimeout
  88. }
  89. ECopyComponent() {
  90. this.properties.put(Property.RequestConnectionTimeout, Integer.valueOf(ActivityControlWiFi.SCANNING_TIMEOUT));
  91. this.systemSettings = new ICopySystemSettings() {
  92. public String getPrinterIPAddress() {
  93. return "192.168.10.1";
  94. }
  95. public int getThickPaper() {
  96. return 0;
  97. }
  98. };
  99. }
  100. /* renamed from: epson.print.copy.Component.ecopycomponent.ECopyComponent$3 */
  101. static /* synthetic */ class C21683 {
  102. /* renamed from: $SwitchMap$epson$print$copy$Component$ecopycomponent$ECopyComponent$Property */
  103. static final /* synthetic */ int[] f356x1c67737 = new int[Property.values().length];
  104. static {
  105. try {
  106. f356x1c67737[Property.RequestConnectionTimeout.ordinal()] = 1;
  107. } catch (NoSuchFieldError unused) {
  108. }
  109. }
  110. }
  111. public void setProperty(Property property, int i) {
  112. if (C21683.f356x1c67737[property.ordinal()] == 1) {
  113. this.properties.put(property, Integer.valueOf(i));
  114. }
  115. }
  116. public void setSystemSettings(ICopySystemSettings iCopySystemSettings) {
  117. this.systemSettings = iCopySystemSettings;
  118. }
  119. static class ECopyComponentHolder {
  120. static final ECopyComponent instance = new ECopyComponent();
  121. ECopyComponentHolder() {
  122. }
  123. }
  124. public static ECopyComponent sharedComponent() {
  125. return ECopyComponentHolder.instance;
  126. }
  127. public void getRemoteOperationUUID(Context context) {
  128. this.clientID = Utils.getRemoteOperationUUID(context);
  129. }
  130. public interface ICopyResumeRequest {
  131. public enum ResumeState {
  132. NextPageReady,
  133. NextPageNotExist,
  134. ClearError,
  135. Cancel
  136. }
  137. StopReason getStopReason();
  138. boolean isPossibleClearError();
  139. void resume(ResumeState resumeState);
  140. public enum StopReason {
  141. None,
  142. ChangePage,
  143. PrinterMarkerSupplyEmptyError,
  144. PrinterMarkerWasteFullError,
  145. PrinterMediaJamError,
  146. PrinterMediaEmptyError,
  147. ManualfeedGuide,
  148. PrinterInputTrayMissingError,
  149. PrinterCoverOpenError,
  150. PrinterOutputAreaFullError,
  151. PrinterOtherError,
  152. ScannerMediaEmptyError,
  153. ScannerMediaJamError,
  154. ScannerMediaSizeMissmatchError,
  155. ScannerOtherError;
  156. String string;
  157. public String getDebugString() {
  158. return this.string;
  159. }
  160. }
  161. }
  162. public interface ICopyDeviceStatusListener {
  163. public enum Connection {
  164. Succeed,
  165. Failed
  166. }
  167. public enum DeviceState {
  168. Idle,
  169. Processing,
  170. Stopped
  171. }
  172. void onDeviceStatus(Connection connection, DeviceState deviceState, DeviceState deviceState2, ArrayList<PrinterStateReason> arrayList, ArrayList<ScannerStateReason> arrayList2, ArrayList<String> arrayList3);
  173. public enum PrinterStateReason {
  174. None,
  175. MarkerSupplyEmptyError,
  176. MarkerWasteFullError,
  177. MediaJamError,
  178. MediaEmptyError,
  179. InputTrayMissingError,
  180. CoverOpenError,
  181. OutputAreaFullError,
  182. OtherError,
  183. MarkerSupplyLowWarning,
  184. CoverOpen;
  185. String string;
  186. public String getDebugString() {
  187. return this.string;
  188. }
  189. }
  190. public enum ScannerStateReason {
  191. None,
  192. MediaEmptyError,
  193. MediaJamError,
  194. MediaSizeMissmatchError,
  195. OtherError;
  196. public String string;
  197. public String getDebugString() {
  198. return this.string;
  199. }
  200. }
  201. }
  202. public void bindCopyOptionContext(ECopyOptionContext eCopyOptionContext, ICopyOptionListener iCopyOptionListener) {
  203. this.optionContext = new ECopyOptionContext(eCopyOptionContext);
  204. this.optionChangedListener = iCopyOptionListener;
  205. }
  206. public ECopyOptionContext getBindedCopyOptionContext() {
  207. if (this.optionContext.isNull()) {
  208. return null;
  209. }
  210. return this.optionContext;
  211. }
  212. public ECopyPreview getComposedCopyPreview(Context context, int i, int i2, ECopyPreview.ECopyPreviewInvalidateListener eCopyPreviewInvalidateListener) {
  213. ECopyPreview createPreview = ECopyPreview.createPreview(context, i, i2, eCopyPreviewInvalidateListener);
  214. createPreview.compose(new ECopyOptionContext(this.optionContext), new ECopyPreview.ICopyPreviewCommitEditedOptionContext() {
  215. public void commit(ECopyOptionContext eCopyOptionContext) {
  216. eCopyOptionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XScale).selectChoice(RemoteCopySetOptionTask.getScaleChoice(eCopyOptionContext.copyType, eCopyOptionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.CopyMagnification).getSelectedValue()));
  217. ECopyComponent.this.optionContext = eCopyOptionContext;
  218. }
  219. });
  220. return createPreview;
  221. }
  222. public ArrayList<ECopyOptionItem> getCopyOptionItems() {
  223. ArrayList<ECopyOptionItem> arrayList = new ArrayList<>();
  224. Iterator<ECopyOptionItem> it = this.optionContext.optionItems.iterator();
  225. while (it.hasNext()) {
  226. arrayList.add(new ECopyOptionItem(it.next()));
  227. }
  228. return arrayList;
  229. }
  230. public void createCopyOptionContext(ECopyType eCopyType, ICopyOptionContextListener iCopyOptionContextListener) {
  231. ITask iTask;
  232. if (eCopyType == ECopyType.Photo) {
  233. iTask = new RemoteCopyPhotoGetOptionTask(eCopyType, iCopyOptionContextListener);
  234. } else {
  235. iTask = new RemoteCopyGetOptionTask(eCopyType, iCopyOptionContextListener);
  236. }
  237. execute(iTask);
  238. }
  239. public void setCopyOptionItem(ECopyOptionItem eCopyOptionItem) {
  240. ITask iTask;
  241. if (this.optionContext.getCopyType() == ECopyType.Photo) {
  242. iTask = new RemoteCopyPhotoSetOptionTask(eCopyOptionItem, this.optionChangedListener);
  243. } else {
  244. iTask = new RemoteCopySetOptionTask(eCopyOptionItem, this.optionChangedListener);
  245. }
  246. execute(iTask);
  247. }
  248. public ICopyCancelRequest startPreview(ECopyPreview eCopyPreview, ICopyStatusListener iCopyStatusListener) {
  249. return execute(new PreviewScanTask(eCopyPreview, iCopyStatusListener));
  250. }
  251. public ICopyCancelRequest startCopy(ICopyStatusListener iCopyStatusListener, Context context) {
  252. return execute(new RemoteCopyTask(RemoteCopyTask.CopyMode.Copy, iCopyStatusListener, context));
  253. }
  254. public ICopyCancelRequest startCopyPhoto(String str, ICopyStatusListener iCopyStatusListener) {
  255. return execute(new RemoteCopyPhotoTask(str, iCopyStatusListener));
  256. }
  257. public ICopyCancelRequest recoverCopy(String str, ICopyStatusListener iCopyStatusListener) {
  258. return execute(new RemoteCopyTask(RemoteCopyTask.CopyMode.Recover, str, iCopyStatusListener, (Context) null));
  259. }
  260. public void getDeviceStatus(ICopyDeviceStatusListener iCopyDeviceStatusListener) {
  261. execute(new RemoteDeviceTask(iCopyDeviceStatusListener));
  262. }
  263. public int getCopyValue(ECopyType eCopyType, ECopyOptionItem.ECopyOptionItemChoice eCopyOptionItemChoice) {
  264. return RemoteCopySetOptionTask.getcopyMagnification(eCopyType, eCopyOptionItemChoice);
  265. }
  266. protected ICopyCancelRequest execute(ITask iTask) {
  267. iTask.setSystemSettings(this.systemSettings);
  268. iTask.setRequestConnectionTimeout(((Integer) this.properties.get(Property.RequestConnectionTimeout)).intValue());
  269. iTask.setClientID(this.clientID);
  270. iTask.setOptionContext(this.optionContext);
  271. return iTask.start();
  272. }
  273. }