Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: I7773965094510999bfce8fc6b2b31ba6ce496653
This commit is contained in:
Wink Saville
2014-11-19 10:34:28 -08:00
parent 3a84d40133
commit 1285f74fcb
8 changed files with 87 additions and 80 deletions

View File

@@ -195,6 +195,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
private INetworkStatsService mStatsService; private INetworkStatsService mStatsService;
private NetworkPolicyManager mPolicyManager; private NetworkPolicyManager mPolicyManager;
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
private SubscriptionManager mSubscriptionManager;
private INetworkStatsSession mStatsSession; private INetworkStatsSession mStatsSession;
@@ -286,13 +287,14 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
ServiceManager.getService(Context.NETWORK_STATS_SERVICE)); ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
mPolicyManager = NetworkPolicyManager.from(context); mPolicyManager = NetworkPolicyManager.from(context);
mTelephonyManager = TelephonyManager.from(context); mTelephonyManager = TelephonyManager.from(context);
mSubscriptionManager = SubscriptionManager.from(context);
mPrefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE); mPrefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
mPolicyEditor = new NetworkPolicyEditor(mPolicyManager); mPolicyEditor = new NetworkPolicyEditor(mPolicyManager);
mPolicyEditor.read(); mPolicyEditor.read();
mSubInfoList = SimSettings.getSortedSubInfoList(getActivity()); mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
mMobileTagMap = initMobileTabTag(mSubInfoList); mMobileTagMap = initMobileTabTag(mSubInfoList);
try { try {
@@ -942,7 +944,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
} else { } else {
//SUB SELECT //SUB SELECT
isEnable = mTelephonyManager.getDataEnabled() isEnable = mTelephonyManager.getDataEnabled()
&& (subId == SubscriptionManager.getDefaultDataSubId()); && (subId == mSubscriptionManager.getDefaultDataSubId());
} }
return isEnable; return isEnable;
} }
@@ -1131,8 +1133,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
private void handleMultiSimDataDialog() { private void handleMultiSimDataDialog() {
final SubscriptionInfo currentSir = getCurrentTabSubInfo(getActivity()); final SubscriptionInfo currentSir = getCurrentTabSubInfo(getActivity());
final SubscriptionInfo nextSir = SubscriptionManager.getSubscriptionInfoForSubscriber( final SubscriptionInfo nextSir = mSubscriptionManager.getActiveSubscriptionInfo(
SubscriptionManager.getDefaultDataSubId()); mSubscriptionManager.getDefaultDataSubId());
if (currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) { if (currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
setMobileDataEnabled(true); setMobileDataEnabled(true);
@@ -1149,7 +1151,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() { builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
SubscriptionManager.setDefaultDataSubId(currentSir.getSubscriptionId()); mSubscriptionManager.setDefaultDataSubId(currentSir.getSubscriptionId());
setMobileDataEnabled(true); setMobileDataEnabled(true);
updateBody(); updateBody();
} }
@@ -2246,7 +2248,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
final NetworkTemplate template = intent.getParcelableExtra(EXTRA_NETWORK_TEMPLATE); final NetworkTemplate template = intent.getParcelableExtra(EXTRA_NETWORK_TEMPLATE);
if (template == null) { if (template == null) {
final int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, final int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
SubscriptionManager.INVALID_SUB_ID); SubscriptionManager.INVALID_SUBSCRIPTION_ID);
if (SubscriptionManager.isValidSubId(subId)) { if (SubscriptionManager.isValidSubId(subId)) {
return TAB_MOBILE + String.valueOf(subId); return TAB_MOBILE + String.valueOf(subId);
} }
@@ -2339,7 +2341,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
final ConnectivityManager conn = ConnectivityManager.from(context); final ConnectivityManager conn = ConnectivityManager.from(context);
final TelephonyManager tele = TelephonyManager.from(context); final TelephonyManager tele = TelephonyManager.from(context);
final List<SubscriptionInfo> subInfoList = SubscriptionManager.getActiveSubscriptionInfoList(); final List<SubscriptionInfo> subInfoList =
SubscriptionManager.from(context).getActiveSubscriptionInfoList();
// No activated Subscription // No activated Subscription
if (subInfoList == null) { if (subInfoList == null) {
return false; return false;

View File

@@ -215,7 +215,7 @@ public class IccLockSettings extends PreferenceActivity
mTabHost.clearAllTabs(); mTabHost.clearAllTabs();
for (int i = 0; i < numSims; ++i) { for (int i = 0; i < numSims; ++i) {
final SubscriptionInfo subInfo = Utils.findRecordBySlotId(i); final SubscriptionInfo subInfo = Utils.findRecordBySlotId(this, i);
mTabHost.addTab(buildTabSpec(String.valueOf(i), mTabHost.addTab(buildTabSpec(String.valueOf(i),
String.valueOf(subInfo == null String.valueOf(subInfo == null
? context.getString(R.string.sim_editor_title, i + 1) ? context.getString(R.string.sim_editor_title, i + 1)
@@ -469,7 +469,7 @@ public class IccLockSettings extends PreferenceActivity
@Override @Override
public void onTabChanged(String tabId) { public void onTabChanged(String tabId) {
final int slotId = Integer.parseInt(tabId); final int slotId = Integer.parseInt(tabId);
final SubscriptionInfo sir = Utils.findRecordBySlotId(slotId); final SubscriptionInfo sir = Utils.findRecordBySlotId(getBaseContext(), slotId);
mPhone = (sir == null) ? null mPhone = (sir == null) ? null
: PhoneFactory.getPhone(SubscriptionManager.getPhoneId(sir.getSubscriptionId())); : PhoneFactory.getPhone(SubscriptionManager.getPhoneId(sir.getSubscriptionId()));

View File

@@ -111,6 +111,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private static final boolean ONLY_ONE_TRUST_AGENT = true; private static final boolean ONLY_ONE_TRUST_AGENT = true;
private DevicePolicyManager mDPM; private DevicePolicyManager mDPM;
private SubscriptionManager mSubscriptionManager;
private ChooseLockSettingsHelper mChooseLockSettingsHelper; private ChooseLockSettingsHelper mChooseLockSettingsHelper;
private LockPatternUtils mLockPatternUtils; private LockPatternUtils mLockPatternUtils;
@@ -370,9 +371,10 @@ public class SecuritySettings extends SettingsPreferenceFragment
/* Return true if a SIM is ready for locking. /* Return true if a SIM is ready for locking.
* TODO: consider adding to TelephonyManager or SubscritpionManasger. * TODO: consider adding to TelephonyManager or SubscritpionManasger.
*/ */
private static boolean isSimReady() { private boolean isSimReady() {
int simState = TelephonyManager.SIM_STATE_UNKNOWN; int simState = TelephonyManager.SIM_STATE_UNKNOWN;
final List<SubscriptionInfo> subInfoList = SubscriptionManager.getActiveSubscriptionInfoList(); final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList != null) { if (subInfoList != null) {
for (SubscriptionInfo subInfo : subInfoList) { for (SubscriptionInfo subInfo : subInfoList) {
simState = TelephonyManager.getDefault().getSimState(subInfo.getSimSlotIndex()); simState = TelephonyManager.getDefault().getSimState(subInfo.getSimSlotIndex());

View File

@@ -988,15 +988,17 @@ public final class Utils {
* finds a record with subId. * finds a record with subId.
* Since the number of SIMs are few, an array is fine. * Since the number of SIMs are few, an array is fine.
*/ */
public static SubscriptionInfo findRecordBySubId(final int subId) { public static SubscriptionInfo findRecordBySubId(Context context, final int subId) {
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
SubscriptionManager.getActiveSubscriptionInfoList(); SubscriptionManager.from(context).getActiveSubscriptionInfoList();
final int subInfoLength = subInfoList.size(); if (subInfoList != null) {
final int subInfoLength = subInfoList.size();
for (int i = 0; i < subInfoLength; ++i) { for (int i = 0; i < subInfoLength; ++i) {
final SubscriptionInfo sir = subInfoList.get(i); final SubscriptionInfo sir = subInfoList.get(i);
if (sir != null && sir.getSubscriptionId() == subId) { if (sir != null && sir.getSubscriptionId() == subId) {
return sir; return sir;
}
} }
} }
@@ -1007,16 +1009,18 @@ public final class Utils {
* finds a record with slotId. * finds a record with slotId.
* Since the number of SIMs are few, an array is fine. * Since the number of SIMs are few, an array is fine.
*/ */
public static SubscriptionInfo findRecordBySlotId(final int slotId) { public static SubscriptionInfo findRecordBySlotId(Context context, final int slotId) {
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
SubscriptionManager.getActiveSubscriptionInfoList(); SubscriptionManager.from(context).getActiveSubscriptionInfoList();
final int subInfoLength = subInfoList.size(); if (subInfoList != null) {
final int subInfoLength = subInfoList.size();
for (int i = 0; i < subInfoLength; ++i) { for (int i = 0; i < subInfoLength; ++i) {
final SubscriptionInfo sir = subInfoList.get(i); final SubscriptionInfo sir = subInfoList.get(i);
if (sir.getSimSlotIndex() == slotId) { if (sir.getSimSlotIndex() == slotId) {
//Right now we take the first subscription on a SIM. //Right now we take the first subscription on a SIM.
return sir; return sir;
}
} }
} }

View File

@@ -42,9 +42,12 @@ public class ImeiInformation extends PreferenceActivity {
private static final String KEY_IMEI = "imei"; private static final String KEY_IMEI = "imei";
private static final String KEY_IMEI_SV = "imei_sv"; private static final String KEY_IMEI_SV = "imei_sv";
private SubscriptionManager mSubscriptionManager;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mSubscriptionManager = SubscriptionManager.from(this);
final TelephonyManager telephonyManager = final TelephonyManager telephonyManager =
(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
initPreferenceScreen(telephonyManager.getSimCount()); initPreferenceScreen(telephonyManager.getSimCount());
@@ -100,17 +103,17 @@ public class ImeiInformation extends PreferenceActivity {
} }
} }
private Phone getPhoneFromSlotId(int slotId) { private Phone getPhoneFromSlotId(int slotIdx) {
final List<SubscriptionInfo> subInfos = SubscriptionManager.getSubscriptionInfoUsingSlotId(slotId); final SubscriptionInfo subInfo =
mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(slotIdx);
if (subInfos == null || subInfos.size() < 1) { if (subInfo == null) {
return null; return null;
} }
final Phone[] phones = PhoneFactory.getPhones(); final Phone[] phones = PhoneFactory.getPhones();
for (int i = 0; i < phones.length; i++) { for (int i = 0; i < phones.length; i++) {
// Currently we only operate with the first subscription of a SIM. if (phones[i].getSubId() == subInfo.getSubscriptionId()) {
if (phones[i].getSubId() == subInfos.get(0).getSubscriptionId()) {
return phones[i]; return phones[i];
} }
} }

View File

@@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.android.settings.deviceinfo; package com.android.settings.deviceinfo;
@@ -143,7 +143,7 @@ public class SimStatus extends PreferenceActivity {
mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH); mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH);
for (int i = 0; i < mTelephonyManager.getSimCount(); i++) { for (int i = 0; i < mTelephonyManager.getSimCount(); i++) {
final SubscriptionInfo sir = Utils.findRecordBySlotId(i); final SubscriptionInfo sir = Utils.findRecordBySlotId(this, i);
if (sir != null) { if (sir != null) {
mSelectableSubInfos.add(sir); mSelectableSubInfos.add(sir);
} }
@@ -355,7 +355,7 @@ public class SimStatus extends PreferenceActivity {
final Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId( final Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId(
mSir.getSubscriptionId())); mSir.getSubscriptionId()));
if (UserHandle.myUserId() == UserHandle.USER_OWNER if (UserHandle.myUserId() == UserHandle.USER_OWNER
&& mSir.getSubscriptionId() != SubscriptionManager.INVALID_SUB_ID) { && mSir.getSubscriptionId() != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
if (phone == null) { if (phone == null) {
Log.e(TAG, "Unable to locate a phone object for the given Subscription ID."); Log.e(TAG, "Unable to locate a phone object for the given Subscription ID.");
return; return;

View File

@@ -19,8 +19,6 @@ package com.android.settings.sim;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings.SimSettingsActivity; import com.android.settings.Settings.SimSettingsActivity;
import java.util.List;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
@@ -31,10 +29,9 @@ import android.content.SharedPreferences.Editor;
import android.content.res.Resources; import android.content.res.Resources;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionListener;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.Log; import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -47,16 +44,17 @@ public class SimBootReceiver extends BroadcastReceiver {
private SharedPreferences mSharedPreferences = null; private SharedPreferences mSharedPreferences = null;
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
private Context mContext; private Context mContext;
private SubscriptionManager mSubscriptionManager;
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
mContext = context; mContext = context;
mSubscriptionManager = SubscriptionManager.from(mContext);
mSharedPreferences = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, mSharedPreferences = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
SubscriptionManager.register(mContext, mSubscriptionListener, mSubscriptionManager.registerOnSubscriptionsChangedListener(mSubscriptionListener);
SubscriptionListener.LISTEN_SUBSCRIPTION_INFO_LIST_CHANGED);
} }
private void detectChangeAndNotify() { private void detectChangeAndNotify() {
@@ -71,12 +69,12 @@ public class SimBootReceiver extends BroadcastReceiver {
// by checking if the list is empty. // by checking if the list is empty.
// This is not completely correct, but works for most cases. // This is not completely correct, but works for most cases.
// See Bug: 18377252 // See Bug: 18377252
if (SubscriptionManager.getActiveSubscriptionInfoList().size() < 1) { if (mSubscriptionManager.getActiveSubscriptionInfoList().size() < 1) {
return; return;
} }
for (int i = 0; i < numSlots; i++) { for (int i = 0; i < numSlots; i++) {
final SubscriptionInfo sir = Utils.findRecordBySlotId(i); final SubscriptionInfo sir = Utils.findRecordBySlotId(mContext, i);
final String key = SLOT_PREFIX+i; final String key = SLOT_PREFIX+i;
final int lastSubId = getLastSubId(key); final int lastSubId = getLastSubId(key);
@@ -133,9 +131,10 @@ public class SimBootReceiver extends BroadcastReceiver {
notificationManager.cancel(NOTIFICATION_ID); notificationManager.cancel(NOTIFICATION_ID);
} }
private final SubscriptionListener mSubscriptionListener = new SubscriptionListener() { private final OnSubscriptionsChangedListener mSubscriptionListener =
new OnSubscriptionsChangedListener() {
@Override @Override
public void onSubscriptionInfoChanged() { public void onSubscriptionsChanged() {
detectChangeAndNotify(); detectChangeAndNotify();
} }
}; };

View File

@@ -69,6 +69,7 @@ import java.util.List;
public class SimSettings extends RestrictedSettingsFragment implements Indexable { public class SimSettings extends RestrictedSettingsFragment implements Indexable {
private static final String TAG = "SimSettings"; 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 DISALLOW_CONFIG_SIM = "no_config_sim";
private static final String SIM_CARD_CATEGORY = "sim_cards"; 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 PreferenceCategory mSimCards = null;
private SubscriptionManager mSubscriptionManager;
private Utils mUtils;
public SimSettings() { public SimSettings() {
super(DISALLOW_CONFIG_SIM); super(DISALLOW_CONFIG_SIM);
} }
@@ -126,9 +130,13 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
public void onCreate(final Bundle bundle) { public void onCreate(final Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
mSubscriptionManager = SubscriptionManager.from(getActivity());
if (mSubInfoList == null) { if (mSubInfoList == null) {
mSubInfoList = SubscriptionManager.getActiveSubscriptionInfoList(); mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
// FIXME: b/18385348, SimSettings.java needs to handle null from getActiveSubscription
} }
if (DBG) log("[onCreate] mSubInfoList=" + mSubInfoList);
createPreferences(); createPreferences();
updateAllOptions(); updateAllOptions();
@@ -148,7 +156,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots); mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots);
mSelectableSubInfos = new ArrayList<SubscriptionInfo>(); mSelectableSubInfos = new ArrayList<SubscriptionInfo>();
for (int i = 0; i < numSlots; ++i) { 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)); mSimCards.addPreference(new SimPreference(getActivity(), sir, i));
mAvailableSubInfos.add(sir); mAvailableSubInfos.add(sir);
if (sir != null) { if (sir != null) {
@@ -166,7 +174,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots); mAvailableSubInfos = new ArrayList<SubscriptionInfo>(numSlots);
for (int i = 0; i < numSlots; ++i) { for (int i = 0; i < numSlots; ++i) {
final SubscriptionInfo sir = Utils.findRecordBySlotId(i); final SubscriptionInfo sir = Utils.findRecordBySlotId(getActivity(), i);
mAvailableSubInfos.add(sir); mAvailableSubInfos.add(sir);
if (sir != null) { if (sir != null) {
} }
@@ -179,7 +187,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
} }
private void updateSimSlotValues() { private void updateSimSlotValues() {
SubscriptionManager.getAllSubscriptionInfoList(); mSubscriptionManager.getAllSubscriptionInfoList();
final int prefSize = mSimCards.getPreferenceCount(); final int prefSize = mSimCards.getPreferenceCount();
for (int i = 0; i < prefSize; ++i) { for (int i = 0; i < prefSize; ++i) {
@@ -198,9 +206,11 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private void updateSmsValues() { private void updateSmsValues() {
final Preference simPref = findPreference(KEY_SMS); 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); 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()); simPref.setSummary(mSubInfoList.get(0).getDisplayName());
} else if (sir != null) { } else if (sir != null) {
simPref.setSummary(sir.getDisplayName()); simPref.setSummary(sir.getDisplayName());
@@ -212,9 +222,12 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
private void updateCellularDataValues() { private void updateCellularDataValues() {
final Preference simPref = findPreference(KEY_CELLULAR_DATA); 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); 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()); simPref.setSummary(mSubInfoList.get(0).getDisplayName());
} else if (sir != null) { } else if (sir != null) {
simPref.setSummary(sir.getDisplayName()); simPref.setSummary(sir.getDisplayName());
@@ -240,7 +253,9 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
mSubInfoList = SubscriptionManager.getActiveSubscriptionInfoList(); mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
if (DBG) log("[onResme] mSubInfoList=" + mSubInfoList);
updateAvailableSubInfos(); updateAvailableSubInfos();
updateAllOptions(); updateAllOptions();
} }
@@ -275,7 +290,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
if (id == DATA_PICK) { if (id == DATA_PICK) {
sir = mSelectableSubInfos.get(value); sir = mSelectableSubInfos.get(value);
SubscriptionManager.setDefaultDataSubId(sir.getSubscriptionId()); mSubscriptionManager.setDefaultDataSubId(sir.getSubscriptionId());
} else if (id == CALLS_PICK) { } else if (id == CALLS_PICK) {
final TelecomManager telecomManager = final TelecomManager telecomManager =
TelecomManager.from(getActivity()); TelecomManager.from(getActivity());
@@ -285,7 +300,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
value < 1 ? null : phoneAccountsList.get(value - 1)); value < 1 ? null : phoneAccountsList.get(value - 1));
} else if (id == SMS_PICK) { } else if (id == SMS_PICK) {
sir = mSelectableSubInfos.get(value); sir = mSelectableSubInfos.get(value);
SubscriptionManager.setDefaultSmsSubId(sir.getSubscriptionId()); mSubscriptionManager.setDefaultSmsSubId(sir.getSubscriptionId());
} }
updateActivitesCategory(); updateActivitesCategory();
@@ -499,16 +514,16 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
String displayName = nameText.getText().toString(); String displayName = nameText.getText().toString();
int subId = mSubInfoRecord.getSubscriptionId(); int subId = mSubInfoRecord.getSubscriptionId();
mSubInfoRecord.setDisplayName(displayName); mSubInfoRecord.setDisplayName(displayName);
SubscriptionManager.setDisplayName(displayName, subId, mSubscriptionManager.setDisplayName(displayName, subId,
SubscriptionManager.NAME_SOURCE_USER_INPUT); SubscriptionManager.NAME_SOURCE_USER_INPUT);
Utils.findRecordBySubId(subId).setDisplayName(displayName); Utils.findRecordBySubId(getActivity(), subId).setDisplayName(displayName);
final int tintSelected = tintSpinner.getSelectedItemPosition(); final int tintSelected = tintSpinner.getSelectedItemPosition();
int subscriptionId = mSubInfoRecord.getSubscriptionId(); int subscriptionId = mSubInfoRecord.getSubscriptionId();
int tint = mTintArr[tintSelected]; int tint = mTintArr[tintSelected];
mSubInfoRecord.setIconTint(tint); mSubInfoRecord.setIconTint(tint);
SubscriptionManager.setIconTint(tint, subscriptionId); mSubscriptionManager.setIconTint(tint, subscriptionId);
Utils.findRecordBySubId(subscriptionId).setIconTint(tint); Utils.findRecordBySubId(getActivity(), subscriptionId).setIconTint(tint);
updateAllOptions(); updateAllOptions();
update(); update();
@@ -596,27 +611,8 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
} }
/** private void log(String s) {
* Sort Subscription List in SIM Id, Subscription Id Log.d(TAG, s);
* @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;
} }
/** /**