Test APNs
Add test APNs to carriers table.
Enable APN Setting editing for testing PLMNs.
Bug: 17136661
Change-Id: Ieabfac5ea02a5b9971c7050d8278ad0095863e3a
diff --git a/res/values-mcc001-mnc01/config.xml b/res/values-mcc001-mnc01/config.xml
new file mode 100644
index 0000000..3e6a69b
--- /dev/null
+++ b/res/values-mcc001-mnc01/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">true</bool>
+</resources>
diff --git a/res/values-mcc001-mnc010/config.xml b/res/values-mcc001-mnc010/config.xml
new file mode 100644
index 0000000..3e6a69b
--- /dev/null
+++ b/res/values-mcc001-mnc010/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">true</bool>
+</resources>
diff --git a/res/values-mcc246-mnc081/config.xml b/res/values-mcc246-mnc081/config.xml
new file mode 100644
index 0000000..3e6a69b
--- /dev/null
+++ b/res/values-mcc246-mnc081/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">true</bool>
+</resources>
diff --git a/res/values-mcc310-mnc028/config.xml b/res/values-mcc310-mnc028/config.xml
new file mode 100644
index 0000000..3e6a69b
--- /dev/null
+++ b/res/values-mcc310-mnc028/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">true</bool>
+</resources>
diff --git a/res/values-mcc311-mnc390/config.xml b/res/values-mcc311-mnc390/config.xml
new file mode 100644
index 0000000..3e6a69b
--- /dev/null
+++ b/res/values-mcc311-mnc390/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">true</bool>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 914add0..0ced13f 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -140,4 +140,7 @@
<!-- Does not display additional call seting for IMS phone based on GSM Phone -->
<bool name="config_additional_call_setting">true</bool>
+
+ <!-- Show APN Settings for some CDMA carriers -->
+ <bool name="config_show_apn_setting_cdma">false</bool>
</resources>
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
index 60889a6..d4eaeba 100644
--- a/res/xml/cdma_options.xml
+++ b/res/xml/cdma_options.xml
@@ -34,6 +34,15 @@
android:dialogTitle="@string/cdma_subscription_dialogtitle" />
<PreferenceScreen
+ android:key="button_apn_key"
+ android:title="@string/apn_settings"
+ android:persistent="false">
+
+ <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
+
+ </PreferenceScreen>
+
+ <PreferenceScreen
android:key="cdma_activate_device_key"
android:title="@string/cdma_activate_device">
<intent android:action="com.android.phone.PERFORM_VOICELESS_CDMA_PROVISIONING">
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
index 8971fa4..50a6def 100644
--- a/src/com/android/phone/CdmaOptions.java
+++ b/src/com/android/phone/CdmaOptions.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.net.Uri;
import android.os.SystemProperties;
import android.preference.Preference;
@@ -39,11 +40,13 @@
private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
private CdmaSubscriptionListPreference mButtonCdmaSubscription;
+ private PreferenceScreen mButtonAPNExpand;
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 static final String BUTTON_APN_EXPAND_KEY = "button_apn_key";
private PreferenceActivity mPrefActivity;
private PreferenceScreen mPrefScreen;
@@ -59,6 +62,31 @@
protected void create() {
mPrefActivity.addPreferencesFromResource(R.xml.cdma_options);
+ mButtonAPNExpand = (PreferenceScreen) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+ boolean removedAPNExpand = false;
+ Resources res = mPrefActivity.getResources();
+ // Some CDMA carriers want the APN settings
+ if (!res.getBoolean(R.bool.config_show_apn_setting_cdma) && mButtonAPNExpand != null) {
+ mPrefScreen.removePreference(mButtonAPNExpand);
+ removedAPNExpand = true;
+ }
+ if (!removedAPNExpand) {
+ mButtonAPNExpand.setOnPreferenceClickListener(
+ new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ // We need to build the Intent by hand as the Preference Framework
+ // does not allow to add an Intent with some extras into a Preference
+ // XML file
+ final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
+ // This will setup the Home and Search affordance
+ intent.putExtra(":settings:show_fragment_as_subsetting", true);
+ mPrefActivity.startActivity(intent);
+ return true;
+ }
+ });
+ }
+
mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference)mPrefScreen
.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);