[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) {