[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
This commit is contained in:
@@ -30,8 +30,8 @@ import android.database.ContentObserver;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.telephony.PhoneStateListener;
|
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
|
import android.telephony.TelephonyCallback;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -92,8 +92,8 @@ public class MultinetworkPolicyTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected class ActiveDataSubscriptionIdChangedListener extends PhoneStateListener
|
protected class ActiveDataSubscriptionIdListener extends TelephonyCallback
|
||||||
implements PhoneStateListener.ActiveDataSubscriptionIdChangedListener {
|
implements TelephonyCallback.ActiveDataSubscriptionIdListener {
|
||||||
@Override
|
@Override
|
||||||
public void onActiveDataSubscriptionIdChanged(int subId) {
|
public void onActiveDataSubscriptionIdChanged(int subId) {
|
||||||
mActiveSubId = subId;
|
mActiveSubId = subId;
|
||||||
@@ -121,8 +121,8 @@ public class MultinetworkPolicyTracker {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ctx.getSystemService(TelephonyManager.class).registerPhoneStateListener(
|
ctx.getSystemService(TelephonyManager.class).registerTelephonyCallback(
|
||||||
new HandlerExecutor(handler), new ActiveDataSubscriptionIdChangedListener());
|
new HandlerExecutor(handler), new ActiveDataSubscriptionIdListener());
|
||||||
|
|
||||||
updateAvoidBadWifi();
|
updateAvoidBadWifi();
|
||||||
updateMeteredMultipathPreference();
|
updateMeteredMultipathPreference();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import android.net.wifi.WifiManager.SubsystemRestartTrackingCallback;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerExecutor;
|
import android.os.HandlerExecutor;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.TelephonyCallback;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -72,7 +72,10 @@ public class ConnectivitySubsystemsRecoveryManager {
|
|||||||
checkIfAllSubsystemsRestartsAreDone();
|
checkIfAllSubsystemsRestartsAreDone();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
|
private final MobileTelephonyCallback mTelephonyCallback = new MobileTelephonyCallback();
|
||||||
|
|
||||||
|
private class MobileTelephonyCallback extends TelephonyCallback implements
|
||||||
|
TelephonyCallback.RadioPowerStateListener {
|
||||||
@Override
|
@Override
|
||||||
public void onRadioPowerStateChanged(int state) {
|
public void onRadioPowerStateChanged(int state) {
|
||||||
if (!mTelephonyRestartInProgress || mCurrentRecoveryCallback == null) {
|
if (!mTelephonyRestartInProgress || mCurrentRecoveryCallback == null) {
|
||||||
@@ -85,7 +88,7 @@ public class ConnectivitySubsystemsRecoveryManager {
|
|||||||
checkIfAllSubsystemsRestartsAreDone();
|
checkIfAllSubsystemsRestartsAreDone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
public ConnectivitySubsystemsRecoveryManager(@NonNull Context context,
|
public ConnectivitySubsystemsRecoveryManager(@NonNull Context context,
|
||||||
@NonNull Handler handler) {
|
@NonNull Handler handler) {
|
||||||
@@ -201,12 +204,12 @@ public class ConnectivitySubsystemsRecoveryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startTrackingTelephonyRestart() {
|
private void startTrackingTelephonyRestart() {
|
||||||
mTelephonyManager.registerPhoneStateListener(new HandlerExecutor(mHandler),
|
mTelephonyManager.registerTelephonyCallback(new HandlerExecutor(mHandler),
|
||||||
mPhoneStateListener);
|
mTelephonyCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stopTrackingTelephonyRestart() {
|
private void stopTrackingTelephonyRestart() {
|
||||||
mTelephonyManager.unregisterPhoneStateListener(mPhoneStateListener);
|
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkIfAllSubsystemsRestartsAreDone() {
|
private void checkIfAllSubsystemsRestartsAreDone() {
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ package com.android.settingslib.mobile;
|
|||||||
|
|
||||||
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.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
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;
|
||||||
@@ -40,9 +40,9 @@ public class MobileStatusTracker {
|
|||||||
private final SubscriptionInfo mSubscriptionInfo;
|
private final SubscriptionInfo mSubscriptionInfo;
|
||||||
private final Callback mCallback;
|
private final Callback mCallback;
|
||||||
private final MobileStatus mMobileStatus;
|
private final MobileStatus mMobileStatus;
|
||||||
private final PhoneStateListener mPhoneStateListener;
|
|
||||||
private final SubscriptionDefaults mDefaults;
|
private final SubscriptionDefaults mDefaults;
|
||||||
private final Handler mReceiverHandler;
|
private final Handler mReceiverHandler;
|
||||||
|
private final MobileTelephonyCallback mTelephonyCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MobileStatusTracker constructors
|
* MobileStatusTracker constructors
|
||||||
@@ -58,7 +58,7 @@ public class MobileStatusTracker {
|
|||||||
SubscriptionInfo info, SubscriptionDefaults defaults, Callback callback) {
|
SubscriptionInfo info, SubscriptionDefaults defaults, Callback callback) {
|
||||||
mPhone = phone;
|
mPhone = phone;
|
||||||
mReceiverHandler = new Handler(receiverLooper);
|
mReceiverHandler = new Handler(receiverLooper);
|
||||||
mPhoneStateListener = new MobilePhoneStateListener();
|
mTelephonyCallback = new MobileTelephonyCallback();
|
||||||
mSubscriptionInfo = info;
|
mSubscriptionInfo = info;
|
||||||
mDefaults = defaults;
|
mDefaults = defaults;
|
||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
@@ -68,8 +68,8 @@ public class MobileStatusTracker {
|
|||||||
/* updateTelephony= */false, new MobileStatus(mMobileStatus)));
|
/* updateTelephony= */false, new MobileStatus(mMobileStatus)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhoneStateListener getPhoneStateListener() {
|
public MobileTelephonyCallback getTelephonyCallback() {
|
||||||
return mPhoneStateListener;
|
return mTelephonyCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,9 +77,9 @@ public class MobileStatusTracker {
|
|||||||
*/
|
*/
|
||||||
public void setListening(boolean listening) {
|
public void setListening(boolean listening) {
|
||||||
if (listening) {
|
if (listening) {
|
||||||
mPhone.registerPhoneStateListener(mReceiverHandler::post, mPhoneStateListener);
|
mPhone.registerTelephonyCallback(mReceiverHandler::post, mTelephonyCallback);
|
||||||
} else {
|
} else {
|
||||||
mPhone.unregisterPhoneStateListener(mPhoneStateListener);
|
mPhone.unregisterTelephonyCallback(mTelephonyCallback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,15 +106,14 @@ public class MobileStatusTracker {
|
|||||||
|| activity == TelephonyManager.DATA_ACTIVITY_OUT;
|
|| activity == TelephonyManager.DATA_ACTIVITY_OUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MobilePhoneStateListener extends PhoneStateListener implements
|
public class MobileTelephonyCallback extends TelephonyCallback implements
|
||||||
PhoneStateListener.ServiceStateChangedListener,
|
TelephonyCallback.ServiceStateListener,
|
||||||
PhoneStateListener.SignalStrengthsChangedListener,
|
TelephonyCallback.SignalStrengthsListener,
|
||||||
PhoneStateListener.CallStateChangedListener,
|
TelephonyCallback.DataConnectionStateListener,
|
||||||
PhoneStateListener.DataConnectionStateChangedListener,
|
TelephonyCallback.DataActivityListener,
|
||||||
PhoneStateListener.DataActivityListener,
|
TelephonyCallback.CarrierNetworkListener,
|
||||||
PhoneStateListener.CarrierNetworkChangeListener,
|
TelephonyCallback.ActiveDataSubscriptionIdListener,
|
||||||
PhoneStateListener.ActiveDataSubscriptionIdChangedListener,
|
TelephonyCallback.DisplayInfoListener{
|
||||||
PhoneStateListener.DisplayInfoChangedListener{
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ import android.provider.Settings;
|
|||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.telephony.CellSignalStrength;
|
import android.telephony.CellSignalStrength;
|
||||||
import android.telephony.NetworkRegistrationInfo;
|
import android.telephony.NetworkRegistrationInfo;
|
||||||
import android.telephony.PhoneStateListener;
|
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
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.testing.TestableLooper;
|
import android.testing.TestableLooper;
|
||||||
@@ -106,7 +106,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
|
|
||||||
protected NetworkControllerImpl mNetworkController;
|
protected NetworkControllerImpl mNetworkController;
|
||||||
protected MobileSignalController mMobileSignalController;
|
protected MobileSignalController mMobileSignalController;
|
||||||
protected PhoneStateListener mPhoneStateListener;
|
|
||||||
protected SignalStrength mSignalStrength;
|
protected SignalStrength mSignalStrength;
|
||||||
protected ServiceState mServiceState;
|
protected ServiceState mServiceState;
|
||||||
protected TelephonyDisplayInfo mTelephonyDisplayInfo;
|
protected TelephonyDisplayInfo mTelephonyDisplayInfo;
|
||||||
@@ -250,8 +249,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
setDefaultSubId(mSubId);
|
setDefaultSubId(mSubId);
|
||||||
setSubscriptions(mSubId);
|
setSubscriptions(mSubId);
|
||||||
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
||||||
mPhoneStateListener = mMobileSignalController.mMobileStatusTracker.getPhoneStateListener();
|
|
||||||
|
|
||||||
ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackArg =
|
ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackArg =
|
||||||
ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class);
|
ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class);
|
||||||
verify(mMockCm, atLeastOnce())
|
verify(mMockCm, atLeastOnce())
|
||||||
@@ -453,18 +450,16 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private void updateSignalStrength() {
|
private void updateSignalStrength() {
|
||||||
Log.d(TAG, "Sending Signal Strength: " + mSignalStrength);
|
Log.d(TAG, "Sending Signal Strength: " + mSignalStrength);
|
||||||
mPhoneStateListener.onSignalStrengthsChanged(mSignalStrength);
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
|
.onSignalStrengthsChanged(mSignalStrength);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateServiceState() {
|
protected void updateServiceState() {
|
||||||
Log.d(TAG, "Sending Service State: " + mServiceState);
|
Log.d(TAG, "Sending Service State: " + mServiceState);
|
||||||
mPhoneStateListener.onServiceStateChanged(mServiceState);
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
mPhoneStateListener.onDisplayInfoChanged(mTelephonyDisplayInfo);
|
.onServiceStateChanged(mServiceState);
|
||||||
}
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
|
.onDisplayInfoChanged(mTelephonyDisplayInfo);
|
||||||
public void updateCallState(int state) {
|
|
||||||
// Inputs not currently used in NetworkControllerImpl.
|
|
||||||
mPhoneStateListener.onCallStateChanged(state, "0123456789");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDataConnectionState(int dataState, int dataNetType) {
|
public void updateDataConnectionState(int dataState, int dataNetType) {
|
||||||
@@ -476,16 +471,19 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
when(mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN))
|
when(mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN))
|
||||||
.thenReturn(fakeRegInfo);
|
.thenReturn(fakeRegInfo);
|
||||||
when(mTelephonyDisplayInfo.getNetworkType()).thenReturn(dataNetType);
|
when(mTelephonyDisplayInfo.getNetworkType()).thenReturn(dataNetType);
|
||||||
mPhoneStateListener.onDataConnectionStateChanged(dataState, dataNetType);
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
|
.onDataConnectionStateChanged(dataState, dataNetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDataActivity(int dataActivity) {
|
public void updateDataActivity(int dataActivity) {
|
||||||
mPhoneStateListener.onDataActivity(dataActivity);
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
|
.onDataActivity(dataActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCarrierNetworkChange(boolean enable) {
|
public void setCarrierNetworkChange(boolean enable) {
|
||||||
Log.d(TAG, "setCarrierNetworkChange(" + enable + ")");
|
Log.d(TAG, "setCarrierNetworkChange(" + enable + ")");
|
||||||
mPhoneStateListener.onCarrierNetworkChange(enable);
|
mMobileSignalController.mMobileStatusTracker.getTelephonyCallback()
|
||||||
|
.onCarrierNetworkChange(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void verifyHasNoSims(boolean hasNoSimsVisible) {
|
protected void verifyHasNoSims(boolean hasNoSimsVisible) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.TelephonyCallback;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
import com.android.server.FgThread;
|
import com.android.server.FgThread;
|
||||||
@@ -55,8 +55,8 @@ public class SystemEmergencyHelper extends EmergencyHelper {
|
|||||||
|
|
||||||
// TODO: this doesn't account for multisim phones
|
// TODO: this doesn't account for multisim phones
|
||||||
|
|
||||||
mTelephonyManager.registerPhoneStateListener(FgThread.getExecutor(),
|
mTelephonyManager.registerTelephonyCallback(FgThread.getExecutor(),
|
||||||
new EmergencyCallPhoneStateListener());
|
new EmergencyCallTelephonyCallback());
|
||||||
mContext.registerReceiver(new BroadcastReceiver() {
|
mContext.registerReceiver(new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@@ -78,8 +78,8 @@ public class SystemEmergencyHelper extends EmergencyHelper {
|
|||||||
|| mTelephonyManager.isInEmergencySmsMode();
|
|| mTelephonyManager.isInEmergencySmsMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class EmergencyCallPhoneStateListener extends PhoneStateListener implements
|
private class EmergencyCallTelephonyCallback extends TelephonyCallback implements
|
||||||
PhoneStateListener.CallStateChangedListener {
|
TelephonyCallback.CallStateListener{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStateChanged(int state, String incomingNumber) {
|
public void onCallStateChanged(int state, String incomingNumber) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import android.content.res.Resources
|
|||||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_HANDOVER
|
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_HANDOVER
|
||||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_PERFORMANCE
|
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_PERFORMANCE
|
||||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_RELIABILITY
|
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
|
||||||
import android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI
|
import android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI
|
||||||
import android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE
|
import android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE
|
||||||
@@ -120,9 +120,9 @@ class MultinetworkPolicyTrackerTest {
|
|||||||
MULTIPATH_PREFERENCE_PERFORMANCE.toString())
|
MULTIPATH_PREFERENCE_PERFORMANCE.toString())
|
||||||
|
|
||||||
val listenerCaptor = ArgumentCaptor.forClass(
|
val listenerCaptor = ArgumentCaptor.forClass(
|
||||||
ActiveDataSubscriptionIdChangedListener::class.java)
|
ActiveDataSubscriptionIdListener::class.java)
|
||||||
verify(telephonyManager, times(1))
|
verify(telephonyManager, times(1))
|
||||||
.registerPhoneStateListener(any(), listenerCaptor.capture())
|
.registerTelephonyCallback(any(), listenerCaptor.capture())
|
||||||
val listener = listenerCaptor.value
|
val listener = listenerCaptor.value
|
||||||
listener.onActiveDataSubscriptionIdChanged(testSubId)
|
listener.onActiveDataSubscriptionIdChanged(testSubId)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user