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