ActivityWiFiDirectManual.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package com.epson.mobilephone.common.wifidirect;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.net.wifi.WifiManager;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.os.Message;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.webkit.WebView;
  11. import android.widget.Toast;
  12. import epson.common.DialogProgress;
  13. import epson.common.DialogProgressViewModel;
  14. import java.util.Deque;
  15. public class ActivityWiFiDirectManual extends ActivityWiFiDirectBase {
  16. private static final String IDD_WIFI_WAITING = "idd_wifi_waiting";
  17. private static final int ID_FOUND = 1;
  18. private static final int ID_NOT_FOUND = 2;
  19. private static final int ID_REQUEST_PERMISSION = 1;
  20. private static final int ID_WIFI_SETTINGS = 0;
  21. private static final String PARAM_NO_LCD = "NO_LCD";
  22. private static final int TIMEOUT_CONNECTING = 30;
  23. Handler mHandler = new Handler() {
  24. public void handleMessage(Message message) {
  25. super.handleMessage(message);
  26. switch (message.what) {
  27. case 1:
  28. Bundle data = message.getData();
  29. if (data != null) {
  30. String string = data.getString("name");
  31. String string2 = data.getString(escprLib.PRINTER_IP);
  32. String string3 = data.getString("id");
  33. if (string != null && string2 != null && string3 != null) {
  34. ActivityWiFiDirectManual.this.interruptFindingPrinter();
  35. Intent intent = new Intent();
  36. intent.putExtras(data);
  37. ActivityWiFiDirectManual.this.setResult(-1, intent);
  38. ActivityWiFiDirectManual.this.finish();
  39. return;
  40. }
  41. return;
  42. }
  43. return;
  44. case 2:
  45. ActivityWiFiDirectManual.mModelDialog.doDismiss(ActivityWiFiDirectManual.IDD_WIFI_WAITING);
  46. ActivityWiFiDirectManual activityWiFiDirectManual = ActivityWiFiDirectManual.this;
  47. Toast.makeText(activityWiFiDirectManual, activityWiFiDirectManual.getString(R.string.str_error_connecting_printer_short), 1).show();
  48. return;
  49. default:
  50. return;
  51. }
  52. }
  53. };
  54. private DialogProgressViewModel mModelDialog;
  55. WebView mNoLcdGuidanceWebView;
  56. WifiManager mWifiManager = null;
  57. ViewGroup mWithLcdGuidanceView;
  58. FindPrinterTask taskFindPrinter = null;
  59. View viewWiFiSettings;
  60. protected void onCreate(Bundle bundle) {
  61. super.onCreate(bundle);
  62. mModelDialog = (DialogProgressViewModel) ViewModelProviders.m2of((FragmentActivity) this).get(DialogProgressViewModel.class);
  63. mModelDialog.getDialogJob().observe(this, new Observer() {
  64. public final void onChanged(Object obj) {
  65. ActivityWiFiDirectManual.lambda$onCreate$0(ActivityWiFiDirectManual.this, (Deque) obj);
  66. }
  67. });
  68. mWifiManager = (WifiManager) getApplicationContext().getSystemService(Service.WIFI_SERVICE);
  69. ViewGroup viewGroup = (ViewGroup) getLayoutInflater().inflate(R.layout.wifidirect_manual, (ViewGroup) null);
  70. setContentView((View) viewGroup);
  71. setupCommonHeaderControl(true, true);
  72. viewWiFiSettings = viewGroup.findViewById(R.id.rlWifiSettings);
  73. viewWiFiSettings.setOnClickListener(new View.OnClickListener() {
  74. public void onClick(View view) {
  75. Intent intent = new Intent(ActivityWiFiDirectManual.this, ActivityControlWiFi.class);
  76. intent.putExtra(ActivityControlWiFi.SHOWPROGRESS, true);
  77. intent.putExtra(ActivityControlWiFi.SHOWWIFISETTINGS, true);
  78. ActivityWiFiDirectManual.this.startActivityForResult(intent, 0);
  79. }
  80. });
  81. mNoLcdGuidanceWebView = (WebView) findViewById(R.id.guidance_webview);
  82. mWithLcdGuidanceView = (ViewGroup) findViewById(R.id.guidance_with_lcd);
  83. updateGuidance(getNoLcdValueFromIntent(getIntent()));
  84. if (!ActivityRequestLocationPermission.canAccessWiFiInfo(this, 1)) {
  85. ActivityRequestLocationPermission.requestLocationPermissionForce(this, 1);
  86. }
  87. }
  88. public static /* synthetic */ void lambda$onCreate$0(ActivityWiFiDirectManual activityWiFiDirectManual, Deque deque) {
  89. String[] checkQueue = activityWiFiDirectManual.mModelDialog.checkQueue();
  90. if (checkQueue != null) {
  91. String str = checkQueue[0];
  92. String str2 = checkQueue[1];
  93. if (str2.equals("do_show")) {
  94. activityWiFiDirectManual.showDialog(str);
  95. }
  96. if (str2.equals("do_dismiss")) {
  97. activityWiFiDirectManual.dismissDialog(str);
  98. }
  99. }
  100. }
  101. private void updateGuidance(boolean z) {
  102. if (z) {
  103. mWithLcdGuidanceView.setVisibility(View.GONE);
  104. mNoLcdGuidanceWebView.setVisibility(View.VISIBLE);
  105. String string = getString(R.string.path_wifidirect_guide_panelless);
  106. if (string == null) {
  107. finish();
  108. } else {
  109. mNoLcdGuidanceWebView.loadUrl(string);
  110. }
  111. } else {
  112. mNoLcdGuidanceWebView.setVisibility(View.GONE);
  113. mWithLcdGuidanceView.setVisibility(View.VISIBLE);
  114. }
  115. }
  116. protected void onPause() {
  117. super.onPause();
  118. interruptFindingPrinter();
  119. }
  120. protected void onActivityResult(int i, int i2, Intent intent) {
  121. super.onActivityResult(i, i2, intent);
  122. switch (i) {
  123. case 0:
  124. if (WiFiDirectManager.isSimpleAP(this)) {
  125. ManageDefaultNetwork.getInstance(this).setDefaultNetworkSimpleAp();
  126. mModelDialog.doShow(IDD_WIFI_WAITING);
  127. taskFindPrinter = new FindPrinterTask(mHandler, 30, 1, 2);
  128. taskFindPrinter.execute(new Void[0]);
  129. return;
  130. }
  131. return;
  132. case 1:
  133. if (i2 != -1) {
  134. onBackPressed();
  135. return;
  136. }
  137. return;
  138. default:
  139. return;
  140. }
  141. }
  142. private void interruptFindingPrinter() {
  143. FindPrinterTask findPrinterTask = taskFindPrinter;
  144. if (findPrinterTask != null) {
  145. findPrinterTask.cancel();
  146. taskFindPrinter = null;
  147. }
  148. }
  149. private static boolean getNoLcdValueFromIntent(@Nullable Intent intent) {
  150. if (intent == null) {
  151. return false;
  152. }
  153. return intent.getBooleanExtra(PARAM_NO_LCD, false);
  154. }
  155. public static Intent getStartIntent(@NonNull Context context, boolean z) {
  156. Intent intent = new Intent(context, ActivityWiFiDirectManual.class);
  157. intent.putExtra(PARAM_NO_LCD, z);
  158. return intent;
  159. }
  160. private void showDialog(String str) {
  161. DialogProgress newInstance = DialogProgress.newInstance(str, 0, getResources().getString(R.string.str_connecting_printer));
  162. newInstance.setCancelable(false);
  163. newInstance.show(getSupportFragmentManager(), str);
  164. }
  165. private void dismissDialog(String str) {
  166. DialogFragment dialogFragment = (DialogFragment) getSupportFragmentManager().findFragmentByTag(str);
  167. if (dialogFragment != null) {
  168. dialogFragment.dismiss();
  169. }
  170. }
  171. }