RemoteDeviceTask.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. package epson.print.copy.Component.ecopycomponent;
  2. import android.os.AsyncTask;
  3. import java.util.ArrayList;
  4. import java.util.Iterator;
  5. import epson.print.copy.Component.eremoteoperation.ERemoteCopy;
  6. import epson.print.copy.Component.eremoteoperation.ERemoteDevice;
  7. import epson.print.copy.Component.eremoteoperation.ERemoteOperation;
  8. class RemoteDeviceTask extends AsyncTask<Void, Void, Result> implements ECopyComponent.ITask {
  9. String clientID;
  10. ERemoteDevice operation = new ERemoteDevice();
  11. ECopyOptionContext optionContext;
  12. ECopyComponent.ICopyDeviceStatusListener statusListener;
  13. ECopyComponent.ICopySystemSettings systemSettings;
  14. class Result {
  15. ECopyComponent.ICopyDeviceStatusListener.Connection connetion;
  16. ArrayList<String> jobTokens;
  17. ECopyComponent.ICopyDeviceStatusListener.DeviceState printer;
  18. ArrayList<ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason> printerReasons;
  19. ECopyComponent.ICopyDeviceStatusListener.DeviceState scanner;
  20. ArrayList<ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason> scannerReasons;
  21. Result() {
  22. }
  23. }
  24. public RemoteDeviceTask(ECopyComponent.ICopyDeviceStatusListener iCopyDeviceStatusListener) {
  25. statusListener = iCopyDeviceStatusListener;
  26. }
  27. public ECopyComponent.ICopyCancelRequest start() {
  28. super.execute(new Void[0]);
  29. return null;
  30. }
  31. public void setSystemSettings(ECopyComponent.ICopySystemSettings iCopySystemSettings) {
  32. systemSettings = iCopySystemSettings;
  33. }
  34. public void setRequestConnectionTimeout(int i) {
  35. operation.setRequestConnectionTimeout(i);
  36. }
  37. public void setClientID(String str) {
  38. clientID = str;
  39. }
  40. public void setOptionContext(ECopyOptionContext eCopyOptionContext) {
  41. optionContext = eCopyOptionContext;
  42. }
  43. private ECopyComponent.ICopyDeviceStatusListener.DeviceState getDeviceState(ERemoteOperation.ERemoteParam eRemoteParam) {
  44. ECopyComponent.ICopyDeviceStatusListener.DeviceState deviceState = ECopyComponent.ICopyDeviceStatusListener.DeviceState.Stopped;
  45. switch (eRemoteParam) {
  46. case idle:
  47. return ECopyComponent.ICopyDeviceStatusListener.DeviceState.Idle;
  48. case processing:
  49. return ECopyComponent.ICopyDeviceStatusListener.DeviceState.Processing;
  50. case stopped:
  51. return ECopyComponent.ICopyDeviceStatusListener.DeviceState.Stopped;
  52. default:
  53. return deviceState;
  54. }
  55. }
  56. private ArrayList<ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason> getPrinterErrorReasons() {
  57. ArrayList<ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason> arrayList = new ArrayList<>();
  58. ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.OtherError;
  59. printerStateReason.string = ERemoteOperation.ERemoteParam.other_error.string;
  60. arrayList.add(printerStateReason);
  61. return arrayList;
  62. }
  63. private ArrayList<ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason> getPrinterReasons(ArrayList<ERemoteOperation.ERemoteParam> arrayList) {
  64. ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason printerStateReason;
  65. ArrayList<ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason> arrayList2 = new ArrayList<>();
  66. Iterator<ERemoteOperation.ERemoteParam> it = arrayList.iterator();
  67. while (it.hasNext()) {
  68. ERemoteOperation.ERemoteParam next = it.next();
  69. ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason printerStateReason2 = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.None;
  70. switch (next) {
  71. case none:
  72. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.None;
  73. break;
  74. case marker_supply_empty_error:
  75. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.MarkerSupplyEmptyError;
  76. break;
  77. case marker_waste_full_error:
  78. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.MarkerWasteFullError;
  79. break;
  80. case media_jam_error:
  81. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.MediaJamError;
  82. break;
  83. case media_empty_error:
  84. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.MediaEmptyError;
  85. break;
  86. case input_tray_missing_error:
  87. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.InputTrayMissingError;
  88. break;
  89. case cover_open_error:
  90. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.CoverOpenError;
  91. break;
  92. case output_area_full_error:
  93. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.OutputAreaFullError;
  94. break;
  95. case other_error:
  96. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.OtherError;
  97. break;
  98. case marker_supply_low_warning:
  99. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.MarkerSupplyLowWarning;
  100. break;
  101. case cover_open:
  102. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.CoverOpen;
  103. break;
  104. default:
  105. printerStateReason = ECopyComponent.ICopyDeviceStatusListener.PrinterStateReason.OtherError;
  106. break;
  107. }
  108. printerStateReason.string = next.string;
  109. arrayList2.add(printerStateReason);
  110. }
  111. return arrayList2;
  112. }
  113. private ArrayList<ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason> getScannerErrorReasons() {
  114. ArrayList<ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason> arrayList = new ArrayList<>();
  115. ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.OtherError;
  116. scannerStateReason.string = ERemoteOperation.ERemoteParam.other_error.string;
  117. arrayList.add(scannerStateReason);
  118. return arrayList;
  119. }
  120. private ArrayList<ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason> getScannerReasons(ArrayList<ERemoteOperation.ERemoteParam> arrayList) {
  121. ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason scannerStateReason;
  122. ArrayList<ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason> arrayList2 = new ArrayList<>();
  123. Iterator<ERemoteOperation.ERemoteParam> it = arrayList.iterator();
  124. while (it.hasNext()) {
  125. ERemoteOperation.ERemoteParam next = it.next();
  126. ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason scannerStateReason2 = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.None;
  127. int i = C22033.f378xed9088c4[next.ordinal()];
  128. if (i == 4) {
  129. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.None;
  130. } else if (i == 12) {
  131. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.OtherError;
  132. } else if (i != 15) {
  133. switch (i) {
  134. case 7:
  135. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.MediaJamError;
  136. break;
  137. case 8:
  138. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.MediaEmptyError;
  139. break;
  140. default:
  141. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.OtherError;
  142. break;
  143. }
  144. } else {
  145. scannerStateReason = ECopyComponent.ICopyDeviceStatusListener.ScannerStateReason.MediaSizeMissmatchError;
  146. }
  147. scannerStateReason.string = next.string;
  148. arrayList2.add(scannerStateReason);
  149. }
  150. return arrayList2;
  151. }
  152. private ArrayList<String> getJobTokens() {
  153. ERemoteCopy eRemoteCopy = new ERemoteCopy();
  154. eRemoteCopy.setHostIP(operation.getHostIP());
  155. eRemoteCopy.setRequestConnectionTimeout(operation.getRequestConnectionTimeout());
  156. ERemoteCopy.ERemoteCopyStatusResult status = eRemoteCopy.getStatus(new ERemoteCopy.IRemoteCopyStatusParameter() {
  157. public String job_token() {
  158. return "";
  159. }
  160. public String client_id() {
  161. return clientID;
  162. }
  163. public ArrayList<ERemoteOperation.ERemoteParam> keys() {
  164. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  165. arrayList.add(ERemoteOperation.ERemoteParam.job_tokens);
  166. return arrayList;
  167. }
  168. });
  169. if (status.success()) {
  170. return status.job_tokens();
  171. }
  172. return new ArrayList<>();
  173. }
  174. protected Result doInBackground(Void... voidArr) {
  175. operation.setHostIP(systemSettings.getPrinterIPAddress());
  176. ERemoteDevice.ERemoteDeviceStatusResult status = operation.getStatus(new ERemoteOperation.IRemoteStatusParameter() {
  177. public String client_id() {
  178. return clientID;
  179. }
  180. public ArrayList<ERemoteOperation.ERemoteParam> keys() {
  181. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  182. arrayList.add(ERemoteOperation.ERemoteParam.printer_state);
  183. arrayList.add(ERemoteOperation.ERemoteParam.printer_state_reasons);
  184. arrayList.add(ERemoteOperation.ERemoteParam.scanner_state);
  185. arrayList.add(ERemoteOperation.ERemoteParam.scanner_state_reasons);
  186. return arrayList;
  187. }
  188. });
  189. Result result = new Result();
  190. if (status.success()) {
  191. result.connetion = ECopyComponent.ICopyDeviceStatusListener.Connection.Succeed;
  192. result.printer = getDeviceState(status.printer_state());
  193. result.scanner = getDeviceState(status.scanner_state());
  194. result.printerReasons = getPrinterReasons(status.printer_state_reasons());
  195. result.scannerReasons = getScannerReasons(status.scanner_state_reasons());
  196. result.jobTokens = getJobTokens();
  197. } else {
  198. result.connetion = ECopyComponent.ICopyDeviceStatusListener.Connection.Failed;
  199. result.printer = ECopyComponent.ICopyDeviceStatusListener.DeviceState.Stopped;
  200. result.scanner = ECopyComponent.ICopyDeviceStatusListener.DeviceState.Stopped;
  201. result.printerReasons = getPrinterErrorReasons();
  202. result.scannerReasons = getScannerErrorReasons();
  203. result.jobTokens = new ArrayList<>();
  204. }
  205. return result;
  206. }
  207. protected void onPostExecute(Result result) {
  208. statusListener.onDeviceStatus(result.connetion, result.printer, result.scanner, result.printerReasons, result.scannerReasons, result.jobTokens);
  209. }
  210. }