Let network mode UI refresh when network type with carrier group changed

Bug: 193432269
Test: atest AllowedNetworkTypesListenerTest (pass)
atest EnabledNetworkModePreferenceControllerTest (pass)

Change-Id: Icae727887b2e913479a241bb9f014607b8ec826c
This commit is contained in:
SongFerngWang
2021-07-15 15:01:43 +08:00
parent 29da5abcb1
commit 74a6ffaa91
3 changed files with 21 additions and 7 deletions

View File

@@ -34,7 +34,6 @@ public class AllowedNetworkTypesListener extends TelephonyCallback implements
@VisibleForTesting
OnAllowedNetworkTypesListener mListener;
private long mAllowedNetworkType = -1;
private Executor mExecutor;
public AllowedNetworkTypesListener(Executor executor) {
@@ -70,14 +69,14 @@ public class AllowedNetworkTypesListener extends TelephonyCallback implements
@Override
public void onAllowedNetworkTypesChanged(int reason, long newAllowedNetworkType) {
if (reason != TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER) {
if (reason != TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER
&& reason != TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER) {
return;
}
if (mListener != null && mAllowedNetworkType != newAllowedNetworkType) {
if (mListener != null) {
mListener.onAllowedNetworkTypesChanged();
Log.d(LOG_TAG, "onAllowedNetworkChanged: " + mAllowedNetworkType);
Log.d(LOG_TAG, "onAllowedNetworkChanged: " + newAllowedNetworkType);
}
mAllowedNetworkType = newAllowedNetworkType;
}
/**

View File

@@ -152,7 +152,10 @@ public class EnabledNetworkModePreferenceController extends
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
mContext.getMainExecutor());
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
() -> updatePreference());
() -> {
mBuilder.updateConfig();
updatePreference();
});
}
lifecycle.addObserver(this);

View File

@@ -68,7 +68,7 @@ public class AllowedNetworkTypesListenerTest {
}
@Test
public void onChange_shouldCallListener() {
public void onChange_userReasonChanged_shouldCallListener() {
mAllowedNetworkTypesListener.mListener = mListener;
long networkType = (long) RadioAccessFamily.getRafFromNetworkType(
TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO);
@@ -79,6 +79,18 @@ public class AllowedNetworkTypesListenerTest {
verify(mListener).onAllowedNetworkTypesChanged();
}
@Test
public void onChange_carrierReasonChanged_shouldCallListener() {
mAllowedNetworkTypesListener.mListener = mListener;
long networkType = (long) RadioAccessFamily.getRafFromNetworkType(
TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO);
mAllowedNetworkTypesListener.onAllowedNetworkTypesChanged(
TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER, networkType);
verify(mListener).onAllowedNetworkTypesChanged();
}
@Test
public void register_shouldRegisterContentObserver() {
mAllowedNetworkTypesListener.register(mContext, SUB_ID);