Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: Idd98aa46c15a9219ccf28091c62602ac8bf16c62
This commit is contained in:
Wink Saville
2014-11-22 10:11:39 -08:00
parent 9209ce852a
commit 0183fb5394
8 changed files with 101 additions and 86 deletions

View File

@@ -69,6 +69,7 @@ import java.util.List;
public class SimSettings extends RestrictedSettingsFragment implements Indexable {
private static final String TAG = "SimSettings";
private static final boolean DBG = false;
private static final String DISALLOW_CONFIG_SIM = "no_config_sim";
private static final String SIM_CARD_CATEGORY = "sim_cards";
@@ -118,6 +119,9 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private PreferenceCategory mSimCards = null;
private SubscriptionManager mSubscriptionManager;
private Utils mUtils;
public SimSettings() {
super(DISALLOW_CONFIG_SIM);
}
@@ -126,9 +130,13 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
public void onCreate(final Bundle bundle) {
super.onCreate(bundle);
mSubscriptionManager = SubscriptionManager.from(getActivity());
if (mSubInfoList == null) {
mSubInfoList = SubscriptionManager.getActiveSubscriptionInfoList();
mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
// FIXME: b/18385348, needs to handle null from getActiveSubscriptionInfoList
}
if (DBG) log("[onCreate] mSubInfoList=" + mSubInfoList);
createPreferences();
updateAllOptions();
@@ -148,7 +156,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots);
mSelectableSubInfos = new ArrayList<SubscriptionInfo>();
for (int i = 0; i < numSlots; ++i) {
final SubscriptionInfo sir = Utils.findRecordBySlotId(i);
final SubscriptionInfo sir = Utils.findRecordBySlotId(getActivity(), i);
mSimCards.addPreference(new SimPreference(getActivity(), sir, i));
mAvailableSubInfos.add(sir);
if (sir != null) {
@@ -166,7 +174,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots);
for (int i = 0; i < numSlots; ++i) {
final SubscriptionInfo sir = Utils.findRecordBySlotId(i);
final SubscriptionInfo sir = Utils.findRecordBySlotId(getActivity(), i);
mAvailableSubInfos.add(sir);
if (sir != null) {
}
@@ -179,7 +187,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
}
private void updateSimSlotValues() {
SubscriptionManager.getAllSubscriptionInfoList();
mSubscriptionManager.getAllSubscriptionInfoList();
final int prefSize = mSimCards.getPreferenceCount();
for (int i = 0; i < prefSize; ++i) {
@@ -198,9 +206,11 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private void updateSmsValues() {
final Preference simPref = findPreference(KEY_SMS);
final SubscriptionInfo sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
final SubscriptionInfo sir = Utils.findRecordBySubId(getActivity(),
mSubscriptionManager.getDefaultSmsSubId());
simPref.setTitle(R.string.sms_messages_title);
if (mSubInfoList.size() == 1) {
if (DBG) log("[updateSmsValues] mSubInfoList=" + mSubInfoList);
if (mSubInfoList != null && mSubInfoList.size() == 1) {
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
} else if (sir != null) {
simPref.setSummary(sir.getDisplayName());
@@ -212,9 +222,12 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private void updateCellularDataValues() {
final Preference simPref = findPreference(KEY_CELLULAR_DATA);
final SubscriptionInfo sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
final SubscriptionInfo sir = Utils.findRecordBySubId(getActivity(),
mSubscriptionManager.getDefaultDataSubId());
simPref.setTitle(R.string.cellular_data_title);
if (mSubInfoList.size() == 1) {
if (DBG) log("[updateCellularDataValues] mSubInfoList=" + mSubInfoList);
if (mSubInfoList != null && mSubInfoList.size() == 1) {
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
} else if (sir != null) {
simPref.setSummary(sir.getDisplayName());
@@ -240,7 +253,10 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
public void onResume() {
super.onResume();
mSubInfoList = SubscriptionManager.getActiveSubscriptionInfoList();
mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
// FIXME: b/18385348, needs to handle null from getActiveSubscriptionInfoList
if (DBG) log("[onResme] mSubInfoList=" + mSubInfoList);
updateAvailableSubInfos();
updateAllOptions();
}
@@ -275,7 +291,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
if (id == DATA_PICK) {
sir = mSelectableSubInfos.get(value);
SubscriptionManager.setDefaultDataSubId(sir.getSubscriptionId());
mSubscriptionManager.setDefaultDataSubId(sir.getSubscriptionId());
} else if (id == CALLS_PICK) {
final TelecomManager telecomManager =
TelecomManager.from(getActivity());
@@ -285,7 +301,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
value < 1 ? null : phoneAccountsList.get(value - 1));
} else if (id == SMS_PICK) {
sir = mSelectableSubInfos.get(value);
SubscriptionManager.setDefaultSmsSubId(sir.getSubscriptionId());
mSubscriptionManager.setDefaultSmsSubId(sir.getSubscriptionId());
}
updateActivitesCategory();
@@ -514,16 +530,16 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
String displayName = nameText.getText().toString();
int subId = mSubInfoRecord.getSubscriptionId();
mSubInfoRecord.setDisplayName(displayName);
SubscriptionManager.setDisplayName(displayName, subId,
mSubscriptionManager.setDisplayName(displayName, subId,
SubscriptionManager.NAME_SOURCE_USER_INPUT);
Utils.findRecordBySubId(subId).setDisplayName(displayName);
Utils.findRecordBySubId(getActivity(), subId).setDisplayName(displayName);
final int tintSelected = tintSpinner.getSelectedItemPosition();
int subscriptionId = mSubInfoRecord.getSubscriptionId();
int tint = mTintArr[tintSelected];
mSubInfoRecord.setIconTint(tint);
SubscriptionManager.setIconTint(tint, subscriptionId);
Utils.findRecordBySubId(subscriptionId).setIconTint(tint);
mSubscriptionManager.setIconTint(tint, subscriptionId);
Utils.findRecordBySubId(getActivity(), subscriptionId).setIconTint(tint);
updateAllOptions();
update();
@@ -611,27 +627,8 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
}
/**
* Sort Subscription List in SIM Id, Subscription Id
* @param context The Context
* @return Sorted Subscription List or NULL if no activated Subscription
*/
public static List<SubscriptionInfo> getSortedSubInfoList(Context context) {
List<SubscriptionInfo> infoList = SubscriptionManager.getActiveSubscriptionInfoList();
if (infoList != null) {
Collections.sort(infoList, new Comparator<SubscriptionInfo>() {
@Override
public int compare(SubscriptionInfo arg0, SubscriptionInfo arg1) {
int flag = arg0.getSimSlotIndex() - arg1.getSimSlotIndex();
if (flag == 0) {
return arg0.getSubscriptionId() - arg1.getSubscriptionId();
}
return flag;
}
});
}
return infoList;
private void log(String s) {
Log.d(TAG, s);
}
/**