[Settings] Adopt TelephonyBasePreferenceController
Adopt TelephonyBasePreferenceController for better support on multi-SIM environment. Bug: 143996139 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DefaultSubscriptionControllerTest Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DisableSimFooterPreferenceControllerTest Change-Id: I8a9c6efa927be1cb4a7ab4ebe816dcad9f20bd70
This commit is contained in:
@@ -35,7 +35,6 @@ import androidx.preference.Preference;
|
|||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
|
||||||
import com.android.settings.network.SubscriptionUtil;
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settings.network.SubscriptionsChangeListener;
|
import com.android.settings.network.SubscriptionsChangeListener;
|
||||||
|
|
||||||
@@ -47,8 +46,8 @@ import java.util.List;
|
|||||||
* what mobile network subscription is used by default for some service controlled by the
|
* what mobile network subscription is used by default for some service controlled by the
|
||||||
* SubscriptionManager. This can be used for services such as Calls or SMS.
|
* SubscriptionManager. This can be used for services such as Calls or SMS.
|
||||||
*/
|
*/
|
||||||
public abstract class DefaultSubscriptionController extends BasePreferenceController implements
|
public abstract class DefaultSubscriptionController extends TelephonyBasePreferenceController
|
||||||
LifecycleObserver, Preference.OnPreferenceChangeListener,
|
implements LifecycleObserver, Preference.OnPreferenceChangeListener,
|
||||||
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
||||||
private static final String TAG = "DefaultSubController";
|
private static final String TAG = "DefaultSubController";
|
||||||
|
|
||||||
@@ -85,7 +84,7 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro
|
|||||||
protected abstract void setDefaultSubscription(int subscriptionId);
|
protected abstract void setDefaultSubscription(int subscriptionId);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus(int subId) {
|
||||||
final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
|
final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager);
|
||||||
if (subs.size() > 1) {
|
if (subs.size() > 1) {
|
||||||
return AVAILABLE;
|
return AVAILABLE;
|
||||||
|
@@ -20,30 +20,37 @@ import android.content.Context;
|
|||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
|
||||||
import com.android.settings.network.SubscriptionUtil;
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
|
|
||||||
public class DisableSimFooterPreferenceController extends BasePreferenceController {
|
/**
|
||||||
private int mSubId;
|
* Shows information about disable a physical SIM.
|
||||||
|
*/
|
||||||
|
public class DisableSimFooterPreferenceController extends TelephonyBasePreferenceController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
public DisableSimFooterPreferenceController(Context context, String preferenceKey) {
|
public DisableSimFooterPreferenceController(Context context, String preferenceKey) {
|
||||||
super(context, preferenceKey);
|
super(context, preferenceKey);
|
||||||
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* re-init for SIM based on given subscription ID.
|
||||||
|
* @param subId is the given subscription ID
|
||||||
|
*/
|
||||||
public void init(int subId) {
|
public void init(int subId) {
|
||||||
mSubId = subId;
|
mSubId = subId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus(int subId) {
|
||||||
if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
return CONDITIONALLY_UNAVAILABLE;
|
return CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
|
SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
|
||||||
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) {
|
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) {
|
||||||
if (info.getSubscriptionId() == mSubId) {
|
if (info.getSubscriptionId() == subId) {
|
||||||
if (info.isEmbedded() || SubscriptionUtil.showToggleForPhysicalSim(subManager)) {
|
if (info.isEmbedded() || SubscriptionUtil.showToggleForPhysicalSim(subManager)) {
|
||||||
return CONDITIONALLY_UNAVAILABLE;
|
return CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user