Improved logic for Skip warning message
Use ConnectivityManager instead of TelephonyManager to determine
how device is connected.
Bug: 9118704
Change-Id: I5c1db90500591ca67e927976066a46e1f66e2e60
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index aff54cd..82d15e5 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -257,9 +257,19 @@
customButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- if (isPhone() && !hasSimProblem()) {
+ boolean isConnected = false;
+ Activity activity = getActivity();
+ final ConnectivityManager connectivity = (ConnectivityManager)
+ activity.getSystemService(Context.CONNECTIVITY_SERVICE);
+ if (connectivity != null) {
+ final NetworkInfo info = connectivity.getActiveNetworkInfo();
+ isConnected = (info != null) && info.isConnected();
+ }
+ if (isConnected) {
+ // Warn of possible data charges
showDialog(WIFI_SKIPPED_DIALOG_ID);
} else {
+ // Warn of lack of updates
showDialog(WIFI_AND_MOBILE_SKIPPED_DIALOG_ID);
}
}
@@ -689,26 +699,6 @@
return super.onCreateDialog(dialogId);
}
- private boolean isPhone() {
- final TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(
- Context.TELEPHONY_SERVICE);
- return telephonyManager != null
- && telephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE;
- }
-
- /**
- * Return true if there's any SIM related impediment to connectivity.
- * Treats Unknown as OK. (Only returns true if we're sure of a SIM problem.)
- */
- protected boolean hasSimProblem() {
- final TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(
- Context.TELEPHONY_SERVICE);
- return telephonyManager != null
- && telephonyManager.getCurrentPhoneType() == TelephonyManager.PHONE_TYPE_GSM
- && telephonyManager.getSimState() != TelephonyManager.SIM_STATE_READY
- && telephonyManager.getSimState() != TelephonyManager.SIM_STATE_UNKNOWN;
- }
-
/**
* Shows the latest access points available with supplimental information like
* the strength of network and the security for it.