Merge "Use common extra names when launching external config."

This commit is contained in:
Julia Reynolds
2015-08-26 18:47:08 +00:00
committed by Android (Google) Code Review

View File

@@ -25,6 +25,7 @@ import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener; import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.provider.Settings; import android.provider.Settings;
import android.service.notification.ConditionProviderService;
import android.service.notification.ZenModeConfig.ZenRule; import android.service.notification.ZenModeConfig.ZenRule;
import android.util.Log; import android.util.Log;
@@ -39,11 +40,6 @@ public class ZenModeExternalRuleSettings extends ZenModeRuleSettingsBase {
public static final String ACTION = Settings.ACTION_ZEN_MODE_EXTERNAL_RULE_SETTINGS; public static final String ACTION = Settings.ACTION_ZEN_MODE_EXTERNAL_RULE_SETTINGS;
private static final int REQUEST_CODE_CONFIGURE = 1; private static final int REQUEST_CODE_CONFIGURE = 1;
private static final String MD_RULE_TYPE = "automatic.ruleType";
private static final String MD_DEFAULT_CONDITION_ID = "automatic.defaultConditionId";
private static final String MD_CONFIGURATION_ACTIVITY = "automatic.configurationActivity";
private static final String EXTRA_CONDITION_ID = "automatic.conditionId";
private Preference mType; private Preference mType;
private Preference mConfigure; private Preference mConfigure;
@@ -85,8 +81,10 @@ public class ZenModeExternalRuleSettings extends ZenModeRuleSettingsBase {
mConfigure.setOnPreferenceClickListener(new OnPreferenceClickListener() { mConfigure.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
startActivityForResult(new Intent().setComponent(ri.configurationActivity), Intent intent = new Intent().setComponent(ri.configurationActivity);
REQUEST_CODE_CONFIGURE); intent.putExtra(ConditionProviderService.EXTRA_RULE_NAME, mRule.name);
intent.putExtra(ConditionProviderService.EXTRA_CONDITION_ID, mRule.conditionId);
startActivityForResult(intent, REQUEST_CODE_CONFIGURE);
return true; return true;
} }
}); });
@@ -98,7 +96,8 @@ public class ZenModeExternalRuleSettings extends ZenModeRuleSettingsBase {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CONFIGURE) { if (requestCode == REQUEST_CODE_CONFIGURE) {
if (resultCode == Activity.RESULT_OK && data != null) { if (resultCode == Activity.RESULT_OK && data != null) {
final Uri conditionId = data.getParcelableExtra(EXTRA_CONDITION_ID); final Uri conditionId =
data.getParcelableExtra(ConditionProviderService.EXTRA_CONDITION_ID);
if (conditionId != null && !conditionId.equals(mRule.conditionId)) { if (conditionId != null && !conditionId.equals(mRule.conditionId)) {
updateRule(conditionId); updateRule(conditionId);
} }
@@ -108,9 +107,11 @@ public class ZenModeExternalRuleSettings extends ZenModeRuleSettingsBase {
public static RuleInfo getRuleInfo(ServiceInfo si) { public static RuleInfo getRuleInfo(ServiceInfo si) {
if (si == null || si.metaData == null) return null; if (si == null || si.metaData == null) return null;
final String ruleType = si.metaData.getString(MD_RULE_TYPE); final String ruleType = si.metaData.getString(ConditionProviderService.META_DATA_RULE_TYPE);
final String defaultConditionId = si.metaData.getString(MD_DEFAULT_CONDITION_ID); final String defaultConditionId =
final String configurationActivity = si.metaData.getString(MD_CONFIGURATION_ACTIVITY); si.metaData.getString(ConditionProviderService.META_DATA_DEFAULT_CONDITION_ID);
final String configurationActivity =
si.metaData.getString(ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
if (ruleType != null && !ruleType.trim().isEmpty() && defaultConditionId != null) { if (ruleType != null && !ruleType.trim().isEmpty() && defaultConditionId != null) {
final RuleInfo ri = new RuleInfo(); final RuleInfo ri = new RuleInfo();
ri.serviceComponent = new ComponentName(si.packageName, si.name); ri.serviceComponent = new ComponentName(si.packageName, si.name);