RemoteCopyPhotoSetOptionTask.java 7.9 KB

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