@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
updated |= updateSnoozing(automaticRule);
}
if (updated) {
- mHelper.setConfigAsync(config, "conditionChanged");
+ mHelper.setConfig(config, "conditionChanged");
}
}
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) {
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 {
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;
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)));
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,