diff options
Diffstat (limited to 'src/com/android/settings/sim/SimSettings.java')
-rw-r--r-- | src/com/android/settings/sim/SimSettings.java | 56 |
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; + } + }; + } |