[Telephony] Use TelephonyCallback instead of PhoneStateListener part5
Since the redesign of PhoneStateListener, use TelephonyCallback to get the callback of EVENT_* Bug: 167684594 Test: make and atest NetworkProviderWorkerTest Change-Id: I52af54045872bbf13e64d5d94c8b027ec702abb9
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.network;
|
||||
|
||||
import android.content.Context;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -28,14 +29,14 @@ import java.util.concurrent.Executor;
|
||||
|
||||
|
||||
/**
|
||||
* {@link PhoneStateListener} to listen to Allowed Network Types changed
|
||||
* {@link TelephonyCallback} to listen to Allowed Network Types changed
|
||||
*/
|
||||
public class AllowedNetworkTypesListener extends PhoneStateListener implements
|
||||
PhoneStateListener.AllowedNetworkTypesChangedListener {
|
||||
public class AllowedNetworkTypesListener extends TelephonyCallback implements
|
||||
TelephonyCallback.AllowedNetworkTypesListener {
|
||||
private static final String LOG_TAG = "NetworkModeListener";
|
||||
|
||||
@VisibleForTesting
|
||||
AllowedNetworkTypesListener.OnAllowedNetworkTypesChangedListener mListener;
|
||||
OnAllowedNetworkTypesListener mListener;
|
||||
private long mAllowedNetworkType = -1;
|
||||
private Executor mExecutor;
|
||||
|
||||
@@ -44,7 +45,7 @@ public class AllowedNetworkTypesListener extends PhoneStateListener implements
|
||||
mExecutor = executor;
|
||||
}
|
||||
|
||||
public void setAllowedNetworkTypesChangedListener(OnAllowedNetworkTypesChangedListener lsn) {
|
||||
public void setAllowedNetworkTypesListener(OnAllowedNetworkTypesListener lsn) {
|
||||
mListener = lsn;
|
||||
}
|
||||
|
||||
@@ -56,7 +57,7 @@ public class AllowedNetworkTypesListener extends PhoneStateListener implements
|
||||
public void register(Context context, int subId) {
|
||||
TelephonyManager telephonyManager = context.getSystemService(
|
||||
TelephonyManager.class).createForSubscriptionId(subId);
|
||||
telephonyManager.registerPhoneStateListener(mExecutor, this);
|
||||
telephonyManager.registerTelephonyCallback(mExecutor, this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,7 +68,7 @@ public class AllowedNetworkTypesListener extends PhoneStateListener implements
|
||||
public void unregister(Context context, int subId) {
|
||||
TelephonyManager telephonyManager = context.getSystemService(
|
||||
TelephonyManager.class).createForSubscriptionId(subId);
|
||||
telephonyManager.unregisterPhoneStateListener(this);
|
||||
telephonyManager.unregisterTelephonyCallback(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,7 +85,7 @@ public class AllowedNetworkTypesListener extends PhoneStateListener implements
|
||||
/**
|
||||
* Listener for update of Preferred Network Mode change
|
||||
*/
|
||||
public interface OnAllowedNetworkTypesChangedListener {
|
||||
public interface OnAllowedNetworkTypesListener {
|
||||
/**
|
||||
* Notify the allowed network type changed.
|
||||
*/
|
||||
|
@@ -151,7 +151,7 @@ public class EnabledNetworkModePreferenceController extends
|
||||
if (mAllowedNetworkTypesListener == null) {
|
||||
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
|
||||
mContext.getMainExecutor());
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesChangedListener(
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
|
||||
() -> updatePreference());
|
||||
}
|
||||
|
||||
|
@@ -45,7 +45,7 @@ public class NetworkPreferenceCategoryController extends PreferenceCategoryContr
|
||||
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
|
||||
context.getMainExecutor());
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesChangedListener(
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
|
||||
() -> updatePreference());
|
||||
}
|
||||
|
||||
|
@@ -25,9 +25,9 @@ import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyDisplayInfo;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
@@ -63,7 +63,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
private final Context mContext;
|
||||
final Handler mHandler;
|
||||
@VisibleForTesting
|
||||
final PhoneStateListener mPhoneStateListener;
|
||||
final NetworkProviderTelephonyCallback mTelephonyCallback;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
private Config mConfig = null;
|
||||
private TelephonyDisplayInfo mTelephonyDisplayInfo =
|
||||
@@ -83,7 +83,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
|
||||
mTelephonyManager = mContext.getSystemService(
|
||||
TelephonyManager.class).createForSubscriptionId(mDefaultDataSubid);
|
||||
mPhoneStateListener = new NetworkProviderPhoneStateListener();
|
||||
mTelephonyCallback = new NetworkProviderTelephonyCallback();
|
||||
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
|
||||
mDataEnabledListener = new MobileDataEnabledListener(context, this);
|
||||
mConnectivityListener = new DataConnectivityListener(context, this);
|
||||
@@ -101,7 +101,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
mDataEnabledListener.start(mDefaultDataSubid);
|
||||
mConnectivityListener.start();
|
||||
mSignalStrengthListener.resume();
|
||||
mTelephonyManager.registerPhoneStateListener(mHandler::post, mPhoneStateListener);
|
||||
mTelephonyManager.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
|
||||
super.onSlicePinned();
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
mDataEnabledListener.stop();
|
||||
mConnectivityListener.stop();
|
||||
mSignalStrengthListener.pause();
|
||||
mTelephonyManager.unregisterPhoneStateListener(mPhoneStateListener);
|
||||
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
||||
super.onSliceUnpinned();
|
||||
}
|
||||
|
||||
@@ -142,12 +142,12 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
return;
|
||||
}
|
||||
if (SubscriptionManager.isUsableSubscriptionId(defaultDataSubId)) {
|
||||
mTelephonyManager.unregisterPhoneStateListener(mPhoneStateListener);
|
||||
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
||||
mMobileDataObserver.unregister(mContext);
|
||||
|
||||
mSignalStrengthListener.updateSubscriptionIds(Collections.singleton(defaultDataSubId));
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(defaultDataSubId);
|
||||
mTelephonyManager.registerPhoneStateListener(mHandler::post, mPhoneStateListener);
|
||||
mTelephonyManager.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
|
||||
mMobileDataObserver.register(mContext, mDefaultDataSubid);
|
||||
mConfig = getConfig(mContext);
|
||||
} else {
|
||||
@@ -217,10 +217,10 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
||||
}
|
||||
}
|
||||
|
||||
class NetworkProviderPhoneStateListener extends PhoneStateListener implements
|
||||
PhoneStateListener.DataConnectionStateChangedListener,
|
||||
PhoneStateListener.DisplayInfoChangedListener,
|
||||
PhoneStateListener.ServiceStateChangedListener {
|
||||
class NetworkProviderTelephonyCallback extends TelephonyCallback implements
|
||||
TelephonyCallback.DataConnectionStateListener,
|
||||
TelephonyCallback.DisplayInfoListener,
|
||||
TelephonyCallback.ServiceStateListener {
|
||||
@Override
|
||||
public void onServiceStateChanged(ServiceState state) {
|
||||
Log.d(TAG, "onServiceStateChanged voiceState=" + state.getState()
|
||||
|
@@ -77,7 +77,7 @@ public abstract class CdmaBasePreferenceController extends TelephonyBasePreferen
|
||||
if (mAllowedNetworkTypesListener == null) {
|
||||
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
|
||||
mContext.getMainExecutor());
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesChangedListener(
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
|
||||
() -> updatePreference());
|
||||
}
|
||||
}
|
||||
|
@@ -81,7 +81,7 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon
|
||||
mUiHandler = new Handler(Looper.getMainLooper());
|
||||
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
|
||||
new HandlerExecutor(mUiHandler));
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesChangedListener(
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
|
||||
() -> updatePreference());
|
||||
}
|
||||
|
||||
|
@@ -60,7 +60,7 @@ public class OpenNetworkSelectPagePreferenceController extends
|
||||
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
|
||||
context.getMainExecutor());
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesChangedListener(
|
||||
mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
|
||||
() -> updatePreference());
|
||||
|
||||
}
|
||||
|
@@ -25,8 +25,8 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.HandlerExecutor;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.RadioAccessFamily;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.test.mock.MockContentResolver;
|
||||
|
||||
@@ -53,7 +53,7 @@ public class AllowedNetworkTypesListenerTest {
|
||||
private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
|
||||
|
||||
@Mock
|
||||
private AllowedNetworkTypesListener.OnAllowedNetworkTypesChangedListener mListener;
|
||||
private AllowedNetworkTypesListener.OnAllowedNetworkTypesListener mListener;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
@@ -87,15 +87,15 @@ public class AllowedNetworkTypesListenerTest {
|
||||
public void register_shouldRegisterContentObserver() {
|
||||
mAllowedNetworkTypesListener.register(mContext, SUB_ID);
|
||||
|
||||
verify(mTelephonyManager, times(1)).registerPhoneStateListener(any(HandlerExecutor.class),
|
||||
any(PhoneStateListener.class));
|
||||
verify(mTelephonyManager, times(1)).registerTelephonyCallback(any(HandlerExecutor.class),
|
||||
any(TelephonyCallback.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unregister_shouldUnregisterContentObserver() {
|
||||
mAllowedNetworkTypesListener.unregister(mContext, SUB_ID);
|
||||
|
||||
verify(mTelephonyManager).unregisterPhoneStateListener(
|
||||
verify(mTelephonyManager).unregisterTelephonyCallback(
|
||||
mAllowedNetworkTypesListener);
|
||||
}
|
||||
}
|
||||
|
@@ -207,22 +207,22 @@ public class NetworkProviderWorkerTest {
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onServiceStateChanged_notifyPhoneStateListener_callUpdateSlice() {
|
||||
public void onServiceStateChanged_notifyTelephonyCallback_callUpdateSlice() {
|
||||
mMockNetworkProviderWorker.onSlicePinned();
|
||||
mMockNetworkProviderWorker.receiveNotification(false);
|
||||
|
||||
mMockNetworkProviderWorker.mPhoneStateListener.onServiceStateChanged(new ServiceState());
|
||||
mMockNetworkProviderWorker.mTelephonyCallback.onServiceStateChanged(new ServiceState());
|
||||
|
||||
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onDisplayInfoChanged_notifyPhoneStateListener_callUpdateSlice() {
|
||||
public void onDisplayInfoChanged_notifyTelephonyCallback_callUpdateSlice() {
|
||||
mMockNetworkProviderWorker.onSlicePinned();
|
||||
mMockNetworkProviderWorker.receiveNotification(false);
|
||||
|
||||
mMockNetworkProviderWorker.mPhoneStateListener.onDisplayInfoChanged(
|
||||
mMockNetworkProviderWorker.mTelephonyCallback.onDisplayInfoChanged(
|
||||
new TelephonyDisplayInfo(14, 0));
|
||||
|
||||
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
|
||||
@@ -230,11 +230,11 @@ public class NetworkProviderWorkerTest {
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onDataConnectionStateChanged_notifyPhoneStateListener_callUpdateSlice() {
|
||||
public void onDataConnectionStateChanged_notifyTelephonyCallback_callUpdateSlice() {
|
||||
mMockNetworkProviderWorker.onSlicePinned();
|
||||
mMockNetworkProviderWorker.receiveNotification(false);
|
||||
|
||||
mMockNetworkProviderWorker.mPhoneStateListener.onDataConnectionStateChanged(
|
||||
mMockNetworkProviderWorker.mTelephonyCallback.onDataConnectionStateChanged(
|
||||
TelephonyManager.DATA_DISCONNECTED, TelephonyManager.NETWORK_TYPE_LTE);
|
||||
|
||||
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
|
||||
|
Reference in New Issue
Block a user