EpsonConnectAccess.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package epson.print.ecclient;
  2. import android.content.Context;
  3. import com.epson.mobilephone.common.EPLog;
  4. import epson.common.Constants;
  5. import epson.provider.SharedPreferencesProvider;
  6. public class EpsonConnectAccess {
  7. private static Factory sFactory;
  8. EcClientLib mEcClientLib = new EcClientLib();
  9. public static class RemotePrinterInfo {
  10. public String mDeviceId;
  11. public String mPrinterName;
  12. public String mSerialNumber;
  13. }
  14. EpsonConnectAccess() {
  15. }
  16. public boolean Initialize() {
  17. return this.mEcClientLib.Initialize();
  18. }
  19. public void Terminate() {
  20. this.mEcClientLib.Terminate();
  21. }
  22. private int internalLogin(String str, String str2, String str3) {
  23. return this.mEcClientLib.Login(str, str2, str3);
  24. }
  25. public int Login(Context context, String str, String str2) {
  26. String quoteForJsonString = EcClientLibUtil.quoteForJsonString(str);
  27. String quoteForJsonString2 = EcClientLibUtil.quoteForJsonString(str2);
  28. String loadClientId = loadClientId(context);
  29. int Login = this.mEcClientLib.Login(quoteForJsonString, quoteForJsonString2, loadClientId);
  30. if (Login == 0 && loadClientId == null) {
  31. saveClientId(context, getClientId());
  32. }
  33. return Login;
  34. }
  35. public int logout() {
  36. return this.mEcClientLib.Logout();
  37. }
  38. private int RegPrinter(String str, String str2, String str3) {
  39. return this.mEcClientLib.RegPrinter(str, str2, str3);
  40. }
  41. public int GetCapability() {
  42. return this.mEcClientLib.GetCapability();
  43. }
  44. public int GetDefaultSetting() {
  45. return this.mEcClientLib.GetDefaultSetting();
  46. }
  47. public int GetPrintLogUri(String str, String str2, String str3, String str4) {
  48. return this.mEcClientLib.GetPrintLogUri(str, str2, str3, str4);
  49. }
  50. public int CreateJob(int i, String str, int i2, EpsJobAttrib epsJobAttrib, int i3, int i4) {
  51. return this.mEcClientLib.CreateJob(i, str, i2, epsJobAttrib, i3, i4);
  52. }
  53. public int EndJob() {
  54. return this.mEcClientLib.EndJob();
  55. }
  56. public int UploadFile(String str, int i, int i2) {
  57. return this.mEcClientLib.UploadFile(str, i, i2);
  58. }
  59. public int GetRenderingStatus() {
  60. return this.mEcClientLib.GetRenderingStatus();
  61. }
  62. public int DownloadPreview(int i, String str) {
  63. return this.mEcClientLib.DownloadPreview(i, str);
  64. }
  65. public int ChangePrintSetting(EpsJobAttrib epsJobAttrib, String str, String str2, boolean z) {
  66. return this.mEcClientLib.ChangePrintSetting(epsJobAttrib, str, str2, z);
  67. }
  68. public int StartPrint(int i, int i2) {
  69. return this.mEcClientLib.StartPrint(i, i2);
  70. }
  71. public void cancel() {
  72. this.mEcClientLib.cancel();
  73. }
  74. public void resetCancel() {
  75. this.mEcClientLib.resetCancel();
  76. }
  77. public RemotePrinterInfo oldLibGetPrinterInfo() {
  78. if (GetCapability() != 0) {
  79. return null;
  80. }
  81. RemotePrinterInfo remotePrinterInfo = new RemotePrinterInfo();
  82. remotePrinterInfo.mSerialNumber = "";
  83. remotePrinterInfo.mPrinterName = this.mEcClientLib.printerName();
  84. remotePrinterInfo.mDeviceId = remotePrinterInfo.mPrinterName;
  85. return remotePrinterInfo;
  86. }
  87. public RemotePrinterInfo newLibGetPrinterInfo() {
  88. if (this.mEcClientLib.GetPrinterInfo() != 0) {
  89. return null;
  90. }
  91. RemotePrinterInfo remotePrinterInfo = new RemotePrinterInfo();
  92. remotePrinterInfo.mDeviceId = this.mEcClientLib.deviceId();
  93. remotePrinterInfo.mSerialNumber = this.mEcClientLib.serialNumber();
  94. remotePrinterInfo.mPrinterName = this.mEcClientLib.printerName2();
  95. return remotePrinterInfo;
  96. }
  97. public RemotePrinterInfo libGetPrinterInfo() {
  98. return newLibGetPrinterInfo();
  99. }
  100. public String getClientId() {
  101. return this.mEcClientLib.clientId();
  102. }
  103. public static EpsonConnectAccess getInstance() {
  104. setFactory();
  105. return sFactory.getEpsonConnectAccessClass();
  106. }
  107. public static synchronized int registRemotePrinter(Context context, String str, String str2) {
  108. synchronized (EpsonConnectAccess.class) {
  109. EpsonConnectAccess instance = getInstance();
  110. if (!instance.Initialize()) {
  111. return -1100;
  112. }
  113. String quoteForJsonString = EcClientLibUtil.quoteForJsonString(str);
  114. String quoteForJsonString2 = EcClientLibUtil.quoteForJsonString(str2);
  115. String loadClientId = loadClientId(context);
  116. int RegPrinter = instance.RegPrinter(quoteForJsonString, quoteForJsonString2, loadClientId);
  117. if (RegPrinter == 0) {
  118. if (loadClientId == null) {
  119. saveClientId(context, instance.getClientId());
  120. }
  121. instance.Terminate();
  122. return RegPrinter;
  123. }
  124. instance.Terminate();
  125. return RegPrinter;
  126. }
  127. }
  128. public static RemotePrinterInfo getPrinterInfo(Context context, String str, String str2) {
  129. EpsonConnectAccess instance = getInstance();
  130. if (!instance.Initialize() || instance.Login(context, str, str2) != 0) {
  131. return null;
  132. }
  133. RemotePrinterInfo libGetPrinterInfo = instance.libGetPrinterInfo();
  134. instance.logout();
  135. instance.Terminate();
  136. return libGetPrinterInfo;
  137. }
  138. static String loadClientId(Context context) {
  139. String string = SharedPreferencesProvider.getInstace(context).getString(Constants.PRINTER_CLIENT_ID, (String) null);
  140. EPLog.d("▲clientId = " + string);
  141. if (string == null || string.length() <= 0) {
  142. return null;
  143. }
  144. return string;
  145. }
  146. static void saveClientId(Context context, String str) {
  147. EPLog.d("▲ save clientId = " + str);
  148. SharedPreferencesProvider.getInstace(context).edit().putString(Constants.PRINTER_CLIENT_ID, str).apply();
  149. }
  150. static Factory setFactory() {
  151. if (sFactory == null) {
  152. sFactory = new Factory();
  153. }
  154. return sFactory;
  155. }
  156. public static class Factory {
  157. public EpsonConnectAccess getEpsonConnectAccessClass() {
  158. return new EpsonConnectAccess();
  159. }
  160. }
  161. public static class AltEpsonConnectAccess extends EpsonConnectAccess {
  162. public RemotePrinterInfo libGetPrinterInfo() {
  163. return oldLibGetPrinterInfo();
  164. }
  165. }
  166. public static class AltFactory extends Factory {
  167. public EpsonConnectAccess getEpsonConnectAccessClass() {
  168. return new AltEpsonConnectAccess();
  169. }
  170. }
  171. }