OtherPreferences.java revision d64b3c86b1e9554fba73b37dc9fde3f442a99fab
1ca4786769151f97069980443ce43d9c4f867ac5bErik/* 2ca4786769151f97069980443ce43d9c4f867ac5bErik * Copyright (C) 2011 The Android Open Source Project 3ca4786769151f97069980443ce43d9c4f867ac5bErik * 4ca4786769151f97069980443ce43d9c4f867ac5bErik * Licensed under the Apache License, Version 2.0 (the "License"); 5ca4786769151f97069980443ce43d9c4f867ac5bErik * you may not use this file except in compliance with the License. 6ca4786769151f97069980443ce43d9c4f867ac5bErik * You may obtain a copy of the License at 7ca4786769151f97069980443ce43d9c4f867ac5bErik * 8ca4786769151f97069980443ce43d9c4f867ac5bErik * http://www.apache.org/licenses/LICENSE-2.0 9ca4786769151f97069980443ce43d9c4f867ac5bErik * 10ca4786769151f97069980443ce43d9c4f867ac5bErik * Unless required by applicable law or agreed to in writing, software 11ca4786769151f97069980443ce43d9c4f867ac5bErik * distributed under the License is distributed on an "AS IS" BASIS, 12ca4786769151f97069980443ce43d9c4f867ac5bErik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ca4786769151f97069980443ce43d9c4f867ac5bErik * See the License for the specific language governing permissions and 14ca4786769151f97069980443ce43d9c4f867ac5bErik * limitations under the License. 15ca4786769151f97069980443ce43d9c4f867ac5bErik */ 16ca4786769151f97069980443ce43d9c4f867ac5bErik 17ca4786769151f97069980443ce43d9c4f867ac5bErikpackage com.android.calendar; 18ca4786769151f97069980443ce43d9c4f867ac5bErik 190dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.app.Activity; 200dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.app.Dialog; 210dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.app.TimePickerDialog; 22c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chanimport android.content.ComponentName; 23c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chanimport android.content.Intent; 240dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.content.SharedPreferences; 25ca4786769151f97069980443ce43d9c4f867ac5bErikimport android.os.Bundle; 260dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.preference.CheckBoxPreference; 271bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzsteinimport android.preference.ListPreference; 28c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chanimport android.preference.Preference; 291bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzsteinimport android.preference.Preference.OnPreferenceChangeListener; 30ca4786769151f97069980443ce43d9c4f867ac5bErikimport android.preference.PreferenceFragment; 310dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.preference.PreferenceManager; 32c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chanimport android.preference.PreferenceScreen; 330dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.text.format.DateFormat; 340dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.text.format.Time; 350dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.util.Log; 360dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzsteinimport android.widget.TimePicker; 37ca4786769151f97069980443ce43d9c4f867ac5bErik 381bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzsteinpublic class OtherPreferences extends PreferenceFragment implements OnPreferenceChangeListener{ 390dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private static final String TAG = "CalendarOtherPreferences"; 400dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 41ca4786769151f97069980443ce43d9c4f867ac5bErik // The name of the shared preferences file. This name must be maintained for 42ca4786769151f97069980443ce43d9c4f867ac5bErik // historical reasons, as it's what PreferenceManager assigned the first 43ca4786769151f97069980443ce43d9c4f867ac5bErik // time the file was created. 44ca4786769151f97069980443ce43d9c4f867ac5bErik static final String SHARED_PREFS_NAME = "com.android.calendar_preferences"; 45ca4786769151f97069980443ce43d9c4f867ac5bErik 460dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein // Must be the same keys that are used in the other_preferences.xml file. 470dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_COPY_DB = "preferences_copy_db"; 481bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS = "preferences_reminders_quiet_hours"; 491bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein public static final String KEY_OTHER_REMINDERS_RESPONDED = "preferences_reminders_responded"; 500dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_START = 510dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_start"; 520dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_START_HOUR = 530dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_start_hour"; 540dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_START_MINUTE = 550dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_start_minute"; 560dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_END = 570dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_end"; 580dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_END_HOUR = 590dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_end_hour"; 600dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final String KEY_OTHER_QUIET_HOURS_END_MINUTE = 610dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein "preferences_reminders_quiet_hours_end_minute"; 62ca4786769151f97069980443ce43d9c4f867ac5bErik public static final String KEY_OTHER_1 = "preferences_tardis_1"; 630dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 640dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final int QUIET_HOURS_DEFAULT_START_HOUR = 22; 650dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final int QUIET_HOURS_DEFAULT_START_MINUTE = 0; 660dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final int QUIET_HOURS_DEFAULT_END_HOUR = 8; 670dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public static final int QUIET_HOURS_DEFAULT_END_MINUTE = 0; 680dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 690dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private static final int START_LISTENER = 1; 700dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private static final int END_LISTENER = 2; 710dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private static final String format24Hour = "%H:%M"; 720dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private static final String format12Hour = "%I:%M%P"; 73ca4786769151f97069980443ce43d9c4f867ac5bErik 74c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan private Preference mCopyDb; 751bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein private ListPreference mSkipReminders; 760dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private CheckBoxPreference mQuietHours; 770dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private Preference mQuietHoursStart; 780dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private Preference mQuietHoursEnd; 790dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 800dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private TimePickerDialog mTimePickerDialog; 810dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private TimeSetListener mQuietHoursStartListener; 820dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private TimePickerDialog mQuietHoursStartDialog; 830dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private TimeSetListener mQuietHoursEndListener; 840dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private TimePickerDialog mQuietHoursEndDialog; 850dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private boolean mIs24HourMode; 86c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan 87ca4786769151f97069980443ce43d9c4f867ac5bErik public OtherPreferences() { 88ca4786769151f97069980443ce43d9c4f867ac5bErik } 89ca4786769151f97069980443ce43d9c4f867ac5bErik 90ca4786769151f97069980443ce43d9c4f867ac5bErik @Override 91ca4786769151f97069980443ce43d9c4f867ac5bErik public void onCreate(Bundle icicle) { 92ca4786769151f97069980443ce43d9c4f867ac5bErik super.onCreate(icicle); 930dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein PreferenceManager manager = getPreferenceManager(); 940dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein manager.setSharedPreferencesName(SHARED_PREFS_NAME); 950dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein SharedPreferences prefs = manager.getSharedPreferences(); 960dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 97ca4786769151f97069980443ce43d9c4f867ac5bErik addPreferencesFromResource(R.xml.other_preferences); 980dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mCopyDb = findPreference(KEY_OTHER_COPY_DB); 991bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein mSkipReminders = (ListPreference) findPreference(KEY_OTHER_REMINDERS_RESPONDED); 100d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein String skipPreferencesValue = null; 101d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein if (mSkipReminders != null) { 102d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein skipPreferencesValue = mSkipReminders.getValue(); 103d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein mSkipReminders.setOnPreferenceChangeListener(this); 104d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein } 105d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein updateSkipRemindersSummary(skipPreferencesValue); 1060dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1070dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Activity activity = getActivity(); 1080dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein if (activity == null) { 1090dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Log.d(TAG, "Activity was null"); 1100dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 1110dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mIs24HourMode = DateFormat.is24HourFormat(activity); 1120dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1130dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHours = 1140dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein (CheckBoxPreference) findPreference(KEY_OTHER_QUIET_HOURS); 1150dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1160dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein int startHour = prefs.getInt(KEY_OTHER_QUIET_HOURS_START_HOUR, 1170dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein QUIET_HOURS_DEFAULT_START_HOUR); 1180dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein int startMinute = prefs.getInt(KEY_OTHER_QUIET_HOURS_START_MINUTE, 1190dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein QUIET_HOURS_DEFAULT_START_MINUTE); 1200dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursStart = findPreference(KEY_OTHER_QUIET_HOURS_START); 1210dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursStartListener = new TimeSetListener(START_LISTENER); 1220dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursStartDialog = new TimePickerDialog( 1230dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein activity, mQuietHoursStartListener, 1240dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein startHour, startMinute, mIs24HourMode); 1250dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursStart.setSummary(formatTime(startHour, startMinute)); 1260dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1270dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein int endHour = prefs.getInt(KEY_OTHER_QUIET_HOURS_END_HOUR, 1280dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein QUIET_HOURS_DEFAULT_END_HOUR); 1290dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein int endMinute = prefs.getInt(KEY_OTHER_QUIET_HOURS_END_MINUTE, 1300dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein QUIET_HOURS_DEFAULT_END_MINUTE); 1310dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursEnd = findPreference(KEY_OTHER_QUIET_HOURS_END); 1320dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursEndListener = new TimeSetListener(END_LISTENER); 1330dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursEndDialog = new TimePickerDialog( 1340dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein activity, mQuietHoursEndListener, 1350dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein endHour, endMinute, mIs24HourMode); 1360dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursEnd.setSummary(formatTime(endHour, endMinute)); 137c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan } 138c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan 139c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan @Override 1401bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein public boolean onPreferenceChange(Preference preference, Object objValue) { 1411bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein final String key = preference.getKey(); 1421bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein 1431bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein if (KEY_OTHER_REMINDERS_RESPONDED.equals(key)) { 1441bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein String value = String.valueOf(objValue); 1451bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein updateSkipRemindersSummary(value); 1461bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 1471bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein 1481bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein return true; 1491bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 1501bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein 1511bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein @Override 152c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { 153c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan if (preference == mCopyDb) { 154c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan Intent intent = new Intent(Intent.ACTION_MAIN); 155c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan intent.setComponent(new ComponentName("com.android.providers.calendar", 156c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan "com.android.providers.calendar.CalendarDebugActivity")); 157c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan startActivity(intent); 1580dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } else if (preference == mQuietHoursStart) { 1590dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein if (mTimePickerDialog == null) { 1600dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mTimePickerDialog = mQuietHoursStartDialog; 1610dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mTimePickerDialog.show(); 1620dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } else { 1630dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Log.v(TAG, "not null"); 1640dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 1650dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } else if (preference == mQuietHoursEnd) { 1660dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein if (mTimePickerDialog == null) { 1670dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mTimePickerDialog = mQuietHoursEndDialog; 1680dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mTimePickerDialog.show(); 1690dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } else { 1700dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Log.v(TAG, "not null"); 1710dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 172c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan } else { 173c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan return super.onPreferenceTreeClick(screen, preference); 174c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan } 175c03aab49fe4169036e5b5d089bded31611b2b6ddMichael Chan return true; 176ca4786769151f97069980443ce43d9c4f867ac5bErik } 1770dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1780dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private class TimeSetListener implements TimePickerDialog.OnTimeSetListener { 1790dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private int mListenerId; 1800dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1810dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public TimeSetListener(int listenerId) { 1820dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mListenerId = listenerId; 1830dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 1840dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1850dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein @Override 1860dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 1870dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mTimePickerDialog = null; 1880dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1890dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); 1900dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein SharedPreferences.Editor editor = prefs.edit(); 1910dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 1920dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein String summary = formatTime(hourOfDay, minute); 1930dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein switch (mListenerId) { 1940dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein case (START_LISTENER): 1950dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursStart.setSummary(summary); 1960dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein editor.putInt(KEY_OTHER_QUIET_HOURS_START_HOUR, hourOfDay); 1970dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein editor.putInt(KEY_OTHER_QUIET_HOURS_START_MINUTE, minute); 1980dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein break; 1990dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein case (END_LISTENER): 2000dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein mQuietHoursEnd.setSummary(summary); 2010dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein editor.putInt(KEY_OTHER_QUIET_HOURS_END_HOUR, hourOfDay); 2020dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein editor.putInt(KEY_OTHER_QUIET_HOURS_END_MINUTE, minute); 2030dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein break; 2040dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein default: 2050dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Log.d(TAG, "Set time for unknown listener: "+mListenerId); 2060dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 2070dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 2080dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein editor.commit(); 2090dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 2100dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 2110dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 2120dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein /** 2130dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein * @param hourOfDay the hour of the day (0-24) 2140dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein * @param minute 2150dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein * @return human-readable string formatted based on 24-hour mode. 2160dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein */ 2170dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein private String formatTime(int hourOfDay, int minute) { 2180dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein Time time = new Time(); 2190dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein time.hour = hourOfDay; 2200dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein time.minute = minute; 2210dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein 2220dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein String format = mIs24HourMode? format24Hour : format12Hour; 2230dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein return time.format(format); 2240dfbaae6a1c083f9c76ad77a9b711420968672a4Sam Blitzstein } 2251bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein 2261bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein /** 2271bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein * Update the summary for the SkipReminders preference. 2281bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein * @param value The corresponding value of which summary to set. If null, the default summary 2291bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein * will be set, and the value will be set accordingly too. 2301bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein */ 2311bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein private void updateSkipRemindersSummary(String value) { 2321bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein if (mSkipReminders != null) { 2331bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein // Default to "declined". Must match with R.array.preferences_skip_reminders_values. 2341bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein int index = 0; 2351bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein 2361bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein CharSequence[] values = mSkipReminders.getEntryValues(); 2371bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein CharSequence[] entries = mSkipReminders.getEntries(); 2381bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein for(int value_i = 0; value_i < values.length; value_i++) { 2391bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein if (values[value_i].equals(value)) { 2401bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein index = value_i; 2411bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein break; 2421bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 2431bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 2441bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein mSkipReminders.setSummary(entries[index].toString()); 2451bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein if (value == null) { 2461bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein // Value was not known ahead of time, so the default value will be set. 2471bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein mSkipReminders.setValue(values[index].toString()); 2481bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 2491bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 2501bc7c4b149a3696dca055a3d7a45499851e55d50Sam Blitzstein } 251d64b3c86b1e9554fba73b37dc9fde3f442a99fabSam Blitzstein} 252