Merge "Additional changes to SubscriptionManager API as per API council." into lmp-mr1-dev
This commit is contained in:
@@ -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,8 +2341,9 @@ 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 =
|
||||||
// No activated Subscription
|
SubscriptionManager.from(context).getActiveSubscriptionInfoList();
|
||||||
|
// No activated Subscriptions
|
||||||
if (subInfoList == null) {
|
if (subInfoList == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -2586,7 +2589,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
};
|
};
|
||||||
|
|
||||||
private void addMobileTab(Context context, List<SubscriptionInfo> subInfoList) {
|
private void addMobileTab(Context context, List<SubscriptionInfo> subInfoList) {
|
||||||
if (subInfoList != null) {
|
if (subInfoList != null && mMobileTagMap != null) {
|
||||||
for (SubscriptionInfo subInfo : mSubInfoList) {
|
for (SubscriptionInfo subInfo : mSubInfoList) {
|
||||||
if (hasReadyMobileRadio(context, subInfo.getSubscriptionId())) {
|
if (hasReadyMobileRadio(context, subInfo.getSubscriptionId())) {
|
||||||
mTabHost.addTab(buildTabSpec(mMobileTagMap.get(subInfo.getSubscriptionId()),
|
mTabHost.addTab(buildTabSpec(mMobileTagMap.get(subInfo.getSubscriptionId()),
|
||||||
@@ -2634,10 +2637,12 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getSubId(String currentTab) {
|
private int getSubId(String currentTab) {
|
||||||
Set<Integer> set = mMobileTagMap.keySet();
|
if (mMobileTagMap != null) {
|
||||||
for (Integer subId : set) {
|
Set<Integer> set = mMobileTagMap.keySet();
|
||||||
if (mMobileTagMap.get(subId).equals(currentTab)) {
|
for (Integer subId : set) {
|
||||||
return subId;
|
if (mMobileTagMap.get(subId).equals(currentTab)) {
|
||||||
|
return subId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.e(TAG, "currentTab = " + currentTab + " non mobile tab called this function");
|
Log.e(TAG, "currentTab = " + currentTab + " non mobile tab called this function");
|
||||||
|
@@ -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()));
|
||||||
|
@@ -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;
|
||||||
@@ -136,6 +137,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
mSubscriptionManager = SubscriptionManager.from(getActivity());
|
||||||
|
|
||||||
mLockPatternUtils = new LockPatternUtils(getActivity());
|
mLockPatternUtils = new LockPatternUtils(getActivity());
|
||||||
|
|
||||||
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
|
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
@@ -370,9 +373,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());
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
@@ -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,13 +29,14 @@ 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;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class SimBootReceiver extends BroadcastReceiver {
|
public class SimBootReceiver extends BroadcastReceiver {
|
||||||
private static final int SLOT_EMPTY = -1;
|
private static final int SLOT_EMPTY = -1;
|
||||||
private static final int NOTIFICATION_ID = 1;
|
private static final int NOTIFICATION_ID = 1;
|
||||||
@@ -47,16 +46,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 +71,13 @@ 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) {
|
List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
|
||||||
|
if (sil == null || sil.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 +134,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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -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, needs to handle null from getActiveSubscriptionInfoList
|
||||||
}
|
}
|
||||||
|
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,10 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.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();
|
updateAvailableSubInfos();
|
||||||
updateAllOptions();
|
updateAllOptions();
|
||||||
}
|
}
|
||||||
@@ -275,7 +291,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 +301,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();
|
||||||
@@ -514,16 +530,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();
|
||||||
@@ -611,27 +627,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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user