summaryrefslogtreecommitdiff
path: root/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
diff options
context:
space:
mode:
authorJoshua Duong <joshuaduong@google.com>2020-03-02 08:34:26 -0800
committerJoshua Duong <joshuaduong@google.com>2020-03-20 15:08:30 +0000
commit75ae0586275dd0d8ffc430ceb562a0990c29a969 (patch)
tree4ffdf30f37565eba512698680ef787006b825f57 /src/com/android/settings/development/WirelessDebuggingPreferenceController.java
parent9e118ed61ec4a948eefedf0d686a818aac568b8e (diff)
Add toast error message for no WiFi on wireless debugging.
Show a toast to connect to a WiFi network when the user tries to enable wireless debugging while not connected to any Wi-Fi network. Bug: 150139061 Bug: 149843499 Test: make RunSettingsRoboTests ROBOTEST_FILTER=WirelessDebuggingPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=WirelessDebuggingEnablerTest Change-Id: I389f5fddc874f60e8156ecf6ef2f1c6eddc1d7a5 Exempt-From-Owner-Approval: LGTM (cherry picked from commit 564f6ba77085c5fe6805bdd7cdc07343bef82eb3)
Diffstat (limited to 'src/com/android/settings/development/WirelessDebuggingPreferenceController.java')
-rw-r--r--src/com/android/settings/development/WirelessDebuggingPreferenceController.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
index 81575d2334..55fd074cc1 100644
--- a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
+++ b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
@@ -19,6 +19,8 @@ import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.debug.IAdbManager;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
@@ -26,10 +28,12 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings;
import android.util.Log;
+import android.widget.Toast;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.MasterSwitchPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -131,9 +135,29 @@ public class WirelessDebuggingPreferenceController extends DeveloperOptionsPrefe
((MasterSwitchPreference) preference).setChecked(enabled);
}
+ static boolean isWifiConnected(Context context) {
+ ConnectivityManager cm = (ConnectivityManager) context.getSystemService(
+ Context.CONNECTIVITY_SERVICE);
+ if (cm != null) {
+ NetworkInfo info = cm.getActiveNetworkInfo();
+ if (info != null && info.isConnected()) {
+ return info.getType() == ConnectivityManager.TYPE_WIFI;
+ }
+ }
+ return false;
+ }
+
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final boolean enabled = (Boolean) newValue;
+ if (enabled && !isWifiConnected(mContext)) {
+ // Cannot enable ADB over Wi-Fi if we're not connected to wifi.
+ Toast.makeText(
+ mContext, R.string.adb_wireless_no_network_msg, Toast.LENGTH_LONG)
+ .show();
+ return false;
+ }
+
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.ADB_WIFI_ENABLED,
enabled ? AdbPreferenceController.ADB_SETTING_ON