Loading src/com/android/settings/AirplaneModeEnabler.java +16 −79 Original line number Diff line number Diff line Loading @@ -22,9 +22,7 @@ import android.content.Intent; import android.os.UserHandle; import android.provider.Settings; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; Loading @@ -34,7 +32,6 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.WirelessUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; import java.util.List; /** Loading @@ -61,12 +58,11 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { private TelephonyManager mTelephonyManager; private ProxySubscriptionManager mProxySubscriptionMgr; private List<ServiceStateListener> mServiceStateListeners; private PhoneStateListener mPhoneStateListener; private GlobalSettingsChangeListener mAirplaneModeObserver; public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) { public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) { super(context, Settings.Global.AIRPLANE_MODE_ON); mContext = context; Loading @@ -75,6 +71,16 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { mTelephonyManager = context.getSystemService(TelephonyManager.class); mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(context); mPhoneStateListener = new PhoneStateListener() { @Override public void onRadioPowerStateChanged(int state) { if (DEBUG) { Log.d(LOG_TAG, "RadioPower: " + state); } onAirplaneModeChanged(); } }; } /** Loading @@ -88,35 +94,13 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { } public void resume() { final List<SubscriptionInfo> subInfoList = mProxySubscriptionMgr.getActiveSubscriptionsInfo(); mServiceStateListeners = new ArrayList<ServiceStateListener>(); // add default listener mServiceStateListeners.add(new ServiceStateListener(mTelephonyManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID, this)); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { mServiceStateListeners.add(new ServiceStateListener(mTelephonyManager, subInfo.getSubscriptionId(), this)); } } for (ServiceStateListener listener : mServiceStateListeners) { listener.start(); } mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_RADIO_POWER_STATE_CHANGED); } public void pause() { if (mServiceStateListeners == null) { return; } for (ServiceStateListener listener : mServiceStateListeners) { listener.stop(); } mServiceStateListeners = null; mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } private void setAirplaneModeOn(boolean enabling) { Loading Loading @@ -200,51 +184,4 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { public boolean isAirplaneModeOn() { return WirelessUtils.isAirplaneModeOn(mContext); } private static class ServiceStateListener extends PhoneStateListener { private ServiceStateListener(TelephonyManager telephonyManager, int subscriptionId, AirplaneModeEnabler enabler) { super(); mSubId = subscriptionId; mTelephonyManager = getSubIdSpecificTelephonyManager(telephonyManager); mEnabler = enabler; } private final int mSubId; private final TelephonyManager mTelephonyManager; private final AirplaneModeEnabler mEnabler; int getSubscriptionId() { return mSubId; } void start() { if (mTelephonyManager != null) { mTelephonyManager.listen(this, PhoneStateListener.LISTEN_SERVICE_STATE); } } void stop() { if (mTelephonyManager != null) { mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE); } } @Override public void onServiceStateChanged(ServiceState serviceState) { if (DEBUG) { Log.d(LOG_TAG, "ServiceState in sub" + mSubId + ": " + serviceState); } mEnabler.onAirplaneModeChanged(); } private TelephonyManager getSubIdSpecificTelephonyManager( TelephonyManager telephonyManager) { if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { return telephonyManager; } return telephonyManager.createForSubscriptionId(mSubId); } } } Loading
src/com/android/settings/AirplaneModeEnabler.java +16 −79 Original line number Diff line number Diff line Loading @@ -22,9 +22,7 @@ import android.content.Intent; import android.os.UserHandle; import android.provider.Settings; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; Loading @@ -34,7 +32,6 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.WirelessUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; import java.util.List; /** Loading @@ -61,12 +58,11 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { private TelephonyManager mTelephonyManager; private ProxySubscriptionManager mProxySubscriptionMgr; private List<ServiceStateListener> mServiceStateListeners; private PhoneStateListener mPhoneStateListener; private GlobalSettingsChangeListener mAirplaneModeObserver; public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) { public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) { super(context, Settings.Global.AIRPLANE_MODE_ON); mContext = context; Loading @@ -75,6 +71,16 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { mTelephonyManager = context.getSystemService(TelephonyManager.class); mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(context); mPhoneStateListener = new PhoneStateListener() { @Override public void onRadioPowerStateChanged(int state) { if (DEBUG) { Log.d(LOG_TAG, "RadioPower: " + state); } onAirplaneModeChanged(); } }; } /** Loading @@ -88,35 +94,13 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { } public void resume() { final List<SubscriptionInfo> subInfoList = mProxySubscriptionMgr.getActiveSubscriptionsInfo(); mServiceStateListeners = new ArrayList<ServiceStateListener>(); // add default listener mServiceStateListeners.add(new ServiceStateListener(mTelephonyManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID, this)); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { mServiceStateListeners.add(new ServiceStateListener(mTelephonyManager, subInfo.getSubscriptionId(), this)); } } for (ServiceStateListener listener : mServiceStateListeners) { listener.start(); } mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_RADIO_POWER_STATE_CHANGED); } public void pause() { if (mServiceStateListeners == null) { return; } for (ServiceStateListener listener : mServiceStateListeners) { listener.stop(); } mServiceStateListeners = null; mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } private void setAirplaneModeOn(boolean enabling) { Loading Loading @@ -200,51 +184,4 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { public boolean isAirplaneModeOn() { return WirelessUtils.isAirplaneModeOn(mContext); } private static class ServiceStateListener extends PhoneStateListener { private ServiceStateListener(TelephonyManager telephonyManager, int subscriptionId, AirplaneModeEnabler enabler) { super(); mSubId = subscriptionId; mTelephonyManager = getSubIdSpecificTelephonyManager(telephonyManager); mEnabler = enabler; } private final int mSubId; private final TelephonyManager mTelephonyManager; private final AirplaneModeEnabler mEnabler; int getSubscriptionId() { return mSubId; } void start() { if (mTelephonyManager != null) { mTelephonyManager.listen(this, PhoneStateListener.LISTEN_SERVICE_STATE); } } void stop() { if (mTelephonyManager != null) { mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE); } } @Override public void onServiceStateChanged(ServiceState serviceState) { if (DEBUG) { Log.d(LOG_TAG, "ServiceState in sub" + mSubId + ": " + serviceState); } mEnabler.onAirplaneModeChanged(); } private TelephonyManager getSubIdSpecificTelephonyManager( TelephonyManager telephonyManager) { if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { return telephonyManager; } return telephonyManager.createForSubscriptionId(mSubId); } } }