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 @VisibleForTesting
OnAllowedNetworkTypesListener mListener; OnAllowedNetworkTypesListener mListener;
private long mAllowedNetworkType = -1;
private Executor mExecutor; private Executor mExecutor;
public AllowedNetworkTypesListener(Executor executor) { public AllowedNetworkTypesListener(Executor executor) {
@@ -70,14 +69,14 @@ public class AllowedNetworkTypesListener extends TelephonyCallback implements
@Override @Override
public void onAllowedNetworkTypesChanged(int reason, long newAllowedNetworkType) { 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; return;
} }
if (mListener != null && mAllowedNetworkType != newAllowedNetworkType) { if (mListener != null) {
mListener.onAllowedNetworkTypesChanged(); 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( mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
mContext.getMainExecutor()); mContext.getMainExecutor());
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener( mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
() -> updatePreference()); () -> {
mBuilder.updateConfig();
updatePreference();
});
} }
lifecycle.addObserver(this); lifecycle.addObserver(this);

View File

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