ActivityWiFiDirectManual.java 7.7 KB

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