[Settings] Remove the intent receiver due to the register exception
Bug: 274899027 Test: atest SystemUIMicrobenchmark:android.platform.test.scenario.sysui.quicksettings Change-Id: Ia19b91cfd1073f22180cc9679025447b4d5fecd9
This commit is contained in:
@@ -38,14 +38,13 @@ import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkProviderCallsSmsController extends AbstractPreferenceController implements
|
||||
LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback {
|
||||
LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
|
||||
DefaultSubscriptionReceiver.DefaultSubscriptionListener {
|
||||
|
||||
private static final String TAG = "NetworkProviderCallsSmsController";
|
||||
private static final String KEY = "calls_and_sms";
|
||||
@@ -58,6 +57,9 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
private MobileNetworkRepository mMobileNetworkRepository;
|
||||
private List<SubscriptionInfoEntity> mSubInfoEntityList;
|
||||
private int mDefaultVoiceSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
private int mDefaultSmsSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
|
||||
|
||||
/**
|
||||
* The summary text and click behavior of the "Calls & SMS" item on the
|
||||
@@ -73,6 +75,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
||||
== View.LAYOUT_DIRECTION_RTL;
|
||||
mLifecycleOwner = lifecycleOwner;
|
||||
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
|
||||
mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
|
||||
if (lifecycle != null) {
|
||||
lifecycle.addObserver(this);
|
||||
}
|
||||
@@ -83,11 +86,15 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
||||
mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
|
||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||
mMobileNetworkRepository.updateEntity();
|
||||
mDataSubscriptionChangedReceiver.registerReceiver();
|
||||
mDefaultVoiceSubId = SubscriptionManager.getDefaultVoiceSubscriptionId();
|
||||
mDefaultSmsSubId = SubscriptionManager.getDefaultSmsSubscriptionId();
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Event.ON_PAUSE)
|
||||
public void onPause() {
|
||||
mMobileNetworkRepository.removeRegister(this);
|
||||
mDataSubscriptionChangedReceiver.unRegisterReceiver();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -145,16 +152,16 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
||||
protected CharSequence getPreferredStatus(SubscriptionInfoEntity subInfo, int subsSize,
|
||||
int subId) {
|
||||
String status = "";
|
||||
boolean isDataPreferred = subInfo.isDefaultVoiceSubscription;
|
||||
boolean isSmsPreferred = subInfo.isDefaultSmsSubscription;
|
||||
boolean isCallPreferred = subInfo.getSubId() == getDefaultVoiceSubscriptionId();
|
||||
boolean isSmsPreferred = subInfo.getSubId() == getDefaultSmsSubscriptionId();
|
||||
|
||||
if (!subInfo.isValidSubscription || !isInService(subId)) {
|
||||
status = setSummaryResId(subsSize > 1 ? R.string.calls_sms_unavailable :
|
||||
R.string.calls_sms_temp_unavailable);
|
||||
} else {
|
||||
if (isDataPreferred && isSmsPreferred) {
|
||||
if (isCallPreferred && isSmsPreferred) {
|
||||
status = setSummaryResId(R.string.calls_sms_preferred);
|
||||
} else if (isDataPreferred) {
|
||||
} else if (isCallPreferred) {
|
||||
status = setSummaryResId(R.string.calls_sms_calls_preferred);
|
||||
} else if (isSmsPreferred) {
|
||||
status = setSummaryResId(R.string.calls_sms_sms_preferred);
|
||||
@@ -226,4 +233,26 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
||||
mSubInfoEntityList = activeSubInfoList;
|
||||
update();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
protected int getDefaultVoiceSubscriptionId() {
|
||||
return mDefaultVoiceSubId;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
protected int getDefaultSmsSubscriptionId() {
|
||||
return mDefaultSmsSubId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDefaultVoiceChanged(int defaultVoiceSubId) {
|
||||
mDefaultVoiceSubId = defaultVoiceSubId;
|
||||
update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDefaultSmsChanged(int defaultSmsSubId) {
|
||||
mDefaultSmsSubId = defaultSmsSubId;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user