[Telephony] Use TelephonyCallback instead of PhoneStateListener part1
Since the redesign of PhoneStateListener, use TelephonyCallback to get the callback of EVENT_* Bug: 167684594 Test: make Change-Id: Ia3b777b12142b104b5798804f50b34748f9bf28c Merged-In: Ia3b777b12142b104b5798804f50b34748f9bf28c
This commit is contained in:
parent
4fff45499f
commit
809f500e0d
@ -30,8 +30,8 @@ import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
|
||||
@ -92,8 +92,8 @@ public class MultinetworkPolicyTracker {
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
protected class ActiveDataSubscriptionIdChangedListener extends PhoneStateListener
|
||||
implements PhoneStateListener.ActiveDataSubscriptionIdChangedListener {
|
||||
protected class ActiveDataSubscriptionIdListener extends TelephonyCallback
|
||||
implements TelephonyCallback.ActiveDataSubscriptionIdListener {
|
||||
@Override
|
||||
public void onActiveDataSubscriptionIdChanged(int subId) {
|
||||
mActiveSubId = subId;
|
||||
@ -121,8 +121,8 @@ public class MultinetworkPolicyTracker {
|
||||
}
|
||||
};
|
||||
|
||||
ctx.getSystemService(TelephonyManager.class).registerPhoneStateListener(
|
||||
new HandlerExecutor(handler), new ActiveDataSubscriptionIdChangedListener());
|
||||
ctx.getSystemService(TelephonyManager.class).registerTelephonyCallback(
|
||||
new HandlerExecutor(handler), new ActiveDataSubscriptionIdListener());
|
||||
|
||||
updateAvoidBadWifi();
|
||||
updateMeteredMultipathPreference();
|
||||
|
@ -25,11 +25,11 @@ import android.provider.Settings.Global;
|
||||
import android.telephony.Annotation;
|
||||
import android.telephony.CellSignalStrength;
|
||||
import android.telephony.CellSignalStrengthCdma;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SignalStrength;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyDisplayInfo;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.Html;
|
||||
@ -63,7 +63,7 @@ public class MobileSignalController extends SignalController<
|
||||
private final String mNetworkNameSeparator;
|
||||
private final ContentObserver mObserver;
|
||||
@VisibleForTesting
|
||||
final PhoneStateListener mPhoneStateListener;
|
||||
final MobileTelephonyCallback mTelephonyCallback;
|
||||
// Save entire info for logging, we only use the id.
|
||||
final SubscriptionInfo mSubscriptionInfo;
|
||||
|
||||
@ -83,6 +83,7 @@ public class MobileSignalController extends SignalController<
|
||||
private Config mConfig;
|
||||
@VisibleForTesting
|
||||
boolean mInflateSignalStrengths = false;
|
||||
final Handler mHandler;
|
||||
|
||||
// TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't
|
||||
// need listener lists anymore.
|
||||
@ -98,7 +99,8 @@ public class MobileSignalController extends SignalController<
|
||||
mPhone = phone;
|
||||
mDefaults = defaults;
|
||||
mSubscriptionInfo = info;
|
||||
mPhoneStateListener = new MobilePhoneStateListener((new Handler(receiverLooper))::post);
|
||||
mHandler = new Handler(receiverLooper);
|
||||
mTelephonyCallback = new MobileTelephonyCallback();
|
||||
mNetworkNameSeparator = getTextIfExists(R.string.status_bar_network_name_separator)
|
||||
.toString();
|
||||
mNetworkNameDefault = getTextIfExists(
|
||||
@ -157,15 +159,7 @@ public class MobileSignalController extends SignalController<
|
||||
* Start listening for phone state changes.
|
||||
*/
|
||||
public void registerListener() {
|
||||
mPhone.listen(mPhoneStateListener,
|
||||
PhoneStateListener.LISTEN_SERVICE_STATE
|
||||
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
|
||||
| PhoneStateListener.LISTEN_CALL_STATE
|
||||
| PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
|
||||
| PhoneStateListener.LISTEN_DATA_ACTIVITY
|
||||
| PhoneStateListener.LISTEN_CARRIER_NETWORK_CHANGE
|
||||
| PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE
|
||||
| PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED);
|
||||
mPhone.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
|
||||
mContext.getContentResolver().registerContentObserver(Global.getUriFor(Global.MOBILE_DATA),
|
||||
true, mObserver);
|
||||
mContext.getContentResolver().registerContentObserver(Global.getUriFor(
|
||||
@ -177,7 +171,7 @@ public class MobileSignalController extends SignalController<
|
||||
* Stop listening for phone state changes.
|
||||
*/
|
||||
public void unregisterListener() {
|
||||
mPhone.listen(mPhoneStateListener, 0);
|
||||
mPhone.unregisterTelephonyCallback(mTelephonyCallback);
|
||||
mContext.getContentResolver().unregisterContentObserver(mObserver);
|
||||
}
|
||||
|
||||
@ -622,11 +616,15 @@ public class MobileSignalController extends SignalController<
|
||||
pw.println(" isDataDisabled=" + isDataDisabled() + ",");
|
||||
}
|
||||
|
||||
class MobilePhoneStateListener extends PhoneStateListener {
|
||||
public MobilePhoneStateListener(Executor executor) {
|
||||
super(executor);
|
||||
}
|
||||
|
||||
class MobileTelephonyCallback extends TelephonyCallback implements
|
||||
TelephonyCallback.SignalStrengthsListener,
|
||||
TelephonyCallback.ServiceStateListener,
|
||||
TelephonyCallback.DataConnectionStateListener,
|
||||
TelephonyCallback.DataActivityListener,
|
||||
TelephonyCallback.CarrierNetworkListener,
|
||||
TelephonyCallback.ActiveDataSubscriptionIdListener,
|
||||
TelephonyCallback.DisplayInfoListener
|
||||
{
|
||||
@Override
|
||||
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
||||
if (DEBUG) {
|
||||
|
@ -47,11 +47,11 @@ import android.provider.Settings;
|
||||
import android.provider.Settings.Global;
|
||||
import android.telephony.CellSignalStrength;
|
||||
import android.telephony.NetworkRegistrationInfo;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SignalStrength;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyDisplayInfo;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.testing.TestableLooper;
|
||||
@ -95,7 +95,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
|
||||
protected NetworkControllerImpl mNetworkController;
|
||||
protected MobileSignalController mMobileSignalController;
|
||||
protected PhoneStateListener mPhoneStateListener;
|
||||
protected SignalStrength mSignalStrength;
|
||||
protected ServiceState mServiceState;
|
||||
protected TelephonyDisplayInfo mTelephonyDisplayInfo;
|
||||
@ -211,8 +210,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
setDefaultSubId(mSubId);
|
||||
setSubscriptions(mSubId);
|
||||
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
||||
mPhoneStateListener = mMobileSignalController.mPhoneStateListener;
|
||||
|
||||
ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackArg =
|
||||
ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class);
|
||||
verify(mMockCm, atLeastOnce())
|
||||
@ -340,18 +337,15 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
|
||||
private void updateSignalStrength() {
|
||||
Log.d(TAG, "Sending Signal Strength: " + mSignalStrength);
|
||||
mPhoneStateListener.onSignalStrengthsChanged(mSignalStrength);
|
||||
mMobileSignalController.mTelephonyCallback
|
||||
.onSignalStrengthsChanged(mSignalStrength);
|
||||
}
|
||||
|
||||
protected void updateServiceState() {
|
||||
Log.d(TAG, "Sending Service State: " + mServiceState);
|
||||
mPhoneStateListener.onServiceStateChanged(mServiceState);
|
||||
mPhoneStateListener.onDisplayInfoChanged(mTelephonyDisplayInfo);
|
||||
}
|
||||
|
||||
public void updateCallState(int state) {
|
||||
// Inputs not currently used in NetworkControllerImpl.
|
||||
mPhoneStateListener.onCallStateChanged(state, "0123456789");
|
||||
mMobileSignalController.mTelephonyCallback.onServiceStateChanged(mServiceState);
|
||||
mMobileSignalController.mTelephonyCallback
|
||||
.onDisplayInfoChanged(mTelephonyDisplayInfo);
|
||||
}
|
||||
|
||||
public void updateDataConnectionState(int dataState, int dataNetType) {
|
||||
@ -363,16 +357,17 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
when(mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN))
|
||||
.thenReturn(fakeRegInfo);
|
||||
when(mTelephonyDisplayInfo.getNetworkType()).thenReturn(dataNetType);
|
||||
mPhoneStateListener.onDataConnectionStateChanged(dataState, dataNetType);
|
||||
mMobileSignalController.mTelephonyCallback
|
||||
.onDataConnectionStateChanged(dataState, dataNetType);
|
||||
}
|
||||
|
||||
public void updateDataActivity(int dataActivity) {
|
||||
mPhoneStateListener.onDataActivity(dataActivity);
|
||||
mMobileSignalController.mTelephonyCallback.onDataActivity(dataActivity);
|
||||
}
|
||||
|
||||
public void setCarrierNetworkChange(boolean enable) {
|
||||
Log.d(TAG, "setCarrierNetworkChange(" + enable + ")");
|
||||
mPhoneStateListener.onCarrierNetworkChange(enable);
|
||||
mMobileSignalController.mTelephonyCallback.onCarrierNetworkChange(enable);
|
||||
}
|
||||
|
||||
protected void verifyHasNoSims(boolean hasNoSimsVisible) {
|
||||
|
@ -21,7 +21,7 @@ import android.content.res.Resources
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_HANDOVER
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_PERFORMANCE
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_RELIABILITY
|
||||
import android.net.util.MultinetworkPolicyTracker.ActiveDataSubscriptionIdChangedListener
|
||||
import android.net.util.MultinetworkPolicyTracker.ActiveDataSubscriptionIdListener
|
||||
import android.provider.Settings
|
||||
import android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI
|
||||
import android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE
|
||||
@ -120,9 +120,9 @@ class MultinetworkPolicyTrackerTest {
|
||||
MULTIPATH_PREFERENCE_PERFORMANCE.toString())
|
||||
|
||||
val listenerCaptor = ArgumentCaptor.forClass(
|
||||
ActiveDataSubscriptionIdChangedListener::class.java)
|
||||
ActiveDataSubscriptionIdListener::class.java)
|
||||
verify(telephonyManager, times(1))
|
||||
.registerPhoneStateListener(any(), listenerCaptor.capture())
|
||||
.registerTelephonyCallback(any(), listenerCaptor.capture())
|
||||
val listener = listenerCaptor.value
|
||||
listener.onActiveDataSubscriptionIdChanged(testSubId)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user