RemoteCopyPhotoGetOptionTask.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package epson.print.copy.Component.ecopycomponent;
  2. import android.os.AsyncTask;
  3. import java.util.ArrayList;
  4. import epson.print.copy.Component.eremoteoperation.ERemoteCopyPhoto;
  5. import epson.print.copy.Component.eremoteoperation.ERemoteOperation;
  6. class RemoteCopyPhotoGetOptionTask extends AsyncTask<Void, Void, Result> implements ECopyComponent.ITask {
  7. String clientID;
  8. ECopyComponent.ICopyOptionContextListener contextListener;
  9. ECopyComponent.ECopyType copyType;
  10. ERemoteCopyPhoto operation = new ERemoteCopyPhoto();
  11. ECopyOptionContext optionContext;
  12. ECopyComponent.ICopySystemSettings systemSettings;
  13. class Result {
  14. ECopyComponent.ECopyType copyType;
  15. ECopyComponent.ICopyOptionContextListener.ContextCreationError error;
  16. ECopyOptionContext optionContext;
  17. Result() {
  18. }
  19. }
  20. public RemoteCopyPhotoGetOptionTask(ECopyComponent.ECopyType eCopyType, ECopyComponent.ICopyOptionContextListener iCopyOptionContextListener) {
  21. copyType = eCopyType;
  22. contextListener = iCopyOptionContextListener;
  23. }
  24. public ECopyComponent.ICopyCancelRequest start() {
  25. super.execute(new Void[0]);
  26. return null;
  27. }
  28. public void setOptionContext(ECopyOptionContext eCopyOptionContext) {
  29. optionContext = eCopyOptionContext;
  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. protected Result doInBackground(Void... voidArr) {
  41. operation.setHostIP(systemSettings.getPrinterIPAddress());
  42. Result result = new Result();
  43. result.copyType = copyType;
  44. final ERemoteCopyPhoto.ERemoteCopyPhotoOptionResult selectableOptions = operation.getSelectableOptions();
  45. if (!selectableOptions.success()) {
  46. if (selectableOptions.isNull(ERemoteOperation.ERemoteParam.success)) {
  47. result.error = ECopyComponent.ICopyOptionContextListener.ContextCreationError.ErrorCommunication;
  48. } else {
  49. result.error = ECopyComponent.ICopyOptionContextListener.ContextCreationError.Error;
  50. }
  51. return result;
  52. }
  53. ERemoteCopyPhoto.ERemoteCopyPhotoOptionResult options = operation.getOptions(new ERemoteCopyPhoto.IRemoteCopyPhotoOptionsParameter() {
  54. public boolean default_as_fixed() {
  55. return true;
  56. }
  57. public String client_id() {
  58. return clientID;
  59. }
  60. public ERemoteOperation.ERemoteParam layout() {
  61. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.layout);
  62. }
  63. public ERemoteOperation.ERemoteParam print_media_type() {
  64. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.print_media_type);
  65. }
  66. public ERemoteOperation.ERemoteParam print_media_size() {
  67. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.print_media_size);
  68. }
  69. public ERemoteOperation.ERemoteParam print_quality() {
  70. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.print_quality);
  71. }
  72. public ERemoteOperation.ERemoteParam print_media_source() {
  73. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.print_media_source);
  74. }
  75. public ERemoteOperation.ERemoteParam x_apf() {
  76. return selectableOptions.parameter_default(ERemoteOperation.ERemoteParam.x_apf);
  77. }
  78. public ArrayList<ERemoteOperation.ERemoteParam> fixed_parameters() {
  79. return new ArrayList<>();
  80. }
  81. public ArrayList<ERemoteOperation.ERemoteParam> preferred_parameters() {
  82. return new ArrayList<>();
  83. }
  84. public ArrayList<ERemoteOperation.ERemoteParam> priority_order() {
  85. ArrayList<ERemoteOperation.ERemoteParam> arrayList = new ArrayList<>();
  86. arrayList.add(ERemoteOperation.ERemoteParam.layout);
  87. arrayList.add(ERemoteOperation.ERemoteParam.print_media_size);
  88. arrayList.add(ERemoteOperation.ERemoteParam.print_media_type);
  89. arrayList.add(ERemoteOperation.ERemoteParam.x_apf);
  90. arrayList.add(ERemoteOperation.ERemoteParam.print_quality);
  91. arrayList.add(ERemoteOperation.ERemoteParam.print_media_source);
  92. return arrayList;
  93. }
  94. });
  95. if (options.success()) {
  96. result.optionContext = new ECopyOptionContext(copyType);
  97. result.optionContext.setCopyOptionsResult(options);
  98. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.print_media_size, options));
  99. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.print_media_type, options));
  100. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.print_media_source, options));
  101. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.print_quality, options));
  102. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.x_apf, options));
  103. result.optionContext.add(ECopyOptionItem.createOptionItem(ERemoteOperation.ERemoteParam.x_borderless, options));
  104. result.optionContext.add(ECopyOptionItem.createLocalOptionItem(ERemoteOperation.ERemoteParam.x_color_restoration, options));
  105. result.optionContext.add(ECopyOptionItem.createLocalOptionItem(ERemoteOperation.ERemoteParam.print_x_bleed, options));
  106. result.optionContext.add(ECopyOptionItem.createLocalOptionItem(ERemoteOperation.ERemoteParam.color_effects_type, options));
  107. } else if (options.isNull(ERemoteOperation.ERemoteParam.success)) {
  108. result.error = ECopyComponent.ICopyOptionContextListener.ContextCreationError.ErrorCommunication;
  109. } else {
  110. result.error = ECopyComponent.ICopyOptionContextListener.ContextCreationError.Error;
  111. }
  112. return result;
  113. }
  114. protected void onPostExecute(Result result) {
  115. contextListener.onCopyOptionContextCreated(result.copyType, result.optionContext, result.error);
  116. }
  117. }