RemoteCopyPhotoSetOptionTask.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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.ERemoteCopyPhoto;
  6. import epson.print.copy.Component.eremoteoperation.ERemoteOperation;
  7. class RemoteCopyPhotoSetOptionTask extends AsyncTask<Void, Void, Result> implements ECopyComponent.ITask {
  8. ArrayList<ERemoteOperation.ERemoteParam> changableParams;
  9. String clientID;
  10. ERemoteCopyPhoto operation = new ERemoteCopyPhoto();
  11. ECopyComponent.ICopyOptionListener optionChangedListener;
  12. ECopyOptionContext optionContext;
  13. ECopyOptionItem replacedItem;
  14. ECopyOptionItem selectedItem;
  15. ECopyComponent.ICopySystemSettings systemSettings;
  16. class Result {
  17. ArrayList<ECopyOptionItem> changedItems;
  18. ECopyComponent.ICopyOptionListener.CopyOptionChangedError error;
  19. ECopyOptionItem selectedItem;
  20. Result() {
  21. }
  22. }
  23. public RemoteCopyPhotoSetOptionTask(ECopyOptionItem eCopyOptionItem, ECopyComponent.ICopyOptionListener iCopyOptionListener) {
  24. selectedItem = eCopyOptionItem;
  25. optionChangedListener = iCopyOptionListener;
  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. replacedItem = optionContext.replace(new ECopyOptionItem(selectedItem));
  43. changableParams = new ArrayList<>();
  44. changableParams.add(ERemoteOperation.ERemoteParam.x_borderless);
  45. changableParams.add(ERemoteOperation.ERemoteParam.print_media_size);
  46. changableParams.add(ERemoteOperation.ERemoteParam.print_media_type);
  47. changableParams.add(ERemoteOperation.ERemoteParam.x_apf);
  48. changableParams.add(ERemoteOperation.ERemoteParam.print_quality);
  49. changableParams.add(ERemoteOperation.ERemoteParam.print_media_source);
  50. }
  51. public Result getResultLocalOptions() {
  52. Result result = new Result();
  53. result.selectedItem = selectedItem;
  54. result.changedItems = new ArrayList<>();
  55. return result;
  56. }
  57. protected Result doInBackground(Void... voidArr) {
  58. operation.setHostIP(systemSettings.getPrinterIPAddress());
  59. if (selectedItem.isLocalOption) {
  60. return getResultLocalOptions();
  61. }
  62. ERemoteCopyPhoto.ERemoteCopyPhotoOptionResult options = operation.getOptions(new ERemoteCopyPhoto.IRemoteCopyPhotoOptionsParameter() {
  63. public boolean default_as_fixed() {
  64. return true;
  65. }
  66. public String client_id() {
  67. return clientID;
  68. }
  69. public ERemoteOperation.ERemoteParam layout() {
  70. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XBorderless).getSelectedChoice().param;
  71. }
  72. public ERemoteOperation.ERemoteParam print_media_type() {
  73. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaType).getSelectedChoice().param;
  74. }
  75. public ERemoteOperation.ERemoteParam print_media_size() {
  76. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSize).getSelectedChoice().param;
  77. }
  78. public ERemoteOperation.ERemoteParam print_quality() {
  79. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintQuality).getSelectedChoice().param;
  80. }
  81. public ERemoteOperation.ERemoteParam print_media_source() {
  82. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.PrintMediaSource).getSelectedChoice().param;
  83. }
  84. public ERemoteOperation.ERemoteParam x_apf() {
  85. return optionContext.getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey.XApf).getSelectedChoice().param;
  86. }
  87. public ArrayList<ERemoteOperation.ERemoteParam> fixed_parameters() {
  88. return new ArrayList<>();
  89. }
  90. public ArrayList<ERemoteOperation.ERemoteParam> preferred_parameters() {
  91. return new ArrayList<>();
  92. }
  93. public ArrayList<ERemoteOperation.ERemoteParam> priority_order() {
  94. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  95. arrayList.add(ERemoteOperation.ERemoteParam.layout);
  96. arrayList.add(ERemoteOperation.ERemoteParam.print_media_size);
  97. arrayList.add(ERemoteOperation.ERemoteParam.print_media_type);
  98. arrayList.add(ERemoteOperation.ERemoteParam.x_apf);
  99. arrayList.add(ERemoteOperation.ERemoteParam.print_quality);
  100. arrayList.add(ERemoteOperation.ERemoteParam.print_media_source);
  101. return arrayList;
  102. }
  103. });
  104. Result result = new Result();
  105. result.selectedItem = selectedItem;
  106. if (options.success()) {
  107. optionContext.setCopyOptionsResult(options);
  108. result.changedItems = new ArrayList<>();
  109. Iterator<ERemoteOperation.ERemoteParam> it = changableParams.iterator();
  110. while (it.hasNext()) {
  111. ECopyOptionItem createOptionItem = ECopyOptionItem.createOptionItem(it.next(), options);
  112. if (optionContext.isChanged(createOptionItem)) {
  113. result.changedItems.add(createOptionItem);
  114. optionContext.replace(createOptionItem);
  115. }
  116. }
  117. Iterator<ECopyOptionItem> it2 = result.changedItems.iterator();
  118. while (true) {
  119. if (!it2.hasNext()) {
  120. break;
  121. }
  122. ECopyOptionItem next = it2.next();
  123. if (next.getKey() == ECopyOptionItem.ECopyOptionItemKey.XBorderless) {
  124. ECopyOptionItem createLocalOptionItem = ECopyOptionItem.createLocalOptionItem(ERemoteOperation.ERemoteParam.print_x_bleed, options);
  125. if (next.getSelectedChoice() == ECopyOptionItem.ECopyOptionItemChoice.XBorderless_Standard) {
  126. createLocalOptionItem.enabled = false;
  127. }
  128. result.changedItems.add(createLocalOptionItem);
  129. }
  130. }
  131. if (result.changedItems.size() == 0) {
  132. result.changedItems = null;
  133. }
  134. } else {
  135. if (options.isNull(ERemoteOperation.ERemoteParam.success)) {
  136. result.error = ECopyComponent.ICopyOptionListener.CopyOptionChangedError.ErrorCommunication;
  137. } else {
  138. result.error = ECopyComponent.ICopyOptionListener.CopyOptionChangedError.Error;
  139. }
  140. result.selectedItem = new ECopyOptionItem(replacedItem);
  141. optionContext.replace(replacedItem);
  142. }
  143. return result;
  144. }
  145. protected void onPostExecute(Result result) {
  146. optionChangedListener.onCopyOptionChanged(result.selectedItem, result.changedItems, result.error);
  147. }
  148. }