EnabledNetworkModePreferenceController redo Init after sim activate
Failed to get RadioAccessFamily information from TelephonyManager.getSupportedRadioAccessFamily due to SIM inactivated Bug: 180360457 Test: atest EnabledNetworkModePreferenceControllerTest Change-Id: Icfce6c319e9a84318c9496125718cd60dda6afbb
This commit is contained in:
@@ -35,6 +35,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.network.AllowedNetworkTypesListener;
|
import com.android.settings.network.AllowedNetworkTypesListener;
|
||||||
|
import com.android.settings.network.SubscriptionsChangeListener;
|
||||||
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -47,7 +48,8 @@ import java.util.stream.Stream;
|
|||||||
*/
|
*/
|
||||||
public class EnabledNetworkModePreferenceController extends
|
public class EnabledNetworkModePreferenceController extends
|
||||||
TelephonyBasePreferenceController implements
|
TelephonyBasePreferenceController implements
|
||||||
ListPreference.OnPreferenceChangeListener, LifecycleObserver {
|
ListPreference.OnPreferenceChangeListener, LifecycleObserver,
|
||||||
|
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
||||||
|
|
||||||
private static final String LOG_TAG = "EnabledNetworkMode";
|
private static final String LOG_TAG = "EnabledNetworkMode";
|
||||||
private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
|
private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
|
||||||
@@ -56,9 +58,11 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
private CarrierConfigManager mCarrierConfigManager;
|
private CarrierConfigManager mCarrierConfigManager;
|
||||||
private PreferenceEntriesBuilder mBuilder;
|
private PreferenceEntriesBuilder mBuilder;
|
||||||
|
private SubscriptionsChangeListener mSubscriptionsListener;
|
||||||
|
|
||||||
public EnabledNetworkModePreferenceController(Context context, String key) {
|
public EnabledNetworkModePreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
|
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -85,6 +89,7 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
|
|
||||||
@OnLifecycleEvent(ON_START)
|
@OnLifecycleEvent(ON_START)
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
|
mSubscriptionsListener.start();
|
||||||
if (mAllowedNetworkTypesListener == null) {
|
if (mAllowedNetworkTypesListener == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -93,6 +98,7 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
|
|
||||||
@OnLifecycleEvent(ON_STOP)
|
@OnLifecycleEvent(ON_STOP)
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
|
mSubscriptionsListener.stop();
|
||||||
if (mAllowedNetworkTypesListener == null) {
|
if (mAllowedNetworkTypesListener == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -196,11 +202,14 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
PreferenceEntriesBuilder(Context context, int subId) {
|
PreferenceEntriesBuilder(Context context, int subId) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mSubId = subId;
|
this.mSubId = subId;
|
||||||
|
|
||||||
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
|
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
|
||||||
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
|
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
|
||||||
.createForSubscriptionId(mSubId);
|
.createForSubscriptionId(mSubId);
|
||||||
|
updateConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateConfig() {
|
||||||
|
mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
|
||||||
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
||||||
mAllowed5gNetworkType = checkSupportedRadioBitmask(
|
mAllowed5gNetworkType = checkSupportedRadioBitmask(
|
||||||
mTelephonyManager.getAllowedNetworkTypesForReason(
|
mTelephonyManager.getAllowedNetworkTypesForReason(
|
||||||
@@ -214,6 +223,11 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
|
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
|
||||||
mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
|
mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
|
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
|
||||||
|
Log.d(LOG_TAG, "PreferenceEntriesBuilder: subId" + mSubId
|
||||||
|
+ ",Supported5gRadioAccessFamily :" + mSupported5gRadioAccessFamily
|
||||||
|
+ ",mAllowed5gNetworkType :" + mAllowed5gNetworkType
|
||||||
|
+ ",IsGlobalCdma :" + mIsGlobalCdma
|
||||||
|
+ ",Show4gForLTE :" + mShow4gForLTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setPreferenceEntries() {
|
void setPreferenceEntries() {
|
||||||
@@ -818,4 +832,13 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSubscriptionsChanged() {
|
||||||
|
mBuilder.updateConfig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user