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