Loading res/values/strings.xml +105 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,111 @@ <item>-1</item> <!-- Off --> </string-array> <!-- Entries listed in the ListPreference when invoking gradually increase volume preferences. --> <string-array name="crescendo_entries"> <item>Off</item> <item>5 seconds</item> <item>10 seconds</item> <item>15 seconds</item> <item>20 seconds</item> <item>25 seconds</item> <item>30 seconds</item> <item>35 seconds</item> <item>40 seconds</item> <item>45 seconds</item> <item>50 seconds</item> <item>55 seconds</item> <item>60 seconds</item> </string-array> <!-- Values that are retrieved from the ListPreference. These must match the crescendo_entries above. --> <string-array name="crescendo_values" translatable="false"> <item>0</item> <item>5</item> <item>10</item> <item>15</item> <item>20</item> <item>25</item> <item>30</item> <item>35</item> <item>40</item> <item>45</item> <item>50</item> <item>55</item> <item>60</item> </string-array> <!-- Entries listed in the ListPreference when invoking the snooze duration preference --> <string-array name="snooze_duration_entries"> <item>1 minute</item> <item>2 minutes</item> <item>3 minutes</item> <item>4 minutes</item> <item>5 minutes</item> <item>6 minutes</item> <item>7 minutes</item> <item>8 minutes</item> <item>9 minutes</item> <item>10 minutes</item> <item>11 minutes</item> <item>12 minutes</item> <item>13 minutes</item> <item>14 minutes</item> <item>15 minutes</item> <item>16 minutes</item> <item>17 minutes</item> <item>18 minutes</item> <item>19 minutes</item> <item>20 minutes</item> <item>21 minutes</item> <item>22 minutes</item> <item>23 minutes</item> <item>24 minutes</item> <item>25 minutes</item> <item>26 minutes</item> <item>27 minutes</item> <item>28 minutes</item> <item>29 minutes</item> <item>30 minutes</item> </string-array> <!-- Values that are retrieved from the ListPreference. These must match the snooze_duration_entries above. --> <string-array name="snooze_duration_values" translatable="false"> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> <item>7</item> <item>8</item> <item>9</item> <item>10</item> <item>11</item> <item>12</item> <item>13</item> <item>14</item> <item>15</item> <item>16</item> <item>17</item> <item>18</item> <item>19</item> <item>20</item> <item>21</item> <item>22</item> <item>23</item> <item>24</item> <item>25</item> <item>26</item> <item>27</item> <item>28</item> <item>29</item> <item>30</item> </string-array> <!-- Week start day preference title. --> <string name="week_start_title">Start week on</string> Loading res/xml/settings.xml +41 −31 Original line number Diff line number Diff line Loading @@ -18,24 +18,24 @@ <PreferenceCategory android:title="@string/clock_settings"> <ListPreference android:key="clock_style" android:title="@string/clock_style" android:defaultValue="@string/default_clock_style" android:dialogTitle="@string/clock_style" android:entries="@array/clock_style_entries" android:entryValues="@array/clock_style_values" android:defaultValue="@string/default_clock_style" android:dialogTitle="@string/clock_style" /> android:key="clock_style" android:title="@string/clock_style" /> <SwitchPreferenceCompat android:defaultValue="true" android:key="automatic_home_clock" android:title="@string/automatic_home_clock" android:summary="@string/automatic_home_clock_summary" android:defaultValue="true" /> android:title="@string/automatic_home_clock" /> <ListPreference android:key="home_time_zone" android:dialogTitle="@string/home_time_zone_title" android:entries="@array/timezone_labels" android:entryValues="@array/timezone_values" android:dialogTitle="@string/home_time_zone_title" android:key="home_time_zone" android:title="@string/home_time_zone" /> <Preference Loading @@ -46,42 +46,48 @@ <PreferenceCategory android:title="@string/alarm_settings"> <ListPreference android:key="auto_silence" android:title="@string/auto_silence_title" android:defaultValue="10" android:dialogTitle="@string/auto_silence_title" android:entries="@array/auto_silence_entries" android:entryValues="@array/auto_silence_values" android:defaultValue="10" android:dialogTitle="@string/auto_silence_title" /> android:key="auto_silence" android:title="@string/auto_silence_title" /> <com.android.deskclock.settings.SnoozeLengthDialogPreference <ListPreference android:defaultValue="10" android:dialogTitle="@string/snooze_duration_title" android:entries="@array/snooze_duration_entries" android:entryValues="@array/snooze_duration_values" android:key="snooze_duration" android:title="@string/snooze_duration_title" android:dialogLayout="@layout/snooze_length_picker" /> android:title="@string/snooze_duration_title" /> <com.android.deskclock.settings.AlarmVolumePreference android:key="volume_setting" android:title="@string/alarm_volume_title" android:layout="@layout/alarm_volume_preference" /> android:layout="@layout/alarm_volume_preference" android:title="@string/alarm_volume_title" /> <com.android.deskclock.settings.CrescendoLengthDialogPreference <ListPreference android:defaultValue="0" android:dialogTitle="@string/crescendo_duration_title" android:entries="@array/crescendo_entries" android:entryValues="@array/crescendo_values" android:key="alarm_crescendo_duration" android:title="@string/crescendo_duration_title" android:dialogLayout="@layout/crescendo_length_picker" /> android:title="@string/crescendo_duration_title" /> <ListPreference android:key="volume_button_setting" android:title="@string/volume_button_setting_title" android:defaultValue="0" android:dialogTitle="@string/volume_button_setting_title" android:entries="@array/volume_button_setting_entries" android:entryValues="@array/volume_button_setting_values" android:defaultValue="0" /> android:key="volume_button_setting" android:title="@string/volume_button_setting_title" /> <ListPreference android:key="week_start" android:title="@string/week_start_title" android:dialogTitle="@string/week_start_title" android:entries="@array/week_start_entries" android:entryValues="@array/week_start_values" /> android:entryValues="@array/week_start_values" android:key="week_start" android:title="@string/week_start_title" /> </PreferenceCategory> <PreferenceCategory Loading @@ -90,15 +96,19 @@ android:key="timer_ringtone" android:title="@string/timer_ringtone_title" /> <com.android.deskclock.settings.CrescendoLengthDialogPreference <ListPreference android:defaultValue="0" android:dialogTitle="@string/crescendo_duration_title" android:entries="@array/crescendo_entries" android:entryValues="@array/crescendo_values" android:key="timer_crescendo_duration" android:title="@string/crescendo_duration_title" android:dialogLayout="@layout/crescendo_length_picker" /> android:title="@string/crescendo_duration_title" /> <SwitchPreferenceCompat android:defaultValue="false" android:key="timer_vibrate" android:title="@string/timer_vibrate_title" android:defaultValue="false" /> android:title="@string/timer_vibrate_title" /> </PreferenceCategory> </PreferenceScreen> src/com/android/deskclock/settings/CrescendoLengthDialogFragment.javadeleted 100644 → 0 +0 −105 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.deskclock.settings; import android.os.Bundle; import android.support.v14.preference.PreferenceDialogFragment; import android.support.v7.preference.Preference; import android.view.View; import android.widget.NumberPicker; import android.widget.TextView; import com.android.deskclock.NumberPickerCompat; import com.android.deskclock.R; import com.android.deskclock.uidata.UiDataModel; public class CrescendoLengthDialogFragment extends PreferenceDialogFragment { private static final int CRESCENDO_TIME_STEP = 5; private NumberPickerCompat mNumberPickerView; public static PreferenceDialogFragment newInstance(Preference preference) { final PreferenceDialogFragment fragment = new CrescendoLengthDialogFragment(); final Bundle bundle = new Bundle(); bundle.putString(ARG_KEY, preference.getKey()); fragment.setArguments(bundle); return fragment; } @Override protected void onBindDialogView(View view) { final CrescendoLengthDialogPreference preference = (CrescendoLengthDialogPreference) getPreference(); final int crescendoSeconds = preference.getPersistedCrescendoLength(); final TextView unitView = (TextView) view.findViewById(R.id.title); unitView.setText(R.string.crescendo_picker_label); updateUnits(unitView, crescendoSeconds); final String[] displayedValues = new String[13]; displayedValues[0] = getString(R.string.no_crescendo_duration); for (int i = 1; i < displayedValues.length; i++) { final int length = i * CRESCENDO_TIME_STEP; displayedValues[i] = UiDataModel.getUiDataModel().getFormattedNumber(length); } mNumberPickerView = (NumberPickerCompat) view.findViewById(R.id.seconds_picker); mNumberPickerView.setDisplayedValues(displayedValues); mNumberPickerView.setMinValue(0); mNumberPickerView.setMaxValue(displayedValues.length - 1); mNumberPickerView.setValue(crescendoSeconds / CRESCENDO_TIME_STEP); mNumberPickerView.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { updateUnits(unitView, newVal); } }); mNumberPickerView.setOnAnnounceValueChangedListener( new NumberPickerCompat.OnAnnounceValueChangedListener() { @Override public void onAnnounceValueChanged(NumberPicker picker, int value, String displayedValue) { final String announceString; if (value == 0) { announceString = getString(R.string.no_crescendo_duration); } else { announceString = getString(R.string.crescendo_duration, displayedValue); } picker.announceForAccessibility(announceString); } }); } @Override public void onDialogClosed(boolean positiveResult) { if (positiveResult) { final CrescendoLengthDialogPreference preference = (CrescendoLengthDialogPreference) getPreference(); preference.persistCrescendoLength(mNumberPickerView.getValue() * CRESCENDO_TIME_STEP); preference.updateSummary(); } } private void updateUnits(TextView unitView, int crescendoSeconds) { final int visibility = crescendoSeconds == 0 ? View.INVISIBLE : View.VISIBLE; unitView.setVisibility(visibility); } } src/com/android/deskclock/settings/CrescendoLengthDialogPreference.javadeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.deskclock.settings; import android.content.Context; import android.support.v7.preference.DialogPreference; import android.util.AttributeSet; import com.android.deskclock.R; import com.android.deskclock.uidata.UiDataModel; public class CrescendoLengthDialogPreference extends DialogPreference { private static final String DEFAULT_CRESCENDO_TIME = "0"; public CrescendoLengthDialogPreference(Context context, AttributeSet attrs) { super(context, attrs); } public int getPersistedCrescendoLength() { return Integer.parseInt(getPersistedString(DEFAULT_CRESCENDO_TIME)); } public void persistCrescendoLength(int crescendoSeconds) { persistString(Integer.toString(crescendoSeconds)); } public void updateSummary() { final int crescendoSeconds = getPersistedCrescendoLength(); if (crescendoSeconds == 0) { setSummary(getContext().getString(R.string.no_crescendo_duration)); } else { final String length = UiDataModel.getUiDataModel().getFormattedNumber(crescendoSeconds); setSummary(getContext().getString(R.string.crescendo_duration, length)); } } } src/com/android/deskclock/settings/SettingsActivity.java +21 −47 Original line number Diff line number Diff line Loading @@ -166,54 +166,28 @@ public final class SettingsActivity extends BaseActivity { } @Override public void onDisplayPreferenceDialog(Preference preference) { final String key = preference.getKey(); switch (key) { case KEY_ALARM_SNOOZE: showDialog(SnoozeLengthDialogFragment.newInstance(preference)); break; public boolean onPreferenceChange(Preference pref, Object newValue) { switch (pref.getKey()) { case KEY_ALARM_CRESCENDO: case KEY_VOLUME_BUTTONS: case KEY_CLOCK_STYLE: case KEY_HOME_TZ: case KEY_WEEK_START: case KEY_ALARM_SNOOZE: case KEY_TIMER_CRESCENDO: showDialog(CrescendoLengthDialogFragment.newInstance(preference)); final ListPreference preference = (ListPreference) pref; final int index = preference.findIndexOfValue((String) newValue); preference.setSummary(preference.getEntries()[index]); break; default: super.onDisplayPreferenceDialog(preference); } } @Override public boolean onPreferenceChange(Preference pref, Object newValue) { final int idx; switch (pref.getKey()) { case KEY_AUTO_SILENCE: String delay = (String) newValue; final String delay = (String) newValue; updateAutoSnoozeSummary((ListPreference) pref, delay); break; case KEY_CLOCK_STYLE: final ListPreference clockStylePref = (ListPreference) pref; idx = clockStylePref.findIndexOfValue((String) newValue); clockStylePref.setSummary(clockStylePref.getEntries()[idx]); break; case KEY_HOME_TZ: final ListPreference homeTimezonePref = (ListPreference) pref; idx = homeTimezonePref.findIndexOfValue((String) newValue); homeTimezonePref.setSummary(homeTimezonePref.getEntries()[idx]); break; case KEY_AUTO_HOME_CLOCK: final boolean autoHomeClockEnabled = ((TwoStatePreference) pref).isChecked(); final Preference homeTimeZonePref = findPreference(KEY_HOME_TZ); homeTimeZonePref.setEnabled(!autoHomeClockEnabled); break; case KEY_VOLUME_BUTTONS: final ListPreference volumeButtonsPref = (ListPreference) pref; final int index = volumeButtonsPref.findIndexOfValue((String) newValue); volumeButtonsPref.setSummary(volumeButtonsPref.getEntries()[index]); break; case KEY_WEEK_START: final ListPreference weekStartPref = (ListPreference) pref; idx = weekStartPref.findIndexOfValue((String) newValue); weekStartPref.setSummary(weekStartPref.getEntries()[idx]); break; case KEY_TIMER_VIBRATE: final TwoStatePreference timerVibratePref = (TwoStatePreference) pref; DataModel.getDataModel().setTimerVibrate(timerVibratePref.isChecked()); Loading Loading @@ -327,17 +301,12 @@ public final class SettingsActivity extends BaseActivity { final ListPreference homeTimezonePref = (ListPreference) findPreference(KEY_HOME_TZ); homeTimezonePref.setEnabled(autoHomeClockEnabled); homeTimezonePref.setSummary(homeTimezonePref.getEntry()); homeTimezonePref.setOnPreferenceChangeListener(this); refreshListPreference(homeTimezonePref); final ListPreference volumeButtonsPref = (ListPreference) findPreference(KEY_VOLUME_BUTTONS); volumeButtonsPref.setSummary(volumeButtonsPref.getEntry()); volumeButtonsPref.setOnPreferenceChangeListener(this); ((SnoozeLengthDialogPreference) findPreference(KEY_ALARM_SNOOZE)).updateSummary(); ((CrescendoLengthDialogPreference) findPreference(KEY_ALARM_CRESCENDO)).updateSummary(); ((CrescendoLengthDialogPreference) findPreference(KEY_TIMER_CRESCENDO)).updateSummary(); refreshListPreference((ListPreference) findPreference(KEY_ALARM_CRESCENDO)); refreshListPreference((ListPreference) findPreference(KEY_TIMER_CRESCENDO)); refreshListPreference((ListPreference) findPreference(KEY_ALARM_SNOOZE)); refreshListPreference((ListPreference) findPreference(KEY_VOLUME_BUTTONS)); final Preference dateAndTimeSetting = findPreference(KEY_DATE_TIME); dateAndTimeSetting.setOnPreferenceClickListener(this); Loading @@ -357,6 +326,11 @@ public final class SettingsActivity extends BaseActivity { timerRingtonePref.setSummary(DataModel.getDataModel().getTimerRingtoneTitle()); } private void refreshListPreference(ListPreference preference) { preference.setSummary(preference.getEntry()); preference.setOnPreferenceChangeListener(this); } private void updateAutoSnoozeSummary(ListPreference listPref, String delay) { int i = Integer.parseInt(delay); if (i == -1) { Loading Loading
res/values/strings.xml +105 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,111 @@ <item>-1</item> <!-- Off --> </string-array> <!-- Entries listed in the ListPreference when invoking gradually increase volume preferences. --> <string-array name="crescendo_entries"> <item>Off</item> <item>5 seconds</item> <item>10 seconds</item> <item>15 seconds</item> <item>20 seconds</item> <item>25 seconds</item> <item>30 seconds</item> <item>35 seconds</item> <item>40 seconds</item> <item>45 seconds</item> <item>50 seconds</item> <item>55 seconds</item> <item>60 seconds</item> </string-array> <!-- Values that are retrieved from the ListPreference. These must match the crescendo_entries above. --> <string-array name="crescendo_values" translatable="false"> <item>0</item> <item>5</item> <item>10</item> <item>15</item> <item>20</item> <item>25</item> <item>30</item> <item>35</item> <item>40</item> <item>45</item> <item>50</item> <item>55</item> <item>60</item> </string-array> <!-- Entries listed in the ListPreference when invoking the snooze duration preference --> <string-array name="snooze_duration_entries"> <item>1 minute</item> <item>2 minutes</item> <item>3 minutes</item> <item>4 minutes</item> <item>5 minutes</item> <item>6 minutes</item> <item>7 minutes</item> <item>8 minutes</item> <item>9 minutes</item> <item>10 minutes</item> <item>11 minutes</item> <item>12 minutes</item> <item>13 minutes</item> <item>14 minutes</item> <item>15 minutes</item> <item>16 minutes</item> <item>17 minutes</item> <item>18 minutes</item> <item>19 minutes</item> <item>20 minutes</item> <item>21 minutes</item> <item>22 minutes</item> <item>23 minutes</item> <item>24 minutes</item> <item>25 minutes</item> <item>26 minutes</item> <item>27 minutes</item> <item>28 minutes</item> <item>29 minutes</item> <item>30 minutes</item> </string-array> <!-- Values that are retrieved from the ListPreference. These must match the snooze_duration_entries above. --> <string-array name="snooze_duration_values" translatable="false"> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> <item>7</item> <item>8</item> <item>9</item> <item>10</item> <item>11</item> <item>12</item> <item>13</item> <item>14</item> <item>15</item> <item>16</item> <item>17</item> <item>18</item> <item>19</item> <item>20</item> <item>21</item> <item>22</item> <item>23</item> <item>24</item> <item>25</item> <item>26</item> <item>27</item> <item>28</item> <item>29</item> <item>30</item> </string-array> <!-- Week start day preference title. --> <string name="week_start_title">Start week on</string> Loading
res/xml/settings.xml +41 −31 Original line number Diff line number Diff line Loading @@ -18,24 +18,24 @@ <PreferenceCategory android:title="@string/clock_settings"> <ListPreference android:key="clock_style" android:title="@string/clock_style" android:defaultValue="@string/default_clock_style" android:dialogTitle="@string/clock_style" android:entries="@array/clock_style_entries" android:entryValues="@array/clock_style_values" android:defaultValue="@string/default_clock_style" android:dialogTitle="@string/clock_style" /> android:key="clock_style" android:title="@string/clock_style" /> <SwitchPreferenceCompat android:defaultValue="true" android:key="automatic_home_clock" android:title="@string/automatic_home_clock" android:summary="@string/automatic_home_clock_summary" android:defaultValue="true" /> android:title="@string/automatic_home_clock" /> <ListPreference android:key="home_time_zone" android:dialogTitle="@string/home_time_zone_title" android:entries="@array/timezone_labels" android:entryValues="@array/timezone_values" android:dialogTitle="@string/home_time_zone_title" android:key="home_time_zone" android:title="@string/home_time_zone" /> <Preference Loading @@ -46,42 +46,48 @@ <PreferenceCategory android:title="@string/alarm_settings"> <ListPreference android:key="auto_silence" android:title="@string/auto_silence_title" android:defaultValue="10" android:dialogTitle="@string/auto_silence_title" android:entries="@array/auto_silence_entries" android:entryValues="@array/auto_silence_values" android:defaultValue="10" android:dialogTitle="@string/auto_silence_title" /> android:key="auto_silence" android:title="@string/auto_silence_title" /> <com.android.deskclock.settings.SnoozeLengthDialogPreference <ListPreference android:defaultValue="10" android:dialogTitle="@string/snooze_duration_title" android:entries="@array/snooze_duration_entries" android:entryValues="@array/snooze_duration_values" android:key="snooze_duration" android:title="@string/snooze_duration_title" android:dialogLayout="@layout/snooze_length_picker" /> android:title="@string/snooze_duration_title" /> <com.android.deskclock.settings.AlarmVolumePreference android:key="volume_setting" android:title="@string/alarm_volume_title" android:layout="@layout/alarm_volume_preference" /> android:layout="@layout/alarm_volume_preference" android:title="@string/alarm_volume_title" /> <com.android.deskclock.settings.CrescendoLengthDialogPreference <ListPreference android:defaultValue="0" android:dialogTitle="@string/crescendo_duration_title" android:entries="@array/crescendo_entries" android:entryValues="@array/crescendo_values" android:key="alarm_crescendo_duration" android:title="@string/crescendo_duration_title" android:dialogLayout="@layout/crescendo_length_picker" /> android:title="@string/crescendo_duration_title" /> <ListPreference android:key="volume_button_setting" android:title="@string/volume_button_setting_title" android:defaultValue="0" android:dialogTitle="@string/volume_button_setting_title" android:entries="@array/volume_button_setting_entries" android:entryValues="@array/volume_button_setting_values" android:defaultValue="0" /> android:key="volume_button_setting" android:title="@string/volume_button_setting_title" /> <ListPreference android:key="week_start" android:title="@string/week_start_title" android:dialogTitle="@string/week_start_title" android:entries="@array/week_start_entries" android:entryValues="@array/week_start_values" /> android:entryValues="@array/week_start_values" android:key="week_start" android:title="@string/week_start_title" /> </PreferenceCategory> <PreferenceCategory Loading @@ -90,15 +96,19 @@ android:key="timer_ringtone" android:title="@string/timer_ringtone_title" /> <com.android.deskclock.settings.CrescendoLengthDialogPreference <ListPreference android:defaultValue="0" android:dialogTitle="@string/crescendo_duration_title" android:entries="@array/crescendo_entries" android:entryValues="@array/crescendo_values" android:key="timer_crescendo_duration" android:title="@string/crescendo_duration_title" android:dialogLayout="@layout/crescendo_length_picker" /> android:title="@string/crescendo_duration_title" /> <SwitchPreferenceCompat android:defaultValue="false" android:key="timer_vibrate" android:title="@string/timer_vibrate_title" android:defaultValue="false" /> android:title="@string/timer_vibrate_title" /> </PreferenceCategory> </PreferenceScreen>
src/com/android/deskclock/settings/CrescendoLengthDialogFragment.javadeleted 100644 → 0 +0 −105 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.deskclock.settings; import android.os.Bundle; import android.support.v14.preference.PreferenceDialogFragment; import android.support.v7.preference.Preference; import android.view.View; import android.widget.NumberPicker; import android.widget.TextView; import com.android.deskclock.NumberPickerCompat; import com.android.deskclock.R; import com.android.deskclock.uidata.UiDataModel; public class CrescendoLengthDialogFragment extends PreferenceDialogFragment { private static final int CRESCENDO_TIME_STEP = 5; private NumberPickerCompat mNumberPickerView; public static PreferenceDialogFragment newInstance(Preference preference) { final PreferenceDialogFragment fragment = new CrescendoLengthDialogFragment(); final Bundle bundle = new Bundle(); bundle.putString(ARG_KEY, preference.getKey()); fragment.setArguments(bundle); return fragment; } @Override protected void onBindDialogView(View view) { final CrescendoLengthDialogPreference preference = (CrescendoLengthDialogPreference) getPreference(); final int crescendoSeconds = preference.getPersistedCrescendoLength(); final TextView unitView = (TextView) view.findViewById(R.id.title); unitView.setText(R.string.crescendo_picker_label); updateUnits(unitView, crescendoSeconds); final String[] displayedValues = new String[13]; displayedValues[0] = getString(R.string.no_crescendo_duration); for (int i = 1; i < displayedValues.length; i++) { final int length = i * CRESCENDO_TIME_STEP; displayedValues[i] = UiDataModel.getUiDataModel().getFormattedNumber(length); } mNumberPickerView = (NumberPickerCompat) view.findViewById(R.id.seconds_picker); mNumberPickerView.setDisplayedValues(displayedValues); mNumberPickerView.setMinValue(0); mNumberPickerView.setMaxValue(displayedValues.length - 1); mNumberPickerView.setValue(crescendoSeconds / CRESCENDO_TIME_STEP); mNumberPickerView.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { updateUnits(unitView, newVal); } }); mNumberPickerView.setOnAnnounceValueChangedListener( new NumberPickerCompat.OnAnnounceValueChangedListener() { @Override public void onAnnounceValueChanged(NumberPicker picker, int value, String displayedValue) { final String announceString; if (value == 0) { announceString = getString(R.string.no_crescendo_duration); } else { announceString = getString(R.string.crescendo_duration, displayedValue); } picker.announceForAccessibility(announceString); } }); } @Override public void onDialogClosed(boolean positiveResult) { if (positiveResult) { final CrescendoLengthDialogPreference preference = (CrescendoLengthDialogPreference) getPreference(); preference.persistCrescendoLength(mNumberPickerView.getValue() * CRESCENDO_TIME_STEP); preference.updateSummary(); } } private void updateUnits(TextView unitView, int crescendoSeconds) { final int visibility = crescendoSeconds == 0 ? View.INVISIBLE : View.VISIBLE; unitView.setVisibility(visibility); } }
src/com/android/deskclock/settings/CrescendoLengthDialogPreference.javadeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line /* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.deskclock.settings; import android.content.Context; import android.support.v7.preference.DialogPreference; import android.util.AttributeSet; import com.android.deskclock.R; import com.android.deskclock.uidata.UiDataModel; public class CrescendoLengthDialogPreference extends DialogPreference { private static final String DEFAULT_CRESCENDO_TIME = "0"; public CrescendoLengthDialogPreference(Context context, AttributeSet attrs) { super(context, attrs); } public int getPersistedCrescendoLength() { return Integer.parseInt(getPersistedString(DEFAULT_CRESCENDO_TIME)); } public void persistCrescendoLength(int crescendoSeconds) { persistString(Integer.toString(crescendoSeconds)); } public void updateSummary() { final int crescendoSeconds = getPersistedCrescendoLength(); if (crescendoSeconds == 0) { setSummary(getContext().getString(R.string.no_crescendo_duration)); } else { final String length = UiDataModel.getUiDataModel().getFormattedNumber(crescendoSeconds); setSummary(getContext().getString(R.string.crescendo_duration, length)); } } }
src/com/android/deskclock/settings/SettingsActivity.java +21 −47 Original line number Diff line number Diff line Loading @@ -166,54 +166,28 @@ public final class SettingsActivity extends BaseActivity { } @Override public void onDisplayPreferenceDialog(Preference preference) { final String key = preference.getKey(); switch (key) { case KEY_ALARM_SNOOZE: showDialog(SnoozeLengthDialogFragment.newInstance(preference)); break; public boolean onPreferenceChange(Preference pref, Object newValue) { switch (pref.getKey()) { case KEY_ALARM_CRESCENDO: case KEY_VOLUME_BUTTONS: case KEY_CLOCK_STYLE: case KEY_HOME_TZ: case KEY_WEEK_START: case KEY_ALARM_SNOOZE: case KEY_TIMER_CRESCENDO: showDialog(CrescendoLengthDialogFragment.newInstance(preference)); final ListPreference preference = (ListPreference) pref; final int index = preference.findIndexOfValue((String) newValue); preference.setSummary(preference.getEntries()[index]); break; default: super.onDisplayPreferenceDialog(preference); } } @Override public boolean onPreferenceChange(Preference pref, Object newValue) { final int idx; switch (pref.getKey()) { case KEY_AUTO_SILENCE: String delay = (String) newValue; final String delay = (String) newValue; updateAutoSnoozeSummary((ListPreference) pref, delay); break; case KEY_CLOCK_STYLE: final ListPreference clockStylePref = (ListPreference) pref; idx = clockStylePref.findIndexOfValue((String) newValue); clockStylePref.setSummary(clockStylePref.getEntries()[idx]); break; case KEY_HOME_TZ: final ListPreference homeTimezonePref = (ListPreference) pref; idx = homeTimezonePref.findIndexOfValue((String) newValue); homeTimezonePref.setSummary(homeTimezonePref.getEntries()[idx]); break; case KEY_AUTO_HOME_CLOCK: final boolean autoHomeClockEnabled = ((TwoStatePreference) pref).isChecked(); final Preference homeTimeZonePref = findPreference(KEY_HOME_TZ); homeTimeZonePref.setEnabled(!autoHomeClockEnabled); break; case KEY_VOLUME_BUTTONS: final ListPreference volumeButtonsPref = (ListPreference) pref; final int index = volumeButtonsPref.findIndexOfValue((String) newValue); volumeButtonsPref.setSummary(volumeButtonsPref.getEntries()[index]); break; case KEY_WEEK_START: final ListPreference weekStartPref = (ListPreference) pref; idx = weekStartPref.findIndexOfValue((String) newValue); weekStartPref.setSummary(weekStartPref.getEntries()[idx]); break; case KEY_TIMER_VIBRATE: final TwoStatePreference timerVibratePref = (TwoStatePreference) pref; DataModel.getDataModel().setTimerVibrate(timerVibratePref.isChecked()); Loading Loading @@ -327,17 +301,12 @@ public final class SettingsActivity extends BaseActivity { final ListPreference homeTimezonePref = (ListPreference) findPreference(KEY_HOME_TZ); homeTimezonePref.setEnabled(autoHomeClockEnabled); homeTimezonePref.setSummary(homeTimezonePref.getEntry()); homeTimezonePref.setOnPreferenceChangeListener(this); refreshListPreference(homeTimezonePref); final ListPreference volumeButtonsPref = (ListPreference) findPreference(KEY_VOLUME_BUTTONS); volumeButtonsPref.setSummary(volumeButtonsPref.getEntry()); volumeButtonsPref.setOnPreferenceChangeListener(this); ((SnoozeLengthDialogPreference) findPreference(KEY_ALARM_SNOOZE)).updateSummary(); ((CrescendoLengthDialogPreference) findPreference(KEY_ALARM_CRESCENDO)).updateSummary(); ((CrescendoLengthDialogPreference) findPreference(KEY_TIMER_CRESCENDO)).updateSummary(); refreshListPreference((ListPreference) findPreference(KEY_ALARM_CRESCENDO)); refreshListPreference((ListPreference) findPreference(KEY_TIMER_CRESCENDO)); refreshListPreference((ListPreference) findPreference(KEY_ALARM_SNOOZE)); refreshListPreference((ListPreference) findPreference(KEY_VOLUME_BUTTONS)); final Preference dateAndTimeSetting = findPreference(KEY_DATE_TIME); dateAndTimeSetting.setOnPreferenceClickListener(this); Loading @@ -357,6 +326,11 @@ public final class SettingsActivity extends BaseActivity { timerRingtonePref.setSummary(DataModel.getDataModel().getTimerRingtoneTitle()); } private void refreshListPreference(ListPreference preference) { preference.setSummary(preference.getEntry()); preference.setOnPreferenceChangeListener(this); } private void updateAutoSnoozeSummary(ListPreference listPref, String delay) { int i = Integer.parseInt(delay); if (i == -1) { Loading