Merge "Check if the SubscriptionsChangeListener has been started before stop" am: 162029c5b6
am: e67b576ab9
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1679185 Change-Id: I7e906e3982dab72dfed796bc061f37468c2e3f2d
This commit is contained in:
@@ -27,12 +27,15 @@ import android.os.Looper;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
|
||||
/** Helper class for listening to changes in availability of telephony subscriptions */
|
||||
public class SubscriptionsChangeListener extends ContentObserver {
|
||||
|
||||
private static final String TAG = "SubscriptionsChangeListener";
|
||||
|
||||
public interface SubscriptionsChangeListenerClient {
|
||||
void onAirplaneModeChanged(boolean airplaneModeEnabled);
|
||||
void onSubscriptionsChanged();
|
||||
@@ -44,6 +47,7 @@ public class SubscriptionsChangeListener extends ContentObserver {
|
||||
private OnSubscriptionsChangedListener mSubscriptionsChangedListener;
|
||||
private Uri mAirplaneModeSettingUri;
|
||||
private BroadcastReceiver mBroadcastReceiver;
|
||||
private boolean mRunning = false;
|
||||
|
||||
public SubscriptionsChangeListener(Context context, SubscriptionsChangeListenerClient client) {
|
||||
super(new Handler(Looper.getMainLooper()));
|
||||
@@ -75,12 +79,19 @@ public class SubscriptionsChangeListener extends ContentObserver {
|
||||
final IntentFilter radioTechnologyChangedFilter = new IntentFilter(
|
||||
TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
|
||||
mContext.registerReceiver(mBroadcastReceiver, radioTechnologyChangedFilter);
|
||||
mRunning = true;
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
mSubscriptionManager.removeOnSubscriptionsChangedListener(mSubscriptionsChangedListener);
|
||||
mContext.getContentResolver().unregisterContentObserver(this);
|
||||
mContext.unregisterReceiver(mBroadcastReceiver);
|
||||
if (mRunning) {
|
||||
mSubscriptionManager.removeOnSubscriptionsChangedListener(
|
||||
mSubscriptionsChangedListener);
|
||||
mContext.getContentResolver().unregisterContentObserver(this);
|
||||
mContext.unregisterReceiver(mBroadcastReceiver);
|
||||
mRunning = false;
|
||||
} else {
|
||||
Log.d(TAG, "Stop has been called without associated Start.");
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAirplaneModeOn() {
|
||||
|
Reference in New Issue
Block a user