Changed SIM calls to use PhoneAccount instead of SubInfoRecord.

+ Some import cleanup on SimSettings.

Change-Id: Ib18673f4eb0ce404bf13a58e0979401cca91385d
This commit is contained in:
PauloftheWest
2014-10-29 12:28:24 -07:00
parent 6f5b23f3fc
commit a7b5d2b384

View File

@@ -16,70 +16,51 @@
package com.android.settings.sim; package com.android.settings.sim;
import android.graphics.Color;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.ContentUris; import android.content.ContentUris;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.res.Resources; import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory; import android.preference.PreferenceCategory;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.provider.SearchIndexableResource;
import android.provider.Telephony; import android.provider.Telephony;
import android.telephony.SubInfoRecord; import android.telephony.SubInfoRecord;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.telephony.PhoneNumberUtils; import android.telephony.PhoneNumberUtils;
import android.telecom.PhoneAccount; import android.telecom.PhoneAccount;
import android.telephony.CellInfo; import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.app.Dialog; import android.app.Dialog;
import android.app.DialogFragment;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ListAdapter; import android.widget.ListAdapter;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.RestrictedSettingsFragment; import com.android.settings.RestrictedSettingsFragment;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.notification.DropDownPreference;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settings.search.Indexable.SearchIndexProvider; import com.android.settings.R;
import com.android.settings.search.SearchIndexableRaw;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.Iterator;
import java.util.List; import java.util.List;
public class SimSettings extends RestrictedSettingsFragment implements Indexable { public class SimSettings extends RestrictedSettingsFragment implements Indexable {
@@ -294,7 +275,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
} }
private void updateCellularDataValues() { private void updateCellularDataValues() {
final Preference simPref = (Preference) findPreference(KEY_CELLULAR_DATA); final Preference simPref = findPreference(KEY_CELLULAR_DATA);
final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId()); final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
simPref.setTitle(R.string.cellular_data_title); simPref.setTitle(R.string.cellular_data_title);
if (mSubInfoList.size() == 1) { if (mSubInfoList.size() == 1) {
@@ -308,17 +289,15 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
} }
private void updateCallValues() { private void updateCallValues() {
final Preference simPref = (Preference) findPreference(KEY_CALLS); final Preference simPref = findPreference(KEY_CALLS);
final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultVoiceSubId()); final TelecomManager telecomManager = TelecomManager.from(getActivity());
final PhoneAccountHandle phoneAccount =
telecomManager.getUserSelectedOutgoingPhoneAccount();
simPref.setTitle(R.string.calls_title); simPref.setTitle(R.string.calls_title);
if (mSubInfoList.size() == 1) { simPref.setSummary(phoneAccount == null
simPref.setSummary(mSubInfoList.get(0).displayName); ? getResources().getString(R.string.sim_selection_required_pref)
} else if (sir != null) { : (String)telecomManager.getPhoneAccount(phoneAccount).getLabel());
simPref.setSummary(sir.displayName);
} else if (sir == null) {
simPref.setSummary(R.string.sim_calls_ask_first_prefs_title);
}
simPref.setEnabled(mNumSims >= 1);
} }
@Override @Override
@@ -362,13 +341,12 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
sir = mSelectableSubInfos.get(value); sir = mSelectableSubInfos.get(value);
SubscriptionManager.setDefaultDataSubId(sir.subId); SubscriptionManager.setDefaultDataSubId(sir.subId);
} else if (id == CALLS_PICK) { } else if (id == CALLS_PICK) {
if (value != 0) { final TelecomManager telecomManager =
sir = mSelectableSubInfos.get(value -1); TelecomManager.from(getActivity());
SubscriptionManager.setDefaultVoiceSubId(sir.subId); final List<PhoneAccountHandle> phoneAccountsList =
} else { telecomManager.getCallCapablePhoneAccounts();
SubscriptionManager telecomManager.setUserSelectedOutgoingPhoneAccount(
.setDefaultVoiceSubId(SubscriptionManager.ASK_USER_SUB_ID); 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.subId); SubscriptionManager.setDefaultSmsSubId(sir.subId);
@@ -379,12 +357,22 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
}; };
if (id == CALLS_PICK) { if (id == CALLS_PICK) {
final TelecomManager telecomManager = TelecomManager.from(getActivity());
final Iterator<PhoneAccountHandle> phoneAccounts =
telecomManager.getCallCapablePhoneAccounts().listIterator();
list.add(getResources().getString(R.string.sim_calls_ask_first_prefs_title)); list.add(getResources().getString(R.string.sim_calls_ask_first_prefs_title));
while (phoneAccounts.hasNext()) {
final PhoneAccount phoneAccount =
telecomManager.getPhoneAccount(phoneAccounts.next());
list.add((String)phoneAccount.getLabel());
} }
} else {
for (int i = 0; i < selectableSubInfoLength; ++i) { for (int i = 0; i < selectableSubInfoLength; ++i) {
final SubInfoRecord sir = mSelectableSubInfos.get(i); final SubInfoRecord sir = mSelectableSubInfos.get(i);
list.add(sir.displayName); list.add(sir.displayName);
} }
}
String[] arr = new String[selectableSubInfoLength]; String[] arr = new String[selectableSubInfoLength];
arr = list.toArray(arr); arr = list.toArray(arr);