ERemoteOperation.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. package epson.print.rpcopy.Component.eremoteoperation;
  2. import android.util.Log;
  3. import com.epson.iprint.prtlogger.Analytics;
  4. import com.epson.mobilephone.common.wifidirect.ActivityControlWiFi;
  5. import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
  6. import org.apache.commons.lang.CharEncoding;
  7. import org.json.JSONObject;
  8. import java.io.ByteArrayOutputStream;
  9. import java.io.UnsupportedEncodingException;
  10. import java.util.ArrayList;
  11. import java.util.Arrays;
  12. import java.util.HashMap;
  13. import java.util.Iterator;
  14. import java.util.List;
  15. import epson.common.IPAddressUtils;
  16. import epson.common.httpclient.BasicNameValuePair;
  17. import epson.common.httpclient.IAHttpClient;
  18. import epson.print.CommonDefine;
  19. import epson.print.Util.EPLog;
  20. public class ERemoteOperation {
  21. String hostIP;
  22. int requestConnectionTimeout = ActivityControlWiFi.SCANNING_TIMEOUT;
  23. public interface IRemoteOperationParameter {
  24. String client_id();
  25. }
  26. public interface IRemoteStatusParameter extends IRemoteOperationParameter {
  27. ArrayList<ERemoteParam> keys();
  28. }
  29. public void setHostIP(String str) {
  30. hostIP = new String(str);
  31. }
  32. public String getHostIP() {
  33. return hostIP;
  34. }
  35. public void setRequestConnectionTimeout(int i) {
  36. requestConnectionTimeout = i;
  37. }
  38. public int getRequestConnectionTimeout() {
  39. return requestConnectionTimeout;
  40. }
  41. public enum ERemoteParam {
  42. client_id("client-id"),
  43. success("success"),
  44. reason("reason"),
  45. illegal_combination("illegal_combination"),
  46. illegal_state("illegal_state"),
  47. already_finished("already_finished"),
  48. unknown_token("unknown_token"),
  49. busy("busy"),
  50. job_token("job-token"),
  51. next_document("next-document"),
  52. functions("functions"),
  53. keys("keys"),
  54. device("device"),
  55. printer(WiFiDirectManager.DEVICE_TYPE_PRINTER),
  56. scanner(WiFiDirectManager.DEVICE_TYPE_SCANNER),
  57. copy("copy"),
  58. copy_photo("copy_photo"),
  59. repeat_copy("repeat_copy"),
  60. print_x_disc_tray_state("print-x-disc-tray-state"),
  61. media_empty("media-empty"),
  62. tray_set("tray-set"),
  63. tray_missing("tray-missing"),
  64. x_remove_background("x-remove-background"),
  65. x_cut_line("x-cut-line"),
  66. x_cut_line_style("x-cut-line-style"),
  67. dash("-"),
  68. dot("dot"),
  69. continuous("continuous"),
  70. x_cut_line_weight("x-cut-line-weight"),
  71. thin("thin"),
  72. medium("medium"),
  73. thick("thick"),
  74. printer_state("printer-state"),
  75. scanner_state("scanner-state"),
  76. idle("idle"),
  77. processing("processing"),
  78. stopped("stopped"),
  79. printer_state_reasons("printer-state-reasons"),
  80. none("none"),
  81. marker_supply_empty_error("marker-supply-empty-error"),
  82. marker_waste_full_error("marker-waste-full-error"),
  83. media_jam_error("media-jam-error"),
  84. media_empty_error("media-empty-error"),
  85. input_tray_missing_error("input-tray-missing-error"),
  86. cover_open_error("cover-open-error"),
  87. output_area_full_error("output-area-full-error"),
  88. other_error("other-error"),
  89. marker_supply_low_warning("marker-supply-low-warning"),
  90. cover_open("cover-open"),
  91. scanner_state_reasons("scanner-state-reasons"),
  92. media_size_missmatch_error("media-size-missmatch-error"),
  93. document_on_adf("document-on-adf"),
  94. components("components"),
  95. disc_tray("disc-tray"),
  96. adf("adf"),
  97. layout("layout"),
  98. standard("standard"),
  99. borderless("borderless"),
  100. two_up("2-up"),
  101. two_up_book("2-up-book"),
  102. book_two_sided("book-two-sided"),
  103. mirror("mirror"),
  104. upper_half("upper-half"),
  105. lower_half("lower_half"),
  106. _3_up("3-up"),
  107. _4_up("4-up"),
  108. _9_up("9-up"),
  109. _16_up("16-up"),
  110. two_repeat("2-repeat"),
  111. four_repeat("4-repeat"),
  112. auto_repeat("auto-repeat"),
  113. scan_sides("scan-sides"),
  114. print_sides("print-sides"),
  115. one_sided("one-sided"),
  116. two_sided_short_edge("two-sided-short-edge"),
  117. two_sided_long_edge("two-sided-long-edge"),
  118. x_two_sided("x-two-sided"),
  119. scan_media_size("scan-media-size"),
  120. unused("unused"),
  121. iso_a4_210x297mm("iso_a4_210x297mm"),
  122. jis_b5_182x257mm("jis_b5_182x257mm"),
  123. print_media_type("print-media-type"),
  124. stationery("stationery"),
  125. photographic_high_gloss("photographic-high-gloss"),
  126. photographic("photographic"),
  127. photographic_semi_gloss("photographic-semi-gloss"),
  128. photographic_glossy("photographic-glossy"),
  129. custom_media_type_epson_44("custom-media-type-epson-44"),
  130. photographic_matte("photographic-matte"),
  131. stationery_coated("stationery-coated"),
  132. custom_media_type_epson_2a("custom-media-type-epson-2a"),
  133. stationery_inkjet("stationery-inkjet"),
  134. custom_media_type_epson_1b("custom-media-type-epson-1b"),
  135. custom_media_type_epson_02("custom-media-type-epson-02"),
  136. custom_media_type_epson_19("custom-media-type-epson-19"),
  137. custom_media_type_epson_22("custom-media-type_epson-22"),
  138. labels("labels"),
  139. jis_b4_257x364mm("jis_b4_257x364mm"),
  140. envelope("envelope"),
  141. custom_media_type_epson_47("custom-media-type-epson-47"),
  142. custom_media_type_epson_20("custom-media-type-epson-20"),
  143. custom_media_type_epson_39("custom-media-type-epson-39"),
  144. custom_media_type_epson_46("custom-media-type-epson-46"),
  145. stationery_heavyweight("stationery-heavyweight"),
  146. stationery_letterhead("stationery-letterhead"),
  147. print_media_size("print-media-size"),
  148. oe_photo_l_3_5x5in("oe_photo-l_3.5x5in"),
  149. na_5x7_5x7in("na_5x7_5x7in"),
  150. jpn_hagaki_100x148mm("jpn_hagaki_100x148mm"),
  151. na_index_4x6_4x6in("na_index-4x6_4x6in"),
  152. na_govt_letter_8x10in("na_govt-letter_8x10in"),
  153. na_letter_8_5x11in("na_letter_8.5x11in"),
  154. na_legal_8_5x14in("na_legal_8.5x14in"),
  155. iso_a5_148x210mm("iso_a5_148x210mm"),
  156. custom_4psize_254x305mm("custom_4psize_254x305mm"),
  157. iso_a3_297x420mm("iso_a3_297x420mm"),
  158. na_ledger_11x17in("na_ledger_11x17in"),
  159. iso_a6_105x148mm("iso_a6_105x148mm"),
  160. jpn_chou3_120x235mm("jpn_chou3_120x235mm"),
  161. jpn_chou4_90x205mm("jpn_chou4_90x205mm"),
  162. custom_epson_18_120x176mm("custom_epson-18_120x176mm"),
  163. custom_epson_1A_98x148mm("custom_epson-1A_98x148mm"),
  164. jpn_you4_105x235mm("jpn_you4_105x235mm"),
  165. iso_c6_114x162mm("iso_c6_114x162mm"),
  166. jpn_kaku2_240x332mm("jpn_kaku2_240x332mm"),
  167. iso_c4_229x324mm("iso_c4_229x324mm"),
  168. custom_cardsize_55x91mm("custom_cardsize_55x91mm"),
  169. custom_creditcardsize_54x86mm("custom_creditcardsize_54x86mm"),
  170. custom_hivision_101_6x180_6mm("custom_hivision_101.6x180.6mm"),
  171. iso_dl_110x220mm("iso_dl_110x220mm"),
  172. jis_b6_128x182mm("jis_b6_128x182mm"),
  173. na_executive_7_25x10_5in("na_executive_7.25x10.5in"),
  174. na_foolscap_8_5x13in("na_foolscap_8.5x13in"),
  175. na_edp_11x14in("na_edp_11x14in"),
  176. na_number_10_4_125x9_5in("na_number-10_4.125x9.5in"),
  177. om_8k_270x390mm("om_8k_270x390mm"),
  178. om_16k_195x270mm("om_16k_195x270mm"),
  179. na_invoice_5_5x8_5in("na_invoice_5.5x8.5in"),
  180. custom_epson_indianlegal_215x345mm("custom_epson-indianlegal_215x345mm"),
  181. na_oficio_8_5x13_4in("na_oficio_8.5x13.4in"),
  182. om_folio_sp_215x315mm("om_folio-sp_215x315mm"),
  183. scan_content_type("scan-content-type"),
  184. text("text"),
  185. mixed("mixed"),
  186. print_media_source("print-media-source"),
  187. top("top"),
  188. bottom("bottom"),
  189. manual("manual"),
  190. rear("rear"),
  191. print_quality("print-quality"),
  192. draft("draft"),
  193. normal("normal"),
  194. high("high"),
  195. best("x-best"),
  196. print_sheet_collate("print-sheet-collate"),
  197. collated("collated"),
  198. uncollated("uncollated"),
  199. fixed_parameters("fixed-parameters"),
  200. preferred_parameters("preferred-parameters"),
  201. priority_order("priority-order"),
  202. default_as_fixed("default-as-fixed"),
  203. frame("frame"),
  204. oval("oval"),
  205. oval_soft_edge("oval-soft-edge"),
  206. copies("copies"),
  207. color_effects_type("color-effects-type"),
  208. color("color"),
  209. monochrome_grayscale("monochrome-grayscale"),
  210. copy_magnification("copy-magnification"),
  211. auto("auto"),
  212. x_density("x-density"),
  213. print_x_bleed("print-x-bleed"),
  214. midium("midium"),
  215. minimum("minimum"),
  216. orientation("orientation"),
  217. portrait("portrait"),
  218. landscape("landscape"),
  219. print_x_dry_time("print-x-dry-time"),
  220. Long("long"),
  221. longer("longer"),
  222. print_x_auto_pg("print-x-auto-pg"),
  223. on("on"),
  224. off("off"),
  225. job_state("job-state"),
  226. nextpaper("nextpaper"),
  227. scanning("scanning"),
  228. printing("printing"),
  229. copying("copying"),
  230. canceling("canceling"),
  231. finished("finished"),
  232. pending("pending"),
  233. pending_for_template("pending-for-template"),
  234. waiting_image_for_template("waiting-image-for-template"),
  235. printing_template("printing-template"),
  236. waiting_image("waiting-image"),
  237. waiting_template("waiting-template"),
  238. job_result("job-result"),
  239. canceled("canceled"),
  240. memory_full("memory_full"),
  241. remove_adf_paper("remove_adf_paper"),
  242. set_adf_paper("set_adf_paper"),
  243. document_error("document_error"),
  244. image_too_large("image-too-large"),
  245. communication_error("communication-error"),
  246. job_tokens("job-tokens"),
  247. job_print_total_pages("job-print-total-pages"),
  248. job_print_current_pages("job-print-current-pages"),
  249. job_image_post_url("job-image-post-url"),
  250. x_apf("x-apf"),
  251. x_color_restoration("x-color-restoration"),
  252. scan_count("scan-count"),
  253. scan_area_x("scan-area-x"),
  254. scan_area_y("scan-area-y"),
  255. scan_area_width("scan-area-width"),
  256. scan_area_height("scan-area-height"),
  257. scan_area_resolution("scan-area-resolution"),
  258. x_fit_gamma("x-fit-gamma"),
  259. x_fit_matrix("x-fit-matrix"),
  260. x_scale("x-scale"),
  261. x_scale_fullsize("x-scale-fullsize"),
  262. x_scale_custom("x-scale-custom"),
  263. x_scale_autofit("x-scale-autofit"),
  264. x_scale_a4_to_postcard("x-scale-a4-to-postcard"),
  265. x_scale_2l_to_postcard("x-scale-2l-to-postcard"),
  266. x_scale_l_to_postcard("x-scale-l-to-postcard"),
  267. x_scale_l_to_2l("x-scale-l-to-2l"),
  268. x_scale_2l_to_a4("x-scale-2l-to-a4"),
  269. x_scale_postcard_to_a4("x-scale-postcard-to-a4"),
  270. x_scale_l_to_a4("x-scale-l-to-a4"),
  271. x_scale_a4_to_b5("x-scale-a4-to-b5"),
  272. x_scale_b5_to_a4("x-scale-b5-to-a4"),
  273. x_scale_letter_to_kg("x-scale-letter-to-kg"),
  274. x_scale_kg_to_letter("x-scale-kg-to-letter"),
  275. x_scale_letter_to_2l("x-scale-letter-to-2l"),
  276. x_scale_2l_to_letter("x-scale-2l-to-letter"),
  277. x_scale_kg_to_a4("x-scale-kg-to-a4"),
  278. x_scale_a4_to_kg("x-scale-a4-to-kg"),
  279. x_scale_a4_to_2l("x-scale-a4-to-2l"),
  280. x_scale_kg_to_8x10("x-scale-kg-to-8x10"),
  281. x_scale_8x10_to_2l("x-scale-8x10-to-2l"),
  282. x_scale_legal_to_letter("x-scale-legal-to-letter"),
  283. x_scale_2l_to_kg("x-scale-2l-to-kg"),
  284. x_scale_kg_to_2l("x-scale-kg-to-2l"),
  285. x_scale_a5_to_a4("x-scale-a5-to-a4"),
  286. x_scale_a4_to_a5("x-scale-a4-to-a5"),
  287. x_scale_a4_to_a3("x-scale-a4-to-a3"),
  288. x_scale_letter_to_11x17("x-scale-letter-to-11x17"),
  289. x_borderless("layout"),
  290. x_null(""),
  291. x_failed_communication("x-failed-communication"),
  292. x_unknown("x-unknown"),
  293. x_invalid_photo_setting("x-invalid-photo-setting");
  294. public String string;
  295. private ERemoteParam(String str) {
  296. string = str;
  297. }
  298. public static ERemoteParam stringOf(String str) {
  299. for (ERemoteParam eRemoteParam : values()) {
  300. if (eRemoteParam.string.compareTo(str) == 0) {
  301. return eRemoteParam;
  302. }
  303. }
  304. return x_null;
  305. }
  306. public String toString() {
  307. return string;
  308. }
  309. }
  310. enum RequestParam {
  311. remote_operation("remote_operation"),
  312. v1("v1"),
  313. HTTP(Analytics.EXTENSION_STRING_WEB),
  314. Content_Type("application/x-www-form-urlencoded"),
  315. User_Agent("Mozilla/5.0"),
  316. device("device"),
  317. printer(WiFiDirectManager.DEVICE_TYPE_PRINTER),
  318. scanner(WiFiDirectManager.DEVICE_TYPE_SCANNER),
  319. copy("copy"),
  320. copy_photo("copy_photo"),
  321. combo("combo"),
  322. repeat_copy("repeat_copy"),
  323. get_functions("get_functions"),
  324. get_status("get_status"),
  325. get_components("get_components"),
  326. get_options("get_options"),
  327. clear_error("clear_error"),
  328. cancel("cancel"),
  329. document_changed("document_changed");
  330. public String string;
  331. private RequestParam(String str) {
  332. string = str;
  333. }
  334. }
  335. public static class ERemoteOperationResult {
  336. JSONObject json;
  337. ERemoteRequestBuilder request;
  338. static JSONObject parseResponse(IAHttpClient.HttpResponse httpResponse) {
  339. JSONObject jSONObject = new JSONObject();
  340. try {
  341. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  342. httpResponse.getEntity().writeTo(byteArrayOutputStream);
  343. Log.d("ERequest C", byteArrayOutputStream.toString());
  344. return new JSONObject(byteArrayOutputStream.toString());
  345. } catch (Exception e) {
  346. e.printStackTrace();
  347. return jSONObject;
  348. }
  349. }
  350. public ERemoteOperationResult(JSONObject jSONObject) {
  351. json = jSONObject;
  352. }
  353. public String toString() {
  354. return json.toString();
  355. }
  356. public boolean isNull(ERemoteParam eRemoteParam) {
  357. return json.isNull(eRemoteParam.string);
  358. }
  359. public void setRemoteRequestBuilder(ERemoteRequestBuilder eRemoteRequestBuilder) {
  360. request = eRemoteRequestBuilder;
  361. }
  362. public boolean success() {
  363. try {
  364. return json.getBoolean(ERemoteParam.success.string);
  365. } catch (Exception e) {
  366. e.printStackTrace();
  367. return false;
  368. }
  369. }
  370. private boolean getBooleanValueOf(ERemoteParam eRemoteParam) {
  371. try {
  372. return json.getBoolean(eRemoteParam.string);
  373. } catch (Exception e) {
  374. e.printStackTrace();
  375. return false;
  376. }
  377. }
  378. private int getIntValueOf(ERemoteParam eRemoteParam) {
  379. try {
  380. return json.getInt(eRemoteParam.string);
  381. } catch (Exception unused) {
  382. return 0;
  383. }
  384. }
  385. private String getStringValueOf(ERemoteParam eRemoteParam) {
  386. try {
  387. return json.getString(eRemoteParam.string);
  388. } catch (Exception e) {
  389. e.printStackTrace();
  390. return "";
  391. }
  392. }
  393. private ArrayList<String> getStringsValueOf(ERemoteParam eRemoteParam) {
  394. ArrayList<String> arrayList = new ArrayList<>();
  395. try {
  396. for (String trim : json.getString(eRemoteParam.string).split(PreferencesConstants.COOKIE_DELIMITER)) {
  397. arrayList.add(trim.trim());
  398. }
  399. } catch (Exception e) {
  400. e.printStackTrace();
  401. }
  402. return arrayList;
  403. }
  404. private ERemoteParam getParamValueOf(ERemoteParam eRemoteParam) {
  405. ERemoteParam eRemoteParam2 = ERemoteParam.x_null;
  406. try {
  407. return ERemoteParam.stringOf(json.getString(eRemoteParam.string));
  408. } catch (Exception e) {
  409. if (eRemoteParam == null) {
  410. EPLog.e("ERemoteOpe", "param null");
  411. } else {
  412. String str = eRemoteParam.string;
  413. if (str == null) {
  414. str = "param.string[==null]";
  415. }
  416. EPLog.e("ERemoteOpe", "getString(" + str + ")");
  417. }
  418. e.printStackTrace();
  419. return eRemoteParam2;
  420. }
  421. }
  422. private ERemoteParam getDefaultValueOf(ERemoteParam eRemoteParam) {
  423. ERemoteParam eRemoteParam2 = ERemoteParam.x_null;
  424. try {
  425. JSONObject jSONObject = json;
  426. return ERemoteParam.stringOf(jSONObject.getString(eRemoteParam.string + "-default"));
  427. } catch (Exception e) {
  428. e.printStackTrace();
  429. return eRemoteParam2;
  430. }
  431. }
  432. private ArrayList<ERemoteParam> getOptionsValueOf(ERemoteParam eRemoteParam) {
  433. ArrayList<ERemoteParam> arrayList = new ArrayList<>();
  434. try {
  435. for (String trim : json.getString(eRemoteParam.string + "-options").split(PreferencesConstants.COOKIE_DELIMITER)) {
  436. ERemoteParam stringOf = ERemoteParam.stringOf(trim.trim());
  437. if (stringOf != ERemoteParam.x_null) {
  438. arrayList.add(stringOf);
  439. }
  440. }
  441. } catch (Exception e) {
  442. EPLog.e("OperationResult", "getOptionsValueOf() Exception <" + e.toString() + ">");
  443. e.printStackTrace();
  444. }
  445. return arrayList;
  446. }
  447. private ArrayList<ERemoteParam> getParamsValueOf(ERemoteParam eRemoteParam) {
  448. ArrayList<ERemoteParam> arrayList = new ArrayList<>();
  449. try {
  450. for (String trim : getStringValueOf(eRemoteParam).split(PreferencesConstants.COOKIE_DELIMITER)) {
  451. arrayList.add(ERemoteParam.stringOf(trim.trim()));
  452. }
  453. } catch (Exception e) {
  454. e.printStackTrace();
  455. }
  456. return arrayList;
  457. }
  458. }
  459. public class ERemoteReasonResult extends ERemoteOperationResult {
  460. public ERemoteReasonResult(JSONObject jSONObject) {
  461. super(jSONObject);
  462. }
  463. public ERemoteParam reason() {
  464. return getParamValueOf(ERemoteParam.reason);
  465. }
  466. }
  467. class ERemoteRequest {
  468. IAHttpClient.HttpPost request;
  469. int timeout;
  470. public ERemoteRequest(String str, ArrayList<BasicNameValuePair> arrayList, int i) {
  471. try {
  472. request = new IAHttpClient.HttpPost(str);
  473. request.setContentEncoding(CharEncoding.UTF_8);
  474. request.setContentType(RequestParam.Content_Type.string);
  475. request.setEntity(IAHttpClient.HttpPost.getUrlEncodedFormEntity(arrayList, CharEncoding.UTF_8));
  476. timeout = i;
  477. } catch (UnsupportedEncodingException e) {
  478. e.printStackTrace();
  479. }
  480. }
  481. public JSONObject execute() {
  482. try {
  483. Log.d("ERequest A", request.getURI().toString());
  484. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  485. request.getEntity().writeTo(byteArrayOutputStream);
  486. Log.d("ERequest B", byteArrayOutputStream.toString());
  487. IAHttpClient iAHttpClient = new IAHttpClient();
  488. iAHttpClient.setConnectionTimeout(timeout);
  489. iAHttpClient.setSoTimeout(timeout);
  490. return ERemoteOperationResult.parseResponse(iAHttpClient.execute(request));
  491. } catch (Exception e) {
  492. e.printStackTrace();
  493. return new JSONObject();
  494. }
  495. }
  496. }
  497. static class ERemoteRequestBuilder extends ERemoteOperation {
  498. RequestParam command;
  499. ArrayList<BasicNameValuePair> messageBody = new ArrayList<>();
  500. RequestParam operation;
  501. HashMap<ERemoteParam, Object> remoteParam;
  502. StringBuffer requestURI;
  503. int timeout;
  504. RequestParam version;
  505. public interface VariantValueConverter {
  506. ERemoteParam convertValue(int i);
  507. }
  508. ERemoteRequestBuilder(String str, RequestParam requestParam, RequestParam requestParam2, RequestParam requestParam3, int i) {
  509. operation = requestParam;
  510. version = requestParam2;
  511. command = requestParam3;
  512. timeout = i;
  513. StringBuffer stringBuffer = new StringBuffer();
  514. stringBuffer.append(CommonDefine.SLASH);
  515. stringBuffer.append(RequestParam.remote_operation.string);
  516. stringBuffer.append(CommonDefine.SLASH);
  517. stringBuffer.append(requestParam2.string);
  518. stringBuffer.append(CommonDefine.SLASH);
  519. stringBuffer.append(requestParam.string);
  520. stringBuffer.append(CommonDefine.SLASH);
  521. stringBuffer.append(requestParam3.string);
  522. requestURI = new StringBuffer(IPAddressUtils.buildURL(RequestParam.HTTP.string, str, stringBuffer.toString()));
  523. remoteParam = new HashMap<>();
  524. }
  525. private void deleteLastCharIf(StringBuffer stringBuffer, char c) {
  526. if (stringBuffer.length() > 0) {
  527. int length = stringBuffer.length() - 1;
  528. if (stringBuffer.charAt(length) == c) {
  529. stringBuffer.deleteCharAt(length);
  530. }
  531. }
  532. }
  533. public static ERemoteRequestBuilder requestDevice(String str, RequestParam requestParam, int i) {
  534. return new ERemoteRequestBuilder(str, RequestParam.device, RequestParam.v1, requestParam, i);
  535. }
  536. public static ERemoteRequestBuilder requestPrinter(String str, RequestParam requestParam, int i) {
  537. return new ERemoteRequestBuilder(str, RequestParam.printer, RequestParam.v1, requestParam, i);
  538. }
  539. public static ERemoteRequestBuilder requestScanner(String str, RequestParam requestParam, int i) {
  540. return new ERemoteRequestBuilder(str, RequestParam.scanner, RequestParam.v1, requestParam, i);
  541. }
  542. public static ERemoteRequestBuilder requestCopy(String str, RequestParam requestParam, int i) {
  543. return new ERemoteRequestBuilder(str, RequestParam.repeat_copy, RequestParam.v1, requestParam, i);
  544. }
  545. public static ERemoteRequestBuilder requestCopyPhoto(String str, RequestParam requestParam, int i) {
  546. return new ERemoteRequestBuilder(str, RequestParam.copy_photo, RequestParam.v1, requestParam, i);
  547. }
  548. public static ERemoteRequestBuilder requestCombo(String str, RequestParam requestParam, int i) {
  549. return new ERemoteRequestBuilder(str, RequestParam.combo, RequestParam.v1, requestParam, i);
  550. }
  551. public void add(ERemoteParam eRemoteParam, boolean z) {
  552. remoteParam.put(eRemoteParam, new Boolean(z));
  553. messageBody.add(new BasicNameValuePair(eRemoteParam.string, String.valueOf(z)));
  554. }
  555. public void add(ERemoteParam eRemoteParam, int i) {
  556. remoteParam.put(eRemoteParam, new Integer(i));
  557. messageBody.add(new BasicNameValuePair(eRemoteParam.string, String.valueOf(i)));
  558. }
  559. public void add(ERemoteParam eRemoteParam, int[] iArr) {
  560. remoteParam.put(eRemoteParam, Arrays.asList(new int[][]{iArr}));
  561. StringBuffer stringBuffer = new StringBuffer();
  562. for (int append : iArr) {
  563. stringBuffer.append(append);
  564. stringBuffer.append(PreferencesConstants.COOKIE_DELIMITER);
  565. }
  566. deleteLastCharIf(stringBuffer, ',');
  567. messageBody.add(new BasicNameValuePair(eRemoteParam.string, String.valueOf(stringBuffer)));
  568. }
  569. public void add(ERemoteParam eRemoteParam, String str) {
  570. if (!str.equals(ERemoteParam.x_null.string)) {
  571. remoteParam.put(eRemoteParam, str);
  572. messageBody.add(new BasicNameValuePair(eRemoteParam.string, str));
  573. }
  574. }
  575. public void add(ERemoteParam eRemoteParam, int i, VariantValueConverter variantValueConverter) {
  576. String valueOf = String.valueOf(i);
  577. ERemoteParam convertValue = variantValueConverter.convertValue(i);
  578. if (convertValue != null) {
  579. valueOf = convertValue.string;
  580. }
  581. remoteParam.put(eRemoteParam, valueOf);
  582. messageBody.add(new BasicNameValuePair(eRemoteParam.string, valueOf));
  583. }
  584. public void add(ERemoteParam eRemoteParam, ERemoteParam eRemoteParam2) {
  585. if (eRemoteParam2 != ERemoteParam.x_null) {
  586. remoteParam.put(eRemoteParam, eRemoteParam2);
  587. messageBody.add(new BasicNameValuePair(eRemoteParam.string, eRemoteParam2.string));
  588. }
  589. }
  590. public void add(ERemoteParam eRemoteParam, ArrayList<ERemoteParam> arrayList) {
  591. remoteParam.put(eRemoteParam, arrayList);
  592. StringBuffer stringBuffer = new StringBuffer();
  593. Iterator<ERemoteParam> it = arrayList.iterator();
  594. while (it.hasNext()) {
  595. stringBuffer.append(it.next().string);
  596. stringBuffer.append(PreferencesConstants.COOKIE_DELIMITER);
  597. }
  598. deleteLastCharIf(stringBuffer, ',');
  599. messageBody.add(new BasicNameValuePair(eRemoteParam.string, String.valueOf(stringBuffer)));
  600. }
  601. public void add(ERemoteParam eRemoteParam, List<String> list) {
  602. remoteParam.put(eRemoteParam, list);
  603. StringBuffer stringBuffer = new StringBuffer();
  604. for (String append : list) {
  605. stringBuffer.append(append);
  606. stringBuffer.append(PreferencesConstants.COOKIE_DELIMITER);
  607. }
  608. deleteLastCharIf(stringBuffer, ',');
  609. messageBody.add(new BasicNameValuePair(eRemoteParam.string, String.valueOf(stringBuffer)));
  610. }
  611. public ERemoteRequest getRemoteRequest() {
  612. return new ERemoteRequest(requestURI.toString(), messageBody, timeout);
  613. }
  614. }
  615. }