summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/profiles
diff options
context:
space:
mode:
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();