summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/profiles
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2015-12-16 17:43:11 -0800
committerRoman Birg <roman@cyngn.com>2015-12-21 12:06:10 -0800
commit076ee754f132a210fcd4d901bc04bb4f09f54fe9 (patch)
treea1d1c815cb8c4c4f6d961200390b2e6a599b167c /src/com/android/settings/profiles
parentf01ba0833a96eed3c6c4d8628fb95428d634ce62 (diff)
downloadpackages_apps_Settings-076ee754f132a210fcd4d901bc04bb4f09f54fe9.zip
packages_apps_Settings-076ee754f132a210fcd4d901bc04bb4f09f54fe9.tar.gz
packages_apps_Settings-076ee754f132a210fcd4d901bc04bb4f09f54fe9.tar.bz2
Settings: respect telephony config for profiles override
Some networks specifically disallow 2G to be selected as the preferred setting. We should respect that. Change-Id: Ic4414ed78c9f38b5c11969300dc858725ee3b2c6 Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'src/com/android/settings/profiles')
-rw-r--r--src/com/android/settings/profiles/SetupActionsFragment.java40
1 files changed, 35 insertions, 5 deletions
diff --git a/src/com/android/settings/profiles/SetupActionsFragment.java b/src/com/android/settings/profiles/SetupActionsFragment.java
index 7a433b4..0402a7d 100644
--- a/src/com/android/settings/profiles/SetupActionsFragment.java
+++ b/src/com/android/settings/profiles/SetupActionsFragment.java
@@ -16,6 +16,7 @@
package com.android.settings.profiles;
import android.app.Activity;
+import android.content.pm.PackageManager;
import com.android.internal.logging.MetricsLogger;
import cyanogenmod.profiles.AirplaneModeSettings;
import android.app.AlertDialog;
@@ -803,14 +804,43 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
throw new UnsupportedOperationException("connection setting cannot be null");
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ boolean allow2g = true;
+
+ // config_prefer_2g in p/s/Telephony
+ // if false, 2g is not available.
+ try {
+ final Context telephonyContext = getActivity()
+ .createPackageContext("com.android.phone", 0);
+ if (telephonyContext != null) {
+ int identifier = telephonyContext.getResources().getIdentifier("config_prefer_2g",
+ "bool", telephonyContext.getPackageName());
+ if (identifier > 0) {
+ allow2g = telephonyContext.getResources().getBoolean(identifier);
+ android.util.Log.e("ro", "allow2g: " + allow2g);
+ }
+ }
+ } catch (PackageManager.NameNotFoundException e) {
+ // hmmm....
+ }
+
final String[] connectionNames =
- getResources().getStringArray(R.array.profile_networkmode_entries_4g);
+ getResources().getStringArray(allow2g ? R.array.profile_networkmode_entries_4g
+ : R.array.profile_networkmode_entries_no_2g);
+ final String[] connectionValues =
+ getResources().getStringArray(allow2g ? R.array.profile_networkmode_values_4g
+ : R.array.profile_networkmode_values_no_2g);
- int defaultIndex = ConnectionOverrideItem.CM_MODE_UNCHANGED; // no action
+ int defaultIndex = connectionValues.length - 1; // no action is the last
if (setting.isOverride()) {
- defaultIndex = setting.getValue();
+ // need to match the value
+ final int value = setting.getValue();
+ for (int i = 0; i < connectionValues.length; i++) {
+ if (Integer.parseInt(connectionValues[i]) == value) {
+ defaultIndex = i;
+ break;
+ }
+ }
}
-
builder.setTitle(ConnectionOverrideItem.getConnectionTitle(setting.getConnectionId()));
builder.setSingleChoiceItems(connectionNames, defaultIndex,
new DialogInterface.OnClickListener() {
@@ -822,7 +852,7 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
break;
default:
setting.setOverride(true);
- setting.setValue(item);
+ setting.setValue(Integer.parseInt(connectionValues[item]));
}
mProfile.setConnectionSettings(setting);
mAdapter.notifyDataSetChanged();