diff options
author | Joshua Duong <joshuaduong@google.com> | 2020-03-02 08:34:26 -0800 |
---|---|---|
committer | Joshua Duong <joshuaduong@google.com> | 2020-03-20 15:08:30 +0000 |
commit | 75ae0586275dd0d8ffc430ceb562a0990c29a969 (patch) | |
tree | 4ffdf30f37565eba512698680ef787006b825f57 /src/com/android/settings/development/WirelessDebuggingPreferenceController.java | |
parent | 9e118ed61ec4a948eefedf0d686a818aac568b8e (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.java | 24 |
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 |