Fix crash when silencing condition.

- check if the broadcast receiver is being registered before trying to
un-regist it.

Change-Id: I6af215f393d16173f317c9e5bc05237c935e7133
Fix: 38131851
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2017-05-08 15:08:58 -07:00
parent 3f303d5fd8
commit b72163b9d0
2 changed files with 25 additions and 5 deletions

View File

@@ -35,6 +35,7 @@ public abstract class Condition {
protected final ConditionManager mManager;
protected final MetricsFeatureProvider mMetricsFeatureProvider;
protected boolean mReceiverRegistered;
private boolean mIsSilenced;
private boolean mIsActive;
@@ -110,9 +111,15 @@ public abstract class Condition {
return;
}
if (silenced) {
mManager.getContext().registerReceiver(receiver, getIntentFilter());
if (!mReceiverRegistered) {
mManager.getContext().registerReceiver(receiver, getIntentFilter());
mReceiverRegistered = true;
}
} else {
mManager.getContext().unregisterReceiver(receiver);
if (mReceiverRegistered) {
mManager.getContext().unregisterReceiver(receiver);
mReceiverRegistered = false;
}
}
}