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.