Fix PhoneMonitor unregistered receiver crash
Fix crash caused by attempting to unregister an unregistered broadcast receiver when the instance is registered but the broadcast receiver is not during setup finish Change-Id: I0e85492fe5c3a273ed6a2d16fe41bdd7539ffb4b
This commit is contained in:
@@ -85,19 +85,7 @@ public class PhoneMonitor {
|
|||||||
|
|
||||||
private int mChangingToDataSubId = -1;
|
private int mChangingToDataSubId = -1;
|
||||||
|
|
||||||
private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver mIntentReceiver;
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
if (intent.getAction().equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
|
|
||||||
final int sub = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, -1);
|
|
||||||
final int state = mTelephony.getSimState(sub);
|
|
||||||
simStateChanged(sub, state);
|
|
||||||
} else if (intent.getAction()
|
|
||||||
.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
|
|
||||||
ddsHasChanged(intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, -1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private class SubscriptionStateTracker extends PhoneStateListener {
|
private class SubscriptionStateTracker extends PhoneStateListener {
|
||||||
|
|
||||||
@@ -173,6 +161,19 @@ public class PhoneMonitor {
|
|||||||
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
|
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
|
||||||
updatePhoneStateTrackers();
|
updatePhoneStateTrackers();
|
||||||
}
|
}
|
||||||
|
mIntentReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
if (intent.getAction().equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
|
||||||
|
final int sub = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, -1);
|
||||||
|
final int state = mTelephony.getSimState(sub);
|
||||||
|
simStateChanged(sub, state);
|
||||||
|
} else if (intent.getAction()
|
||||||
|
.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
|
||||||
|
ddsHasChanged(intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, -1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
// Register for DDS changes
|
// Register for DDS changes
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
filter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
||||||
|
Reference in New Issue
Block a user