summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/sim/SimSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/sim/SimSettings.java')
-rw-r--r--src/com/android/settings/sim/SimSettings.java56
1 files changed, 38 insertions, 18 deletions
diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java
index 2e1c0f5..abfeccb 100644
--- a/src/com/android/settings/sim/SimSettings.java
+++ b/src/com/android/settings/sim/SimSettings.java
@@ -16,6 +16,7 @@
package com.android.settings.sim;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import android.app.AlertDialog;
@@ -55,6 +56,7 @@ import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.RestrictedSettingsFragment;
import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
import com.android.settings.notification.DropDownPreference;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
@@ -86,17 +88,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private SubInfoRecord mCalls = null;
private SubInfoRecord mSMS = null;
- /**
- * Return whether or not the user should have a SIM Cards option in Settings.
- * TODO: Change back to returning true if count is greater than one after testing.
- * TODO: See bug 16533525.
- */
- public static boolean showSimCardScreen(Context context) {
- final TelephonyManager tm =
- (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-
- return tm.getSimCount() > 0;
- }
+ private int mNumSims;
public SimSettings() {
super(DISALLOW_CONFIG_SIM);
@@ -107,7 +99,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
super.onCreate(bundle);
if (mSubInfoList == null) {
- mSubInfoList = SubscriptionManager.getActivatedSubInfoList(getActivity());
+ mSubInfoList = SubscriptionManager.getActiveSubInfoList();
}
createPreferences();
@@ -124,10 +116,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
final int numSlots = tm.getSimCount();
mAvailableSubInfos = new ArrayList<SubInfoRecord>(numSlots);
+ mNumSims = 0;
for (int i = 0; i < numSlots; ++i) {
final SubInfoRecord sir = findRecordBySlotId(i);
simCards.addPreference(new SimPreference(getActivity(), sir, i));
mAvailableSubInfos.add(sir);
+ if (sir != null) {
+ mNumSims++;
+ }
}
updateActivitesCategory();
@@ -139,7 +135,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
}
private void updateSimSlotValues() {
- SubscriptionManager.getAllSubInfoList(getActivity());
+ SubscriptionManager.getAllSubInfoList();
final PreferenceCategory simCards = (PreferenceCategory)findPreference(SIM_CARD_CATEGORY);
final PreferenceScreen prefScreen = getPreferenceScreen();
@@ -201,10 +197,11 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private void updateSmsValues() {
final DropDownPreference simPref = (DropDownPreference) findPreference(KEY_SMS);
- final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getPreferredSmsSubId());
+ final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId + 1);
}
+ simPref.setEnabled(mNumSims > 1);
}
private void updateCellularDataValues() {
@@ -213,6 +210,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId);
}
+ simPref.setEnabled(mNumSims > 1);
}
private void updateCallValues() {
@@ -221,6 +219,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId + 1);
}
+ simPref.setEnabled(mNumSims > 1);
}
@Override
@@ -273,8 +272,6 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
// SubscriptionManager.setDefaultSMSSubId(subId);
}
- updateAllOptions();
-
return true;
}
});
@@ -347,16 +344,17 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
final Spinner displayNumbers =
(Spinner)dialogLayout.findViewById(R.id.display_numbers);
- SubscriptionManager.setDisplayNumberFormat(getActivity(),
+ SubscriptionManager.setDisplayNumberFormat(
displayNumbers.getSelectedItemPosition() == 0
? SubscriptionManager.DISPLAY_NUMBER_LAST
: SubscriptionManager.DISPLAY_NUMBER_FIRST, mSubInfoRecord.mSubId);
mSubInfoRecord.mDisplayName = nameText.getText().toString();
- SubscriptionManager.setDisplayName(getActivity(), mSubInfoRecord.mDisplayName,
+ SubscriptionManager.setDisplayName(mSubInfoRecord.mDisplayName,
mSubInfoRecord.mSubId);
updateAllOptions();
+ update();
}
});
@@ -370,4 +368,26 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
builder.create().show();
}
}
+
+ /**
+ * For search
+ */
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ ArrayList<SearchIndexableResource> result =
+ new ArrayList<SearchIndexableResource>();
+
+ if (Utils.showSimCardTile(context)) {
+ SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.sim_settings;
+ result.add(sir);
+ }
+
+ return result;
+ }
+ };
+
}