Stop posting config asynchronously.
All of the instances of calling into other services with locks held should be resolved, so this isn't needed anymore. Test: have 2 rules end or start at the same time; ensure the resulting state is correct. Fixes: 28459870 Change-Id: I3f12f1d3b8460361dab6fa9468f0ede55ca8dd5e
This commit is contained in:
@@ -102,7 +102,7 @@ public class ZenModeConditions implements ConditionProviders.Callback {
|
||||
@Override
|
||||
public void onServiceAdded(ComponentName component) {
|
||||
if (DEBUG) Log.d(TAG, "onServiceAdded " + component);
|
||||
mHelper.setConfigAsync(mHelper.getConfig(), "zmc.onServiceAdded");
|
||||
mHelper.setConfig(mHelper.getConfig(), "zmc.onServiceAdded");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -116,7 +116,7 @@ public class ZenModeConditions implements ConditionProviders.Callback {
|
||||
updated |= updateSnoozing(automaticRule);
|
||||
}
|
||||
if (updated) {
|
||||
mHelper.setConfigAsync(config, "conditionChanged");
|
||||
mHelper.setConfig(config, "conditionChanged");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -620,8 +620,10 @@ public class ZenModeHelper {
|
||||
return setConfigLocked(config, reason, true /*setRingerMode*/);
|
||||
}
|
||||
|
||||
public void setConfigAsync(ZenModeConfig config, String reason) {
|
||||
mHandler.postSetConfig(config, reason);
|
||||
public void setConfig(ZenModeConfig config, String reason) {
|
||||
synchronized (mConfig) {
|
||||
setConfigLocked(config, reason);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean setConfigLocked(ZenModeConfig config, String reason, boolean setRingerMode) {
|
||||
@@ -1084,7 +1086,6 @@ public class ZenModeHelper {
|
||||
private final class H extends Handler {
|
||||
private static final int MSG_DISPATCH = 1;
|
||||
private static final int MSG_METRICS = 2;
|
||||
private static final int MSG_SET_CONFIG = 3;
|
||||
private static final int MSG_APPLY_CONFIG = 4;
|
||||
|
||||
private final class ConfigMessageData {
|
||||
@@ -1092,12 +1093,6 @@ public class ZenModeHelper {
|
||||
public final String reason;
|
||||
public final boolean setRingerMode;
|
||||
|
||||
ConfigMessageData(ZenModeConfig config, String reason) {
|
||||
this.config = config;
|
||||
this.reason = reason;
|
||||
this.setRingerMode = false;
|
||||
}
|
||||
|
||||
ConfigMessageData(ZenModeConfig config, String reason, boolean setRingerMode) {
|
||||
this.config = config;
|
||||
this.reason = reason;
|
||||
@@ -1121,10 +1116,6 @@ public class ZenModeHelper {
|
||||
sendEmptyMessageDelayed(MSG_METRICS, METRICS_PERIOD_MS);
|
||||
}
|
||||
|
||||
private void postSetConfig(ZenModeConfig config, String reason) {
|
||||
sendMessage(obtainMessage(MSG_SET_CONFIG, new ConfigMessageData(config, reason)));
|
||||
}
|
||||
|
||||
private void postApplyConfig(ZenModeConfig config, String reason, boolean setRingerMode) {
|
||||
sendMessage(obtainMessage(MSG_APPLY_CONFIG,
|
||||
new ConfigMessageData(config, reason, setRingerMode)));
|
||||
@@ -1139,12 +1130,6 @@ public class ZenModeHelper {
|
||||
case MSG_METRICS:
|
||||
mMetrics.emit();
|
||||
break;
|
||||
case MSG_SET_CONFIG:
|
||||
ConfigMessageData configData = (ConfigMessageData) msg.obj;
|
||||
synchronized (mConfig) {
|
||||
setConfigLocked(configData.config, configData.reason);
|
||||
}
|
||||
break;
|
||||
case MSG_APPLY_CONFIG:
|
||||
ConfigMessageData applyConfigData = (ConfigMessageData) msg.obj;
|
||||
applyConfig(applyConfigData.config, applyConfigData.reason,
|
||||
|
||||
Reference in New Issue
Block a user