[Settings] Use TelephonyManasger.registerTelephonyCallback instead of TelephonyManager.listen
Bug: 175270951
Test: make and atest
Change-Id: I15e1a199e6a34914db97055bfea9392c5bbdc9c6
diff --git a/src/com/android/settings/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java
index 6028c18..8b29d67 100644
--- a/src/com/android/settings/AirplaneModeEnabler.java
+++ b/src/com/android/settings/AirplaneModeEnabler.java
@@ -24,6 +24,7 @@
import android.provider.Settings;
import android.telephony.PhoneStateListener;
import android.telephony.SubscriptionInfo;
+import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -61,7 +62,7 @@
private TelephonyManager mTelephonyManager;
@VisibleForTesting
- PhoneStateListener mPhoneStateListener;
+ AirplaneModeTelephonyCallback mTelephonyCallback;
public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) {
super(context, Settings.Global.AIRPLANE_MODE_ON);
@@ -71,16 +72,18 @@
mOnAirplaneModeChangedListener = listener;
mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mTelephonyCallback = new AirplaneModeTelephonyCallback();
+ }
- mPhoneStateListener = new PhoneStateListener(Looper.getMainLooper()) {
- @Override
- public void onRadioPowerStateChanged(int state) {
- if (DEBUG) {
- Log.d(LOG_TAG, "RadioPower: " + state);
- }
- onAirplaneModeChanged();
+ class AirplaneModeTelephonyCallback extends TelephonyCallback implements
+ TelephonyCallback.RadioPowerStateListener {
+ @Override
+ public void onRadioPowerStateChanged(int state) {
+ if (DEBUG) {
+ Log.d(LOG_TAG, "RadioPower: " + state);
}
- };
+ onAirplaneModeChanged();
+ }
}
/**
@@ -98,16 +101,14 @@
* Start listening to the phone state change
*/
public void start() {
- mTelephonyManager.listen(mPhoneStateListener,
- PhoneStateListener.LISTEN_RADIO_POWER_STATE_CHANGED);
+ mTelephonyManager.registerTelephonyCallback(mContext.getMainExecutor(), mTelephonyCallback);
}
/**
* Stop listening to the phone state change
*/
public void stop() {
- mTelephonyManager.listen(mPhoneStateListener,
- PhoneStateListener.LISTEN_NONE);
+ mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
}
private void setAirplaneModeOn(boolean enabling) {