WiFiDirectManager.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. package com.epson.mobilephone.common.wifidirect;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.content.SharedPreferences;
  6. import android.net.wifi.WifiManager;
  7. import android.os.Handler;
  8. import com.epson.mobilephone.common.wifidirect.SimpleAPInfoDB;
  9. import com.epson.mobilephone.common.wifidirect.WiFiControl;
  10. import epson.common.Constants;
  11. public class WiFiDirectManager {
  12. public static final String DEVICE_TYPE_OTHER = "other";
  13. public static final String DEVICE_TYPE_PRINTER = "printer";
  14. public static final String DEVICE_TYPE_SCANNER = "scanner";
  15. private static final String TAG = "WiFiDirectManager";
  16. public static final int TIMEOUT_CONNECTING = 90;
  17. public static final int TIMEOUT_WIFIDIRECTMODE = 120;
  18. static boolean bCheckDebuggable = false;
  19. static boolean bSimpleAPCreated = false;
  20. static void checkDebuggable(Context context) {
  21. if (!bCheckDebuggable) {
  22. EPLog.isDebuggable(context);
  23. bCheckDebuggable = true;
  24. }
  25. }
  26. public static boolean isWifiEnabled(Context context) {
  27. return ((WifiManager) context.getSystemService(Service.WIFI_SERVICE)).isWifiEnabled();
  28. }
  29. public static boolean isSimpleAP(Context context) {
  30. checkDebuggable(context);
  31. return WiFiControl.isSimpleAP(WiFiUtils.getInstance(context).getCurSSID());
  32. }
  33. public static boolean isWifiDirectFY13(Context context) {
  34. checkDebuggable(context);
  35. return WiFiControl.isSimpleAPFY13WiFiDirect(WiFiUtils.getInstance(context).getCurSSID());
  36. }
  37. public static boolean isWifiDirectP2P(Context context) {
  38. return WifiP2pUtils.getInstance(context).isConnectedWiFiP2P();
  39. }
  40. public static String getCurSSID(Context context) {
  41. return WiFiUtils.getInstance(context).getCurSSID();
  42. }
  43. public static void enableWiFi(Activity activity, int i) {
  44. Intent intent = new Intent(activity, ActivityControlWiFi.class);
  45. intent.putExtra(ActivityControlWiFi.SHOWPROGRESS, true);
  46. intent.putExtra(ActivityControlWiFi.SHOWWIFISETTINGS, false);
  47. activity.startActivityForResult(intent, i);
  48. }
  49. public static void setPriorityToSimpleAP(Context context, boolean z) {
  50. if (z) {
  51. ManageDefaultNetwork.getInstance(context).setDefaultNetworkSimpleAp();
  52. } else {
  53. ManageDefaultNetwork.getInstance(context).resetDefaultNetwork();
  54. }
  55. }
  56. public static boolean isNeedConnect(Context context, String str) {
  57. checkDebuggable(context);
  58. String connectInfo = getConnectInfo(context, str);
  59. if (connectInfo == null) {
  60. return false;
  61. }
  62. return WiFiControl.getInstance(context).isNeedConnect(connectInfo);
  63. }
  64. public static WiFiControl.ConnectType getConnectType(Context context, String str) {
  65. return WiFiControl.getSSIDType(str);
  66. }
  67. public static String getCurConnectInfo(Context context, String str) {
  68. return WiFiControl.getInstance(context).getCurConnectInfo(str);
  69. }
  70. public static String getConnectString(Context context, String str, String str2) {
  71. return WiFiControl.getInstance(context).getEstimateSSID(str, str2);
  72. }
  73. public static boolean connect(Activity activity, String str, int i) {
  74. Intent intent;
  75. checkDebuggable(activity);
  76. EPLog.m86d(TAG, "connect()");
  77. String removeSSIDPrefix = WiFiControl.removeSSIDPrefix(str);
  78. if (C11201.f154x793e0ec3[WiFiControl.getSSIDType(str).ordinal()] != 1) {
  79. intent = new Intent(activity, ActivityConnectSimpleAP.class);
  80. } else {
  81. intent = new Intent(activity, ActivityConnectP2P.class);
  82. }
  83. intent.putExtra(ActivityConnectBase.APNAME, removeSSIDPrefix);
  84. intent.putExtra(ActivityConnectBase.CREATE, false);
  85. intent.putExtra(ActivityConnectBase.SHOWERROR, true);
  86. intent.putExtra(ActivityConnectBase.TIMEOUT, 90);
  87. intent.putExtra(ActivityConnectBase.NEEDINFO, true);
  88. activity.startActivityForResult(intent, i);
  89. return true;
  90. }
  91. /* renamed from: com.epson.mobilephone.common.wifidirect.WiFiDirectManager$1 */
  92. static /* synthetic */ class C11201 {
  93. /* renamed from: $SwitchMap$com$epson$mobilephone$common$wifidirect$WiFiControl$ConnectType */
  94. static final /* synthetic */ int[] f154x793e0ec3 = new int[WiFiControl.ConnectType.values().length];
  95. /* JADX WARNING: Can't wrap try/catch for region: R(6:0|1|2|3|4|6) */
  96. /* JADX WARNING: Code restructure failed: missing block: B:7:?, code lost:
  97. return;
  98. */
  99. /* JADX WARNING: Failed to process nested try/catch */
  100. /* JADX WARNING: Missing exception handler attribute for start block: B:3:0x0014 */
  101. static {
  102. /*
  103. com.epson.mobilephone.common.wifidirect.WiFiControl$ConnectType[] r0 = com.epson.mobilephone.common.wifidirect.WiFiControl.ConnectType.values()
  104. int r0 = r0.length
  105. int[] r0 = new int[r0]
  106. f154x793e0ec3 = r0
  107. int[] r0 = f154x793e0ec3 // Catch:{ NoSuchFieldError -> 0x0014 }
  108. com.epson.mobilephone.common.wifidirect.WiFiControl$ConnectType r1 = com.epson.mobilephone.common.wifidirect.WiFiControl.ConnectType.WiFiP2P // Catch:{ NoSuchFieldError -> 0x0014 }
  109. int r1 = r1.ordinal() // Catch:{ NoSuchFieldError -> 0x0014 }
  110. r2 = 1
  111. r0[r1] = r2 // Catch:{ NoSuchFieldError -> 0x0014 }
  112. L_0x0014:
  113. int[] r0 = f154x793e0ec3 // Catch:{ NoSuchFieldError -> 0x001f }
  114. com.epson.mobilephone.common.wifidirect.WiFiControl$ConnectType r1 = com.epson.mobilephone.common.wifidirect.WiFiControl.ConnectType.SimpleAP // Catch:{ NoSuchFieldError -> 0x001f }
  115. int r1 = r1.ordinal() // Catch:{ NoSuchFieldError -> 0x001f }
  116. r2 = 2
  117. r0[r1] = r2 // Catch:{ NoSuchFieldError -> 0x001f }
  118. L_0x001f:
  119. return
  120. */
  121. throw new UnsupportedOperationException("Method not decompiled: com.epson.mobilephone.common.wifidirect.WiFiDirectManager.C11201.<clinit>():void");
  122. }
  123. }
  124. public static boolean reconnect(Activity activity, String str, int i) {
  125. Intent intent;
  126. checkDebuggable(activity);
  127. EPLog.m86d(TAG, "reconnect()");
  128. String connectInfo = getConnectInfo(activity, str);
  129. if (connectInfo == null) {
  130. EPLog.m86d(TAG, "getConnectInfo == null");
  131. return false;
  132. }
  133. String removeSSIDPrefix = WiFiControl.removeSSIDPrefix(connectInfo);
  134. if (C11201.f154x793e0ec3[WiFiControl.getSSIDType(connectInfo).ordinal()] != 1) {
  135. intent = new Intent(activity, ActivityConnectSimpleAP.class);
  136. } else {
  137. intent = new Intent(activity, ActivityConnectP2P.class);
  138. }
  139. intent.putExtra(ActivityConnectBase.APNAME, removeSSIDPrefix);
  140. intent.putExtra(ActivityConnectBase.CREATE, false);
  141. intent.putExtra(ActivityConnectBase.SHOWERROR, true);
  142. intent.putExtra(ActivityConnectBase.TIMEOUT, 90);
  143. activity.startActivityForResult(intent, i);
  144. return true;
  145. }
  146. public static boolean disconnect(Context context, String str, String str2) {
  147. int networkId;
  148. checkDebuggable(context);
  149. String connectInfo = getConnectInfo(context, str);
  150. if (connectInfo == null) {
  151. return false;
  152. }
  153. if (C11201.f154x793e0ec3[WiFiControl.getSSIDType(connectInfo).ordinal()] == 1) {
  154. return true;
  155. }
  156. String removeSSIDPrefix = WiFiControl.removeSSIDPrefix(connectInfo);
  157. if (!WiFiControl.isSimpleAP(removeSSIDPrefix)) {
  158. return false;
  159. }
  160. WiFiUtils instance = WiFiUtils.getInstance(context);
  161. if (!removeSSIDPrefix.equals(instance.getCurSSID()) || (networkId = instance.getNetworkId(removeSSIDPrefix)) == -1) {
  162. return false;
  163. }
  164. EPLog.m86d(TAG, "disconnect() deviceType = " + str + " printerIp = " + str2);
  165. WiFiUtils.setAutoGoTimeout(str2, 120);
  166. if (bSimpleAPCreated) {
  167. bSimpleAPCreated = false;
  168. if (!instance.invalidateSimpleAP(context, networkId)) {
  169. return false;
  170. }
  171. } else if (!instance.disableSimpleAP(context, networkId)) {
  172. return false;
  173. }
  174. return true;
  175. }
  176. public static SearchWiFiDirectPrinterTask searchWiFiDirectPrinter(Context context, Handler handler, int i, int i2) {
  177. SearchWiFiDirectPrinterTask instance = SearchWiFiDirectPrinterTask.getInstance(context);
  178. if (instance.start(3, handler, i, i2)) {
  179. return instance;
  180. }
  181. return null;
  182. }
  183. public static String getConnectInfo(Context context, String str) {
  184. SharedPreferences sharedPreferences = context.getSharedPreferences(Constants.PREFS_WIFI, 0);
  185. if (str == null || str.length() == 0) {
  186. EPLog.m87e(TAG, "getConnectInfo Ilegal param");
  187. return null;
  188. }
  189. String string = sharedPreferences.getString(Constants.PREFS_WIFI_AUTOCONNECT_SSID + str, (String) null);
  190. if (string == null) {
  191. if (DEVICE_TYPE_PRINTER.equals(str)) {
  192. string = sharedPreferences.getString("AUTOCONNECT_SSID.other", (String) null);
  193. } else if (DEVICE_TYPE_OTHER.equals(str)) {
  194. string = sharedPreferences.getString("AUTOCONNECT_SSID.printer", (String) null);
  195. }
  196. }
  197. if (string != null) {
  198. return WiFiControl.rebuildSSID(string);
  199. }
  200. return string;
  201. }
  202. public static void setConnectInfo(Context context, String str, String str2, String str3) {
  203. if (str == null) {
  204. EPLog.m87e(TAG, "SSID Ilegal param");
  205. return;
  206. }
  207. String rebuildSSID = WiFiControl.rebuildSSID(str);
  208. EPLog.m86d(TAG, "setConnectInfo :" + rebuildSSID);
  209. if (str2 == null || str2.length() == 0) {
  210. EPLog.m87e(TAG, "setConnectInfo Ilegal param");
  211. return;
  212. }
  213. SharedPreferences.Editor edit = context.getSharedPreferences(Constants.PREFS_WIFI, 0).edit();
  214. edit.putString(Constants.PREFS_WIFI_AUTOCONNECT_SSID + str2, rebuildSSID);
  215. edit.commit();
  216. SimpleAPInfoDB.SimpleAPInfo simpleAPInfo = new SimpleAPInfoDB.SimpleAPInfo();
  217. simpleAPInfo.ssid = rebuildSSID;
  218. simpleAPInfo.printerName = str3;
  219. SimpleAPInfoDB.updateSimpleAPInfoDB(context, simpleAPInfo);
  220. }
  221. public static void resetConnectInfo(Context context, String str) {
  222. EPLog.m86d(TAG, "resetConnectInfo :" + str);
  223. if (str == null || str.length() == 0) {
  224. EPLog.m87e(TAG, "resetConnectInfo Ilegal param");
  225. return;
  226. }
  227. SharedPreferences.Editor edit = context.getSharedPreferences(Constants.PREFS_WIFI, 0).edit();
  228. edit.remove(Constants.PREFS_WIFI_AUTOCONNECT_SSID + str);
  229. edit.commit();
  230. }
  231. public static boolean connectSimpleAP(Activity activity, String str, String str2, int i) {
  232. checkDebuggable(activity);
  233. EPLog.m86d(TAG, "connectSimpleAP()");
  234. String removeSSIDPrefix = WiFiControl.removeSSIDPrefix(str);
  235. Intent intent = new Intent(activity, ActivityConnectSimpleAP.class);
  236. intent.putExtra(ActivityConnectBase.APNAME, removeSSIDPrefix);
  237. intent.putExtra(ActivityConnectBase.APPASS, str2);
  238. intent.putExtra(ActivityConnectBase.CREATE, true);
  239. intent.putExtra(ActivityConnectBase.SHOWERROR, false);
  240. intent.putExtra(ActivityConnectBase.TIMEOUT, 90);
  241. intent.putExtra(ActivityConnectBase.NEEDINFO, false);
  242. activity.startActivityForResult(intent, i);
  243. return true;
  244. }
  245. public static boolean disconnectSimpleAP(Context context, String str, String str2) {
  246. int networkId;
  247. checkDebuggable(context);
  248. if (str == null) {
  249. return false;
  250. }
  251. String removeSSIDPrefix = WiFiControl.removeSSIDPrefix(str);
  252. if (!WiFiControl.isSimpleAP(removeSSIDPrefix)) {
  253. return false;
  254. }
  255. WiFiUtils instance = WiFiUtils.getInstance(context);
  256. if (!removeSSIDPrefix.equals(instance.getCurSSID()) || (networkId = instance.getNetworkId(removeSSIDPrefix)) == -1) {
  257. return false;
  258. }
  259. EPLog.m86d(TAG, "disconnectSimpleAP() ssid = " + removeSSIDPrefix + " printerIp = " + str2);
  260. WiFiUtils.setAutoGoTimeout(str2, 120);
  261. if (!instance.disableSimpleAP(context, networkId)) {
  262. return false;
  263. }
  264. return true;
  265. }
  266. public static void setFlagSimpleAPCreated() {
  267. bSimpleAPCreated = true;
  268. }
  269. public static int getLastDetailError() {
  270. return ActivityConnectSimpleAP.getLastDetailResult();
  271. }
  272. }