Merge "Synchronize access of mSubscriptions"
am: d065220a54
* commit 'd065220a547c985be3bd17bb8f2ff473427aa978':
Synchronize access of mSubscriptions
Change-Id: I5b28986dd770abbeeb9aaff872577230c3b56abd
This commit is contained in:
@@ -76,14 +76,17 @@ public class ZenModeConditions implements ConditionProviders.Callback {
|
|||||||
evaluateRule(automaticRule, current, processSubscriptions);
|
evaluateRule(automaticRule, current, processSubscriptions);
|
||||||
updateSnoozing(automaticRule);
|
updateSnoozing(automaticRule);
|
||||||
}
|
}
|
||||||
final int N = mSubscriptions.size();
|
|
||||||
for (int i = N - 1; i >= 0; i--) {
|
synchronized (mSubscriptions) {
|
||||||
final Uri id = mSubscriptions.keyAt(i);
|
final int N = mSubscriptions.size();
|
||||||
final ComponentName component = mSubscriptions.valueAt(i);
|
for (int i = N - 1; i >= 0; i--) {
|
||||||
if (processSubscriptions) {
|
final Uri id = mSubscriptions.keyAt(i);
|
||||||
if (!current.contains(id)) {
|
final ComponentName component = mSubscriptions.valueAt(i);
|
||||||
mConditionProviders.unsubscribeIfNecessary(component, id);
|
if (processSubscriptions) {
|
||||||
mSubscriptions.removeAt(i);
|
if (!current.contains(id)) {
|
||||||
|
mConditionProviders.unsubscribeIfNecessary(component, id);
|
||||||
|
mSubscriptions.removeAt(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,7 +155,9 @@ public class ZenModeConditions implements ConditionProviders.Callback {
|
|||||||
}
|
}
|
||||||
if (processSubscriptions) {
|
if (processSubscriptions) {
|
||||||
if (mConditionProviders.subscribeIfNecessary(rule.component, rule.conditionId)) {
|
if (mConditionProviders.subscribeIfNecessary(rule.component, rule.conditionId)) {
|
||||||
mSubscriptions.put(rule.conditionId, rule.component);
|
synchronized (mSubscriptions) {
|
||||||
|
mSubscriptions.put(rule.conditionId, rule.component);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (DEBUG) Log.d(TAG, "zmc failed to subscribe");
|
if (DEBUG) Log.d(TAG, "zmc failed to subscribe");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user