Migrated search for SubInfoRecord to Utils.
Bug: 18293625 Bug: 18293168 Bug: 18291246 Change-Id: Iad01a01d9b60ca010943447b00c1394471e93d5a
This commit is contained in:
@@ -60,6 +60,8 @@ import android.provider.ContactsContract.Data;
|
||||
import android.provider.ContactsContract.Profile;
|
||||
import android.provider.ContactsContract.RawContacts;
|
||||
import android.service.persistentdata.PersistentDataBlockManager;
|
||||
import android.telephony.SubInfoRecord;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
@@ -981,4 +983,42 @@ public final class Utils {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* finds a record with subId.
|
||||
* Since the number of SIMs are few, an array is fine.
|
||||
*/
|
||||
public static SubInfoRecord findRecordBySubId(final int subId) {
|
||||
final List<SubInfoRecord> subInfoList = SubscriptionManager.getActiveSubInfoList();
|
||||
final int subInfoLength = subInfoList.size();
|
||||
|
||||
for (int i = 0; i < subInfoLength; ++i) {
|
||||
final SubInfoRecord sir = subInfoList.get(i);
|
||||
if (sir != null && sir.getSubscriptionId() == subId) {
|
||||
return sir;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* finds a record with slotId.
|
||||
* Since the number of SIMs are few, an array is fine.
|
||||
*/
|
||||
public static SubInfoRecord findRecordBySlotId(final int slotId) {
|
||||
final List<SubInfoRecord> subInfoList = SubscriptionManager.getActiveSubInfoList();
|
||||
final int subInfoLength = subInfoList.size();
|
||||
|
||||
for (int i = 0; i < subInfoLength; ++i) {
|
||||
final SubInfoRecord sir = subInfoList.get(i);
|
||||
if (sir.getSimSlotIndex() == slotId) {
|
||||
//Right now we take the first subscription on a SIM.
|
||||
return sir;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -172,7 +172,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
||||
mSelectableSubInfos = new ArrayList<SubInfoRecord>();
|
||||
mNumSims = 0;
|
||||
for (int i = 0; i < numSlots; ++i) {
|
||||
final SubInfoRecord sir = findRecordBySlotId(i);
|
||||
final SubInfoRecord sir = Utils.findRecordBySlotId(i);
|
||||
mSimCards.addPreference(new SimPreference(getActivity(), sir, i));
|
||||
mAvailableSubInfos.add(sir);
|
||||
if (sir != null) {
|
||||
@@ -192,7 +192,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
||||
mNumSims = 0;
|
||||
mAvailableSubInfos = new ArrayList<SubInfoRecord>(numSlots);
|
||||
for (int i = 0; i < numSlots; ++i) {
|
||||
final SubInfoRecord sir = findRecordBySlotId(i);
|
||||
final SubInfoRecord sir = Utils.findRecordBySlotId(i);
|
||||
mAvailableSubInfos.add(sir);
|
||||
if (sir != null) {
|
||||
mNumSims++;
|
||||
@@ -223,46 +223,9 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
||||
updateSmsValues();
|
||||
}
|
||||
|
||||
/**
|
||||
* finds a record with subId.
|
||||
* Since the number of SIMs are few, an array is fine.
|
||||
*/
|
||||
private SubInfoRecord findRecordBySubId(final int subId) {
|
||||
final int availableSubInfoLength = mAvailableSubInfos.size();
|
||||
|
||||
for (int i = 0; i < availableSubInfoLength; ++i) {
|
||||
final SubInfoRecord sir = mAvailableSubInfos.get(i);
|
||||
if (sir != null && sir.getSubscriptionId() == subId) {
|
||||
return sir;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* finds a record with slotId.
|
||||
* Since the number of SIMs are few, an array is fine.
|
||||
*/
|
||||
private SubInfoRecord findRecordBySlotId(final int slotId) {
|
||||
if (mSubInfoList != null){
|
||||
final int availableSubInfoLength = mSubInfoList.size();
|
||||
|
||||
for (int i = 0; i < availableSubInfoLength; ++i) {
|
||||
final SubInfoRecord sir = mSubInfoList.get(i);
|
||||
if (sir.getSimSlotIndex() == slotId) {
|
||||
//Right now we take the first subscription on a SIM.
|
||||
return sir;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void updateSmsValues() {
|
||||
final Preference simPref = (Preference) findPreference(KEY_SMS);
|
||||
final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
|
||||
final SubInfoRecord sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
|
||||
simPref.setTitle(R.string.sms_messages_title);
|
||||
if (mSubInfoList.size() == 1) {
|
||||
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
|
||||
@@ -276,7 +239,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
||||
|
||||
private void updateCellularDataValues() {
|
||||
final Preference simPref = findPreference(KEY_CELLULAR_DATA);
|
||||
final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
|
||||
final SubInfoRecord sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
|
||||
simPref.setTitle(R.string.cellular_data_title);
|
||||
if (mSubInfoList.size() == 1) {
|
||||
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
|
||||
@@ -576,14 +539,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
||||
mSubInfoRecord.setDisplayName(displayName);
|
||||
SubscriptionManager.setDisplayName(displayName, subId,
|
||||
SubscriptionManager.NAME_SOURCE_USER_INPUT);
|
||||
findRecordBySubId(subId).setDisplayName(displayName);
|
||||
Utils.findRecordBySubId(subId).setDisplayName(displayName);
|
||||
|
||||
final int colorSelected = colorSpinner.getSelectedItemPosition();
|
||||
int subscriptionId = mSubInfoRecord.getSubscriptionId();
|
||||
int color = colorArr[colorSelected];
|
||||
mSubInfoRecord.setColor(color);
|
||||
SubscriptionManager.setColor(color, subscriptionId);
|
||||
findRecordBySubId(subscriptionId).setColor(color);
|
||||
Utils.findRecordBySubId(subscriptionId).setColor(color);
|
||||
|
||||
updateAllOptions();
|
||||
update();
|
||||
|
Reference in New Issue
Block a user