Migrated search for SubInfoRecord to Utils.

Bug: 18293625
Bug: 18293168
Bug: 18291246
Change-Id: Iad01a01d9b60ca010943447b00c1394471e93d5a
This commit is contained in:
PauloftheWest
2014-11-06 15:02:58 -08:00
parent cc0a2c554a
commit 0a0dacaf17
2 changed files with 46 additions and 43 deletions

View File

@@ -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;
}
}

View File

@@ -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();