diff --git a/src/com/android/settings/notification/ZenModeAutomationSettings.java b/src/com/android/settings/notification/ZenModeAutomationSettings.java index 971699829bb..5b628444873 100644 --- a/src/com/android/settings/notification/ZenModeAutomationSettings.java +++ b/src/com/android/settings/notification/ZenModeAutomationSettings.java @@ -21,6 +21,7 @@ import static android.service.notification.ZenModeConfig.ALL_DAYS; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ServiceInfo; +import android.content.res.Resources; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; @@ -181,7 +182,7 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase { private String computeRuleSummary(ZenRule rule) { if (rule == null || !rule.enabled) return getString(R.string.switch_off_text); - final String mode = ZenModeSettings.computeZenModeCaption(getResources(), rule.zenMode); + final String mode = computeZenModeCaption(getResources(), rule.zenMode); String summary = getString(R.string.switch_on_text); final ScheduleInfo schedule = ZenModeConfig.tryParseScheduleConditionId(rule.conditionId); final EventInfo event = ZenModeConfig.tryParseEventConditionId(rule.conditionId); @@ -289,6 +290,19 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase { return c; } + private static String computeZenModeCaption(Resources res, int zenMode) { + switch (zenMode) { + case Global.ZEN_MODE_ALARMS: + return res.getString(R.string.zen_mode_option_alarms); + case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS: + return res.getString(R.string.zen_mode_option_important_interruptions); + case Global.ZEN_MODE_NO_INTERRUPTIONS: + return res.getString(R.string.zen_mode_option_no_interruptions); + default: + return null; + } + } + private final ServiceListing.Callback mServiceListingCallback = new ServiceListing.Callback() { @Override public void onServicesReloaded(List services) { diff --git a/src/com/android/settings/notification/ZenModeConditionSelection.java b/src/com/android/settings/notification/ZenModeConditionSelection.java index 481bd886d2b..248e35e489e 100644 --- a/src/com/android/settings/notification/ZenModeConditionSelection.java +++ b/src/com/android/settings/notification/ZenModeConditionSelection.java @@ -27,6 +27,7 @@ import android.os.UserHandle; import android.service.notification.Condition; import android.service.notification.IConditionListener; import android.service.notification.ZenModeConfig; +import android.text.TextUtils; import android.util.Log; import android.widget.CompoundButton; import android.widget.RadioButton; @@ -119,7 +120,7 @@ public class ZenModeConditionSelection extends RadioGroup { } } if (v != null) { - v.setText(ZenModeSettings.computeConditionText(c)); + v.setText(computeConditionText(c)); v.setEnabled(c.state == Condition.STATE_TRUE); } mConditions.add(c); @@ -139,6 +140,12 @@ public class ZenModeConditionSelection extends RadioGroup { } } + private static String computeConditionText(Condition c) { + return !TextUtils.isEmpty(c.line1) ? c.line1 + : !TextUtils.isEmpty(c.summary) ? c.summary + : ""; + } + private final IConditionListener mListener = new IConditionListener.Stub() { @Override public void onConditionsReceived(Condition[] conditions) { diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index 34abf593031..22a203c1d4f 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -16,44 +16,27 @@ package com.android.settings.notification; -import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.res.Resources; import android.os.Bundle; -import android.os.UserHandle; import android.preference.Preference; import android.preference.PreferenceScreen; -import android.provider.Settings.Global; -import android.service.notification.Condition; -import android.service.notification.ZenModeConfig; -import android.text.TextUtils; -import android.util.Log; import android.util.SparseArray; -import android.widget.ScrollView; -import android.widget.Switch; import com.android.internal.logging.MetricsLogger; import com.android.settings.R; -import com.android.settings.SettingsActivity; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.search.SearchIndexableRaw; -import com.android.settings.widget.SwitchBar; import java.util.ArrayList; import java.util.List; -public class ZenModeSettings extends ZenModeSettingsBase - implements Indexable, SwitchBar.OnSwitchChangeListener { +public class ZenModeSettings extends ZenModeSettingsBase implements Indexable { private static final String KEY_PRIORITY_SETTINGS = "priority_settings"; private static final String KEY_AUTOMATION_SETTINGS = "automation_settings"; private Preference mPrioritySettings; - private AlertDialog mDialog; - private SwitchBar mSwitchBar; - private boolean mShowing; - private boolean mUpdatingControls; @Override public void onCreate(Bundle savedInstanceState) { @@ -68,47 +51,10 @@ public class ZenModeSettings extends ZenModeSettingsBase } } - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - - final SettingsActivity activity = (SettingsActivity) getActivity(); - mSwitchBar = activity.getSwitchBar(); - mSwitchBar.addOnSwitchChangeListener(this); - mSwitchBar.show(); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - mSwitchBar.removeOnSwitchChangeListener(this); - mSwitchBar.hide(); - } - @Override public void onResume() { super.onResume(); updateControls(); - mShowing = true; - } - - @Override - public void onPause() { - mShowing = false; - super.onPause(); - } - - @Override - public void onSwitchChanged(Switch switchView, boolean isChecked) { - if (DEBUG) Log.d(TAG, "onSwitchChanged " + isChecked + " mShowing=" + mShowing - + " mUpdatingControls=" + mUpdatingControls); - if (!mShowing || mUpdatingControls) return; // not from the user - if (isChecked) { - setZenMode(Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, null); - showConditionSelection(Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); - } else { - setZenMode(Global.ZEN_MODE_OFF, null); - } } @Override @@ -126,35 +72,7 @@ public class ZenModeSettings extends ZenModeSettingsBase updateControls(); } - public static String computeZenModeCaption(Resources res, int zenMode) { - switch (zenMode) { - case Global.ZEN_MODE_ALARMS: - return res.getString(R.string.zen_mode_option_alarms); - case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS: - return res.getString(R.string.zen_mode_option_important_interruptions); - case Global.ZEN_MODE_NO_INTERRUPTIONS: - return res.getString(R.string.zen_mode_option_no_interruptions); - default: - return null; - } - } - - private String computeZenModeSummaryLine() { - final String caption = computeZenModeCaption(getResources(), mZenMode); - if (caption == null) return null; // zen mode off - final String conditionText = ZenModeConfig.getConditionLine1(mContext, mConfig, - UserHandle.myUserId()); - return getString(R.string.zen_mode_summary_combination, caption, conditionText); - } - private void updateControls() { - if (mSwitchBar != null) { - final String summaryLine = computeZenModeSummaryLine(); - mUpdatingControls = true; - mSwitchBar.setChecked(summaryLine != null); - mUpdatingControls = false; - mSwitchBar.setSummary(summaryLine); - } updatePrioritySettingsSummary(); } @@ -176,52 +94,6 @@ public class ZenModeSettings extends ZenModeSettingsBase return s; } - protected void showConditionSelection(final int zenMode) { - if (mDialog != null) return; - - final ZenModeConditionSelection zenModeConditionSelection = - new ZenModeConditionSelection(mContext, zenMode); - DialogInterface.OnClickListener positiveListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - zenModeConditionSelection.confirmCondition(); - mDialog = null; - } - }; - ScrollView scrollView = new ScrollView(mContext); - scrollView.addView(zenModeConditionSelection); - mDialog = new AlertDialog.Builder(getActivity()) - .setTitle(computeZenModeCaption(getResources(), zenMode)) - .setView(scrollView) - .setPositiveButton(R.string.okay, positiveListener) - .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - cancelDialog(); - } - }) - .setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialog) { - cancelDialog(); - } - }).create(); - mDialog.show(); - } - - private void cancelDialog() { - if (DEBUG) Log.d(TAG, "cancelDialog"); - // If not making a decision, reset zen to off. - setZenMode(Global.ZEN_MODE_OFF, null); - mDialog = null; - } - - public static String computeConditionText(Condition c) { - return !TextUtils.isEmpty(c.line1) ? c.line1 - : !TextUtils.isEmpty(c.summary) ? c.summary - : ""; - } - private static SparseArray allKeyTitles(Context context) { final SparseArray rt = new SparseArray(); rt.put(R.string.zen_mode_priority_settings_title, KEY_PRIORITY_SETTINGS);