Bad Wi-Fi: Change strings to carrier specs

Also add a checkbox to persist the value.  However, the logic to
pass this persistence to ConnectivityService has not yet been added.

Bug: 31075769
Test: Visual inspection of dialog (upcoming)
Change-Id: I370ab07ea276b024ce4adc61e10ca085be1c5549
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7105bc1..9c4b839 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1752,10 +1752,11 @@
     <string name="no_internet_access_remember">Don\u2019t ask again for this network</string>
 
     <!-- Dialog text to tell the user that the selected network has lost Internet access, and asking the user whether they want to avoid this network. -->
-    <string name="lost_internet_access_title">Switch to cellular data?</string>
-    <string name="lost_internet_access_text">Wi\u2011Fi lost Internet access. Your device can switch to cellular automatically when Wi\u2011Fi isn\u2019t working. Additional charges may apply.</string>
-    <string name="lost_internet_access_switch">Switch automatically</string>
+    <string name="lost_internet_access_title">Wi\u2011Fi is not connected to the Internet</string>
+    <string name="lost_internet_access_text">You can switch to the cellular network whenever Wi\u2011Fi has a bad connection.  Data usage may apply.</string>
+    <string name="lost_internet_access_switch">Switch to cellular</string>
     <string name="lost_internet_access_cancel">Stay on Wi\u2011Fi</string>
+    <string name="lost_internet_access_persist">Never show again</string>
 
     <!-- Button label to connect to a Wi-Fi network -->
     <string name="wifi_connect">Connect</string>
diff --git a/src/com/android/settings/wifi/WifiNoInternetDialog.java b/src/com/android/settings/wifi/WifiNoInternetDialog.java
index 0924498..a8f9e33 100644
--- a/src/com/android/settings/wifi/WifiNoInternetDialog.java
+++ b/src/com/android/settings/wifi/WifiNoInternetDialog.java
@@ -138,14 +138,16 @@
         ap.mPositiveButtonListener = this;
         ap.mNegativeButtonListener = this;
 
-        if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
-            final LayoutInflater inflater = LayoutInflater.from(ap.mContext);
-            final View checkbox = inflater.inflate(
-                    com.android.internal.R.layout.always_use_checkbox, null);
-            ap.mView = checkbox;
+        final LayoutInflater inflater = LayoutInflater.from(ap.mContext);
+        final View checkbox = inflater.inflate(
+                com.android.internal.R.layout.always_use_checkbox, null);
+        ap.mView = checkbox;
+        mAlwaysAllow = (CheckBox) checkbox.findViewById(com.android.internal.R.id.alwaysUse);
 
-            mAlwaysAllow = (CheckBox) checkbox.findViewById(com.android.internal.R.id.alwaysUse);
+        if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
             mAlwaysAllow.setText(getString(R.string.no_internet_access_remember));
+        } else {
+            mAlwaysAllow.setText(getString(R.string.lost_internet_access_persist));
         }
 
         setupAlert();
@@ -175,6 +177,7 @@
             Log.d(TAG, "LOST_INTERNET: " + action);
             // Only ever set the setting to 1. The values understood by ConnectivityService are null
             // (use carrier default) or 1 (avoid bad networks regardless of carrier).
+            // TODO: Use a value other than 1 here to indicate a persisted "yes" or "no" given mAlwaysAllow.
             if (accept) {
                 Settings.Global.putInt(mAlertParams.mContext.getContentResolver(),
                         Settings.Global.NETWORK_AVOID_BAD_WIFI, 1);