Create carrier settings menu

If config_carrier_settings_enable set true, show the menu, which is located in
Settings > More (under Wireless & Networks) > Mobile Networks > Carrier settings

Bug: 10706591
Change-Id: I50b008ac04763fda4b1a340b636bc03de76f257f
diff --git a/res/values/config.xml b/res/values/config.xml
index 9bfac9a..59c8dfe 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -135,4 +135,10 @@
 
     <!-- CDMA activation goes through HFA [DO NOT TRANSLATE] -->
     <bool name="config_use_hfa_for_provisioning" translatable="false">false</bool>
+
+    <!-- Display carrier settings menu if true -->
+    <bool name="config_carrier_settings_enable">false</bool>
+    <!-- carrier settings menu -->
+    <string name="carrier_settings" translatable="false"></string>
+    <string name="carrier_settings_menu" translatable="false"></string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ad876fa..5da301d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -614,6 +614,10 @@
     <!-- Preference title for launching an account manager page for prepaid LTE [CHAR LIMIT=30] -->
     <string name="cdma_lte_data_service">Set up data service</string>
 
+    <!-- A menu item in "Mobile network settings" that allows the user to update the phone
+         with mobile operator specific settings. [CHAR LIMIT=25] -->
+    <string name="carrier_settings_title">Carrier settings</string>
+
     <!-- FDN settings strings -->
     <!-- Call settings screen, setting option name -->
     <string name="fdn">Fixed Dialing Numbers</string>
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
index 89e2fab..60889a6 100644
--- a/res/xml/cdma_options.xml
+++ b/res/xml/cdma_options.xml
@@ -40,4 +40,13 @@
             <extra android:name="autoStart" android:value="true" />
         </intent>
     </PreferenceScreen>
+
+    <PreferenceScreen
+        android:key="carrier_settings_key"
+        android:title="@string/carrier_settings_title">
+        <intent android:action="android.intent.action.MAIN"
+                android:targetPackage="@string/carrier_settings"
+                android:targetClass="@string/carrier_settings_menu" />
+    </PreferenceScreen>
+
 </PreferenceScreen>
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
index 3e3c8b5..8971fa4 100644
--- a/src/com/android/phone/CdmaOptions.java
+++ b/src/com/android/phone/CdmaOptions.java
@@ -43,6 +43,7 @@
     private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
     private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
     private static final String BUTTON_CDMA_ACTIVATE_DEVICE_KEY = "cdma_activate_device_key";
+    private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
 
     private PreferenceActivity mPrefActivity;
     private PreferenceScreen mPrefScreen;
@@ -83,6 +84,16 @@
             mPrefScreen.removePreference(
                     mPrefScreen.findPreference(BUTTON_CDMA_ACTIVATE_DEVICE_KEY));
         }
+
+        // Read platform settings for carrier settings
+        final boolean isCarrierSettingsEnabled = mPrefActivity.getResources().getBoolean(
+                R.bool.config_carrier_settings_enable);
+        if (!isCarrierSettingsEnabled) {
+            Preference pref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+            if (pref != null) {
+                mPrefScreen.removePreference(pref);
+            }
+        }
     }
 
     private boolean deviceSupportsNvAndRuim() {