summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml12
-rw-r--r--res/drawable-hdpi/dialog.9.pngbin2286 -> 2066 bytes
-rw-r--r--res/drawable-hdpi/ic_lock_idle_alarm_saver.pngbin815 -> 827 bytes
-rw-r--r--res/drawable-mdpi/dialog.9.pngbin1332 -> 1610 bytes
-rw-r--r--res/drawable-mdpi/ic_lock_idle_alarm_saver.pngbin572 -> 501 bytes
-rw-r--r--res/layout-land/color_picker.xml94
-rw-r--r--res/layout/alarm_alert.xml1
-rw-r--r--res/layout/color_picker.xml94
-rw-r--r--res/values-de/strings.xml70
-rw-r--r--res/values-fr/strings.xml27
-rw-r--r--res/values-it/strings.xml71
-rw-r--r--res/values-ja/strings.xml57
-rw-r--r--res/values-pt-rPT/donottranslate.xml20
-rw-r--r--res/values-pt-rPT/strings.xml402
-rw-r--r--res/values-pt/strings.xml67
-rw-r--r--res/values-ru/strings.xml36
-rw-r--r--res/values-zh-rCN/strings.xml52
-rw-r--r--res/values/strings.xml96
-rw-r--r--res/xml/alarm_prefs.xml9
-rw-r--r--res/xml/settings.xml34
-rw-r--r--src/com/android/deskclock/Alarm.java38
-rw-r--r--src/com/android/deskclock/AlarmAlertFullScreen.java42
-rw-r--r--src/com/android/deskclock/AlarmKlaxon.java22
-rw-r--r--src/com/android/deskclock/AlarmProvider.java17
-rw-r--r--src/com/android/deskclock/AlarmReceiver.java18
-rw-r--r--src/com/android/deskclock/Alarms.java6
-rw-r--r--src/com/android/deskclock/ColorPicker.java114
-rw-r--r--src/com/android/deskclock/DeskClock.java49
-rw-r--r--src/com/android/deskclock/SetAlarm.java74
-rw-r--r--src/com/android/deskclock/SettingsActivity.java27
30 files changed, 1384 insertions, 165 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 295dba8e5..d100c00fc 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -59,6 +59,18 @@
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
+
+ <activity
+ android:name="ColorPicker"
+ android:label="@string/color_picker"
+ android:taskAffinity=""
+ android:excludeFromRecents="true"
+ android:theme="@android:style/Theme.Dialog">
+ <intent-filter>
+ <action android:name="com.android.alarmclock.ColorPicker" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
<activity android:name="SetAlarm" android:label="@string/set_alarm"
android:configChanges="orientation|keyboardHidden|keyboard|navigation" />
diff --git a/res/drawable-hdpi/dialog.9.png b/res/drawable-hdpi/dialog.9.png
index 16ca7e608..03175d44f 100644
--- a/res/drawable-hdpi/dialog.9.png
+++ b/res/drawable-hdpi/dialog.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lock_idle_alarm_saver.png b/res/drawable-hdpi/ic_lock_idle_alarm_saver.png
index fbc98d884..27e3e371b 100644
--- a/res/drawable-hdpi/ic_lock_idle_alarm_saver.png
+++ b/res/drawable-hdpi/ic_lock_idle_alarm_saver.png
Binary files differ
diff --git a/res/drawable-mdpi/dialog.9.png b/res/drawable-mdpi/dialog.9.png
index 2305be464..822b6c632 100644
--- a/res/drawable-mdpi/dialog.9.png
+++ b/res/drawable-mdpi/dialog.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lock_idle_alarm_saver.png b/res/drawable-mdpi/ic_lock_idle_alarm_saver.png
index a1815df14..888390a87 100644
--- a/res/drawable-mdpi/ic_lock_idle_alarm_saver.png
+++ b/res/drawable-mdpi/ic_lock_idle_alarm_saver.png
Binary files differ
diff --git a/res/layout-land/color_picker.xml b/res/layout-land/color_picker.xml
new file mode 100644
index 000000000..30d1df371
--- /dev/null
+++ b/res/layout-land/color_picker.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/colorPickerFrame"
+ android:layout_width="380dip"
+ android:layout_height="260dip" >
+
+
+ <TextView
+ android:id="@+id/color_picker_alpha"
+ android:text="@string/color_picker_alpha"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="0dip" />
+
+ <SeekBar
+ android:id="@+id/a_seekbar"
+ android:layout_width="150dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="20dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_red"
+ android:text="@string/color_picker_red"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="50dip" />
+
+ <SeekBar
+ android:id="@+id/r_seekbar"
+ android:layout_width="150dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="70dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_green"
+ android:text="@string/color_picker_green"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="100dip" />
+
+ <SeekBar
+ android:id="@+id/g_seekbar"
+ android:layout_width="150dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="120dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_blue"
+ android:text="@string/color_picker_blue"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="150dip" />
+
+ <SeekBar
+ android:id="@+id/b_seekbar"
+ android:layout_width="150dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|left"
+ android:layout_marginTop="170dip"
+ android:max="255"
+ android:progress="0" />
+
+ <FrameLayout
+ android:id="@+id/colorsampleLayout"
+ android:background="#000"
+ android:layout_width="200dip"
+ android:layout_height="100dip"
+ android:layout_gravity="center_horizontal|right"
+ android:layout_marginTop="50dip"
+ android:layout_marginRight="10dip">
+
+ <TextView
+ android:id="@+id/color_picker_sample"
+ android:text="@string/color_picker_sample"
+ android:textSize="60dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:layout_gravity="center"/>
+
+ </FrameLayout>
+</FrameLayout>
diff --git a/res/layout/alarm_alert.xml b/res/layout/alarm_alert.xml
index 2e0601064..e4640ed34 100644
--- a/res/layout/alarm_alert.xml
+++ b/res/layout/alarm_alert.xml
@@ -81,6 +81,7 @@
<!-- blank stretchable view -->
<View
+ android:id="@+id/spacer"
android:layout_width="2dip"
android:layout_height="2dip"
android:layout_gravity="fill_horizontal"
diff --git a/res/layout/color_picker.xml b/res/layout/color_picker.xml
new file mode 100644
index 000000000..12bba3cec
--- /dev/null
+++ b/res/layout/color_picker.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/colorPickerFrame"
+ android:layout_width="270dip"
+ android:layout_height="320dip" >
+
+
+ <TextView
+ android:id="@+id/color_picker_alpha"
+ android:text="@string/color_picker_alpha"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="0dip" />
+
+ <SeekBar
+ android:id="@+id/a_seekbar"
+ android:layout_width="180dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="20dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_red"
+ android:text="@string/color_picker_red"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="50dip" />
+
+ <SeekBar
+ android:id="@+id/r_seekbar"
+ android:layout_width="180dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="70dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_green"
+ android:text="@string/color_picker_green"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="100dip" />
+
+ <SeekBar
+ android:id="@+id/g_seekbar"
+ android:layout_width="180dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="120dip"
+ android:max="255"
+ android:progress="0" />
+
+ <TextView
+ android:id="@+id/color_picker_blue"
+ android:text="@string/color_picker_blue"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="150dip" />
+
+ <SeekBar
+ android:id="@+id/b_seekbar"
+ android:layout_width="180dip"
+ android:layout_height="30dip"
+ android:layout_gravity="top|center"
+ android:layout_marginTop="170dip"
+ android:max="255"
+ android:progress="0" />
+
+ <FrameLayout
+ android:id="@+id/colorsampleLayout"
+ android:background="#000"
+ android:layout_width="200dip"
+ android:layout_height="100dip"
+ android:layout_gravity="bottom|center"
+ android:layout_marginBottom="15dip">
+
+ <TextView
+ android:id="@+id/color_picker_sample"
+ android:text="@string/color_picker_sample"
+ android:textSize="80dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center" />
+
+ </FrameLayout>
+</FrameLayout>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 13103c288..07beada20 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -29,6 +29,20 @@
<string name="hide_clock" msgid="3217727306480505694">"Uhr ausblenden"</string>
<string name="label" msgid="162189613902857319">"Label"</string>
<string name="default_label" msgid="5590025289805630372">"Wecker"</string>
+
+ <!-- Setting label on Set alarm screen: Application to launch -->
+ <string name="application">Anwendung</string>
+ <!-- Title on the application picker -->
+ <string name="application_title">Diese App starten</string>
+ <!-- Option to not launch an application -->
+ <string name="application_none">Keine</string>
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Dialog verbergen</string>
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">Kein Snooze/Verwerfen-Dialog</string>
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">Zeige Snooze/Verwerfen-Dialog</string>
+
<string name="set_alarm" msgid="9148359866152726808">"Wecker einstellen"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibrieren"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Wiederholen"</string>
@@ -36,7 +50,11 @@
<string name="time" msgid="8067216534232296518">"Uhrzeit"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ausschalten"</string>
<string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Der Wecker verstummte nach <xliff:g id="MINUTES">%d</xliff:g> Minuten"</string>
- <string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze-Funktion"</string>
+ <string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze"</string>
+
+ <!-- Button labels on the alarm dialog: Snooze & dismiss (when dual-mode button enabled) -->
+ <string name="alarm_alert_snooze_text_dual_mode">Snooze (Halten zum Verwerfen)</string>
+
<string name="alarm_alert_snooze_set" msgid="656470966696912087">"Snooze-Funktion aktiviert für <xliff:g id="MINUTES">%d</xliff:g> Minuten"</string>
<string-array name="alarm_set">
<item msgid="5163476010406761625">"Dieser Wecker klingelt in weniger als 1 Minute."</item>
@@ -111,4 +129,54 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"Wetterinformationen derzeit nicht verfügbar"</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"Dock-Einstellungen"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Tonwiedergabedienst für in DeskClock eingestellte Alarme"</string>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="alarm_limit_title">Maximale Alarmdauer</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 Minuten</item>
+ <item>15 Minuten</item>
+ <item>30 Minuten</item>
+ <item>60 Minuten</item>
+ <item>90 Minuten</item>
+ <item>120 Minuten</item>
+ <item>Unendlich</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">Screensaver timeout</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 Minute</item>
+ <item>5 Minuten</item>
+ <item>10 Minuten</item>
+ <item>15 Minuten</item>
+ <item>30 Minuten</item>
+ <item>60 Minuten</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">Farbe: Zeit</string>
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">Farbe der Uhrzeit (Bildschirmschoner)</string>
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">Die Farbe der Zeitanzeige beim Bildschirmschoner ändern</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">Transparenz (nur gedimmt)</string>
+ <string name="color_picker_red">Rot</string>
+ <string name="color_picker_green">Grün</string>
+ <string name="color_picker_blue">Blau</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Dual-Mode Snooze</string>
+ <string name="use_dual_mode_button_on">Snooze-Taste gedrückt halten um den Wecker zu beenden</string>
+ <string name="use_dual_mode_button_off">Separate Tasten für Snooze und Verwerfen</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c98225273..6722dc78e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -29,6 +29,18 @@
<string name="hide_clock" msgid="3217727306480505694">"Masquer l\'horloge"</string>
<string name="label" msgid="162189613902857319">"Libellé"</string>
<string name="default_label" msgid="5590025289805630372">"Alarme"</string>
+ <!-- Setting label on Set alarm screen: Application to launch -->
+ <string name="application">Application</string>
+ <!-- Title on the application picker -->
+ <string name="application_title">Application à lancer</string>
+ <!-- Option to not launch an application -->
+ <string name="application_none">Aucune</string>
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Cacher Répéter/Désactiver</string>
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">La boîte de dialogue Répéter/Désactiver sera cachée</string>
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">La boîte de dialogue Répéter/Désactiver sera affichée</string>
<string name="set_alarm" msgid="9148359866152726808">"Régler l\'alarme"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibreur"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Répéter"</string>
@@ -37,6 +49,7 @@
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Quitter"</string>
<string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Alarme interrompue après <xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Répéter"</string>
+ <string name="alarm_alert_snooze_text_dual_mode">Répéter (Maintenir pour quitter)</string>
<string name="alarm_alert_snooze_set" msgid="656470966696912087">"Répétition dans <xliff:g id="MINUTES">%d</xliff:g> minutes."</string>
<string-array name="alarm_set">
<item msgid="5163476010406761625">"Prochaine alarme dans moins d\'une minute."</item>
@@ -111,4 +124,18 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"La météo n\'est pas disponible pour le moment."</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"Paramètres station d\'accueil"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Lancez le service de lecture pour les alarmes définies via l\'Horloge de bureau."</string>
+ <string name="alarm_limit_title">Durée alarme maximum</string>
+ <string name="screensaver_timeout_title">Temps avant veille</string>
+ <string name="color_picker">Couleur de l\'heure</string>
+ <string name="color_picker_title">Couleur heure (économiseur)</string>
+ <string name="color_picker_summary">Changer la couleur de l\'heure affichée en mode économiseur d\'écran</string>
+ <string name="color_picker_alpha">Transparence (Obscurci uniquement)</string>
+ <string name="color_picker_red">Rouge</string>
+ <string name="color_picker_green">Vert</string>
+ <string name="color_picker_blue">Bleu</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Mode dual Snooze</string>
+ <string name="use_dual_mode_button_on">Une pression longue sur le bouton Répéter annulera l\'alarme</string>
+ <string name="use_dual_mode_button_off">Les boutons Répéter et Quitter seront séparés</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 2893ecde0..2638d78c1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -29,6 +29,23 @@
<string name="hide_clock" msgid="3217727306480505694">"Nascondi orologio"</string>
<string name="label" msgid="162189613902857319">"Etichetta"</string>
<string name="default_label" msgid="5590025289805630372">"Allarme"</string>
+ <!-- Setting label on Set alarm screen: Application to launch -->
+ <string name="application">Applicazione</string>
+
+ <!-- Title on the application picker -->
+ <string name="application_title">App da avviare</string>
+
+ <!-- Option to not launch an application -->
+ <string name="application_none">Nessuna</string>
+
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Nascondi finestra</string>
+
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">Non verrà visualizzata la finestra di dialogo spegni/posponi</string>
+
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">La finestra di dialogo spegni/posponi verrà visualizzata</string>
<string name="set_alarm" msgid="9148359866152726808">"Imposta allarme"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibrazione"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Ripeti"</string>
@@ -37,6 +54,8 @@
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Spegni"</string>
<string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Tono allarme disattivato dopo <xliff:g id="MINUTES">%d</xliff:g> minuti"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Posponi"</string>
+ <!-- Button labels on the alarm dialog: Snooze & dismiss (when dual-mode button enabled) -->
+ <string name="alarm_alert_snooze_text_dual_mode">Posponi (tieni premuto per spegnere)</string>
<string name="alarm_alert_snooze_set" msgid="656470966696912087">"Sospensione per <xliff:g id="MINUTES">%d</xliff:g> minuti."</string>
<string-array name="alarm_set">
<item msgid="5163476010406761625">"L\'allarme sarà attivato fra meno di 1 minuto."</item>
@@ -111,4 +130,56 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"Informazioni meteo attualmente non disponibili."</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"Impostazioni dock"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Servizio di riproduzione dei suoni per gli allarmi impostati in DeskClock."</string>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="alarm_limit_title">Durata massima dell\'allarme</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 minuti</item>
+ <item>15 minuti</item>
+ <item>30 minuti</item>
+ <item>60 minuti</item>
+ <item>90 minuti</item>
+ <item>120 minuti</item>
+ <item>Infinito</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">Salvaschermo</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 minuto</item>
+ <item>5 minuti</item>
+ <item>10 minuti</item>
+ <item>15 minuti</item>
+ <item>30 minuti</item>
+ <item>60 minuti</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">Colore ora</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">Colore ora (Salvaschermo)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">Cambia il colore dell\'ora visualizzata in modalità salvaschermo</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">Luminosità</string>
+ <string name="color_picker_red">Rosso</string>
+ <string name="color_picker_green">Verde</string>
+ <string name="color_picker_blue">Blu</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Tasto doppio uso</string>
+ <string name="use_dual_mode_button_on">Tieni premuto il tasto Posponi per spegnere l\'allarme</string>
+ <string name="use_dual_mode_button_off">I tasti Posponi e Spegni saranno separati</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index f0a4d5ee6..3eab19040 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -29,6 +29,14 @@
<string name="hide_clock" msgid="3217727306480505694">"時計を隠す"</string>
<string name="label" msgid="162189613902857319">"ラベル"</string>
<string name="default_label" msgid="5590025289805630372">"アラーム"</string>
+
+ <string name="application">アプリケーション</string>
+ <string name="application_title">起動するアプリ</string>
+ <string name="application_none">なし</string>
+ <string name="no_dialog">ダイアログを隠す</string>
+ <string name="no_dialog_on">スヌーズ/停止のダイアログを表示しない</string>
+ <string name="no_dialog_off">スヌーズ/停止のダイアログを表示する</string>
+
<string name="set_alarm" msgid="9148359866152726808">"アラームを設定"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"バイブレーション"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"繰り返し"</string>
@@ -111,4 +119,53 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"天気予報は現在ご利用いただけません。"</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"ドックの設定"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"卓上時計で設定したアラーム用のサウンド再生サービスです。"</string>
+
+ <string name="alarm_limit_title">アラームの最大持続時間</string>
+ <string-array name="alarm_limit_entries">
+ <item>5 分</item>
+ <item>15 分</item>
+ <item>30 分</item>
+ <item>60 分</item>
+ <item>90 分</item>
+ <item>120 分</item>
+ <item>無制限</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">スクリーンセーバータイムアウト</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 分</item>
+ <item>5 分</item>
+ <item>10 分</item>
+ <item>15 分</item>
+ <item>30 分</item>
+ <item>60 分</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">時刻の色</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">時刻の色(スクリーンセーバー)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">スクリーンセーバーの時刻の色を変更する</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">透明度 (暗転時のみ)</string>
+ <string name="color_picker_red">赤</string>
+ <string name="color_picker_green">緑</string>
+ <string name="color_picker_blue">青</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">デュアルモードスヌーズ</string>
+ <string name="use_dual_mode_button_on">スヌーズボタンの長押しでアラームを停止します。</string>
+ <string name="use_dual_mode_button_off">スヌーズボタンと停止ボタンをわけて表示します。</string>
+ <string name="alarm_alert_snooze_text_dual_mode">スヌーズ(長押しで停止)</string>
</resources>
diff --git a/res/values-pt-rPT/donottranslate.xml b/res/values-pt-rPT/donottranslate.xml
deleted file mode 100644
index ed4559fad..000000000
--- a/res/values-pt-rPT/donottranslate.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- String matching the lock screen format for displaying the date. -->
- <string name="full_wday_month_day_no_year">EEE, d \'de\' MMMM</string>
-</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 2fe98e968..fc5722e5e 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
@@ -12,103 +12,301 @@
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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_label" msgid="6674495003718166674">"Relógio"</string>
- <string name="alarm_list_title" msgid="7589940465292950600">"Alarmes"</string>
- <string name="add_alarm" msgid="5976616107390962899">"Adicionar alarme"</string>
- <string name="menu_desk_clock" msgid="3241995064554071588">"Relógio de secretária"</string>
- <string name="menu_edit_alarm" msgid="7204602994918829751">"Editar alarme"</string>
- <string name="delete_alarm" msgid="3457780990646206817">"Eliminar alarme"</string>
- <string name="enable_alarm" msgid="1834599140632142536">"Activar alarme"</string>
- <string name="disable_alarm" msgid="5889378670229554109">"Desactivar alarme"</string>
- <string name="delete_alarm_confirm" msgid="4237696873219106907">"Este alarme será eliminado."</string>
- <string name="show_clock" msgid="8358759982675616915">"Mostrar relógio"</string>
- <string name="hide_clock" msgid="3217727306480505694">"Ocultar relógio"</string>
- <string name="label" msgid="162189613902857319">"Etiqueta"</string>
- <string name="default_label" msgid="5590025289805630372">"Alarme"</string>
- <string name="set_alarm" msgid="9148359866152726808">"Definir alarme"</string>
- <string name="alarm_vibrate" msgid="3476686921490362230">"Vibrar"</string>
- <string name="alarm_repeat" msgid="7242985466344233206">"Repetir"</string>
- <string name="alert" msgid="6539852766423700221">"Toque"</string>
- <string name="time" msgid="8067216534232296518">"Hora"</string>
- <string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ignorar"</string>
- <string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Alarme silenciado após <xliff:g id="MINUTES">%d</xliff:g> minutos."</string>
- <string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Suspender"</string>
- <string name="alarm_alert_snooze_set" msgid="656470966696912087">"Suspenso por <xliff:g id="MINUTES">%d</xliff:g> minutos."</string>
- <string-array name="alarm_set">
- <item msgid="5163476010406761625">"Este alarme dispara daqui a menos de um minuto."</item>
- <item msgid="7110525731259629055">"Este alarme dispara daqui a <xliff:g id="DAYS">%1$s</xliff:g>."</item>
- <item msgid="7003982794086186185">"Este alarme dispara daqui a <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="7311021123230077742">"Este alarme dispara daqui a <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="8431715191823114872">"Este alarme dispara daqui a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="3244151088673185428">"Este alarme dispara daqui a <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="3663661342600168814">"Este alarme dispara daqui a <xliff:g id="HOURS">%2$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="7779544127785487304">"Este alarme dispara daqui a <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- </string-array>
- <string name="day" msgid="7984755014526510295">"1 dia"</string>
- <string name="days" msgid="2070509222727852210">"<xliff:g id="DAYS">%s</xliff:g> dias"</string>
- <string name="hour" msgid="2546819039651509323">"1 hora"</string>
- <string name="hours" msgid="2071487018566991613">"<xliff:g id="HOURS">%s</xliff:g> horas"</string>
- <string name="minute" msgid="2486157997434653710">"1 minuto"</string>
- <string name="minutes" msgid="6115838729146292526">"<xliff:g id="MINUTES">%s</xliff:g> minutos"</string>
- <string name="every_day" msgid="1058994798884544691">"todos os dias"</string>
- <string name="never" msgid="54104287800571769">"Nunca"</string>
- <string name="day_concat" msgid="971998564991636532">", "</string>
- <string name="clock_instructions" msgid="3118560284915857690">"Seleccione um relógio para visualizar."</string>
- <string name="analog_gadget" msgid="1670505720837152766">"Relógio analógico"</string>
- <string name="settings" msgid="5849739030579520686">"Definições"</string>
- <string name="alarm_in_silent_mode_title" msgid="3892612644543516705">"Alarme em modo silencioso"</string>
- <string name="alarm_in_silent_mode_summary" msgid="6042500263899922832">"Fazer soar o alarme mesmo com o telefone em modo silencioso"</string>
- <string name="snooze_duration_title" msgid="1471249885139952670">"Duração da suspensão"</string>
- <string-array name="snooze_duration_entries">
- <item msgid="8337408933053603125">"5 minutos"</item>
- <item msgid="5294206441496024610">"10 minutos"</item>
- <item msgid="2165904039211935470">"15 minutos"</item>
- <item msgid="7248236967714374250">"20 minutos"</item>
- <item msgid="738394723625179423">"25 minutos"</item>
- <item msgid="1180222611308391616">"30 minutos"</item>
- </string-array>
- <string-array name="snooze_duration_values">
- <item msgid="3655014754453084122">"5"</item>
- <item msgid="8939029597449573449">"10"</item>
- <item msgid="3922647341176353315">"15"</item>
- <item msgid="5821804105985044459">"20"</item>
- <item msgid="6048861883552402852">"25"</item>
- <item msgid="2740866721232379791">"30"</item>
- </string-array>
- <string name="done" msgid="6509722361933858451">"Concluído"</string>
- <string name="revert" msgid="9100911171235162926">"Reverter"</string>
- <string name="delete" msgid="5732434972457000541">"Eliminar"</string>
- <string name="alarm_volume_title" msgid="8506245173912428522">"Volume do alarme"</string>
- <string name="alarm_volume_summary" msgid="8957440373896242438">"Definir o volume dos alarmes"</string>
- <string name="silent_alarm_summary" msgid="8605302849408279221">"Silencioso"</string>
- <string name="alarm_notify_text" msgid="4146350965933990093">"Seleccionar suspender ou ignorar este alarme."</string>
- <string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (suspenso)"</string>
- <string name="alarm_notify_snooze_text" msgid="8004830999152609519">"Alarme definido para a(s) <xliff:g id="TIME">%s</xliff:g>. Seleccione para cancelar."</string>
- <string name="volume_button_setting_title" msgid="8155275533660105161">"Volume e câmara"</string>
- <string name="volume_button_dialog_title" msgid="8768042543750036853">"Efeito do botão"</string>
- <string name="volume_button_setting_summary" msgid="4776447991226047070">"Defina o que estes botões fazem quando forem premidos durante um alarme"</string>
- <string-array name="volume_button_setting_entries">
- <item msgid="4520420953175098625">"Nenhum"</item>
- <item msgid="7111908302622811168">"Suspender"</item>
- <item msgid="8573552194573068996">"Ignorar"</item>
- </string-array>
- <string-array name="volume_button_setting_values">
- <item msgid="4851033050639608752">"0"</item>
- <item msgid="3204893476515513084">"1"</item>
- <item msgid="7687709558968154577">"2"</item>
- </string-array>
- <string name="alarm_button_description" msgid="740283647046258651">"Alarmes"</string>
- <string name="gallery_button_description" msgid="1151743663255257668">"Galeria"</string>
- <string name="music_button_description" msgid="1626593420810117999">"Música"</string>
- <string name="nightmode_button_description" msgid="990894208217576381">"Esbater"</string>
- <string name="home_button_description" msgid="3383859096809056157">"Launcher"</string>
- <string name="desk_clock_button_description" msgid="968868045496561043">"Apresentação do relógio"</string>
- <string name="battery_charging_level" msgid="4391767951302394083">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
- <string name="weather_fetch_failure" msgid="7517010911981312358">"Informações meteorológicas actualmente indisponíveis."</string>
- <string name="menu_item_dock_settings" msgid="3524235151132971114">"Definições da estação de ancoragem"</string>
- <string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Serviço de reprodução de som para alarmes definidos no DeskClock."</string>
-</resources>
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- -->
+ <!-- Label shown on launcher icon -->
+ <string name="app_label">Relógio</string>
+
+ <!-- Title for AlarmClock activity -->
+ <string name="alarm_list_title">Alarmes</string>
+
+ <!-- Menu item on Alarm Clock screen: Add alarm -->
+ <string name="add_alarm">Adicionar alarme</string>
+
+ <!-- Menu item on Alarm Clock screen: Desk clock -->
+ <string name="menu_desk_clock">Relógio de Secretária</string>
+
+ <!-- Menu item on Alarm Clock screen: Edit alarm -->
+ <string name="menu_edit_alarm">Alterar alarme</string>
+
+ <!-- Context Menu Item on Alarm Settings screen: Delete alarm -->
+ <string name="delete_alarm">Apagar alarme</string>
+
+ <!-- Context Menu Item on Alarm Settings screen: Enable alarm -->
+ <string name="enable_alarm">Ligar alarme</string>
+
+ <!-- Context Menu Item on Alarm Settings screen: Disable alarm -->
+ <string name="disable_alarm">Desligar alarme</string>
+
+ <!-- Delete alarm confirmation dialog message. -->
+ <string name="delete_alarm_confirm">Este alarme será apagado.</string>
+
+ <!-- Menu item on Alarm Clock screen: Show clock -->
+ <string name="show_clock">Mostrar relógio</string>
+
+ <!-- Menu item on Alarm Clock screen: Hide clock -->
+ <string name="hide_clock">Esconder relógio</string>
+
+ <!-- Setting label on Set alarm screen: Label -->
+ <string name="label">Descrição</string>
+
+ <!-- Default label to display for an alarm -->
+ <string name="default_label">Alarme</string>
+
+ <!-- Setting label on Set alarm screen: Application to launch -->
+ <string name="application">Aplicação</string>
+
+ <!-- Title on the application picker -->
+ <string name="application_title">Aplicação a iniciar</string>
+
+ <!-- Option to not launch an application -->
+ <string name="application_none">Nenhuma</string>
+
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Esconder opções</string>
+
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">Sem opção de snooze/desligar</string>
+
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">Opção de snooze/desligar será mostrada</string>
+
+ <!-- Preference category on Alarm Settings screen: Set alarm -->
+ <string name="set_alarm">Ajustar alarme</string>
+
+ <!-- Setting labels on Set alarm screen: Vibration on or off -->
+ <string name="alarm_vibrate">Vibrar</string>
+
+ <!-- Setting labels on Set alarm screen: Repeat -->
+ <string name="alarm_repeat">Repetir</string>
+
+ <!-- Setting labels on Set alarm screen: Select alarm ringtone -->
+ <string name="alert">Toque</string>
+
+ <!-- Setting labels on Set alarm screen: Set time -->
+ <string name="time">Hora</string>
+
+ <!-- Button labels on the alarm dialog: Dismiss -->
+ <string name="alarm_alert_dismiss_text">Desligar</string>
+
+ <!-- Alarm Alert screen: this message is shown after an alarm rung
+ unattended for a number of minutes. It tells the user that
+ the alarm has been silenced.-->
+ <string name="alarm_alert_alert_silenced">Alarme desligado após <xliff:g id="minutes">%d</xliff:g> minutos</string>
+
+ <!-- Button labels on the alarm dialog: Snooze -->
+ <string name="alarm_alert_snooze_text">Snooze</string>
+
+ <!-- Button labels on the alarm dialog: Snooze & dismiss (when dual-mode button enabled) -->
+ <string name="alarm_alert_snooze_text_dual_mode">Snooze (prima para desligar)</string>
+
+ <!-- Toast that appears after Alarm is snoozed from the Alarm
+ dialog. Says the alarm will snooze for xxx minutes. -->
+ <string name="alarm_alert_snooze_set">Snoozing durante <xliff:g id="minutes">%d</xliff:g> minutos.</string>
+
+ <!-- 0: nothing
+ 1: days
+ 2: hours
+ 3: days hours
+ 4: minutes
+ 5: days minutes
+ 6: hours minutes
+ 7: days hours minutes
+ --><skip />
+
+ <!-- Alarm confirmation toast: Describes how long from now until
+ alarm fires -->
+ <string-array name="alarm_set">
+ <item>O alarme tocará em menos de 1 minuto.</item>
+ <item>O alarme tocará daqui a <xliff:g id="DAYS" example="2 days">%1$s</xliff:g> .</item>
+ <item>O alarme tocará daqui a <xliff:g id="HOURS" example="2 hours">%2$s</xliff:g> .</item>
+ <item>O alarme tocará daqui a <xliff:g id="DAYS" example="2 days">%1$s</xliff:g> e <xliff:g id="HOURS" example="2 hours">%2$s</xliff:g> .</item>
+ <item>O alarme tocará daqui a <xliff:g id="MINUTES" example="2 minutes">%3$s</xliff:g> from now.</item>
+ <item>O alarme tocará daqui a <xliff:g id="DAYS" example="2 days">%1$s</xliff:g> e <xliff:g id="MINUTES" example="2 minutes">%3$s</xliff:g> .</item>
+ <item>O alarme tocará daqui a <xliff:g id="HOURS" example="2 hours">%2$s</xliff:g> e <xliff:g id="MINUTES" example="2 minutes">%3$s</xliff:g> .</item>
+ <item>O alarme tocará daqui a <xliff:g id="DAYS" example="2 days">%1$s</xliff:g>, <xliff:g id="HOURS" example="2 hours">%2$s</xliff:g>, e <xliff:g id="MINUTES" example="2 minutes">%3$s</xliff:g> .</item>
+ </string-array>
+
+ <!-- Alarm confirmation toast: singular day -->
+ <string name="day">"1 dia"</string>
+
+ <!-- Alarm confirmation toast: plural days -->
+ <string name="days">"<xliff:g id="days">%s</xliff:g> dias"</string>
+
+ <!-- Alarm confirmation toast: singular hour -->
+ <string name="hour">1 hora</string>
+
+ <!-- Alarm confirmation toast: plural hours -->
+ <string name="hours"><xliff:g id="hours">%s</xliff:g> horas</string>
+
+ <!-- Alarm confirmation toast: singular minute -->
+ <string name="minute">"1 minuto"</string>
+
+ <!-- Alarm confirmation toast: plural minutes -->
+ <string name="minutes">"<xliff:g id="minutes">%s</xliff:g> minutos"</string>
+
+ <!-- Repeat options that appear under an alarm on main Alarm Clock
+ screen to identify repetition schedule: special case for when
+ the alarm is set to repeat every day -->
+ <string name="every_day">todos os dias</string>
+
+ <!-- Repeat options that appear under an alarm on main Alarm Clock
+ screen to identify repetition schedule: special case for when
+ the alarm is set to never repeat -->
+ <string name="never">Nunca</string>
+
+ <!-- Repeat options that appear under an alarm on main Alarm Clock
+ screen to identify repetition schedule: concatenate days with
+ this character, i.e. "Mon, Tue, Wed" -->
+ <string name="day_concat">", "</string>
+
+ <!-- Appears at the top of the Clock Picker screen: Tell user to
+ select a clock to display -->
+ <string name="clock_instructions">Seleccione o relógio a mostrar.</string>
+
+ <!-- Label for analog clock gadget, shown in list of all gadgets -->
+ <string name="analog_gadget">Relógio analógico</string>
+
+ <!-- Menu item title for general Alarm Clock Settings -->
+ <string name="settings">Definições</string>
+
+ <!-- Setting title for whether the alarm should play in silent mode.
+ Usually, silent mode only affects the ringer, but this setting
+ will make the alarms respect silent mode too. -->
+ <string name="alarm_in_silent_mode_title">Alarme em modo silencioso</string>
+
+ <!-- Setting summary for whether the alarm should play in silent mode. -->
+ <string name="alarm_in_silent_mode_summary">Tocar alarme mesmo com o telefone em modo silencioso</string>
+
+ <!-- Setting title for changing the snooze duration. -->
+ <string name="snooze_duration_title">Duração do Snooze</string>
+
+ <!-- Entries listed in the ListPreference when invoking the snooze duration
+ preference. -->
+ <string-array name="snooze_duration_entries">
+ <item>5 minutos</item>
+ <item>10 minutos</item>
+ <item>15 minutos</item>
+ <item>20 minutos</item>
+ <item>25 minutos</item>
+ <item>30 minutos</item>
+ </string-array>
+
+ <!-- Done button when editing an alarm. -->
+ <string name="done">Concluído</string>
+
+ <!-- Revert button when editing an alarm. -->
+ <string name="revert">Reverter</string>
+
+ <!-- Delete button when editing an alarm. -->
+ <string name="delete">Apagar</string>
+
+ <!-- Setting title for changing the alarm volume. -->
+ <string name="alarm_volume_title">Volume do alarme</string>
+
+ <!-- Setting summary for changing the alarm volume. -->
+ <string name="alarm_volume_summary">Definir volume dos alarmes</string>
+
+ <!-- Summary for the alarm preference when silent is chosen. -->
+ <string name="silent_alarm_summary">Silencioso</string>
+
+ <!-- Text to display in the small text of the notification -->
+ <string name="alarm_notify_text">Seleccione para snooze ou desligar este alarme.</string>
+
+ <!-- Text to display in the notification ticker and label -->
+ <string name="alarm_notify_snooze_label"><xliff:g id="label">%s</xliff:g> (snoozed)</string>
+
+ <!-- Text to display in the notification when the alarm has been snoozed -->
+ <string name="alarm_notify_snooze_text">Alarm definido para <xliff:g id="time">%s</xliff:g>. Seleccione para cancelar.</string>
+
+ <!-- Title of the setting to change the volume/camera button behavior. -->
+ <string name="volume_button_setting_title">Volume e Camera</string>
+
+ <!-- Dialog title of the volume and power setting. -->
+ <string name="volume_button_dialog_title">Efeito do botão</string>
+
+ <!-- The summary of the side button setting. -->
+ <string name="volume_button_setting_summary">Defina a função destes botões ao serem primidos durante um alarme</string>
+
+ <!-- Entries listed in the setting for the side-button action. -->
+ <string-array name="volume_button_setting_entries">
+ <item>Nenhuma</item>
+ <item>Snooze</item>
+ <item>Desligar</item>
+ </string-array>
+
+ <!-- Accessibility labels for Clock activity buttons --><skip/>
+ <string name="alarm_button_description">Alarmes</string>
+ <string name="gallery_button_description">Galeria</string>
+ <string name="music_button_description">Música</string>
+ <string name="nightmode_button_description">Brilho</string>
+ <string name="home_button_description">Launcher</string>
+ <string name="desk_clock_button_description">Mostrar Relógio</string>
+
+ <!-- A short representation of charging information, e.g "34%" -->
+ <string name="battery_charging_level"><xliff:g id="number">%d</xliff:g><xliff:g id="percent">%%</xliff:g></string>
+
+ <!-- What to show the user if the weather widget exists but fails to
+ respond. This is a sign of an error; if the weather widget is not
+ present on the device, we show nothing at all. -->
+ <string name="weather_fetch_failure">Informação meteorológica indisponível.</string>
+
+ <string name="menu_item_dock_settings" msgid="9161438664257429372">Definições da dock</string>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="alarm_limit_title">Duração máxima do alarme</string>
+
+ <string name="alarm_klaxon_service_desc">Tocar sons de serviço para alarmes definidos no DeskClock.</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>60 minutos</item>
+ <item>90 minutos</item>
+ <item>120 minutos</item>
+ <item>Infinito</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">Tempo limite do protector de ecrã</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 minuto</item>
+ <item>5 minutos</item>
+ <item>10 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>60 minutos</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">Cor das Horas</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">Cor das Horas (Protector de Ecrã)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">Mudar a cor das horas usadas no modo de protector de ecrã</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">Transparência (Menos brilho)</string>
+ <string name="color_picker_red">Vermelho</string>
+ <string name="color_picker_green">Verde</string>
+ <string name="color_picker_blue">Azul</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Snooze de modo duplo</string>
+ <string name="use_dual_mode_button_on">Premir continuamente no botão snooze para desligar o alarme</string>
+ <string name="use_dual_mode_button_off">Separar botões snooze e desligar</string>
+
+</resources> \ No newline at end of file
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 4b9312fc7..b6f58477e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -36,8 +36,8 @@
<string name="time" msgid="8067216534232296518">"Horário"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Encerrar"</string>
<string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Alarme silenciado após <xliff:g id="MINUTES">%d</xliff:g> minutos"</string>
- <string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Colocar em modo de espera"</string>
- <string name="alarm_alert_snooze_set" msgid="656470966696912087">"Em espera por <xliff:g id="MINUTES">%d</xliff:g> minutos."</string>
+ <string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Colocar em modo de cochilo"</string>
+ <string name="alarm_alert_snooze_set" msgid="656470966696912087">"Em cochilo por <xliff:g id="MINUTES">%d</xliff:g> minutos."</string>
<string-array name="alarm_set">
<item msgid="5163476010406761625">"Este alarme está definido para menos de um minuto a partir de agora."</item>
<item msgid="7110525731259629055">"Este alarme está definido para <xliff:g id="DAYS">%1$s</xliff:g> a partir de agora."</item>
@@ -62,7 +62,7 @@
<string name="settings" msgid="5849739030579520686">"Configurações"</string>
<string name="alarm_in_silent_mode_title" msgid="3892612644543516705">"Modo silencioso"</string>
<string name="alarm_in_silent_mode_summary" msgid="6042500263899922832">"Tocar o alarme mesmo quando o telefone estiver no modo silencioso"</string>
- <string name="snooze_duration_title" msgid="1471249885139952670">"Modo de espera"</string>
+ <string name="snooze_duration_title" msgid="1471249885139952670">"Modo de cochilo"</string>
<string-array name="snooze_duration_entries">
<item msgid="8337408933053603125">"5 minutos"</item>
<item msgid="5294206441496024610">"10 minutos"</item>
@@ -85,15 +85,15 @@
<string name="alarm_volume_title" msgid="8506245173912428522">"Volume do alarme"</string>
<string name="alarm_volume_summary" msgid="8957440373896242438">"Definir o volume dos alarmes"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"Silencioso"</string>
- <string name="alarm_notify_text" msgid="4146350965933990093">"Selecione para colocar esse alarme em modo de espera ou descartá-lo."</string>
- <string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (em modo de espera)"</string>
+ <string name="alarm_notify_text" msgid="4146350965933990093">"Selecione para colocar esse alarme em modo de cochilo ou descartá-lo."</string>
+ <string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (em modo de cochilo)"</string>
<string name="alarm_notify_snooze_text" msgid="8004830999152609519">"Alarme definido para <xliff:g id="TIME">%s</xliff:g>. Selecione para cancelar."</string>
<string name="volume_button_setting_title" msgid="8155275533660105161">"Volume e câmera"</string>
<string name="volume_button_dialog_title" msgid="8768042543750036853">"Efeito do botão"</string>
<string name="volume_button_setting_summary" msgid="4776447991226047070">"Define a ação desses botões quando pressionados durante um alarme"</string>
<string-array name="volume_button_setting_entries">
<item msgid="4520420953175098625">"Nenhum"</item>
- <item msgid="7111908302622811168">"Colocar em modo de espera"</item>
+ <item msgid="7111908302622811168">"Colocar em modo de cochilo"</item>
<item msgid="8573552194573068996">"Descartar"</item>
</string-array>
<string-array name="volume_button_setting_values">
@@ -111,4 +111,59 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"Informações metereológicas indisponíveis no momento"</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"Configurações de dock"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Serviço de reprodução de sons para alarmes definidos no DeskClock."</string>
+
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Esconder caixa de diálogo</string>
+
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">Sem caixa de diálogo cochilo/encerrar</string>
+
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">Caixa de diálogo cochilo/encerrar vai ser mostrado</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>60 minutos</item>
+ <item>90 minutos</item>
+ <item>120 minutos</item>
+ <item>Infinitamente</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">Tempo limite do protetor de tela</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 minuto</item>
+ <item>5 minutos</item>
+ <item>10 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>60 minutos</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">Cor da Hora</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">Cor da Hora (Protetor de Tela)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">Trocar a cor da hora usada no modo protetor de tela</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">Transparente (Apenas escurecido)</string>
+ <string name="color_picker_red">Vermelho</string>
+ <string name="color_picker_green">Verde</string>
+ <string name="color_picker_blue">Azul</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Modo duplo de tempo de cochilo</string>
+ <string name="use_dual_mode_button_on">Aperto longo para botão de cochilo encerrar o alarme</string>
+ <string name="use_dual_mode_button_off">Separar botões de cochilo e encerrar</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 54120bca1..1dd0edfe3 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -29,6 +29,12 @@
<string name="hide_clock" msgid="3217727306480505694">"Спрятать часы"</string>
<string name="label" msgid="162189613902857319">"Описание"</string>
<string name="default_label" msgid="5590025289805630372">"Будильник"</string>
+ <string name="application">Приложение</string>
+ <string name="application_title">Приложение для запуска</string>
+ <string name="application_none">Ничего</string>
+ <string name="no_dialog">Скрыть диалог</string>
+ <string name="no_dialog_on">Выбор отложить/отключить не показывается</string>
+ <string name="no_dialog_off">Выбор отложить/отключить показывается</string>
<string name="set_alarm" msgid="9148359866152726808">"Установить будильник"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Вибросигнал"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Дни недели"</string>
@@ -37,6 +43,7 @@
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Отключить"</string>
<string name="alarm_alert_alert_silenced" msgid="7918075929961104202">"Будильник звонил <xliff:g id="MINUTES">%d</xliff:g> мин."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Отложить"</string>
+ <string name="alarm_alert_snooze_text_dual_mode">Отложить (удержание для Отключения)</string>
<string name="alarm_alert_snooze_set" msgid="656470966696912087">"Повтор сигнала через <xliff:g id="MINUTES">%d</xliff:g> мин."</string>
<string-array name="alarm_set">
<item msgid="5163476010406761625">"До срабатывания будильника осталось меньше одной минуты."</item>
@@ -111,4 +118,33 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"Сейчас информация о погоде недоступна."</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"Настройки док-станции"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"Служба воспроизведения сигналов в DeskClock."</string>
+ <string name="alarm_limit_title">Максимальная длительность сигнала</string>
+ <string-array name="alarm_limit_entries">
+ <item>5 минут</item>
+ <item>15 минут</item>
+ <item>30 минут</item>
+ <item>60 минут</item>
+ <item>90 минут</item>
+ <item>120 минут</item>
+ <item>Бесконечно</item>
+ </string-array>
+ <string name="screensaver_timeout_title">Задержка заставки</string>
+ <string-array name="screensaver_timeout_entries">
+ <item>1 минута</item>
+ <item>5 минут</item>
+ <item>10 минут</item>
+ <item>15 минут</item>
+ <item>30 минут</item>
+ <item>60 минут</item>
+ </string-array>
+ <string name="color_picker">Цвет времени</string>
+ <string name="color_picker_title">Цвет времени (Заставка)</string>
+ <string name="color_picker_summary">Измените цвет времени на заставке</string>
+ <string name="color_picker_alpha">Прозрачность (Затемнение)</string>
+ <string name="color_picker_red">Красный</string>
+ <string name="color_picker_green">Зелёный</string>
+ <string name="color_picker_blue">Синий</string>
+ <string name="use_dual_mode_button">Одна кнопка</string>
+ <string name="use_dual_mode_button_on">Долгое нажатие на кнопке \"Отложить\", будет отключать будильник.</string>
+ <string name="use_dual_mode_button_off">Разные кнопки \"Отложить\" и \"Отключить\".</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index de17124c8..7a690fa1a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -111,4 +111,56 @@
<string name="weather_fetch_failure" msgid="7517010911981312358">"目前无法提供天气信息。"</string>
<string name="menu_item_dock_settings" msgid="3524235151132971114">"底座设置"</string>
<string name="alarm_klaxon_service_desc" msgid="2153290655559916468">"在 DeskClock 中设置的闹钟铃声播放服务。"</string>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="alarm_limit_title">最大闹铃时长</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 分钟</item>
+ <item>15 分钟</item>
+ <item>30 分钟</item>
+ <item>60 分钟</item>
+ <item>90 分钟</item>
+ <item>120 分钟</item>
+ <item>无限</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">屏保超时</string>
+
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 分钟</item>
+ <item>5 分钟</item>
+ <item>10 分钟</item>
+ <item>15 分钟</item>
+ <item>30 分钟</item>
+ <item>60 分钟</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">时钟颜色</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">时钟颜色 (屏保)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">在屏保模式下更改时钟使用的颜色</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">透明度 (仅变暗)</string>
+ <string name="color_picker_red">红</string>
+ <string name="color_picker_green">绿</string>
+ <string name="color_picker_blue">蓝</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">懒人模式</string>
+ <string name="use_dual_mode_button_on">长按打盹按键解除闹铃</string>
+ <string name="use_dual_mode_button_off">分离打盹和解除按键</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 83c2cb170..507fa5f1e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -55,6 +55,24 @@
<!-- Default label to display for an alarm -->
<string name="default_label">Alarm</string>
+ <!-- Setting label on Set alarm screen: Application to launch -->
+ <string name="application">Application</string>
+
+ <!-- Title on the application picker -->
+ <string name="application_title">App to launch</string>
+
+ <!-- Option to not launch an application -->
+ <string name="application_none">None</string>
+
+ <!-- Setting label on Set alarm screen: Show dialog -->
+ <string name="no_dialog">Hide dialog</string>
+
+ <!-- Summary when dialog is hidden -->
+ <string name="no_dialog_on">No snooze/dismiss dialog</string>
+
+ <!-- Summary when dialog will be shown -->
+ <string name="no_dialog_off">Snooze/dismiss dialog will be shown</string>
+
<!-- Preference category on Alarm Settings screen: Set alarm -->
<string name="set_alarm">Set alarm</string>
@@ -81,6 +99,9 @@
<!-- Button labels on the alarm dialog: Snooze -->
<string name="alarm_alert_snooze_text">Snooze</string>
+ <!-- Button labels on the alarm dialog: Snooze & dismiss (when dual-mode button enabled) -->
+ <string name="alarm_alert_snooze_text_dual_mode">Snooze (hold to dismiss)</string>
+
<!-- Toast that appears after Alarm is snoozed from the Alarm
dialog. Says the alarm will snooze for xxx minutes. -->
<string name="alarm_alert_snooze_set">Snoozing for <xliff:g id="minutes">%d</xliff:g> minutes.</string>
@@ -252,8 +273,81 @@
<string name="menu_item_dock_settings" msgid="9161438664257429372">Dock settings</string>
+ <!-- Setting title for setting alarm time limit -->
+ <string name="alarm_limit_title">Maximum alarm duration</string>
+
<string name="alarm_klaxon_service_desc">Sound playback service for alarms set in DeskClock.</string>
-</resources>
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="alarm_limit_entries">
+ <item>5 minutes</item>
+ <item>15 minutes</item>
+ <item>30 minutes</item>
+ <item>60 minutes</item>
+ <item>90 minutes</item>
+ <item>120 minutes</item>
+ <item>Infinite</item>
+ </string-array>
+
+ <!-- Values that are retrieved from the ListPreference. These must match
+ the alarm_limit_entries above. -->
+ <string-array name="alarm_limit_values">
+ <item>5</item>
+ <item>15</item>
+ <item>30</item>
+ <item>60</item>
+ <item>90</item>
+ <item>120</item>
+ <item>-1</item>
+ </string-array>
+
+ <!-- Setting title for setting alarm time limit -->
+ <string name="screensaver_timeout_title">Screensaver timeout</string>
+ <!-- Entries listed in the ListPreference when invoking the max alarm duration
+ preference. -->
+ <string-array name="screensaver_timeout_entries">
+ <item>1 minute</item>
+ <item>5 minutes</item>
+ <item>10 minutes</item>
+ <item>15 minutes</item>
+ <item>30 minutes</item>
+ <item>60 minutes</item>
+ </string-array>
+ <!-- Values that are retrieved from the ListPreference. These must match
+ the alarm_limit_entries above. -->
+ <string-array name="screensaver_timeout_values">
+ <item>1</item>
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>30</item>
+ <item>60</item>
+ </string-array>
+
+ <!-- Setting title for screensaver time color picker general title-->
+ <string name="color_picker">Time Color</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_title">Time Color (Screensaver)</string>
+
+ <!-- Setting title for screensaver time color picker -->
+ <string name="color_picker_summary">Change the color of the time used in screensaver mode</string>
+
+ <!-- Sample time used in color picker -->
+ <string name="color_picker_sample">11:45</string>
+
+ <!-- Labels for colors in color picker -->
+ <string name="color_picker_alpha">Transparency (Dimmed only)</string>
+ <string name="color_picker_red">Red</string>
+ <string name="color_picker_green">Green</string>
+ <string name="color_picker_blue">Blue</string>
+
+ <!-- Settings strings for dual-mode button -->
+ <string name="use_dual_mode_button">Dual-mode snooze</string>
+ <string name="use_dual_mode_button_on">Long-press the snooze button to dismiss the alarm</string>
+ <string name="use_dual_mode_button_off">Separate snooze and dismiss buttons</string>
+
+</resources>
diff --git a/res/xml/alarm_prefs.xml b/res/xml/alarm_prefs.xml
index 3ca8ed050..a76049d3b 100644
--- a/res/xml/alarm_prefs.xml
+++ b/res/xml/alarm_prefs.xml
@@ -40,4 +40,13 @@
android:persistent="false"
android:title="@string/label"
android:dialogTitle="@string/label" />
+ <Preference android:key="intent"
+ android:persistent="false"
+ android:title="@string/application" />
+ <CheckBoxPreference android:key="no_dialog"
+ android:persistent="true"
+ android:title="@string/no_dialog"
+ android:defaultValue="false"
+ android:summaryOn="@string/no_dialog_on"
+ android:summaryOff="@string/no_dialog_off" />
</PreferenceScreen>
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 3a7b775df..924085fbd 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -45,6 +45,38 @@
android:entries="@array/volume_button_setting_entries"
android:entryValues="@array/volume_button_setting_values"
android:summary="@string/volume_button_setting_summary"
- android:defaultValue="2" />
+ android:defaultValue="0" />
+
+ <ListPreference
+ android:key="alarm_limit"
+ android:title="@string/alarm_limit_title"
+ android:entries="@array/alarm_limit_entries"
+ android:entryValues="@array/alarm_limit_values"
+ android:defaultValue="30"
+ android:dialogTitle="@string/alarm_limit_title"/>
+
+ <ListPreference
+ android:key="screensaver_timeout"
+ android:title="@string/screensaver_timeout_title"
+ android:entries="@array/screensaver_timeout_entries"
+ android:entryValues="@array/screensaver_timeout_values"
+ android:defaultValue="5"
+ android:dialogTitle="@string/screensaver_timeout_title"/>
+
+ <PreferenceScreen
+ android:key="color_picker"
+ android:title="@string/color_picker_title"
+ android:summary="@string/color_picker_summary">
+ <intent
+ android:action="com.android.alarmclock.ColorPicker"
+ android:targetPackage="com.android.alarmclock"
+ android.targetClass="com.android.alarmclock.ColorPicker"/>
+ </PreferenceScreen>
+
+ <CheckBoxPreference
+ android:key="use_dual_mode_button"
+ android:title="@string/use_dual_mode_button"
+ android:summaryOn="@string/use_dual_mode_button_on"
+ android:summaryOff="@string/use_dual_mode_button_off" />
</PreferenceScreen>
diff --git a/src/com/android/deskclock/Alarm.java b/src/com/android/deskclock/Alarm.java
index dedc0d848..23d4b9541 100644
--- a/src/com/android/deskclock/Alarm.java
+++ b/src/com/android/deskclock/Alarm.java
@@ -17,14 +17,16 @@
package com.android.deskclock;
import android.content.Context;
+import android.content.Intent;
import android.database.Cursor;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.BaseColumns;
-import android.text.format.DateFormat;
+import android.text.TextUtils;
+import java.net.URISyntaxException;
import java.text.DateFormatSymbols;
import java.util.Calendar;
@@ -59,6 +61,8 @@ public final class Alarm implements Parcelable {
p.writeString(label);
p.writeParcelable(alert, flags);
p.writeInt(silent ? 1 : 0);
+ p.writeString(intent);
+ p.writeInt(noDialog ? 1 : 0);
}
//////////////////////////////
// end Parcelable apis
@@ -124,6 +128,18 @@ public final class Alarm implements Parcelable {
public static final String ALERT = "alert";
/**
+ * Intent to fire when alarm triggers
+ * <P>Type: STRING</P>
+ */
+ public static final String INTENT = "intent";
+
+ /**
+ * Option to show dialog or not
+ * <P>Type: BOOLEAN</P>
+ */
+ public static final String NO_DIALOG = "no_dialog";
+
+ /**
* The default sort order for this table
*/
public static final String DEFAULT_SORT_ORDER =
@@ -134,7 +150,7 @@ public final class Alarm implements Parcelable {
static final String[] ALARM_QUERY_COLUMNS = {
_ID, HOUR, MINUTES, DAYS_OF_WEEK, ALARM_TIME,
- ENABLED, VIBRATE, MESSAGE, ALERT };
+ ENABLED, VIBRATE, MESSAGE, ALERT, INTENT, NO_DIALOG };
/**
* These save calls to cursor.getColumnIndexOrThrow()
@@ -149,6 +165,8 @@ public final class Alarm implements Parcelable {
public static final int ALARM_VIBRATE_INDEX = 6;
public static final int ALARM_MESSAGE_INDEX = 7;
public static final int ALARM_ALERT_INDEX = 8;
+ public static final int ALARM_INTENT_INDEX = 9;
+ public static final int ALARM_NO_DIALOG_INDEX = 10;
}
//////////////////////////////
// End column definitions
@@ -165,6 +183,8 @@ public final class Alarm implements Parcelable {
public String label;
public Uri alert;
public boolean silent;
+ public String intent;
+ public boolean noDialog;
public Alarm(Cursor c) {
id = c.getInt(Columns.ALARM_ID_INDEX);
@@ -193,6 +213,18 @@ public final class Alarm implements Parcelable {
RingtoneManager.TYPE_ALARM);
}
}
+ String intentString = c.getString(Columns.ALARM_INTENT_INDEX);
+ if (!TextUtils.isEmpty(intentString)) {
+ try {
+ // Try and parse the URI, see if it breaks.
+ Intent.parseUri(intentString, Intent.URI_INTENT_SCHEME);
+ // If it's an invalid URI, the exception will short-circuit.
+ intent = intentString;
+ } catch (URISyntaxException e) {
+ intent = null;
+ }
+ }
+ noDialog = c.getInt(Columns.ALARM_NO_DIALOG_INDEX) == 1;
}
public Alarm(Parcel p) {
@@ -206,6 +238,8 @@ public final class Alarm implements Parcelable {
label = p.readString();
alert = (Uri) p.readParcelable(null);
silent = p.readInt() == 1;
+ intent = p.readString();
+ noDialog = p.readInt() == 1;
}
// Creates a default alarm at the current time.
diff --git a/src/com/android/deskclock/AlarmAlertFullScreen.java b/src/com/android/deskclock/AlarmAlertFullScreen.java
index 56fc177d8..bfc488508 100644
--- a/src/com/android/deskclock/AlarmAlertFullScreen.java
+++ b/src/com/android/deskclock/AlarmAlertFullScreen.java
@@ -28,10 +28,12 @@ import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
+import android.view.ViewStub;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
@@ -49,9 +51,11 @@ public class AlarmAlertFullScreen extends Activity {
// These defaults must match the values in res/xml/settings.xml
private static final String DEFAULT_SNOOZE = "10";
- private static final String DEFAULT_VOLUME_BEHAVIOR = "2";
+ private static final String DEFAULT_VOLUME_BEHAVIOR = "0";
protected static final String SCREEN_OFF = "screen_off";
+ private static final String KEY_DUAL_MODE_BUTTON = "use_dual_mode_button";
+
protected Alarm mAlarm;
private int mVolumeBehavior;
@@ -118,7 +122,8 @@ public class AlarmAlertFullScreen extends Activity {
private void updateLayout() {
LayoutInflater inflater = LayoutInflater.from(this);
- setContentView(inflater.inflate(R.layout.alarm_alert, null));
+ View contentView = inflater.inflate(R.layout.alarm_alert, null);
+ setContentView(contentView);
/* snooze behavior: pop a snooze confirmation view, kick alarm
manager. */
@@ -130,13 +135,32 @@ public class AlarmAlertFullScreen extends Activity {
}
});
- /* dismiss button: close notification */
- findViewById(R.id.dismiss).setOnClickListener(
- new Button.OnClickListener() {
- public void onClick(View v) {
- dismiss(false);
- }
- });
+ boolean dualModeButtonEnabled = PreferenceManager.getDefaultSharedPreferences(this)
+ .getBoolean(KEY_DUAL_MODE_BUTTON, false);
+
+ View dismiss = findViewById(R.id.dismiss);
+
+ if (dualModeButtonEnabled) {
+ snooze.setOnLongClickListener(new Button.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ dismiss(false);
+ v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
+ return true;
+ }
+ });
+ snooze.setText(R.string.alarm_alert_snooze_text_dual_mode);
+ dismiss.setVisibility(View.GONE);
+ findViewById(R.id.spacer).setVisibility(View.GONE);
+ } else {
+ /* dismiss button: close notification */
+ dismiss.setOnClickListener(
+ new Button.OnClickListener() {
+ public void onClick(View v) {
+ dismiss(false);
+ }
+ });
+ }
/* Set the title from the passed in alarm */
setTitle();
diff --git a/src/com/android/deskclock/AlarmKlaxon.java b/src/com/android/deskclock/AlarmKlaxon.java
index 38098c8f5..9575df53d 100644
--- a/src/com/android/deskclock/AlarmKlaxon.java
+++ b/src/com/android/deskclock/AlarmKlaxon.java
@@ -31,6 +31,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Vibrator;
+import android.preference.PreferenceManager;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
@@ -40,9 +41,9 @@ import android.telephony.TelephonyManager;
*/
public class AlarmKlaxon extends Service {
- /** Play alarm up to 10 minutes before silencing */
- private static final int ALARM_TIMEOUT_SECONDS = 10 * 60;
-
+
+ private static final String DEFAULT_ALARM_LIMIT = "30";
+
private static final long[] sVibratePattern = new long[] { 500, 500 };
private boolean mPlaying = false;
@@ -283,8 +284,19 @@ public class AlarmKlaxon extends Service {
* popped, so the user will know that the alarm tripped.
*/
private void enableKiller(Alarm alarm) {
- mHandler.sendMessageDelayed(mHandler.obtainMessage(KILLER, alarm),
- 1000 * ALARM_TIMEOUT_SECONDS);
+
+ final String alarmdur =
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .getString(SettingsActivity.KEY_ALARM_LIMIT, DEFAULT_ALARM_LIMIT);
+
+ int alarmtimeout = Integer.parseInt(alarmdur);
+
+ if (alarmtimeout > 0) {
+ final int ALARM_TIMEOUT_SECONDS = alarmtimeout * 60;
+
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(KILLER, alarm),
+ 1000 * ALARM_TIMEOUT_SECONDS);
+ }
}
private void disableKiller() {
diff --git a/src/com/android/deskclock/AlarmProvider.java b/src/com/android/deskclock/AlarmProvider.java
index 133e79abf..34f05a4b8 100644
--- a/src/com/android/deskclock/AlarmProvider.java
+++ b/src/com/android/deskclock/AlarmProvider.java
@@ -44,7 +44,7 @@ public class AlarmProvider extends ContentProvider {
private static class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "alarms.db";
- private static final int DATABASE_VERSION = 5;
+ private static final int DATABASE_VERSION = 7;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
@@ -61,14 +61,17 @@ public class AlarmProvider extends ContentProvider {
"enabled INTEGER, " +
"vibrate INTEGER, " +
"message TEXT, " +
- "alert TEXT);");
+ "alert TEXT, " +
+ "intent TEXT," +
+ "no_dialog INTEGER);");
// insert default alarms
- String insertMe = "INSERT INTO alarms " +
- "(hour, minutes, daysofweek, alarmtime, enabled, vibrate, message, alert) " +
- "VALUES ";
- db.execSQL(insertMe + "(8, 30, 31, 0, 0, 1, '', '');");
- db.execSQL(insertMe + "(9, 00, 96, 0, 0, 1, '', '');");
+ String insertMe = "INSERT INTO alarms "
+ + "(hour, minutes, daysofweek, alarmtime, enabled, vibrate, "
+ + "message, alert, intent, no_dialog) "
+ + "VALUES ";
+ db.execSQL(insertMe + "(8, 30, 31, 0, 0, 1, '', '', '', 0);");
+ db.execSQL(insertMe + "(9, 00, 96, 0, 0, 1, '', '', '', 0);");
}
@Override
diff --git a/src/com/android/deskclock/AlarmReceiver.java b/src/com/android/deskclock/AlarmReceiver.java
index 242f865b5..2bacada09 100644
--- a/src/com/android/deskclock/AlarmReceiver.java
+++ b/src/com/android/deskclock/AlarmReceiver.java
@@ -26,6 +26,11 @@ import android.content.Intent;
import android.content.BroadcastReceiver;
import android.database.Cursor;
import android.os.Parcel;
+import android.text.TextUtils;
+
+import java.net.URISyntaxException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
/**
* Glue class: connects AlarmAlert IntentReceiver to AlarmAlert
@@ -112,6 +117,19 @@ public class AlarmReceiver extends BroadcastReceiver {
c = AlarmAlertFullScreen.class;
}
+ // If there's an intent specified, start that activity.
+ if (!TextUtils.isEmpty(alarm.intent)) {
+ try {
+ Intent alarmActivity = Intent.parseUri(alarm.intent, Intent.URI_INTENT_SCHEME);
+ alarmActivity.setFlags(alarmActivity.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(alarmActivity);
+ } catch (URISyntaxException e) {
+ // Silently fail since the intent failed to parse.
+ }
+ } else {
+ Log.i("Empty or null intent!");
+ }
+
// Play the alarm alert and vibrate the device.
Intent playAlarm = new Intent(Alarms.ALARM_ALERT_ACTION);
playAlarm.putExtra(Alarms.ALARM_INTENT_EXTRA, alarm);
diff --git a/src/com/android/deskclock/Alarms.java b/src/com/android/deskclock/Alarms.java
index 63b68c96e..9a1b4b9c2 100644
--- a/src/com/android/deskclock/Alarms.java
+++ b/src/com/android/deskclock/Alarms.java
@@ -29,6 +29,7 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Parcel;
import android.provider.Settings;
+import android.text.TextUtils;
import android.text.format.DateFormat;
import java.util.Calendar;
@@ -167,6 +168,11 @@ public class Alarms {
values.put(Alarm.Columns.ALERT, alarm.alert == null ? ALARM_ALERT_SILENT
: alarm.alert.toString());
+ // A null (or blank) intent Uri indicates no app launch
+ values.put(Alarm.Columns.INTENT, TextUtils.isEmpty(alarm.intent) ? "" : alarm.intent);
+
+ values.put(Alarm.Columns.NO_DIALOG, alarm.noDialog);
+
return values;
}
diff --git a/src/com/android/deskclock/ColorPicker.java b/src/com/android/deskclock/ColorPicker.java
new file mode 100644
index 000000000..d9ece0a06
--- /dev/null
+++ b/src/com/android/deskclock/ColorPicker.java
@@ -0,0 +1,114 @@
+package com.android.deskclock;
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.widget.FrameLayout;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+public class ColorPicker extends Activity implements SeekBar.OnSeekBarChangeListener
+{
+ private static final String LOG_TAG = "DeskClock";
+
+ private int aColor;
+ private int rColor;
+ private int gColor;
+ private int bColor;
+
+ SeekBar aSeekBar;
+ SeekBar rSeekBar;
+ SeekBar gSeekBar;
+ SeekBar bSeekBar;
+ FrameLayout sampleLayout;
+ TextView sampleText;
+
+ SharedPreferences mPrefs;
+
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.color_picker);
+
+ mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
+ loadPreferences();
+
+ sampleText = (TextView)findViewById(R.id.color_picker_sample);
+ sampleLayout = (FrameLayout)findViewById(R.id.colorsampleLayout);
+
+ aSeekBar = (SeekBar)findViewById(R.id.a_seekbar);
+ aSeekBar.setProgress(aColor);
+ aSeekBar.setOnSeekBarChangeListener(this);
+
+ rSeekBar = (SeekBar)findViewById(R.id.r_seekbar);
+ rSeekBar.setProgress(rColor);
+ rSeekBar.setOnSeekBarChangeListener(this);
+
+ gSeekBar = (SeekBar)findViewById(R.id.g_seekbar);
+ gSeekBar.setProgress(gColor);
+ gSeekBar.setOnSeekBarChangeListener(this);
+
+ bSeekBar = (SeekBar)findViewById(R.id.b_seekbar);
+ bSeekBar.setProgress(bColor);
+ bSeekBar.setOnSeekBarChangeListener(this);
+
+ updateColorInSample();
+ }
+
+ @Override
+ public void onStop()
+ {
+ super.onStop();
+ saveColors();
+ }
+
+ private void updateColorInSample()
+ {
+ sampleText.setTextColor(Color.argb(aColor, rColor, gColor, bColor));
+ }
+
+ private void loadPreferences()
+ {
+ aColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_ALPHA, DeskClock.DEFAULT_SCREENSAVER_COLOR_ALPHA));
+ rColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_RED, DeskClock.DEFAULT_SCREENSAVER_COLOR_RED));
+ gColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_GREEN, DeskClock.DEFAULT_SCREENSAVER_COLOR_GREEN));
+ bColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_BLUE, DeskClock.DEFAULT_SCREENSAVER_COLOR_BLUE));
+ }
+
+ private void saveColors()
+ {
+ SharedPreferences.Editor editor = mPrefs.edit();
+ editor.putInt(SettingsActivity.SCREENSAVER_COLOR_ALPHA, aColor);
+ editor.putInt(SettingsActivity.SCREENSAVER_COLOR_RED, rColor);
+ editor.putInt(SettingsActivity.SCREENSAVER_COLOR_GREEN, gColor);
+ editor.putInt(SettingsActivity.SCREENSAVER_COLOR_BLUE, bColor);
+ editor.commit();
+ }
+
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
+ {
+ if (seekBar == aSeekBar)
+ aColor = progress;
+ else if (seekBar == rSeekBar)
+ rColor = progress;
+ else if (seekBar == gSeekBar)
+ gColor = progress;
+ else if (seekBar == bSeekBar)
+ bColor = progress;
+ else
+ Log.d(LOG_TAG, "seekbar not found");
+
+ updateColorInSample();
+ }
+
+ public void onStartTrackingTouch(SeekBar seekBar) { }
+
+ public void onStopTrackingTouch(SeekBar seekBar) { }
+}
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java
index 7460e7ddf..3206e38a2 100644
--- a/src/com/android/deskclock/DeskClock.java
+++ b/src/com/android/deskclock/DeskClock.java
@@ -33,6 +33,10 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
@@ -44,6 +48,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.os.PowerManager;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.MediaStore;
import android.text.TextUtils;
@@ -106,15 +111,19 @@ public class DeskClock extends Activity {
// Intent to broadcast for dock settings.
private static final String DOCK_SETTINGS_ACTION = "com.android.settings.DOCK_SETTINGS";
- // Delay before engaging the burn-in protection mode (green-on-black).
- private final long SCREEN_SAVER_TIMEOUT = 5 * 60 * 1000; // 5 min
+ // Default delay before engaging the burn-in protection mode (can be changed on settings)
+ private final String SCREEN_SAVER_TIMEOUT_DEFAULT = "5";
// Repositioning delay in screen saver.
private final long SCREEN_SAVER_MOVE_DELAY = 60 * 1000; // 1 min
// Color to use for text & graphics in screen saver mode.
- private final int SCREEN_SAVER_COLOR = 0xFF308030;
- private final int SCREEN_SAVER_COLOR_DIM = 0xFF183018;
+// private final int SCREEN_SAVER_COLOR = 0xFF00C0FF;
+// private final int SCREEN_SAVER_COLOR_DIM = 0xFF004880;
+ static final int DEFAULT_SCREENSAVER_COLOR_ALPHA = 130;
+ static final int DEFAULT_SCREENSAVER_COLOR_RED = 0;
+ static final int DEFAULT_SCREENSAVER_COLOR_GREEN = 192;
+ static final int DEFAULT_SCREENSAVER_COLOR_BLUE = 255;
// Opacity of black layer between clock display and wallpaper.
private final float DIM_BEHIND_AMOUNT_NORMAL = 0.4f;
@@ -274,11 +283,15 @@ public class DeskClock extends Activity {
}
private void scheduleScreenSaver() {
+ String screensaver_timeout = PreferenceManager.getDefaultSharedPreferences(this)
+ .getString(SettingsActivity.SCREENSAVER_TIMEOUT, SCREEN_SAVER_TIMEOUT_DEFAULT);
+ Long timeout = (Long.parseLong(screensaver_timeout)) * 60 * 1000;
+
// reschedule screen saver
mHandy.removeMessages(SCREEN_SAVER_TIMEOUT_MSG);
mHandy.sendMessageDelayed(
Message.obtain(mHandy, SCREEN_SAVER_TIMEOUT_MSG),
- SCREEN_SAVER_TIMEOUT);
+ timeout);
}
private void restoreScreen() {
@@ -320,17 +333,33 @@ public class DeskClock extends Activity {
mTime = (DigitalClock) findViewById(R.id.time);
mDate = (TextView) findViewById(R.id.date);
mNextAlarm = (TextView) findViewById(R.id.nextAlarm);
-
+
+ SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
+
+ int aColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_ALPHA, DeskClock.DEFAULT_SCREENSAVER_COLOR_ALPHA));
+ int rColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_RED, DeskClock.DEFAULT_SCREENSAVER_COLOR_RED));
+ int gColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_GREEN, DeskClock.DEFAULT_SCREENSAVER_COLOR_GREEN));
+ int bColor = new Integer(mPrefs.getInt(
+ SettingsActivity.SCREENSAVER_COLOR_BLUE, DeskClock.DEFAULT_SCREENSAVER_COLOR_BLUE));
+
+ int SCREEN_SAVER_COLOR_DIM = Color.argb(aColor, rColor, gColor, bColor);
+ int SCREEN_SAVER_COLOR = Color.argb(255, rColor, gColor, bColor);
+
final int color = mDimmed ? SCREEN_SAVER_COLOR_DIM : SCREEN_SAVER_COLOR;
((TextView)findViewById(R.id.timeDisplay)).setTextColor(color);
((TextView)findViewById(R.id.am_pm)).setTextColor(color);
mDate.setTextColor(color);
mNextAlarm.setTextColor(color);
+
+ //color alarm icon to match chosen color
+ Drawable alarmIcon = getResources().getDrawable(R.drawable.ic_lock_idle_alarm_saver);
+ alarmIcon.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY));
mNextAlarm.setCompoundDrawablesWithIntrinsicBounds(
- getResources().getDrawable(mDimmed
- ? R.drawable.ic_lock_idle_alarm_saver_dim
- : R.drawable.ic_lock_idle_alarm_saver),
+ alarmIcon,
null, null, null);
mBatteryDisplay =
@@ -345,7 +374,7 @@ public class DeskClock extends Activity {
moveScreenSaverTo(oldLoc[0], oldLoc[1]);
}
-
+
@Override
public void onUserInteraction() {
if (mScreenSaverMode)
diff --git a/src/com/android/deskclock/SetAlarm.java b/src/com/android/deskclock/SetAlarm.java
index ebe6e5054..db0ced7e7 100644
--- a/src/com/android/deskclock/SetAlarm.java
+++ b/src/com/android/deskclock/SetAlarm.java
@@ -16,11 +16,14 @@
package com.android.deskclock;
+import java.util.ArrayList;
+
import android.app.AlertDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.Intent.ShortcutIconResource;
import android.os.Bundle;
import android.os.Handler;
import android.preference.CheckBoxPreference;
@@ -48,6 +51,8 @@ public class SetAlarm extends PreferenceActivity
implements TimePickerDialog.OnTimeSetListener,
Preference.OnPreferenceChangeListener {
+ private static final int CODE_PICK_APP = 1;
+
private EditTextPreference mLabel;
private CheckBoxPreference mEnabledPref;
private Preference mTimePref;
@@ -55,6 +60,8 @@ public class SetAlarm extends PreferenceActivity
private CheckBoxPreference mVibratePref;
private RepeatPreference mRepeatPref;
private MenuItem mTestAlarmItem;
+ private Preference mIntentPref;
+ private CheckBoxPreference mNoDialogPref;
private int mId;
private int mHour;
@@ -112,6 +119,9 @@ public class SetAlarm extends PreferenceActivity
mVibratePref.setOnPreferenceChangeListener(this);
mRepeatPref = (RepeatPreference) findPreference("setRepeat");
mRepeatPref.setOnPreferenceChangeListener(this);
+ mNoDialogPref = (CheckBoxPreference) findPreference("no_dialog");
+ mNoDialogPref.setOnPreferenceChangeListener(this);
+ mIntentPref = findPreference("intent");
Intent i = getIntent();
mId = i.getIntExtra(Alarms.ALARM_ID, -1);
@@ -211,7 +221,9 @@ public class SetAlarm extends PreferenceActivity
mVibratePref.setChecked(alarm.vibrate);
// Give the alert uri to the preference.
mAlarmPref.setAlert(alarm.alert);
+ mIntentPref.setSummary(alarm.intent);
updateTime();
+ updateNoDialog(alarm);
}
@Override
@@ -219,6 +231,8 @@ public class SetAlarm extends PreferenceActivity
Preference preference) {
if (preference == mTimePref) {
showTimePicker();
+ } else if (preference == mIntentPref) {
+ showAppPicker();
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
@@ -240,6 +254,48 @@ public class SetAlarm extends PreferenceActivity
DateFormat.is24HourFormat(this)).show();
}
+ private void showAppPicker() {
+ Bundle bundle = new Bundle();
+
+ ArrayList<String> shortcutNames = new ArrayList<String>();
+ shortcutNames.add(getString(R.string.application_none));
+ bundle.putStringArrayList(Intent.EXTRA_SHORTCUT_NAME, shortcutNames);
+
+ ArrayList<ShortcutIconResource> shortcutIcons = new ArrayList<ShortcutIconResource>();
+ shortcutIcons
+ .add(ShortcutIconResource.fromContext(this, android.R.drawable.ic_menu_delete));
+ bundle.putParcelableArrayList(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, shortcutIcons);
+
+ Intent appIntent = new Intent(Intent.ACTION_PICK_ACTIVITY);
+ Intent filterIntent = new Intent(Intent.ACTION_MAIN);
+ filterIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+ appIntent.putExtra(Intent.EXTRA_INTENT, filterIntent);
+ appIntent.putExtra(Intent.EXTRA_TITLE, getText(R.string.application_title));
+ appIntent.putExtras(bundle);
+ startActivityForResult(appIntent, CODE_PICK_APP);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case CODE_PICK_APP:
+ setAlarmIntent(resultCode, data);
+ default:
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
+ private void setAlarmIntent(int resultCode, Intent data) {
+ if (resultCode == RESULT_CANCELED || data == null) return;
+
+ String none = getString(R.string.application_none);
+ if (none.equals(data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME))) {
+ mIntentPref.setSummary("");
+ } else {
+ mIntentPref.setSummary(data.toUri(Intent.URI_INTENT_SCHEME));
+ }
+ }
+
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// onTimeSet is called when the user clicks "Set"
mTimePickerCancelled = false;
@@ -259,6 +315,20 @@ public class SetAlarm extends PreferenceActivity
mTimePref.setSummary(Alarms.formatTime(this, mHour, mMinutes,
mRepeatPref.getDaysOfWeek()));
}
+
+ private void updateNoDialog(Alarm alarm) {
+ // If the alarm has vibration or sound, the dialog must be shown.
+ boolean silent = alarm.silent
+ || (alarm.alert == null || Alarms.ALARM_ALERT_SILENT.equals(alarm.alert));
+ if (!silent || alarm.vibrate) {
+ mNoDialogPref.setEnabled(false);
+ alarm.noDialog = false;
+ } else {
+ mNoDialogPref.setEnabled(true);
+ }
+
+ mNoDialogPref.setChecked(alarm.noDialog);
+ }
private long saveAlarmAndEnableRevert() {
// Enable "Revert" to go back to the original Alarm.
@@ -277,6 +347,10 @@ public class SetAlarm extends PreferenceActivity
alarm.vibrate = mVibratePref.isChecked();
alarm.label = mLabel.getText();
alarm.alert = mAlarmPref.getAlert();
+ CharSequence intent = mIntentPref.getSummary();
+ alarm.intent = intent == null ? "" : intent.toString();
+ alarm.noDialog = mNoDialogPref.isChecked();
+ updateNoDialog(alarm);
long time;
if (alarm.id == -1) {
diff --git a/src/com/android/deskclock/SettingsActivity.java b/src/com/android/deskclock/SettingsActivity.java
index f28d1e73b..620e4a816 100644
--- a/src/com/android/deskclock/SettingsActivity.java
+++ b/src/com/android/deskclock/SettingsActivity.java
@@ -40,7 +40,21 @@ public class SettingsActivity extends PreferenceActivity
"snooze_duration";
static final String KEY_VOLUME_BEHAVIOR =
"volume_button_setting";
-
+ static final String KEY_ALARM_LIMIT =
+ "alarm_limit";
+ static final String SCREENSAVER_TIMEOUT =
+ "screensaver_timeout";
+ static final String SCREENSAVER_COLOR =
+ "screensaver_color";
+ static final String SCREENSAVER_COLOR_ALPHA =
+ "screensaver_color_alpha";
+ static final String SCREENSAVER_COLOR_RED =
+ "screensaver_color_red";
+ static final String SCREENSAVER_COLOR_GREEN =
+ "screensaver_color_green";
+ static final String SCREENSAVER_COLOR_BLUE =
+ "screensaver_color_blue";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -98,6 +112,17 @@ public class SettingsActivity extends PreferenceActivity
(ListPreference) findPreference(KEY_ALARM_SNOOZE);
snooze.setSummary(snooze.getEntry());
snooze.setOnPreferenceChangeListener(this);
+
+ final ListPreference alarmlimit =
+ (ListPreference) findPreference(KEY_ALARM_LIMIT);
+ alarmlimit.setSummary(alarmlimit.getEntry());
+ alarmlimit.setOnPreferenceChangeListener(this);
+
+ final ListPreference screensaver_timeout =
+ (ListPreference) findPreference(SCREENSAVER_TIMEOUT);
+ screensaver_timeout.setSummary(screensaver_timeout.getEntry());
+ screensaver_timeout.setOnPreferenceChangeListener(this);
+
}
}