RemoteCopySetOptionTask.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. package epson.print.copy.Component.ecopycomponent;
  2. import android.os.AsyncTask;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import epson.print.copy.Component.eremoteoperation.ERemoteCopy;
  7. import epson.print.copy.Component.eremoteoperation.ERemoteOperation;
  8. class RemoteCopySetOptionTask extends AsyncTask<Void, Void, Result> implements ECopyComponent.ITask {
  9. public static int XScale_2L_to_A4_Value = 165;
  10. public static int XScale_2L_to_A4_ValueEx = 173;
  11. public static int XScale_2L_to_KG_Value = 77;
  12. public static int XScale_2L_to_Letter_Value = 157;
  13. public static int XScale_2L_to_Postcard_Value = 76;
  14. public static int XScale_2L_to_Postcard_ValueEx = 89;
  15. public static int XScale_8x10_to_2L_Value = 61;
  16. public static int XScale_A4_to_2L_Value = 59;
  17. public static int XScale_A4_to_A3_Value = 141;
  18. public static int XScale_A4_to_A5_Value = 69;
  19. public static int XScale_A4_to_B5_Value = 85;
  20. public static int XScale_A4_to_KG_Value = 47;
  21. public static int XScale_A4_to_Postcard_Value = 46;
  22. public static int XScale_A4_to_Postcard_ValueEx = 53;
  23. public static int XScale_A5_to_A4_Value = 141;
  24. public static int XScale_Autofit_Value = ECopyOptionItem.CopyMagnificationAutofitValue;
  25. public static int XScale_B5_to_A4_Value = 114;
  26. public static int XScale_B5_to_A4_ValueEx = 120;
  27. public static int XScale_Custom_Value = 0;
  28. public static int XScale_FullSize_Value = 100;
  29. public static int XScale_KG_to_2L_Value = 115;
  30. public static int XScale_KG_to_8x10_Value = 166;
  31. public static int XScale_KG_to_A4_Value = 195;
  32. public static int XScale_KG_to_Letter_Value = 183;
  33. public static int XScale_L_to_2L_Value = 139;
  34. public static int XScale_L_to_2L_ValueEx = 151;
  35. public static int XScale_L_to_A4_Value = 235;
  36. public static int XScale_L_to_A4_ValueEx = 246;
  37. public static int XScale_L_to_Postcard_Value = 110;
  38. public static int XScale_L_to_Postcard_ValueEx = 125;
  39. public static int XScale_Legal_to_Letter_Value = 78;
  40. public static int XScale_Letter_to_11x17_Value = 129;
  41. public static int XScale_Letter_to_2L_Value = 57;
  42. public static int XScale_Letter_to_KG_Value = 45;
  43. public static int XScale_Postcard_to_A4_Value = 201;
  44. public static int XScale_Postcard_to_A4_ValueEx = 219;
  45. ArrayList<ERemoteOperation.ERemoteParam> changableParams;
  46. String clientID;
  47. HashMap<Integer, ECopyOptionItem.ECopyOptionItemChoice> copyScaleMap;
  48. ERemoteCopy operation = new ERemoteCopy();
  49. ECopyComponent.ICopyOptionListener optionChangedListener;
  50. ECopyOptionContext optionContext;
  51. ECopyOptionItem replacedItem;
  52. ECopyOptionItem selectedItem;
  53. ECopyComponent.ICopySystemSettings systemSettings;
  54. HashMap<ECopyOptionItem.ECopyOptionItemChoice, Integer> xscaleMap;
  55. static HashMap<ECopyOptionItem.ECopyOptionItemChoice, Integer> getXScaleMap(ECopyComponent.ECopyType eCopyType) {
  56. HashMap<ECopyOptionItem.ECopyOptionItemChoice, Integer> hashMap = new HashMap<>();
  57. if (eCopyType == ECopyComponent.ECopyType.Borderless) {
  58. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_FullSize, new Integer(XScale_FullSize_Value));
  59. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_Postcard, new Integer(XScale_A4_to_Postcard_ValueEx));
  60. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_Postcard, new Integer(XScale_2L_to_Postcard_ValueEx));
  61. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_Postcard, new Integer(XScale_L_to_Postcard_ValueEx));
  62. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_2L, new Integer(XScale_L_to_2L_ValueEx));
  63. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_A4, new Integer(XScale_2L_to_A4_ValueEx));
  64. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Postcard_to_A4, new Integer(XScale_Postcard_to_A4_ValueEx));
  65. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_A4, new Integer(XScale_L_to_A4_ValueEx));
  66. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_B5_to_A4, new Integer(XScale_B5_to_A4_ValueEx));
  67. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Custom, new Integer(XScale_Custom_Value));
  68. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit, new Integer(XScale_Autofit_Value));
  69. } else if (eCopyType == ECopyComponent.ECopyType.Mirror) {
  70. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_FullSize, new Integer(XScale_FullSize_Value));
  71. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Custom, new Integer(XScale_Custom_Value));
  72. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit, new Integer(XScale_Autofit_Value));
  73. } else if (eCopyType == ECopyComponent.ECopyType.Standard) {
  74. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_FullSize, new Integer(XScale_FullSize_Value));
  75. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Custom, new Integer(XScale_Custom_Value));
  76. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit, new Integer(XScale_Autofit_Value));
  77. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Letter_to_KG, new Integer(XScale_Letter_to_KG_Value));
  78. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_KG_to_Letter, new Integer(XScale_KG_to_Letter_Value));
  79. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Letter_to_2L, new Integer(XScale_Letter_to_2L_Value));
  80. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_Letter, new Integer(XScale_2L_to_Letter_Value));
  81. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_KG_to_A4, new Integer(XScale_KG_to_A4_Value));
  82. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_KG, new Integer(XScale_A4_to_KG_Value));
  83. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_A4, new Integer(XScale_2L_to_A4_Value));
  84. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_2L, new Integer(XScale_A4_to_2L_Value));
  85. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_KG_to_8x10, new Integer(XScale_KG_to_8x10_Value));
  86. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_8x10_to_2L, new Integer(XScale_8x10_to_2L_Value));
  87. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Legal_to_Letter, new Integer(XScale_Legal_to_Letter_Value));
  88. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_Postcard, new Integer(XScale_A4_to_Postcard_Value));
  89. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_Postcard, new Integer(XScale_2L_to_Postcard_Value));
  90. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_Postcard, new Integer(XScale_L_to_Postcard_Value));
  91. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_2L, new Integer(XScale_L_to_2L_Value));
  92. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Postcard_to_A4, new Integer(XScale_Postcard_to_A4_Value));
  93. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_A4, new Integer(XScale_L_to_A4_Value));
  94. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_B5, new Integer(XScale_A4_to_B5_Value));
  95. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_B5_to_A4, new Integer(XScale_B5_to_A4_Value));
  96. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_KG, new Integer(XScale_2L_to_KG_Value));
  97. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_KG_to_2L, new Integer(XScale_KG_to_2L_Value));
  98. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A5_to_A4, new Integer(XScale_A5_to_A4_Value));
  99. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_A5, new Integer(XScale_A4_to_A5_Value));
  100. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_A3, new Integer(XScale_A4_to_A3_Value));
  101. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Letter_to_11x17, new Integer(XScale_Letter_to_11x17_Value));
  102. } else {
  103. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_FullSize, new Integer(XScale_FullSize_Value));
  104. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_Postcard, new Integer(XScale_A4_to_Postcard_Value));
  105. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_Postcard, new Integer(XScale_2L_to_Postcard_Value));
  106. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_Postcard, new Integer(XScale_L_to_Postcard_Value));
  107. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_2L, new Integer(XScale_L_to_2L_Value));
  108. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_2L_to_A4, new Integer(XScale_2L_to_A4_Value));
  109. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Postcard_to_A4, new Integer(XScale_Postcard_to_A4_Value));
  110. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_L_to_A4, new Integer(XScale_L_to_A4_Value));
  111. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_A4_to_B5, new Integer(XScale_A4_to_B5_Value));
  112. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_B5_to_A4, new Integer(XScale_B5_to_A4_Value));
  113. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Custom, new Integer(XScale_Custom_Value));
  114. hashMap.put(ECopyOptionItem.ECopyOptionItemChoice.XScale_Autofit, new Integer(XScale_Autofit_Value));
  115. }
  116. return hashMap;
  117. }
  118. static HashMap<Integer, ECopyOptionItem.ECopyOptionItemChoice> getCopyMagnificationMap(HashMap<ECopyOptionItem.ECopyOptionItemChoice, Integer> hashMap) {
  119. HashMap<Integer, ECopyOptionItem.ECopyOptionItemChoice> hashMap2 = new HashMap<>();
  120. for (ECopyOptionItem.ECopyOptionItemChoice next : hashMap.keySet()) {
  121. hashMap2.put(Integer.valueOf(hashMap.get(next).intValue()), next);
  122. }
  123. return hashMap2;
  124. }
  125. public static ECopyOptionItem.ECopyOptionItemChoice getScaleChoice(ECopyComponent.ECopyType eCopyType, int i) {
  126. ECopyOptionItem.ECopyOptionItemChoice eCopyOptionItemChoice = getCopyMagnificationMap(getXScaleMap(eCopyType)).get(Integer.valueOf(i));
  127. return eCopyOptionItemChoice != null ? eCopyOptionItemChoice : ECopyOptionItem.ECopyOptionItemChoice.XScale_Custom;
  128. }
  129. public static int getcopyMagnification(ECopyComponent.ECopyType eCopyType, ECopyOptionItem.ECopyOptionItemChoice eCopyOptionItemChoice) {
  130. int intValue = getXScaleMap(eCopyType).get(eCopyOptionItemChoice).intValue();
  131. if (intValue != 0) {
  132. return intValue;
  133. }
  134. return 0;
  135. }
  136. class Result {
  137. ArrayList<ECopyOptionItem> changedItems;
  138. ECopyComponent.ICopyOptionListener.CopyOptionChangedError error;
  139. ECopyOptionItem selectedItem;
  140. Result() {
  141. }
  142. }
  143. public RemoteCopySetOptionTask(ECopyOptionItem eCopyOptionItem, ECopyComponent.ICopyOptionListener iCopyOptionListener) {
  144. selectedItem = eCopyOptionItem;
  145. optionChangedListener = iCopyOptionListener;
  146. }
  147. public static int scaleValue(ECopyOptionItem.ECopyOptionItemChoice eCopyOptionItemChoice) {
  148. return getXScaleMap(ECopyComponent.ECopyType.Standard).get(eCopyOptionItemChoice).intValue();
  149. }
  150. public ECopyComponent.ICopyCancelRequest start() {
  151. super.execute(new Void[0]);
  152. return null;
  153. }
  154. public void setSystemSettings(ECopyComponent.ICopySystemSettings iCopySystemSettings) {
  155. systemSettings = iCopySystemSettings;
  156. }
  157. public void setRequestConnectionTimeout(int i) {
  158. operation.setRequestConnectionTimeout(i);
  159. }
  160. public void setClientID(String str) {
  161. clientID = str;
  162. }
  163. public void setOptionContext(ECopyOptionContext eCopyOptionContext) {
  164. optionContext = eCopyOptionContext;
  165. replacedItem = optionContext.replace(new ECopyOptionItem(selectedItem));
  166. changableParams = new ArrayList<>();
  167. changableParams.add(ERemoteOperation.ERemoteParam.print_media_size);
  168. changableParams.add(ERemoteOperation.ERemoteParam.print_media_type);
  169. changableParams.add(ERemoteOperation.ERemoteParam.scan_content_type);
  170. changableParams.add(ERemoteOperation.ERemoteParam.print_media_source);
  171. changableParams.add(ERemoteOperation.ERemoteParam.print_quality);
  172. xscaleMap = getXScaleMap(eCopyOptionContext.copyType);
  173. copyScaleMap = getCopyMagnificationMap(xscaleMap);
  174. }
  175. public Result getResultLocalOptions() {
  176. Result result = new Result();
  177. result.selectedItem = selectedItem;
  178. result.changedItems = new ArrayList<>();
  179. ECopyOptionItem.ECopyOptionItemKey key = selectedItem.getKey();
  180. if (key == ECopyOptionItem.ECopyOptionItemKey.CopyMagnification) {
  181. result.changedItems.add(optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XScale));
  182. } else if (key == ECopyOptionItem.ECopyOptionItemKey.XScale) {
  183. ECopyOptionItem copyOptionItemOf = optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.CopyMagnification);
  184. int intValue = xscaleMap.get(selectedItem.getSelectedChoice()).intValue();
  185. if (intValue != XScale_Custom_Value) {
  186. copyOptionItemOf.selectValue(intValue);
  187. }
  188. if (intValue != ECopyOptionItem.CopyMagnificationAutofitValue) {
  189. copyOptionItemOf.enabled = true;
  190. } else {
  191. copyOptionItemOf.enabled = false;
  192. }
  193. result.changedItems.add(copyOptionItemOf);
  194. } else {
  195. result.changedItems = null;
  196. }
  197. return result;
  198. }
  199. protected Result doInBackground(Void... voidArr) {
  200. operation.setHostIP(systemSettings.getPrinterIPAddress());
  201. if (selectedItem.isLocalOption) {
  202. return getResultLocalOptions();
  203. }
  204. ERemoteCopy.ERemoteCopyOptionsResult options = operation.getOptions(new ERemoteCopy.IRemoteCopyOptionsParameter() {
  205. public boolean default_as_fixed() {
  206. return true;
  207. }
  208. public String client_id() {
  209. return clientID;
  210. }
  211. public ERemoteOperation.ERemoteParam layout() {
  212. return ECopyOptionItem.layoutOf (optionContext.getCopyType());
  213. }
  214. public ERemoteOperation.ERemoteParam scan_sides() {
  215. return optionContext.getCopyOptionsResult().parameter_default(ERemoteOperation.ERemoteParam.scan_sides);
  216. }
  217. public ERemoteOperation.ERemoteParam print_sides() {
  218. return optionContext.getCopyOptionsResult().parameter_default(ERemoteOperation.ERemoteParam.print_sides);
  219. }
  220. public ERemoteOperation.ERemoteParam scan_media_size() {
  221. return optionContext.getCopyOptionsResult().parameter_default(ERemoteOperation.ERemoteParam.scan_media_size);
  222. }
  223. public ERemoteOperation.ERemoteParam scan_content_type() {
  224. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.ScanContentType).getSelectedChoice().param;
  225. }
  226. public ERemoteOperation.ERemoteParam print_media_type() {
  227. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaType).getSelectedChoice().param;
  228. }
  229. public ERemoteOperation.ERemoteParam print_media_size() {
  230. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSize).getSelectedChoice().param;
  231. }
  232. public ERemoteOperation.ERemoteParam print_media_source() {
  233. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSource).getSelectedChoice().param;
  234. }
  235. public ERemoteOperation.ERemoteParam print_quality() {
  236. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintQuality).getSelectedChoice().param;
  237. }
  238. public ERemoteOperation.ERemoteParam print_sheet_collate() {
  239. return optionContext.getCopyOptionsResult().parameter_default(ERemoteOperation.ERemoteParam.print_sheet_collate);
  240. }
  241. public ArrayList<ERemoteOperation.ERemoteParam> fixed_parameters() {
  242. return new ArrayList<>();
  243. }
  244. public ArrayList<ERemoteOperation.ERemoteParam> preferred_parameters() {
  245. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  246. arrayList.add(ERemoteOperation.ERemoteParam.print_sheet_collate);
  247. arrayList.add(ERemoteOperation.ERemoteParam.scan_sides);
  248. arrayList.add(ERemoteOperation.ERemoteParam.layout);
  249. arrayList.add(ERemoteOperation.ERemoteParam.print_sides);
  250. arrayList.add(ERemoteOperation.ERemoteParam.scan_media_size);
  251. arrayList.add(ERemoteOperation.ERemoteParam.print_media_size);
  252. arrayList.add(ERemoteOperation.ERemoteParam.print_media_type);
  253. arrayList.add(ERemoteOperation.ERemoteParam.scan_content_type);
  254. arrayList.add(ERemoteOperation.ERemoteParam.print_quality);
  255. arrayList.add(ERemoteOperation.ERemoteParam.print_media_source);
  256. return arrayList;
  257. }
  258. public ArrayList<ERemoteOperation.ERemoteParam> priority_order() {
  259. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  260. arrayList.add(ERemoteOperation.ERemoteParam.print_sheet_collate);
  261. arrayList.add(ERemoteOperation.ERemoteParam.scan_sides);
  262. arrayList.add(ERemoteOperation.ERemoteParam.layout);
  263. arrayList.add(ERemoteOperation.ERemoteParam.print_sides);
  264. arrayList.add(ERemoteOperation.ERemoteParam.scan_media_size);
  265. arrayList.add(ERemoteOperation.ERemoteParam.print_media_size);
  266. arrayList.add(ERemoteOperation.ERemoteParam.print_media_type);
  267. arrayList.add(ERemoteOperation.ERemoteParam.scan_content_type);
  268. arrayList.add(ERemoteOperation.ERemoteParam.print_quality);
  269. arrayList.add(ERemoteOperation.ERemoteParam.print_media_source);
  270. return arrayList;
  271. }
  272. });
  273. Result result = new Result();
  274. result.selectedItem = selectedItem;
  275. if (options.success()) {
  276. optionContext.setCopyOptionsResult(options);
  277. result.changedItems = new ArrayList<>();
  278. Iterator<ERemoteOperation.ERemoteParam> it = changableParams.iterator();
  279. while (it.hasNext()) {
  280. ECopyOptionItem createOptionItem = ECopyOptionItem.createOptionItem(it.next(), options);
  281. if (optionContext.isChanged(createOptionItem)) {
  282. result.changedItems.add(createOptionItem);
  283. optionContext.replace(createOptionItem);
  284. }
  285. }
  286. if (result.changedItems.size() == 0) {
  287. result.changedItems = null;
  288. }
  289. } else {
  290. if (options.isNull(ERemoteOperation.ERemoteParam.success)) {
  291. result.error = ECopyComponent.ICopyOptionListener.CopyOptionChangedError.ErrorCommunication;
  292. } else {
  293. result.error = ECopyComponent.ICopyOptionListener.CopyOptionChangedError.Error;
  294. }
  295. result.selectedItem = new ECopyOptionItem(replacedItem);
  296. optionContext.replace(replacedItem);
  297. }
  298. return result;
  299. }
  300. protected void onPostExecute(Result result) {
  301. optionChangedListener.onCopyOptionChanged(result.selectedItem, result.changedItems, result.error);
  302. }
  303. }