Settings: Hide downtime settings if not supported.

Depends on frameworks/base:
  I4f801018ddb0beb6eb9fa03a81c79f7949888a3f

Bug: 16373455

Change-Id: I88b526d947fb697a7abd4d4cf4225f926434915a
This commit is contained in:
John Spurlock
2014-11-30 16:22:09 -05:00
parent 838d6dc949
commit f68bc64593

View File

@@ -23,6 +23,7 @@ import android.app.Dialog;
import android.app.DialogFragment; import android.app.DialogFragment;
import android.app.FragmentManager; import android.app.FragmentManager;
import android.app.INotificationManager; import android.app.INotificationManager;
import android.app.NotificationManager;
import android.app.TimePickerDialog; import android.app.TimePickerDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@@ -131,6 +132,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
private SwitchPreference mMessages; private SwitchPreference mMessages;
private DropDownPreference mStarred; private DropDownPreference mStarred;
private SwitchPreference mEvents; private SwitchPreference mEvents;
private boolean mDowntimeSupported;
private Preference mDays; private Preference mDays;
private TimePickerPreference mStart; private TimePickerPreference mStart;
private TimePickerPreference mEnd; private TimePickerPreference mEnd;
@@ -227,7 +229,10 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
}); });
final PreferenceCategory downtime = (PreferenceCategory) root.findPreference(KEY_DOWNTIME); final PreferenceCategory downtime = (PreferenceCategory) root.findPreference(KEY_DOWNTIME);
mDowntimeSupported = isDowntimeSupported(mContext);
if (!mDowntimeSupported) {
removePreference(KEY_DOWNTIME);
} else {
mDays = downtime.findPreference(KEY_DAYS); mDays = downtime.findPreference(KEY_DAYS);
mDays.setOnPreferenceClickListener(new OnPreferenceClickListener() { mDays.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override @Override
@@ -320,6 +325,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
}); });
mDowntimeMode.setOrder(10); // sort at the bottom of the category mDowntimeMode.setOrder(10); // sort at the bottom of the category
mDowntimeMode.setDependency(mDays.getKey()); mDowntimeMode.setDependency(mDays.getKey());
}
mAutomationCategory = (PreferenceCategory) findPreference(KEY_AUTOMATION); mAutomationCategory = (PreferenceCategory) findPreference(KEY_AUTOMATION);
mEntry = findPreference(KEY_ENTRY); mEntry = findPreference(KEY_ENTRY);
@@ -376,6 +382,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
} }
private void updateEndSummary() { private void updateEndSummary() {
if (!mDowntimeSupported) return;
final int startMin = 60 * mConfig.sleepStartHour + mConfig.sleepStartMinute; final int startMin = 60 * mConfig.sleepStartHour + mConfig.sleepStartMinute;
final int endMin = 60 * mConfig.sleepEndHour + mConfig.sleepEndMinute; final int endMin = 60 * mConfig.sleepEndHour + mConfig.sleepEndMinute;
final boolean nextDay = startMin >= endMin; final boolean nextDay = startMin >= endMin;
@@ -399,10 +406,12 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
mStarred.setSelectedValue(mConfig.allowFrom); mStarred.setSelectedValue(mConfig.allowFrom);
mEvents.setChecked(mConfig.allowEvents); mEvents.setChecked(mConfig.allowEvents);
updateStarredEnabled(); updateStarredEnabled();
if (mDowntimeSupported) {
updateDays(); updateDays();
mStart.setTime(mConfig.sleepStartHour, mConfig.sleepStartMinute); mStart.setTime(mConfig.sleepStartHour, mConfig.sleepStartMinute);
mEnd.setTime(mConfig.sleepEndHour, mConfig.sleepEndMinute); mEnd.setTime(mConfig.sleepEndHour, mConfig.sleepEndMinute);
mDowntimeMode.setSelectedValue(mConfig.sleepNone); mDowntimeMode.setSelectedValue(mConfig.sleepNone);
}
mDisableListeners = false; mDisableListeners = false;
refreshAutomationSection(); refreshAutomationSection();
updateEndSummary(); updateEndSummary();
@@ -552,9 +561,15 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
mDialog = null; mDialog = null;
} }
private static boolean isDowntimeSupported(Context context) {
return NotificationManager.from(context)
.isSystemConditionProviderEnabled(ZenModeConfig.DOWNTIME_PATH);
}
// Enable indexing of searchable data // Enable indexing of searchable data
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) { public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
final SparseArray<String> keyTitles = allKeyTitles(context); final SparseArray<String> keyTitles = allKeyTitles(context);
@@ -570,6 +585,19 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
} }
return result; return result;
} }
@Override
public List<String> getNonIndexableKeys(Context context) {
final ArrayList<String> rt = new ArrayList<String>();
if (!isDowntimeSupported(context)) {
rt.add(KEY_DOWNTIME);
rt.add(KEY_DAYS);
rt.add(KEY_START_TIME);
rt.add(KEY_END_TIME);
rt.add(KEY_DOWNTIME_MODE);
}
return rt;
}
}; };
private static class SettingPrefWithCallback extends SettingPref { private static class SettingPrefWithCallback extends SettingPref {