am fa35c231: (-s ours) am 68172788: (-s ours) am 985d635c: (-s ours) Merge "Import translations. DO NOT MERGE" into lmp-dev
* commit 'fa35c2314e4da013cb0818b030450dbbf03fe189':
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0c11b04..3b2419a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,6 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.deskclock"
- android:versionCode="302" android:versionName="3.0.2">
+ android:versionCode="303" android:versionName="3.0.3">
<original-package android:name="com.android.alarmclock" />
<original-package android:name="com.android.deskclock" />
@@ -148,7 +148,6 @@
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.LOCALE_CHANGED" />
- <action android:name="android.intent.action.ALARM_CHANGED" />
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
<action android:name="com.android.deskclock.worldclock.update" />
</intent-filter>
@@ -165,7 +164,8 @@
<!-- Dream (screensaver) implementation -->
<service android:name="Screensaver"
android:exported="true"
- android:label="@string/app_label">
+ android:label="@string/app_label"
+ android:permission="android.permission.BIND_DREAM_SERVICE">
<intent-filter>
<action android:name="android.service.dreams.DreamService" />
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
@@ -194,7 +194,7 @@
so that is only has the fired timers -->
<activity android:name="com.android.deskclock.timer.TimerAlertFullScreen"
android:excludeFromRecents="true"
- android:theme="@style/AlarmAlertFullScreenTheme"
+ android:theme="@style/TimerAlertFullScreenTheme"
android:launchMode="singleInstance"
android:showOnLockScreen="true"
android:taskAffinity=""
diff --git a/res/animator/ic_alarm_animation_button.xml b/res/animator/ic_alarm_animation_button.xml
new file mode 100644
index 0000000..83465d3
--- /dev/null
+++ b/res/animator/ic_alarm_animation_button.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <set
+ android:ordering="sequentially" >
+ <objectAnimator
+ android:duration="33"
+ android:propertyName="rotation"
+ android:valueFrom="0"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="67"
+ android:propertyName="rotation"
+ android:valueFrom="8"
+ android:valueTo="-8"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="33"
+ android:propertyName="rotation"
+ android:valueFrom="-8"
+ android:valueTo="0"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ </set>
+</set>
diff --git a/res/drawable/snooze_circle.xml b/res/animator/ic_clock_animation_second_hand.xml
similarity index 62%
copy from res/drawable/snooze_circle.xml
copy to res/animator/ic_clock_animation_second_hand.xml
index 385c5fd..a98e6df 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/animator/ic_clock_animation_second_hand.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,11 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <objectAnimator
+ android:duration="1333"
+ android:propertyName="rotation"
+ android:valueFrom="0"
+ android:valueTo="360"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+</set>
diff --git a/res/animator/ic_stopwatch_animation_button.xml b/res/animator/ic_stopwatch_animation_button.xml
new file mode 100644
index 0000000..27e00cf
--- /dev/null
+++ b/res/animator/ic_stopwatch_animation_button.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <objectAnimator
+ android:duration="267"
+ android:propertyXName="translateX"
+ android:propertyYName="translateY"
+ android:pathData="M 12,12 c 0,0.16667 0,1 0,1 l 0,-1 "
+ android:interpolator="@interpolator/ic_stopwatch_button_translatex_interpolator" />
+</set>
diff --git a/res/drawable/snooze_circle.xml b/res/animator/ic_stopwatch_animation_hand.xml
similarity index 62%
copy from res/drawable/snooze_circle.xml
copy to res/animator/ic_stopwatch_animation_hand.xml
index 385c5fd..a98e6df 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/animator/ic_stopwatch_animation_hand.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,11 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <objectAnimator
+ android:duration="1333"
+ android:propertyName="rotation"
+ android:valueFrom="0"
+ android:valueTo="360"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+</set>
diff --git a/res/drawable/snooze_circle.xml b/res/animator/ic_timer_animation_hourglass_fill.xml
similarity index 62%
copy from res/drawable/snooze_circle.xml
copy to res/animator/ic_timer_animation_hourglass_fill.xml
index 385c5fd..2a1fc46 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/animator/ic_timer_animation_hourglass_fill.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,11 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <objectAnimator
+ android:duration="333"
+ android:propertyName="rotation"
+ android:valueFrom="0"
+ android:valueTo="180"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+</set>
diff --git a/res/drawable/snooze_circle.xml b/res/animator/ic_timer_animation_hourglass_frame.xml
similarity index 62%
copy from res/drawable/snooze_circle.xml
copy to res/animator/ic_timer_animation_hourglass_frame.xml
index 385c5fd..2a1fc46 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/animator/ic_timer_animation_hourglass_frame.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,11 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <objectAnimator
+ android:duration="333"
+ android:propertyName="rotation"
+ android:valueFrom="0"
+ android:valueTo="180"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+</set>
diff --git a/res/animator/ic_timer_animation_mask_1.xml b/res/animator/ic_timer_animation_mask_1.xml
new file mode 100644
index 0000000..2e331a7
--- /dev/null
+++ b/res/animator/ic_timer_animation_mask_1.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+ <set
+ android:ordering="sequentially" >
+ <objectAnimator
+ android:duration="333"
+ android:propertyName="pathData"
+ android:valueFrom="M 24,13.3999938965 c 0,0.0 -24,0.0 -24,0.0 c 0,0.0 0,10.6000061035 0,10.6000061035 c 0,0 24,0 24,0 c 0,0 0,-10.6000061035 0,-10.6000061035 Z"
+ android:valueTo="M 24,13.3999938965 c 0,0.0 -24,0.0 -24,0.0 c 0,0.0 0,10.6000061035 0,10.6000061035 c 0,0 24,0 24,0 c 0,0 0,-10.6000061035 0,-10.6000061035 Z"
+ android:valueType="pathType"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ <objectAnimator
+ android:duration="1000"
+ android:propertyName="pathData"
+ android:valueFrom="M 24,13.3999938965 c 0,0.0 -24,0.0 -24,0.0 c 0,0.0 0,10.6000061035 0,10.6000061035 c 0,0 24,0 24,0 c 0,0 0,-10.6000061035 0,-10.6000061035 Z"
+ android:valueTo="M 24,0.00173950195312 c 0,0.0 -24,0.0 -24,0.0 c 0,0.0 0,10.6982574463 0,10.6982574463 c 0,0.0 24,0.0 24,0.0 c 0,0.0 0,-10.6982574463 0,-10.6982574463 Z"
+ android:valueType="pathType"
+ android:interpolator="@android:interpolator/fast_out_slow_in" />
+ </set>
+</set>
diff --git a/res/drawable-hdpi/ab_hairline.9.png b/res/drawable-hdpi/ab_hairline.9.png
deleted file mode 100644
index 5d951d0..0000000
--- a/res/drawable-hdpi/ab_hairline.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_clock_dial.png b/res/drawable-hdpi/appwidget_clock_dial.png
index 1077338..244730b 100644
--- a/res/drawable-hdpi/appwidget_clock_dial.png
+++ b/res/drawable-hdpi/appwidget_clock_dial.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_clock_hour.png b/res/drawable-hdpi/appwidget_clock_hour.png
index 4700e00..5cfa1a5 100644
--- a/res/drawable-hdpi/appwidget_clock_hour.png
+++ b/res/drawable-hdpi/appwidget_clock_hour.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_clock_minute.png b/res/drawable-hdpi/appwidget_clock_minute.png
index ceea8e9..65ad547 100644
--- a/res/drawable-hdpi/appwidget_clock_minute.png
+++ b/res/drawable-hdpi/appwidget_clock_minute.png
Binary files differ
diff --git a/res/drawable-hdpi/bg_day_selected.png b/res/drawable-hdpi/bg_day_selected.png
index 36be672..06c329d 100644
--- a/res/drawable-hdpi/bg_day_selected.png
+++ b/res/drawable-hdpi/bg_day_selected.png
Binary files differ
diff --git a/res/drawable-hdpi/bg_gray_circle.png b/res/drawable-hdpi/bg_gray_circle.png
new file mode 100644
index 0000000..a232341
--- /dev/null
+++ b/res/drawable-hdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_left_normal.9.png b/res/drawable-hdpi/btn_strip_trans_left_normal.9.png
deleted file mode 100644
index 31b3970..0000000
--- a/res/drawable-hdpi/btn_strip_trans_left_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png b/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png
deleted file mode 100644
index 3b13559..0000000
--- a/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_left_selected.9.png b/res/drawable-hdpi/btn_strip_trans_left_selected.9.png
deleted file mode 100644
index 0607d23..0000000
--- a/res/drawable-hdpi/btn_strip_trans_left_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png b/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png
deleted file mode 100644
index d9f4f84..0000000
--- a/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png b/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png
deleted file mode 100644
index 3cc35e7..0000000
--- a/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png b/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png
deleted file mode 100644
index 736e9b2..0000000
--- a/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_right_normal.9.png b/res/drawable-hdpi/btn_strip_trans_right_normal.9.png
deleted file mode 100644
index 3e83fd4..0000000
--- a/res/drawable-hdpi/btn_strip_trans_right_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png b/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png
deleted file mode 100644
index 1076681..0000000
--- a/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_strip_trans_right_selected.9.png b/res/drawable-hdpi/btn_strip_trans_right_selected.9.png
deleted file mode 100644
index b0cf219..0000000
--- a/res/drawable-hdpi/btn_strip_trans_right_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/clock_analog_dial.png b/res/drawable-hdpi/clock_analog_dial.png
index a6ae51d..98abe16 100644
--- a/res/drawable-hdpi/clock_analog_dial.png
+++ b/res/drawable-hdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-hdpi/clock_analog_hour.png b/res/drawable-hdpi/clock_analog_hour.png
index 9a79117..8cce270 100644
--- a/res/drawable-hdpi/clock_analog_hour.png
+++ b/res/drawable-hdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-hdpi/clock_analog_minute.png b/res/drawable-hdpi/clock_analog_minute.png
index 0a9f2a7..6c64954 100644
--- a/res/drawable-hdpi/clock_analog_minute.png
+++ b/res/drawable-hdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-hdpi/clock_analog_second.png b/res/drawable-hdpi/clock_analog_second.png
index e0ba967..869b02e 100644
--- a/res/drawable-hdpi/clock_analog_second.png
+++ b/res/drawable-hdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-hdpi/fastscroll_thumb_default_holo.png b/res/drawable-hdpi/fastscroll_thumb_default_holo.png
index 2fabfb0..5b6e8f7 100644
--- a/res/drawable-hdpi/fastscroll_thumb_default_holo.png
+++ b/res/drawable-hdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png b/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
index 3bd782b..e9e14b9 100644
--- a/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
+++ b/res/drawable-hdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_timer.png b/res/drawable-hdpi/ic_add_timer.png
new file mode 100644
index 0000000..df8f7c4
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_timer.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_alarm_off_hover.png b/res/drawable-hdpi/ic_alarm_off_hover.png
deleted file mode 100644
index dc5d3e8..0000000
--- a/res/drawable-hdpi/ic_alarm_off_hover.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_alarm_small.png b/res/drawable-hdpi/ic_alarm_small.png
index 3819029..073c4a8 100644
--- a/res/drawable-hdpi/ic_alarm_small.png
+++ b/res/drawable-hdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_backspace_disabled.png b/res/drawable-hdpi/ic_backspace_disabled.png
index 214ffd2..0d0dd3a 100644
--- a/res/drawable-hdpi/ic_backspace_disabled.png
+++ b/res/drawable-hdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_backspace_normal.png b/res/drawable-hdpi/ic_backspace_normal.png
index 1c850f5..4b8f699 100644
--- a/res/drawable-hdpi/ic_backspace_normal.png
+++ b/res/drawable-hdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_cancel.png b/res/drawable-hdpi/ic_cancel.png
new file mode 100644
index 0000000..c5bd67d
--- /dev/null
+++ b/res/drawable-hdpi/ic_cancel.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_delete.png b/res/drawable-hdpi/ic_delete.png
index 9fb43b0..c732285 100644
--- a/res/drawable-hdpi/ic_delete.png
+++ b/res/drawable-hdpi/ic_delete.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_delete_small.png b/res/drawable-hdpi/ic_delete_small.png
new file mode 100644
index 0000000..8ea5d2a
--- /dev/null
+++ b/res/drawable-hdpi/ic_delete_small.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_expand_down.png b/res/drawable-hdpi/ic_expand_down.png
index be065bf..6dc2853 100644
--- a/res/drawable-hdpi/ic_expand_down.png
+++ b/res/drawable-hdpi/ic_expand_down.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fab_alarm.png b/res/drawable-hdpi/ic_fab_alarm.png
index 1a96e28..057c52c 100644
--- a/res/drawable-hdpi/ic_fab_alarm.png
+++ b/res/drawable-hdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fab_pause.png b/res/drawable-hdpi/ic_fab_pause.png
index 8e9d275..b5f76c3 100644
--- a/res/drawable-hdpi/ic_fab_pause.png
+++ b/res/drawable-hdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fab_play.png b/res/drawable-hdpi/ic_fab_play.png
index 061b8f8..d8e6fc3 100644
--- a/res/drawable-hdpi/ic_fab_play.png
+++ b/res/drawable-hdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fab_plus.png b/res/drawable-hdpi/ic_fab_plus.png
index 751dd86..7533292 100644
--- a/res/drawable-hdpi/ic_fab_plus.png
+++ b/res/drawable-hdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fab_stop.png b/res/drawable-hdpi/ic_fab_stop.png
new file mode 100644
index 0000000..43b624d
--- /dev/null
+++ b/res/drawable-hdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_label_normal.png b/res/drawable-hdpi/ic_label_normal.png
index de1f762..22d50be 100644
--- a/res/drawable-hdpi/ic_label_normal.png
+++ b/res/drawable-hdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_label_pressed.png b/res/drawable-hdpi/ic_label_pressed.png
index ff32064..2e1312c 100644
--- a/res/drawable-hdpi/ic_label_pressed.png
+++ b/res/drawable-hdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_lap.png b/res/drawable-hdpi/ic_lap.png
index 0fcfc2c..4285944 100644
--- a/res/drawable-hdpi/ic_lap.png
+++ b/res/drawable-hdpi/ic_lap.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add.png b/res/drawable-hdpi/ic_menu_add.png
index 9950b9c..f9cce00 100644
--- a/res/drawable-hdpi/ic_menu_add.png
+++ b/res/drawable-hdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_revert_holo_dark.png b/res/drawable-hdpi/ic_menu_revert_holo_dark.png
index 6165a98..c067a4d 100644
--- a/res/drawable-hdpi/ic_menu_revert_holo_dark.png
+++ b/res/drawable-hdpi/ic_menu_revert_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_noalarms.png b/res/drawable-hdpi/ic_noalarms.png
index 5ee7a42..0ab1c70 100644
--- a/res/drawable-hdpi/ic_noalarms.png
+++ b/res/drawable-hdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_notify_lap.png b/res/drawable-hdpi/ic_notify_lap.png
index 0ccf5e8..2840718 100644
--- a/res/drawable-hdpi/ic_notify_lap.png
+++ b/res/drawable-hdpi/ic_notify_lap.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_notify_reset.png b/res/drawable-hdpi/ic_notify_reset.png
index 2dfe702..e58333a 100644
--- a/res/drawable-hdpi/ic_notify_reset.png
+++ b/res/drawable-hdpi/ic_notify_reset.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_notify_start.png b/res/drawable-hdpi/ic_notify_start.png
index 6d8f2b6..18bd9e9 100644
--- a/res/drawable-hdpi/ic_notify_start.png
+++ b/res/drawable-hdpi/ic_notify_start.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_notify_stop.png b/res/drawable-hdpi/ic_notify_stop.png
index f9fb148..8885f27 100644
--- a/res/drawable-hdpi/ic_notify_stop.png
+++ b/res/drawable-hdpi/ic_notify_stop.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_plusone.png b/res/drawable-hdpi/ic_plusone.png
new file mode 100644
index 0000000..d385368
--- /dev/null
+++ b/res/drawable-hdpi/ic_plusone.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_plusone_disabled.png b/res/drawable-hdpi/ic_plusone_disabled.png
deleted file mode 100644
index 73af697..0000000
--- a/res/drawable-hdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_plusone_normal.png b/res/drawable-hdpi/ic_plusone_normal.png
deleted file mode 100644
index ef96b3b..0000000
--- a/res/drawable-hdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_plusone_pressed.png b/res/drawable-hdpi/ic_plusone_pressed.png
deleted file mode 100644
index 11314b9..0000000
--- a/res/drawable-hdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_reset.png b/res/drawable-hdpi/ic_reset.png
index f66d61e..fd61018 100644
--- a/res/drawable-hdpi/ic_reset.png
+++ b/res/drawable-hdpi/ic_reset.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_ringtone.png b/res/drawable-hdpi/ic_ringtone.png
index e596051..e64694c 100644
--- a/res/drawable-hdpi/ic_ringtone.png
+++ b/res/drawable-hdpi/ic_ringtone.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_share.png b/res/drawable-hdpi/ic_share.png
index 27ad695..e346b5c 100644
--- a/res/drawable-hdpi/ic_share.png
+++ b/res/drawable-hdpi/ic_share.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_stop_normal.png b/res/drawable-hdpi/ic_stop_normal.png
deleted file mode 100644
index a71dd0c..0000000
--- a/res/drawable-hdpi/ic_stop_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_swipe_circle_bottom.png b/res/drawable-hdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..9feacdf
--- /dev/null
+++ b/res/drawable-hdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_swipe_circle_dark.png b/res/drawable-hdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..4a74bb6
--- /dev/null
+++ b/res/drawable-hdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_swipe_circle_light.png b/res/drawable-hdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..44add09
--- /dev/null
+++ b/res/drawable-hdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_swipe_circle_top.png b/res/drawable-hdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..12a3323
--- /dev/null
+++ b/res/drawable-hdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-hdpi/notification_bg_normal.9.png b/res/drawable-hdpi/notification_bg_normal.9.png
deleted file mode 100644
index 6ebed8b..0000000
--- a/res/drawable-hdpi/notification_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/notification_bg_normal_pressed.9.png b/res/drawable-hdpi/notification_bg_normal_pressed.9.png
deleted file mode 100644
index 6193822..0000000
--- a/res/drawable-hdpi/notification_bg_normal_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/stat_notify_alarm.png b/res/drawable-hdpi/stat_notify_alarm.png
index bdcf235..fb60e5c 100644
--- a/res/drawable-hdpi/stat_notify_alarm.png
+++ b/res/drawable-hdpi/stat_notify_alarm.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_notify_stopwatch.png b/res/drawable-hdpi/stat_notify_stopwatch.png
index 69cc608..7d931d3 100644
--- a/res/drawable-hdpi/stat_notify_stopwatch.png
+++ b/res/drawable-hdpi/stat_notify_stopwatch.png
Binary files differ
diff --git a/res/drawable-hdpi/stat_notify_timer.png b/res/drawable-hdpi/stat_notify_timer.png
index ed39528..a42884a 100644
--- a/res/drawable-hdpi/stat_notify_timer.png
+++ b/res/drawable-hdpi/stat_notify_timer.png
Binary files differ
diff --git a/res/drawable-land-hdpi/clock_analog_dial.png b/res/drawable-land-hdpi/clock_analog_dial.png
new file mode 100644
index 0000000..4a2dd37
--- /dev/null
+++ b/res/drawable-land-hdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-land-hdpi/clock_analog_hour.png b/res/drawable-land-hdpi/clock_analog_hour.png
new file mode 100644
index 0000000..fcdfcdc
--- /dev/null
+++ b/res/drawable-land-hdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-land-hdpi/clock_analog_minute.png b/res/drawable-land-hdpi/clock_analog_minute.png
new file mode 100644
index 0000000..991412a
--- /dev/null
+++ b/res/drawable-land-hdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-land-hdpi/clock_analog_second.png b/res/drawable-land-hdpi/clock_analog_second.png
new file mode 100644
index 0000000..0100f6a
--- /dev/null
+++ b/res/drawable-land-hdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-land-mdpi/clock_analog_dial.png b/res/drawable-land-mdpi/clock_analog_dial.png
new file mode 100644
index 0000000..9525cc4
--- /dev/null
+++ b/res/drawable-land-mdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-land-mdpi/clock_analog_hour.png b/res/drawable-land-mdpi/clock_analog_hour.png
new file mode 100644
index 0000000..6d71c52
--- /dev/null
+++ b/res/drawable-land-mdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-land-mdpi/clock_analog_minute.png b/res/drawable-land-mdpi/clock_analog_minute.png
new file mode 100644
index 0000000..817e8c3
--- /dev/null
+++ b/res/drawable-land-mdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-land-mdpi/clock_analog_second.png b/res/drawable-land-mdpi/clock_analog_second.png
new file mode 100644
index 0000000..bff2f05
--- /dev/null
+++ b/res/drawable-land-mdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/clock_analog_dial.png b/res/drawable-land-xhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..9bb3041
--- /dev/null
+++ b/res/drawable-land-xhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/clock_analog_hour.png b/res/drawable-land-xhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..f0573a8
--- /dev/null
+++ b/res/drawable-land-xhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/clock_analog_minute.png b/res/drawable-land-xhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..e64597c
--- /dev/null
+++ b/res/drawable-land-xhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-land-xhdpi/clock_analog_second.png b/res/drawable-land-xhdpi/clock_analog_second.png
new file mode 100644
index 0000000..0dee1ed
--- /dev/null
+++ b/res/drawable-land-xhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-land-xxhdpi/clock_analog_dial.png b/res/drawable-land-xxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..543e72f
--- /dev/null
+++ b/res/drawable-land-xxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-land-xxhdpi/clock_analog_hour.png b/res/drawable-land-xxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..a07be13
--- /dev/null
+++ b/res/drawable-land-xxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-land-xxhdpi/clock_analog_minute.png b/res/drawable-land-xxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..fe55585
--- /dev/null
+++ b/res/drawable-land-xxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-land-xxhdpi/clock_analog_second.png b/res/drawable-land-xxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..587899e
--- /dev/null
+++ b/res/drawable-land-xxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-land-xxxhdpi/clock_analog_dial.png b/res/drawable-land-xxxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..0676df8
--- /dev/null
+++ b/res/drawable-land-xxxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-land-xxxhdpi/clock_analog_hour.png b/res/drawable-land-xxxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..4b61723
--- /dev/null
+++ b/res/drawable-land-xxxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-land-xxxhdpi/clock_analog_minute.png b/res/drawable-land-xxxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..aa40b4b
--- /dev/null
+++ b/res/drawable-land-xxxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-land-xxxhdpi/clock_analog_second.png b/res/drawable-land-xxxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..0a525ae
--- /dev/null
+++ b/res/drawable-land-xxxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-mdpi/ab_hairline.9.png b/res/drawable-mdpi/ab_hairline.9.png
deleted file mode 100644
index 7344a7c..0000000
--- a/res/drawable-mdpi/ab_hairline.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/appwidget_clock_dial.png b/res/drawable-mdpi/appwidget_clock_dial.png
index 7d7f272..a00d36c 100644
--- a/res/drawable-mdpi/appwidget_clock_dial.png
+++ b/res/drawable-mdpi/appwidget_clock_dial.png
Binary files differ
diff --git a/res/drawable-mdpi/appwidget_clock_hour.png b/res/drawable-mdpi/appwidget_clock_hour.png
index c296860..cd64fae 100644
--- a/res/drawable-mdpi/appwidget_clock_hour.png
+++ b/res/drawable-mdpi/appwidget_clock_hour.png
Binary files differ
diff --git a/res/drawable-mdpi/appwidget_clock_minute.png b/res/drawable-mdpi/appwidget_clock_minute.png
index f0f109e..864c81e 100644
--- a/res/drawable-mdpi/appwidget_clock_minute.png
+++ b/res/drawable-mdpi/appwidget_clock_minute.png
Binary files differ
diff --git a/res/drawable-mdpi/bg_day_selected.png b/res/drawable-mdpi/bg_day_selected.png
index 3f7ebdd..3d0682f 100644
--- a/res/drawable-mdpi/bg_day_selected.png
+++ b/res/drawable-mdpi/bg_day_selected.png
Binary files differ
diff --git a/res/drawable-mdpi/bg_gray_circle.png b/res/drawable-mdpi/bg_gray_circle.png
new file mode 100644
index 0000000..a8db63f
--- /dev/null
+++ b/res/drawable-mdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_left_normal.9.png b/res/drawable-mdpi/btn_strip_trans_left_normal.9.png
deleted file mode 100644
index 2d7db2b..0000000
--- a/res/drawable-mdpi/btn_strip_trans_left_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png b/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png
deleted file mode 100644
index ceddd76..0000000
--- a/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_left_selected.9.png b/res/drawable-mdpi/btn_strip_trans_left_selected.9.png
deleted file mode 100644
index bc40887..0000000
--- a/res/drawable-mdpi/btn_strip_trans_left_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png b/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png
deleted file mode 100644
index 77ee4be..0000000
--- a/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png b/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png
deleted file mode 100644
index 19b33af..0000000
--- a/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png b/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png
deleted file mode 100644
index 33ca95c..0000000
--- a/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_right_normal.9.png b/res/drawable-mdpi/btn_strip_trans_right_normal.9.png
deleted file mode 100644
index 2de79b5..0000000
--- a/res/drawable-mdpi/btn_strip_trans_right_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png b/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png
deleted file mode 100644
index 41d2650..0000000
--- a/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_strip_trans_right_selected.9.png b/res/drawable-mdpi/btn_strip_trans_right_selected.9.png
deleted file mode 100644
index a65e65f..0000000
--- a/res/drawable-mdpi/btn_strip_trans_right_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/clock_analog_dial.png b/res/drawable-mdpi/clock_analog_dial.png
index b594226..0d11937 100644
--- a/res/drawable-mdpi/clock_analog_dial.png
+++ b/res/drawable-mdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-mdpi/clock_analog_hour.png b/res/drawable-mdpi/clock_analog_hour.png
index a443bf7..82eba3b 100644
--- a/res/drawable-mdpi/clock_analog_hour.png
+++ b/res/drawable-mdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-mdpi/clock_analog_minute.png b/res/drawable-mdpi/clock_analog_minute.png
index 487976b..8430e17 100644
--- a/res/drawable-mdpi/clock_analog_minute.png
+++ b/res/drawable-mdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-mdpi/clock_analog_second.png b/res/drawable-mdpi/clock_analog_second.png
index a5e23af..2e8e486 100644
--- a/res/drawable-mdpi/clock_analog_second.png
+++ b/res/drawable-mdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-mdpi/fastscroll_thumb_default_holo.png b/res/drawable-mdpi/fastscroll_thumb_default_holo.png
index 152b563..e897b5b 100644
--- a/res/drawable-mdpi/fastscroll_thumb_default_holo.png
+++ b/res/drawable-mdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png b/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
index b94cb32..c211086 100644
--- a/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
+++ b/res/drawable-mdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_timer.png b/res/drawable-mdpi/ic_add_timer.png
new file mode 100644
index 0000000..6a64dde
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_timer.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_alarm_off_hover.png b/res/drawable-mdpi/ic_alarm_off_hover.png
deleted file mode 100644
index 54fb5e0..0000000
--- a/res/drawable-mdpi/ic_alarm_off_hover.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_alarm_small.png b/res/drawable-mdpi/ic_alarm_small.png
index 2aeedaf..dc97b9c 100644
--- a/res/drawable-mdpi/ic_alarm_small.png
+++ b/res/drawable-mdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_backspace_disabled.png b/res/drawable-mdpi/ic_backspace_disabled.png
index a89e2b4..dcf9b98 100644
--- a/res/drawable-mdpi/ic_backspace_disabled.png
+++ b/res/drawable-mdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_backspace_normal.png b/res/drawable-mdpi/ic_backspace_normal.png
index 5748e1b..d934d8c 100644
--- a/res/drawable-mdpi/ic_backspace_normal.png
+++ b/res/drawable-mdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_cancel.png b/res/drawable-mdpi/ic_cancel.png
new file mode 100644
index 0000000..24e3fc8
--- /dev/null
+++ b/res/drawable-mdpi/ic_cancel.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_delete.png b/res/drawable-mdpi/ic_delete.png
index c903fd1..3ffa314 100644
--- a/res/drawable-mdpi/ic_delete.png
+++ b/res/drawable-mdpi/ic_delete.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_delete_small.png b/res/drawable-mdpi/ic_delete_small.png
new file mode 100644
index 0000000..cf82abd
--- /dev/null
+++ b/res/drawable-mdpi/ic_delete_small.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_expand_down.png b/res/drawable-mdpi/ic_expand_down.png
index d7d45c5..48f5ff5 100644
--- a/res/drawable-mdpi/ic_expand_down.png
+++ b/res/drawable-mdpi/ic_expand_down.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fab_alarm.png b/res/drawable-mdpi/ic_fab_alarm.png
index 3bdf533..22e3369 100644
--- a/res/drawable-mdpi/ic_fab_alarm.png
+++ b/res/drawable-mdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fab_pause.png b/res/drawable-mdpi/ic_fab_pause.png
index 484240e..ff7c74b 100644
--- a/res/drawable-mdpi/ic_fab_pause.png
+++ b/res/drawable-mdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fab_play.png b/res/drawable-mdpi/ic_fab_play.png
index 738b49b..9ad2bb2 100644
--- a/res/drawable-mdpi/ic_fab_play.png
+++ b/res/drawable-mdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fab_plus.png b/res/drawable-mdpi/ic_fab_plus.png
index b7c194d..869d89f 100644
--- a/res/drawable-mdpi/ic_fab_plus.png
+++ b/res/drawable-mdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fab_stop.png b/res/drawable-mdpi/ic_fab_stop.png
new file mode 100644
index 0000000..c6bbb06
--- /dev/null
+++ b/res/drawable-mdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_label_normal.png b/res/drawable-mdpi/ic_label_normal.png
index fd1e97a..623ae19 100644
--- a/res/drawable-mdpi/ic_label_normal.png
+++ b/res/drawable-mdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_label_pressed.png b/res/drawable-mdpi/ic_label_pressed.png
index dad7db6..00f9f82 100644
--- a/res/drawable-mdpi/ic_label_pressed.png
+++ b/res/drawable-mdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_lap.png b/res/drawable-mdpi/ic_lap.png
index a7ff563..11b6012 100644
--- a/res/drawable-mdpi/ic_lap.png
+++ b/res/drawable-mdpi/ic_lap.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add.png b/res/drawable-mdpi/ic_menu_add.png
index 70efb13..c90b6de 100644
--- a/res/drawable-mdpi/ic_menu_add.png
+++ b/res/drawable-mdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_revert_holo_dark.png b/res/drawable-mdpi/ic_menu_revert_holo_dark.png
index 97ee13d..11250f9 100644
--- a/res/drawable-mdpi/ic_menu_revert_holo_dark.png
+++ b/res/drawable-mdpi/ic_menu_revert_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_noalarms.png b/res/drawable-mdpi/ic_noalarms.png
index bfd98d3..80d30c2 100644
--- a/res/drawable-mdpi/ic_noalarms.png
+++ b/res/drawable-mdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_notify_lap.png b/res/drawable-mdpi/ic_notify_lap.png
index 98696c3..063e177 100644
--- a/res/drawable-mdpi/ic_notify_lap.png
+++ b/res/drawable-mdpi/ic_notify_lap.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_notify_reset.png b/res/drawable-mdpi/ic_notify_reset.png
index 9e3f2c6..5e033ce 100644
--- a/res/drawable-mdpi/ic_notify_reset.png
+++ b/res/drawable-mdpi/ic_notify_reset.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_notify_start.png b/res/drawable-mdpi/ic_notify_start.png
index e3168c7..174b274 100644
--- a/res/drawable-mdpi/ic_notify_start.png
+++ b/res/drawable-mdpi/ic_notify_start.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_notify_stop.png b/res/drawable-mdpi/ic_notify_stop.png
index f9d2a82..ab8fe85 100644
--- a/res/drawable-mdpi/ic_notify_stop.png
+++ b/res/drawable-mdpi/ic_notify_stop.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_plusone.png b/res/drawable-mdpi/ic_plusone.png
new file mode 100644
index 0000000..917cd76
--- /dev/null
+++ b/res/drawable-mdpi/ic_plusone.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_plusone_disabled.png b/res/drawable-mdpi/ic_plusone_disabled.png
deleted file mode 100644
index 52dd356..0000000
--- a/res/drawable-mdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_plusone_normal.png b/res/drawable-mdpi/ic_plusone_normal.png
deleted file mode 100644
index 99e16d6..0000000
--- a/res/drawable-mdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_plusone_pressed.png b/res/drawable-mdpi/ic_plusone_pressed.png
deleted file mode 100644
index 54a3929..0000000
--- a/res/drawable-mdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_reset.png b/res/drawable-mdpi/ic_reset.png
index 2777ae6..d44237f 100644
--- a/res/drawable-mdpi/ic_reset.png
+++ b/res/drawable-mdpi/ic_reset.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_ringtone.png b/res/drawable-mdpi/ic_ringtone.png
index 3075843..7d2a4f5 100644
--- a/res/drawable-mdpi/ic_ringtone.png
+++ b/res/drawable-mdpi/ic_ringtone.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_share.png b/res/drawable-mdpi/ic_share.png
index 9902dc0..4aa7e1c 100644
--- a/res/drawable-mdpi/ic_share.png
+++ b/res/drawable-mdpi/ic_share.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_stop_normal.png b/res/drawable-mdpi/ic_stop_normal.png
deleted file mode 100644
index e82e0e1..0000000
--- a/res/drawable-mdpi/ic_stop_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_swipe_circle_bottom.png b/res/drawable-mdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..478e765
--- /dev/null
+++ b/res/drawable-mdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_swipe_circle_dark.png b/res/drawable-mdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..c48521e
--- /dev/null
+++ b/res/drawable-mdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_swipe_circle_light.png b/res/drawable-mdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..26319b6
--- /dev/null
+++ b/res/drawable-mdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_swipe_circle_top.png b/res/drawable-mdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..af4f934
--- /dev/null
+++ b/res/drawable-mdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-mdpi/notification_bg_normal.9.png b/res/drawable-mdpi/notification_bg_normal.9.png
deleted file mode 100644
index aa239b3..0000000
--- a/res/drawable-mdpi/notification_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/notification_bg_normal_pressed.9.png b/res/drawable-mdpi/notification_bg_normal_pressed.9.png
deleted file mode 100644
index 62d8622..0000000
--- a/res/drawable-mdpi/notification_bg_normal_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/stat_notify_alarm.png b/res/drawable-mdpi/stat_notify_alarm.png
index 69202f7..a57ca16 100644
--- a/res/drawable-mdpi/stat_notify_alarm.png
+++ b/res/drawable-mdpi/stat_notify_alarm.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_notify_stopwatch.png b/res/drawable-mdpi/stat_notify_stopwatch.png
index fad3513..1d1a8a3 100644
--- a/res/drawable-mdpi/stat_notify_stopwatch.png
+++ b/res/drawable-mdpi/stat_notify_stopwatch.png
Binary files differ
diff --git a/res/drawable-mdpi/stat_notify_timer.png b/res/drawable-mdpi/stat_notify_timer.png
index e75a12d..d7d64cb 100644
--- a/res/drawable-mdpi/stat_notify_timer.png
+++ b/res/drawable-mdpi/stat_notify_timer.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/bg_gray_circle.png b/res/drawable-sw600dp-hdpi/bg_gray_circle.png
new file mode 100644
index 0000000..7a67540
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/clock_analog_dial.png b/res/drawable-sw600dp-hdpi/clock_analog_dial.png
index 82da103..98abe16 100644
--- a/res/drawable-sw600dp-hdpi/clock_analog_dial.png
+++ b/res/drawable-sw600dp-hdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/clock_analog_hour.png b/res/drawable-sw600dp-hdpi/clock_analog_hour.png
index 3333689..8cce270 100644
--- a/res/drawable-sw600dp-hdpi/clock_analog_hour.png
+++ b/res/drawable-sw600dp-hdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/clock_analog_minute.png b/res/drawable-sw600dp-hdpi/clock_analog_minute.png
index 97e467a..6c64954 100644
--- a/res/drawable-sw600dp-hdpi/clock_analog_minute.png
+++ b/res/drawable-sw600dp-hdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/clock_analog_second.png b/res/drawable-sw600dp-hdpi/clock_analog_second.png
index 38a7f5e..869b02e 100644
--- a/res/drawable-sw600dp-hdpi/clock_analog_second.png
+++ b/res/drawable-sw600dp-hdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_alarm_small.png b/res/drawable-sw600dp-hdpi/ic_alarm_small.png
index e28b3f6..a944fa3 100644
--- a/res/drawable-sw600dp-hdpi/ic_alarm_small.png
+++ b/res/drawable-sw600dp-hdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_backspace_disabled.png b/res/drawable-sw600dp-hdpi/ic_backspace_disabled.png
index ea41ca8..7ecaecc 100644
--- a/res/drawable-sw600dp-hdpi/ic_backspace_disabled.png
+++ b/res/drawable-sw600dp-hdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_backspace_normal.png b/res/drawable-sw600dp-hdpi/ic_backspace_normal.png
index 081a0c8..825a229 100644
--- a/res/drawable-sw600dp-hdpi/ic_backspace_normal.png
+++ b/res/drawable-sw600dp-hdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_delete.png b/res/drawable-sw600dp-hdpi/ic_delete.png
deleted file mode 100644
index 9fb43b0..0000000
--- a/res/drawable-sw600dp-hdpi/ic_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_fab_alarm.png b/res/drawable-sw600dp-hdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..b368a48
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_fab_pause.png b/res/drawable-sw600dp-hdpi/ic_fab_pause.png
index 15947e5..bd3cfcf 100644
--- a/res/drawable-sw600dp-hdpi/ic_fab_pause.png
+++ b/res/drawable-sw600dp-hdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_fab_play.png b/res/drawable-sw600dp-hdpi/ic_fab_play.png
index 0b842db..3f16e23 100644
--- a/res/drawable-sw600dp-hdpi/ic_fab_play.png
+++ b/res/drawable-sw600dp-hdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_fab_plus.png b/res/drawable-sw600dp-hdpi/ic_fab_plus.png
index 146bf47..95ab0a7 100644
--- a/res/drawable-sw600dp-hdpi/ic_fab_plus.png
+++ b/res/drawable-sw600dp-hdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_fab_stop.png b/res/drawable-sw600dp-hdpi/ic_fab_stop.png
new file mode 100644
index 0000000..58e6a8d
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_label_normal.png b/res/drawable-sw600dp-hdpi/ic_label_normal.png
new file mode 100644
index 0000000..2e5318d
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_label_pressed.png b/res/drawable-sw600dp-hdpi/ic_label_pressed.png
new file mode 100644
index 0000000..23c623c
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_noalarms.png b/res/drawable-sw600dp-hdpi/ic_noalarms.png
index 2139a65..dfc9dcf 100644
--- a/res/drawable-sw600dp-hdpi/ic_noalarms.png
+++ b/res/drawable-sw600dp-hdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_plusone_disabled.png b/res/drawable-sw600dp-hdpi/ic_plusone_disabled.png
deleted file mode 100644
index 25e75e8..0000000
--- a/res/drawable-sw600dp-hdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_plusone_normal.png b/res/drawable-sw600dp-hdpi/ic_plusone_normal.png
deleted file mode 100644
index 3a1b653..0000000
--- a/res/drawable-sw600dp-hdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_plusone_pressed.png b/res/drawable-sw600dp-hdpi/ic_plusone_pressed.png
deleted file mode 100644
index c88c63e..0000000
--- a/res/drawable-sw600dp-hdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_reset.png b/res/drawable-sw600dp-hdpi/ic_reset.png
deleted file mode 100644
index f66d61e..0000000
--- a/res/drawable-sw600dp-hdpi/ic_reset.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_share.png b/res/drawable-sw600dp-hdpi/ic_share.png
deleted file mode 100644
index 27ad695..0000000
--- a/res/drawable-sw600dp-hdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_swipe_circle_bottom.png b/res/drawable-sw600dp-hdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..9fa2d79
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_swipe_circle_dark.png b/res/drawable-sw600dp-hdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..6a2cba6
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_swipe_circle_light.png b/res/drawable-sw600dp-hdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..deb37c4
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-sw600dp-hdpi/ic_swipe_circle_top.png b/res/drawable-sw600dp-hdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..c61ceaf
--- /dev/null
+++ b/res/drawable-sw600dp-hdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/bg_gray_circle.png b/res/drawable-sw600dp-mdpi/bg_gray_circle.png
new file mode 100644
index 0000000..8caf124
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/clock_analog_dial.png b/res/drawable-sw600dp-mdpi/clock_analog_dial.png
index c5945b8..0d11937 100644
--- a/res/drawable-sw600dp-mdpi/clock_analog_dial.png
+++ b/res/drawable-sw600dp-mdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/clock_analog_hour.png b/res/drawable-sw600dp-mdpi/clock_analog_hour.png
index f237e60..82eba3b 100644
--- a/res/drawable-sw600dp-mdpi/clock_analog_hour.png
+++ b/res/drawable-sw600dp-mdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/clock_analog_minute.png b/res/drawable-sw600dp-mdpi/clock_analog_minute.png
index 288a56a..8430e17 100644
--- a/res/drawable-sw600dp-mdpi/clock_analog_minute.png
+++ b/res/drawable-sw600dp-mdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/clock_analog_second.png b/res/drawable-sw600dp-mdpi/clock_analog_second.png
index 13a9700..2e8e486 100644
--- a/res/drawable-sw600dp-mdpi/clock_analog_second.png
+++ b/res/drawable-sw600dp-mdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_alarm_small.png b/res/drawable-sw600dp-mdpi/ic_alarm_small.png
index f727d01..41a8ef7 100644
--- a/res/drawable-sw600dp-mdpi/ic_alarm_small.png
+++ b/res/drawable-sw600dp-mdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_backspace_disabled.png b/res/drawable-sw600dp-mdpi/ic_backspace_disabled.png
index ef7a365..f8d2cb2 100644
--- a/res/drawable-sw600dp-mdpi/ic_backspace_disabled.png
+++ b/res/drawable-sw600dp-mdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_backspace_normal.png b/res/drawable-sw600dp-mdpi/ic_backspace_normal.png
index 9125f77..73ba394 100644
--- a/res/drawable-sw600dp-mdpi/ic_backspace_normal.png
+++ b/res/drawable-sw600dp-mdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_delete.png b/res/drawable-sw600dp-mdpi/ic_delete.png
deleted file mode 100644
index c903fd1..0000000
--- a/res/drawable-sw600dp-mdpi/ic_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_fab_alarm.png b/res/drawable-sw600dp-mdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..6b5dd76
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_fab_pause.png b/res/drawable-sw600dp-mdpi/ic_fab_pause.png
index 8ba9c21..aead9b2 100644
--- a/res/drawable-sw600dp-mdpi/ic_fab_pause.png
+++ b/res/drawable-sw600dp-mdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_fab_play.png b/res/drawable-sw600dp-mdpi/ic_fab_play.png
index 5fced7e..8cbbae0 100644
--- a/res/drawable-sw600dp-mdpi/ic_fab_play.png
+++ b/res/drawable-sw600dp-mdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_fab_plus.png b/res/drawable-sw600dp-mdpi/ic_fab_plus.png
index 4d709f8..115f399 100644
--- a/res/drawable-sw600dp-mdpi/ic_fab_plus.png
+++ b/res/drawable-sw600dp-mdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_fab_stop.png b/res/drawable-sw600dp-mdpi/ic_fab_stop.png
new file mode 100644
index 0000000..f0962f7
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_label_normal.png b/res/drawable-sw600dp-mdpi/ic_label_normal.png
new file mode 100644
index 0000000..d667352
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_label_pressed.png b/res/drawable-sw600dp-mdpi/ic_label_pressed.png
new file mode 100644
index 0000000..3a7a94b
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_noalarms.png b/res/drawable-sw600dp-mdpi/ic_noalarms.png
index 03c6af1..40b747a 100644
--- a/res/drawable-sw600dp-mdpi/ic_noalarms.png
+++ b/res/drawable-sw600dp-mdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_plusone_disabled.png b/res/drawable-sw600dp-mdpi/ic_plusone_disabled.png
deleted file mode 100644
index 134e4c8..0000000
--- a/res/drawable-sw600dp-mdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_plusone_normal.png b/res/drawable-sw600dp-mdpi/ic_plusone_normal.png
deleted file mode 100644
index 83d4547..0000000
--- a/res/drawable-sw600dp-mdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_plusone_pressed.png b/res/drawable-sw600dp-mdpi/ic_plusone_pressed.png
deleted file mode 100644
index d5a349d..0000000
--- a/res/drawable-sw600dp-mdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_reset.png b/res/drawable-sw600dp-mdpi/ic_reset.png
deleted file mode 100644
index 2777ae6..0000000
--- a/res/drawable-sw600dp-mdpi/ic_reset.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_share.png b/res/drawable-sw600dp-mdpi/ic_share.png
deleted file mode 100644
index 9902dc0..0000000
--- a/res/drawable-sw600dp-mdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_swipe_circle_bottom.png b/res/drawable-sw600dp-mdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..04e7162
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_swipe_circle_dark.png b/res/drawable-sw600dp-mdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..ffe7378
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_swipe_circle_light.png b/res/drawable-sw600dp-mdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..e987389
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-sw600dp-mdpi/ic_swipe_circle_top.png b/res/drawable-sw600dp-mdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..a006ed0
--- /dev/null
+++ b/res/drawable-sw600dp-mdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/bg_gray_circle.png b/res/drawable-sw600dp-xhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..6fd50eb
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/clock_analog_dial.png b/res/drawable-sw600dp-xhdpi/clock_analog_dial.png
index 7551ae0..67b6941 100644
--- a/res/drawable-sw600dp-xhdpi/clock_analog_dial.png
+++ b/res/drawable-sw600dp-xhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/clock_analog_hour.png b/res/drawable-sw600dp-xhdpi/clock_analog_hour.png
index 172de0a..70f194b 100644
--- a/res/drawable-sw600dp-xhdpi/clock_analog_hour.png
+++ b/res/drawable-sw600dp-xhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/clock_analog_minute.png b/res/drawable-sw600dp-xhdpi/clock_analog_minute.png
index 48e0499..5d73559 100644
--- a/res/drawable-sw600dp-xhdpi/clock_analog_minute.png
+++ b/res/drawable-sw600dp-xhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/clock_analog_second.png b/res/drawable-sw600dp-xhdpi/clock_analog_second.png
index 8a6d7bd..213ed46 100644
--- a/res/drawable-sw600dp-xhdpi/clock_analog_second.png
+++ b/res/drawable-sw600dp-xhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_alarm_small.png b/res/drawable-sw600dp-xhdpi/ic_alarm_small.png
index d9c0623..f3fc1c7 100644
--- a/res/drawable-sw600dp-xhdpi/ic_alarm_small.png
+++ b/res/drawable-sw600dp-xhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_backspace_disabled.png b/res/drawable-sw600dp-xhdpi/ic_backspace_disabled.png
index 76b36be..a1e42c7 100644
--- a/res/drawable-sw600dp-xhdpi/ic_backspace_disabled.png
+++ b/res/drawable-sw600dp-xhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_backspace_normal.png b/res/drawable-sw600dp-xhdpi/ic_backspace_normal.png
index 219b1b0..76f36b3 100644
--- a/res/drawable-sw600dp-xhdpi/ic_backspace_normal.png
+++ b/res/drawable-sw600dp-xhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_delete.png b/res/drawable-sw600dp-xhdpi/ic_delete.png
deleted file mode 100644
index be1ee4d..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_fab_alarm.png b/res/drawable-sw600dp-xhdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..3608e35
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_fab_pause.png b/res/drawable-sw600dp-xhdpi/ic_fab_pause.png
index 63f6a83..6854cf5 100644
--- a/res/drawable-sw600dp-xhdpi/ic_fab_pause.png
+++ b/res/drawable-sw600dp-xhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_fab_play.png b/res/drawable-sw600dp-xhdpi/ic_fab_play.png
index 895fa47..6ac7f13 100644
--- a/res/drawable-sw600dp-xhdpi/ic_fab_play.png
+++ b/res/drawable-sw600dp-xhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_fab_plus.png b/res/drawable-sw600dp-xhdpi/ic_fab_plus.png
index 5a03f2a..7688a61 100644
--- a/res/drawable-sw600dp-xhdpi/ic_fab_plus.png
+++ b/res/drawable-sw600dp-xhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_fab_stop.png b/res/drawable-sw600dp-xhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..b158356
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_label_normal.png b/res/drawable-sw600dp-xhdpi/ic_label_normal.png
new file mode 100644
index 0000000..70e22cf
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_label_pressed.png b/res/drawable-sw600dp-xhdpi/ic_label_pressed.png
new file mode 100644
index 0000000..18cdc36
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_noalarms.png b/res/drawable-sw600dp-xhdpi/ic_noalarms.png
index a9f0a93..1b0ed2f 100644
--- a/res/drawable-sw600dp-xhdpi/ic_noalarms.png
+++ b/res/drawable-sw600dp-xhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_plusone_disabled.png b/res/drawable-sw600dp-xhdpi/ic_plusone_disabled.png
deleted file mode 100644
index 934e9e8..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_plusone_normal.png b/res/drawable-sw600dp-xhdpi/ic_plusone_normal.png
deleted file mode 100644
index 75691be..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_plusone_pressed.png b/res/drawable-sw600dp-xhdpi/ic_plusone_pressed.png
deleted file mode 100644
index 155e3b8..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_reset.png b/res/drawable-sw600dp-xhdpi/ic_reset.png
deleted file mode 100644
index 78b33f9..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_reset.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_share.png b/res/drawable-sw600dp-xhdpi/ic_share.png
deleted file mode 100644
index 15e8e0c..0000000
--- a/res/drawable-sw600dp-xhdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_swipe_circle_bottom.png b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..ce0790b
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_swipe_circle_dark.png b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..ff6719e
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_swipe_circle_light.png b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..e9226d6
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-sw600dp-xhdpi/ic_swipe_circle_top.png b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..01d5b22
--- /dev/null
+++ b/res/drawable-sw600dp-xhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/bg_gray_circle.png b/res/drawable-sw600dp-xxhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..151997b
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/clock_analog_dial.png b/res/drawable-sw600dp-xxhdpi/clock_analog_dial.png
index eeedcee..7464145 100644
--- a/res/drawable-sw600dp-xxhdpi/clock_analog_dial.png
+++ b/res/drawable-sw600dp-xxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/clock_analog_hour.png b/res/drawable-sw600dp-xxhdpi/clock_analog_hour.png
index 8332ef4..e386819 100644
--- a/res/drawable-sw600dp-xxhdpi/clock_analog_hour.png
+++ b/res/drawable-sw600dp-xxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/clock_analog_minute.png b/res/drawable-sw600dp-xxhdpi/clock_analog_minute.png
index 82e7c3b..eeabc21 100644
--- a/res/drawable-sw600dp-xxhdpi/clock_analog_minute.png
+++ b/res/drawable-sw600dp-xxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/clock_analog_second.png b/res/drawable-sw600dp-xxhdpi/clock_analog_second.png
index 7f30e5a..a6c5f2f 100644
--- a/res/drawable-sw600dp-xxhdpi/clock_analog_second.png
+++ b/res/drawable-sw600dp-xxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_alarm_small.png b/res/drawable-sw600dp-xxhdpi/ic_alarm_small.png
index a36bf1f..41f3b3b 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_alarm_small.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_backspace_disabled.png b/res/drawable-sw600dp-xxhdpi/ic_backspace_disabled.png
index e9d301b..920fe36 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_backspace_disabled.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_backspace_normal.png b/res/drawable-sw600dp-xxhdpi/ic_backspace_normal.png
index 2c3ecc4..0b52afd 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_backspace_normal.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_delete.png b/res/drawable-sw600dp-xxhdpi/ic_delete.png
deleted file mode 100644
index eb63792..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_fab_alarm.png b/res/drawable-sw600dp-xxhdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..f445a19
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_fab_pause.png b/res/drawable-sw600dp-xxhdpi/ic_fab_pause.png
index 849443e..42c0689 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_fab_pause.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_fab_play.png b/res/drawable-sw600dp-xxhdpi/ic_fab_play.png
index e13895e..f71180e 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_fab_play.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_fab_plus.png b/res/drawable-sw600dp-xxhdpi/ic_fab_plus.png
index 1c3e2b5..ef39cfc 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_fab_plus.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_fab_stop.png b/res/drawable-sw600dp-xxhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..190857b
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_label_normal.png b/res/drawable-sw600dp-xxhdpi/ic_label_normal.png
new file mode 100644
index 0000000..583fab3
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_label_pressed.png b/res/drawable-sw600dp-xxhdpi/ic_label_pressed.png
new file mode 100644
index 0000000..573032d
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_noalarms.png b/res/drawable-sw600dp-xxhdpi/ic_noalarms.png
index 2190c3a..266c8a0 100644
--- a/res/drawable-sw600dp-xxhdpi/ic_noalarms.png
+++ b/res/drawable-sw600dp-xxhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_plusone_disabled.png b/res/drawable-sw600dp-xxhdpi/ic_plusone_disabled.png
deleted file mode 100644
index b324edd..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_plusone_normal.png b/res/drawable-sw600dp-xxhdpi/ic_plusone_normal.png
deleted file mode 100644
index 48bfa13..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_plusone_pressed.png b/res/drawable-sw600dp-xxhdpi/ic_plusone_pressed.png
deleted file mode 100644
index 54362cb..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_reset.png b/res/drawable-sw600dp-xxhdpi/ic_reset.png
deleted file mode 100644
index 3896174..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_reset.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_share.png b/res/drawable-sw600dp-xxhdpi/ic_share.png
deleted file mode 100644
index 3a92d49..0000000
--- a/res/drawable-sw600dp-xxhdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_bottom.png b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..5f9b8de
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_dark.png b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..c4203e6
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_light.png b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..bc48518
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_top.png b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..e859e7d
--- /dev/null
+++ b/res/drawable-sw600dp-xxhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/bg_gray_circle.png b/res/drawable-sw600dp-xxxhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..78d7474
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/clock_analog_dial.png b/res/drawable-sw600dp-xxxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..6b6bb0a
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/clock_analog_hour.png b/res/drawable-sw600dp-xxxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..af040e2
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/clock_analog_minute.png b/res/drawable-sw600dp-xxxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..4223579
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/clock_analog_second.png b/res/drawable-sw600dp-xxxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..891c55e
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_alarm_small.png b/res/drawable-sw600dp-xxxhdpi/ic_alarm_small.png
new file mode 100644
index 0000000..cc8cc07
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_backspace_disabled.png b/res/drawable-sw600dp-xxxhdpi/ic_backspace_disabled.png
new file mode 100644
index 0000000..2b32ca0
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_backspace_normal.png b/res/drawable-sw600dp-xxxhdpi/ic_backspace_normal.png
new file mode 100644
index 0000000..4478597
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_fab_alarm.png b/res/drawable-sw600dp-xxxhdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..3941050
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_fab_pause.png b/res/drawable-sw600dp-xxxhdpi/ic_fab_pause.png
new file mode 100644
index 0000000..13550c4
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_fab_play.png b/res/drawable-sw600dp-xxxhdpi/ic_fab_play.png
new file mode 100644
index 0000000..76f278f
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_fab_plus.png b/res/drawable-sw600dp-xxxhdpi/ic_fab_plus.png
new file mode 100644
index 0000000..8c655c2
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_fab_stop.png b/res/drawable-sw600dp-xxxhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..91cfc95
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_label_normal.png b/res/drawable-sw600dp-xxxhdpi/ic_label_normal.png
new file mode 100644
index 0000000..99d2c83
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_label_pressed.png b/res/drawable-sw600dp-xxxhdpi/ic_label_pressed.png
new file mode 100644
index 0000000..e01a96a
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_noalarms.png b/res/drawable-sw600dp-xxxhdpi/ic_noalarms.png
index 89025ef..081a7b5 100644
--- a/res/drawable-sw600dp-xxxhdpi/ic_noalarms.png
+++ b/res/drawable-sw600dp-xxxhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_bottom.png b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..50b8e27
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_dark.png b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..3ef8bef
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_light.png b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..e92afbf
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_top.png b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..919a53d
--- /dev/null
+++ b/res/drawable-sw600dp-xxxhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-sw720dp-hdpi/clock_analog_dial.png b/res/drawable-sw720dp-hdpi/clock_analog_dial.png
new file mode 100644
index 0000000..5a2c0b3
--- /dev/null
+++ b/res/drawable-sw720dp-hdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw720dp-hdpi/clock_analog_hour.png b/res/drawable-sw720dp-hdpi/clock_analog_hour.png
new file mode 100644
index 0000000..11ca5d3
--- /dev/null
+++ b/res/drawable-sw720dp-hdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw720dp-hdpi/clock_analog_minute.png b/res/drawable-sw720dp-hdpi/clock_analog_minute.png
new file mode 100644
index 0000000..8626859
--- /dev/null
+++ b/res/drawable-sw720dp-hdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw720dp-hdpi/clock_analog_second.png b/res/drawable-sw720dp-hdpi/clock_analog_second.png
new file mode 100644
index 0000000..740e17e
--- /dev/null
+++ b/res/drawable-sw720dp-hdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw720dp-mdpi/clock_analog_dial.png b/res/drawable-sw720dp-mdpi/clock_analog_dial.png
new file mode 100644
index 0000000..90fa6cf
--- /dev/null
+++ b/res/drawable-sw720dp-mdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw720dp-mdpi/clock_analog_hour.png b/res/drawable-sw720dp-mdpi/clock_analog_hour.png
new file mode 100644
index 0000000..d7b9fcc
--- /dev/null
+++ b/res/drawable-sw720dp-mdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw720dp-mdpi/clock_analog_minute.png b/res/drawable-sw720dp-mdpi/clock_analog_minute.png
new file mode 100644
index 0000000..350c48c
--- /dev/null
+++ b/res/drawable-sw720dp-mdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw720dp-mdpi/clock_analog_second.png b/res/drawable-sw720dp-mdpi/clock_analog_second.png
new file mode 100644
index 0000000..db8e560
--- /dev/null
+++ b/res/drawable-sw720dp-mdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw720dp-xhdpi/clock_analog_dial.png b/res/drawable-sw720dp-xhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..5c644df
--- /dev/null
+++ b/res/drawable-sw720dp-xhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw720dp-xhdpi/clock_analog_hour.png b/res/drawable-sw720dp-xhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..b813f9c
--- /dev/null
+++ b/res/drawable-sw720dp-xhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw720dp-xhdpi/clock_analog_minute.png b/res/drawable-sw720dp-xhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..8b632c8
--- /dev/null
+++ b/res/drawable-sw720dp-xhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw720dp-xhdpi/clock_analog_second.png b/res/drawable-sw720dp-xhdpi/clock_analog_second.png
new file mode 100644
index 0000000..a09cc3b
--- /dev/null
+++ b/res/drawable-sw720dp-xhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxhdpi/clock_analog_dial.png b/res/drawable-sw720dp-xxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..8bac27b
--- /dev/null
+++ b/res/drawable-sw720dp-xxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxhdpi/clock_analog_hour.png b/res/drawable-sw720dp-xxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..63cbf8f
--- /dev/null
+++ b/res/drawable-sw720dp-xxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxhdpi/clock_analog_minute.png b/res/drawable-sw720dp-xxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..34b7a79
--- /dev/null
+++ b/res/drawable-sw720dp-xxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxhdpi/clock_analog_second.png b/res/drawable-sw720dp-xxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..d403acc
--- /dev/null
+++ b/res/drawable-sw720dp-xxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxxhdpi/clock_analog_dial.png b/res/drawable-sw720dp-xxxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..13e0a4e
--- /dev/null
+++ b/res/drawable-sw720dp-xxxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxxhdpi/clock_analog_hour.png b/res/drawable-sw720dp-xxxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..c025a8d
--- /dev/null
+++ b/res/drawable-sw720dp-xxxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxxhdpi/clock_analog_minute.png b/res/drawable-sw720dp-xxxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..24bf0ef
--- /dev/null
+++ b/res/drawable-sw720dp-xxxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxxhdpi/clock_analog_second.png b/res/drawable-sw720dp-xxxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..e7d8d7c
--- /dev/null
+++ b/res/drawable-sw720dp-xxxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-xhdpi/ab_hairline.9.png b/res/drawable-xhdpi/ab_hairline.9.png
deleted file mode 100644
index 8982b9b..0000000
--- a/res/drawable-xhdpi/ab_hairline.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/appwidget_clock_dial.png b/res/drawable-xhdpi/appwidget_clock_dial.png
index fba07db..5cbe218 100644
--- a/res/drawable-xhdpi/appwidget_clock_dial.png
+++ b/res/drawable-xhdpi/appwidget_clock_dial.png
Binary files differ
diff --git a/res/drawable-xhdpi/appwidget_clock_hour.png b/res/drawable-xhdpi/appwidget_clock_hour.png
index 1d28872..b010b9b 100644
--- a/res/drawable-xhdpi/appwidget_clock_hour.png
+++ b/res/drawable-xhdpi/appwidget_clock_hour.png
Binary files differ
diff --git a/res/drawable-xhdpi/appwidget_clock_minute.png b/res/drawable-xhdpi/appwidget_clock_minute.png
index a347e93..d1c4046 100644
--- a/res/drawable-xhdpi/appwidget_clock_minute.png
+++ b/res/drawable-xhdpi/appwidget_clock_minute.png
Binary files differ
diff --git a/res/drawable-xhdpi/bg_day_selected.png b/res/drawable-xhdpi/bg_day_selected.png
index a0935ee..b1c4411 100644
--- a/res/drawable-xhdpi/bg_day_selected.png
+++ b/res/drawable-xhdpi/bg_day_selected.png
Binary files differ
diff --git a/res/drawable-xhdpi/bg_gray_circle.png b/res/drawable-xhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..d74c4ff
--- /dev/null
+++ b/res/drawable-xhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_left_normal.9.png b/res/drawable-xhdpi/btn_strip_trans_left_normal.9.png
deleted file mode 100644
index 61206b9..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_left_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_left_pressed.9.png b/res/drawable-xhdpi/btn_strip_trans_left_pressed.9.png
deleted file mode 100644
index 8f465ed..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_left_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_left_selected.9.png b/res/drawable-xhdpi/btn_strip_trans_left_selected.9.png
deleted file mode 100644
index 73c81d9..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_left_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_middle_normal.9.png b/res/drawable-xhdpi/btn_strip_trans_middle_normal.9.png
deleted file mode 100644
index c276576..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_middle_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_middle_pressed.9.png b/res/drawable-xhdpi/btn_strip_trans_middle_pressed.9.png
deleted file mode 100644
index cb95f08..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_middle_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_middle_selected.9.png b/res/drawable-xhdpi/btn_strip_trans_middle_selected.9.png
deleted file mode 100644
index 989a395..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_middle_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_right_normal.9.png b/res/drawable-xhdpi/btn_strip_trans_right_normal.9.png
deleted file mode 100644
index 76eb17d..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_right_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_right_pressed.9.png b/res/drawable-xhdpi/btn_strip_trans_right_pressed.9.png
deleted file mode 100644
index fd6a44f..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_right_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_strip_trans_right_selected.9.png b/res/drawable-xhdpi/btn_strip_trans_right_selected.9.png
deleted file mode 100644
index 03f3d71..0000000
--- a/res/drawable-xhdpi/btn_strip_trans_right_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/clock_analog_dial.png b/res/drawable-xhdpi/clock_analog_dial.png
index f0c3e10..67b6941 100644
--- a/res/drawable-xhdpi/clock_analog_dial.png
+++ b/res/drawable-xhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-xhdpi/clock_analog_hour.png b/res/drawable-xhdpi/clock_analog_hour.png
index ce99521..70f194b 100644
--- a/res/drawable-xhdpi/clock_analog_hour.png
+++ b/res/drawable-xhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-xhdpi/clock_analog_minute.png b/res/drawable-xhdpi/clock_analog_minute.png
index d9e4331..5d73559 100644
--- a/res/drawable-xhdpi/clock_analog_minute.png
+++ b/res/drawable-xhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-xhdpi/clock_analog_second.png b/res/drawable-xhdpi/clock_analog_second.png
index 3d348af..213ed46 100644
--- a/res/drawable-xhdpi/clock_analog_second.png
+++ b/res/drawable-xhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-xhdpi/fastscroll_thumb_default_holo.png b/res/drawable-xhdpi/fastscroll_thumb_default_holo.png
index 7d3a628..9c1e897 100644
--- a/res/drawable-xhdpi/fastscroll_thumb_default_holo.png
+++ b/res/drawable-xhdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png b/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png
index 8c73dcb..d4a636a 100644
--- a/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png
+++ b/res/drawable-xhdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_timer.png b/res/drawable-xhdpi/ic_add_timer.png
new file mode 100644
index 0000000..8e21ff8
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_timer.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_alarm_off_hover.png b/res/drawable-xhdpi/ic_alarm_off_hover.png
deleted file mode 100644
index b5a83bd..0000000
--- a/res/drawable-xhdpi/ic_alarm_off_hover.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_alarm_small.png b/res/drawable-xhdpi/ic_alarm_small.png
index 0290bdc..20fbc60 100644
--- a/res/drawable-xhdpi/ic_alarm_small.png
+++ b/res/drawable-xhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_backspace_disabled.png b/res/drawable-xhdpi/ic_backspace_disabled.png
index 489deb3..64ed988 100644
--- a/res/drawable-xhdpi/ic_backspace_disabled.png
+++ b/res/drawable-xhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_backspace_normal.png b/res/drawable-xhdpi/ic_backspace_normal.png
index 3ad8d1b..a05e13b 100644
--- a/res/drawable-xhdpi/ic_backspace_normal.png
+++ b/res/drawable-xhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_cancel.png b/res/drawable-xhdpi/ic_cancel.png
new file mode 100644
index 0000000..3d33c09
--- /dev/null
+++ b/res/drawable-xhdpi/ic_cancel.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_delete.png b/res/drawable-xhdpi/ic_delete.png
index be1ee4d..09be516 100644
--- a/res/drawable-xhdpi/ic_delete.png
+++ b/res/drawable-xhdpi/ic_delete.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_delete_small.png b/res/drawable-xhdpi/ic_delete_small.png
new file mode 100644
index 0000000..b319c52
--- /dev/null
+++ b/res/drawable-xhdpi/ic_delete_small.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_expand_down.png b/res/drawable-xhdpi/ic_expand_down.png
index a7401a5..236fb15 100644
--- a/res/drawable-xhdpi/ic_expand_down.png
+++ b/res/drawable-xhdpi/ic_expand_down.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fab_alarm.png b/res/drawable-xhdpi/ic_fab_alarm.png
index 700381d..884808b 100644
--- a/res/drawable-xhdpi/ic_fab_alarm.png
+++ b/res/drawable-xhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fab_pause.png b/res/drawable-xhdpi/ic_fab_pause.png
index 1ce52a5..f1a5314 100644
--- a/res/drawable-xhdpi/ic_fab_pause.png
+++ b/res/drawable-xhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fab_play.png b/res/drawable-xhdpi/ic_fab_play.png
index f1b0b6e..41d9cd5 100644
--- a/res/drawable-xhdpi/ic_fab_play.png
+++ b/res/drawable-xhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fab_plus.png b/res/drawable-xhdpi/ic_fab_plus.png
index 3d6845a..ba7736c 100644
--- a/res/drawable-xhdpi/ic_fab_plus.png
+++ b/res/drawable-xhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fab_stop.png b/res/drawable-xhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..a6d1077
--- /dev/null
+++ b/res/drawable-xhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_label_normal.png b/res/drawable-xhdpi/ic_label_normal.png
index 5987cd3..b3dd6a6 100644
--- a/res/drawable-xhdpi/ic_label_normal.png
+++ b/res/drawable-xhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_label_pressed.png b/res/drawable-xhdpi/ic_label_pressed.png
index 1ce9d9a..c7796d3 100644
--- a/res/drawable-xhdpi/ic_label_pressed.png
+++ b/res/drawable-xhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_lap.png b/res/drawable-xhdpi/ic_lap.png
index 20d58bf..097cbca 100644
--- a/res/drawable-xhdpi/ic_lap.png
+++ b/res/drawable-xhdpi/ic_lap.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add.png b/res/drawable-xhdpi/ic_menu_add.png
index 424465b..bbe7962 100644
--- a/res/drawable-xhdpi/ic_menu_add.png
+++ b/res/drawable-xhdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_revert_holo_dark.png b/res/drawable-xhdpi/ic_menu_revert_holo_dark.png
index 48ff5bc..23f42ce 100644
--- a/res/drawable-xhdpi/ic_menu_revert_holo_dark.png
+++ b/res/drawable-xhdpi/ic_menu_revert_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_noalarms.png b/res/drawable-xhdpi/ic_noalarms.png
index 7c4c9e9..e6195dd 100644
--- a/res/drawable-xhdpi/ic_noalarms.png
+++ b/res/drawable-xhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notify_lap.png b/res/drawable-xhdpi/ic_notify_lap.png
index 223f4a2..ee6ccd2 100644
--- a/res/drawable-xhdpi/ic_notify_lap.png
+++ b/res/drawable-xhdpi/ic_notify_lap.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notify_reset.png b/res/drawable-xhdpi/ic_notify_reset.png
index af09a84..8536075 100644
--- a/res/drawable-xhdpi/ic_notify_reset.png
+++ b/res/drawable-xhdpi/ic_notify_reset.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notify_start.png b/res/drawable-xhdpi/ic_notify_start.png
index 7c8ac6c..e0e6630 100644
--- a/res/drawable-xhdpi/ic_notify_start.png
+++ b/res/drawable-xhdpi/ic_notify_start.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notify_stop.png b/res/drawable-xhdpi/ic_notify_stop.png
index 7ebb3f5..0dfc9ae 100644
--- a/res/drawable-xhdpi/ic_notify_stop.png
+++ b/res/drawable-xhdpi/ic_notify_stop.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_plusone.png b/res/drawable-xhdpi/ic_plusone.png
new file mode 100644
index 0000000..94f9941
--- /dev/null
+++ b/res/drawable-xhdpi/ic_plusone.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_plusone_disabled.png b/res/drawable-xhdpi/ic_plusone_disabled.png
deleted file mode 100644
index 3207f2b..0000000
--- a/res/drawable-xhdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_plusone_normal.png b/res/drawable-xhdpi/ic_plusone_normal.png
deleted file mode 100644
index fe02921..0000000
--- a/res/drawable-xhdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_plusone_pressed.png b/res/drawable-xhdpi/ic_plusone_pressed.png
deleted file mode 100644
index 0f6a794..0000000
--- a/res/drawable-xhdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_reset.png b/res/drawable-xhdpi/ic_reset.png
index 78b33f9..0614acc 100644
--- a/res/drawable-xhdpi/ic_reset.png
+++ b/res/drawable-xhdpi/ic_reset.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_ringtone.png b/res/drawable-xhdpi/ic_ringtone.png
index d9d8c93..71772c5 100644
--- a/res/drawable-xhdpi/ic_ringtone.png
+++ b/res/drawable-xhdpi/ic_ringtone.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_share.png b/res/drawable-xhdpi/ic_share.png
index 15e8e0c..df4c362 100644
--- a/res/drawable-xhdpi/ic_share.png
+++ b/res/drawable-xhdpi/ic_share.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_stop_normal.png b/res/drawable-xhdpi/ic_stop_normal.png
deleted file mode 100644
index 9eeffdc..0000000
--- a/res/drawable-xhdpi/ic_stop_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_swipe_circle_bottom.png b/res/drawable-xhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..aefc0dd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_swipe_circle_dark.png b/res/drawable-xhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..b460f22
--- /dev/null
+++ b/res/drawable-xhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_swipe_circle_light.png b/res/drawable-xhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..6602ffd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_swipe_circle_top.png b/res/drawable-xhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..ac4a843
--- /dev/null
+++ b/res/drawable-xhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-xhdpi/notification_bg_normal.9.png b/res/drawable-xhdpi/notification_bg_normal.9.png
deleted file mode 100644
index bdf477b..0000000
--- a/res/drawable-xhdpi/notification_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/notification_bg_normal_pressed.9.png b/res/drawable-xhdpi/notification_bg_normal_pressed.9.png
deleted file mode 100644
index 5c4da74..0000000
--- a/res/drawable-xhdpi/notification_bg_normal_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/stat_notify_alarm.png b/res/drawable-xhdpi/stat_notify_alarm.png
index b652d23..04d2e6a 100644
--- a/res/drawable-xhdpi/stat_notify_alarm.png
+++ b/res/drawable-xhdpi/stat_notify_alarm.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_notify_stopwatch.png b/res/drawable-xhdpi/stat_notify_stopwatch.png
index 2c30f74..cd1bf42 100644
--- a/res/drawable-xhdpi/stat_notify_stopwatch.png
+++ b/res/drawable-xhdpi/stat_notify_stopwatch.png
Binary files differ
diff --git a/res/drawable-xhdpi/stat_notify_timer.png b/res/drawable-xhdpi/stat_notify_timer.png
index c52629c..0709a92 100644
--- a/res/drawable-xhdpi/stat_notify_timer.png
+++ b/res/drawable-xhdpi/stat_notify_timer.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ab_hairline.9.png b/res/drawable-xxhdpi/ab_hairline.9.png
deleted file mode 100644
index a8d3aef..0000000
--- a/res/drawable-xxhdpi/ab_hairline.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/appwidget_clock_dial.png b/res/drawable-xxhdpi/appwidget_clock_dial.png
index 0f1cdeb..24a2262 100644
--- a/res/drawable-xxhdpi/appwidget_clock_dial.png
+++ b/res/drawable-xxhdpi/appwidget_clock_dial.png
Binary files differ
diff --git a/res/drawable-xxhdpi/appwidget_clock_hour.png b/res/drawable-xxhdpi/appwidget_clock_hour.png
index 6f57b04..7774ba5 100644
--- a/res/drawable-xxhdpi/appwidget_clock_hour.png
+++ b/res/drawable-xxhdpi/appwidget_clock_hour.png
Binary files differ
diff --git a/res/drawable-xxhdpi/appwidget_clock_minute.png b/res/drawable-xxhdpi/appwidget_clock_minute.png
index 58db15b..2e8be54 100644
--- a/res/drawable-xxhdpi/appwidget_clock_minute.png
+++ b/res/drawable-xxhdpi/appwidget_clock_minute.png
Binary files differ
diff --git a/res/drawable-xxhdpi/bg_day_selected.png b/res/drawable-xxhdpi/bg_day_selected.png
index 1fe5f5f..0899cee 100644
--- a/res/drawable-xxhdpi/bg_day_selected.png
+++ b/res/drawable-xxhdpi/bg_day_selected.png
Binary files differ
diff --git a/res/drawable-xxhdpi/bg_gray_circle.png b/res/drawable-xxhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..eca75c9
--- /dev/null
+++ b/res/drawable-xxhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-xxhdpi/clock_analog_dial.png b/res/drawable-xxhdpi/clock_analog_dial.png
index 2845522..7464145 100644
--- a/res/drawable-xxhdpi/clock_analog_dial.png
+++ b/res/drawable-xxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-xxhdpi/clock_analog_hour.png b/res/drawable-xxhdpi/clock_analog_hour.png
index 2fb36ca..e386819 100644
--- a/res/drawable-xxhdpi/clock_analog_hour.png
+++ b/res/drawable-xxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-xxhdpi/clock_analog_minute.png b/res/drawable-xxhdpi/clock_analog_minute.png
index fe60140..eeabc21 100644
--- a/res/drawable-xxhdpi/clock_analog_minute.png
+++ b/res/drawable-xxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-xxhdpi/clock_analog_second.png b/res/drawable-xxhdpi/clock_analog_second.png
index 58f9d6a..a6c5f2f 100644
--- a/res/drawable-xxhdpi/clock_analog_second.png
+++ b/res/drawable-xxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fastscroll_thumb_default_holo.png b/res/drawable-xxhdpi/fastscroll_thumb_default_holo.png
index 5ece6ea..a084359 100644
--- a/res/drawable-xxhdpi/fastscroll_thumb_default_holo.png
+++ b/res/drawable-xxhdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/fastscroll_thumb_pressed_holo.png b/res/drawable-xxhdpi/fastscroll_thumb_pressed_holo.png
index 11d5048..e9ff2a7 100644
--- a/res/drawable-xxhdpi/fastscroll_thumb_pressed_holo.png
+++ b/res/drawable-xxhdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_timer.png b/res/drawable-xxhdpi/ic_add_timer.png
new file mode 100644
index 0000000..3a198cd
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_timer.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_alarm_off_hover.png b/res/drawable-xxhdpi/ic_alarm_off_hover.png
deleted file mode 100644
index 403c8ee..0000000
--- a/res/drawable-xxhdpi/ic_alarm_off_hover.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_alarm_small.png b/res/drawable-xxhdpi/ic_alarm_small.png
index 66968e8..5f23e4e 100644
--- a/res/drawable-xxhdpi/ic_alarm_small.png
+++ b/res/drawable-xxhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_backspace_disabled.png b/res/drawable-xxhdpi/ic_backspace_disabled.png
index 8ab8c42..a8099db 100644
--- a/res/drawable-xxhdpi/ic_backspace_disabled.png
+++ b/res/drawable-xxhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_backspace_normal.png b/res/drawable-xxhdpi/ic_backspace_normal.png
index 96fb316..7953391 100644
--- a/res/drawable-xxhdpi/ic_backspace_normal.png
+++ b/res/drawable-xxhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_cancel.png b/res/drawable-xxhdpi/ic_cancel.png
new file mode 100644
index 0000000..0f2249f
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_cancel.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_delete.png b/res/drawable-xxhdpi/ic_delete.png
index eb63792..39c44b5 100644
--- a/res/drawable-xxhdpi/ic_delete.png
+++ b/res/drawable-xxhdpi/ic_delete.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_delete_small.png b/res/drawable-xxhdpi/ic_delete_small.png
new file mode 100644
index 0000000..b0962b1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_delete_small.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_expand_down.png b/res/drawable-xxhdpi/ic_expand_down.png
index 2c94bab..7f7bc66 100644
--- a/res/drawable-xxhdpi/ic_expand_down.png
+++ b/res/drawable-xxhdpi/ic_expand_down.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fab_alarm.png b/res/drawable-xxhdpi/ic_fab_alarm.png
index 9add603..975c68a 100644
--- a/res/drawable-xxhdpi/ic_fab_alarm.png
+++ b/res/drawable-xxhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fab_pause.png b/res/drawable-xxhdpi/ic_fab_pause.png
index 370f4df..4a5b683 100644
--- a/res/drawable-xxhdpi/ic_fab_pause.png
+++ b/res/drawable-xxhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fab_play.png b/res/drawable-xxhdpi/ic_fab_play.png
index b9dbb7f..5c10612 100644
--- a/res/drawable-xxhdpi/ic_fab_play.png
+++ b/res/drawable-xxhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fab_plus.png b/res/drawable-xxhdpi/ic_fab_plus.png
index 1d880a7..1f27d3f 100644
--- a/res/drawable-xxhdpi/ic_fab_plus.png
+++ b/res/drawable-xxhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fab_stop.png b/res/drawable-xxhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..6da87c3
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_label_normal.png b/res/drawable-xxhdpi/ic_label_normal.png
index f009bec..a7a6276 100644
--- a/res/drawable-xxhdpi/ic_label_normal.png
+++ b/res/drawable-xxhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_label_pressed.png b/res/drawable-xxhdpi/ic_label_pressed.png
index fe61872..ad32d9c 100644
--- a/res/drawable-xxhdpi/ic_label_pressed.png
+++ b/res/drawable-xxhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_lap.png b/res/drawable-xxhdpi/ic_lap.png
index 1ddb7a1..801d19f 100644
--- a/res/drawable-xxhdpi/ic_lap.png
+++ b/res/drawable-xxhdpi/ic_lap.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_add.png b/res/drawable-xxhdpi/ic_menu_add.png
index 8abd758..3a41215 100644
--- a/res/drawable-xxhdpi/ic_menu_add.png
+++ b/res/drawable-xxhdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_revert_holo_dark.png b/res/drawable-xxhdpi/ic_menu_revert_holo_dark.png
new file mode 100644
index 0000000..c2cdbb0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_revert_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_noalarms.png b/res/drawable-xxhdpi/ic_noalarms.png
index 41fb964..cb83727 100644
--- a/res/drawable-xxhdpi/ic_noalarms.png
+++ b/res/drawable-xxhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notify_lap.png b/res/drawable-xxhdpi/ic_notify_lap.png
index e3afbd3..22abe05 100644
--- a/res/drawable-xxhdpi/ic_notify_lap.png
+++ b/res/drawable-xxhdpi/ic_notify_lap.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notify_reset.png b/res/drawable-xxhdpi/ic_notify_reset.png
index 2865b95..1d6cbf4 100644
--- a/res/drawable-xxhdpi/ic_notify_reset.png
+++ b/res/drawable-xxhdpi/ic_notify_reset.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notify_start.png b/res/drawable-xxhdpi/ic_notify_start.png
index d3f827a..5736c76 100644
--- a/res/drawable-xxhdpi/ic_notify_start.png
+++ b/res/drawable-xxhdpi/ic_notify_start.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notify_stop.png b/res/drawable-xxhdpi/ic_notify_stop.png
index adcdd3c..077e4eb 100644
--- a/res/drawable-xxhdpi/ic_notify_stop.png
+++ b/res/drawable-xxhdpi/ic_notify_stop.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_plusone.png b/res/drawable-xxhdpi/ic_plusone.png
new file mode 100644
index 0000000..78b8d33
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_plusone.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_plusone_disabled.png b/res/drawable-xxhdpi/ic_plusone_disabled.png
deleted file mode 100644
index 95b47b7..0000000
--- a/res/drawable-xxhdpi/ic_plusone_disabled.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_plusone_normal.png b/res/drawable-xxhdpi/ic_plusone_normal.png
deleted file mode 100644
index f01e3b3..0000000
--- a/res/drawable-xxhdpi/ic_plusone_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_plusone_pressed.png b/res/drawable-xxhdpi/ic_plusone_pressed.png
deleted file mode 100644
index 184d1f2..0000000
--- a/res/drawable-xxhdpi/ic_plusone_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_reset.png b/res/drawable-xxhdpi/ic_reset.png
index 3896174..ed4a676 100644
--- a/res/drawable-xxhdpi/ic_reset.png
+++ b/res/drawable-xxhdpi/ic_reset.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_ringtone.png b/res/drawable-xxhdpi/ic_ringtone.png
index 355bac1..487d915 100644
--- a/res/drawable-xxhdpi/ic_ringtone.png
+++ b/res/drawable-xxhdpi/ic_ringtone.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_share.png b/res/drawable-xxhdpi/ic_share.png
index 3a92d49..03967f9 100644
--- a/res/drawable-xxhdpi/ic_share.png
+++ b/res/drawable-xxhdpi/ic_share.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_stop_normal.png b/res/drawable-xxhdpi/ic_stop_normal.png
deleted file mode 100644
index 176bcf9..0000000
--- a/res/drawable-xxhdpi/ic_stop_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_swipe_circle_bottom.png b/res/drawable-xxhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..ebe37f4
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_swipe_circle_dark.png b/res/drawable-xxhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..b319546
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_swipe_circle_light.png b/res/drawable-xxhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..148add7
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_swipe_circle_top.png b/res/drawable-xxhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..724e0c1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-xxhdpi/panel_undo_holo.9.png b/res/drawable-xxhdpi/panel_undo_holo.9.png
new file mode 100644
index 0000000..1dc4927
--- /dev/null
+++ b/res/drawable-xxhdpi/panel_undo_holo.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/stat_notify_alarm.png b/res/drawable-xxhdpi/stat_notify_alarm.png
index 7688f24..cc23351 100755
--- a/res/drawable-xxhdpi/stat_notify_alarm.png
+++ b/res/drawable-xxhdpi/stat_notify_alarm.png
Binary files differ
diff --git a/res/drawable-xxhdpi/stat_notify_stopwatch.png b/res/drawable-xxhdpi/stat_notify_stopwatch.png
index 0f8f134..d3ab85e 100644
--- a/res/drawable-xxhdpi/stat_notify_stopwatch.png
+++ b/res/drawable-xxhdpi/stat_notify_stopwatch.png
Binary files differ
diff --git a/res/drawable-xxhdpi/stat_notify_timer.png b/res/drawable-xxhdpi/stat_notify_timer.png
index 6150379..98c0202 100644
--- a/res/drawable-xxhdpi/stat_notify_timer.png
+++ b/res/drawable-xxhdpi/stat_notify_timer.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/appwidget_clock_dial.png b/res/drawable-xxxhdpi/appwidget_clock_dial.png
new file mode 100644
index 0000000..e481bf5
--- /dev/null
+++ b/res/drawable-xxxhdpi/appwidget_clock_dial.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/appwidget_clock_hour.png b/res/drawable-xxxhdpi/appwidget_clock_hour.png
new file mode 100644
index 0000000..7492e04
--- /dev/null
+++ b/res/drawable-xxxhdpi/appwidget_clock_hour.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/appwidget_clock_minute.png b/res/drawable-xxxhdpi/appwidget_clock_minute.png
new file mode 100644
index 0000000..cec5ff7
--- /dev/null
+++ b/res/drawable-xxxhdpi/appwidget_clock_minute.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/bg_day_selected.png b/res/drawable-xxxhdpi/bg_day_selected.png
new file mode 100644
index 0000000..4ae1fc0
--- /dev/null
+++ b/res/drawable-xxxhdpi/bg_day_selected.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/bg_edittext_activated.9.png b/res/drawable-xxxhdpi/bg_edittext_activated.9.png
new file mode 100644
index 0000000..932a170
--- /dev/null
+++ b/res/drawable-xxxhdpi/bg_edittext_activated.9.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/bg_edittext_default.9.png b/res/drawable-xxxhdpi/bg_edittext_default.9.png
new file mode 100644
index 0000000..932a170
--- /dev/null
+++ b/res/drawable-xxxhdpi/bg_edittext_default.9.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/bg_gray_circle.png b/res/drawable-xxxhdpi/bg_gray_circle.png
new file mode 100644
index 0000000..c0792a3
--- /dev/null
+++ b/res/drawable-xxxhdpi/bg_gray_circle.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/clock_analog_dial.png b/res/drawable-xxxhdpi/clock_analog_dial.png
new file mode 100644
index 0000000..6b6bb0a
--- /dev/null
+++ b/res/drawable-xxxhdpi/clock_analog_dial.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/clock_analog_hour.png b/res/drawable-xxxhdpi/clock_analog_hour.png
new file mode 100644
index 0000000..af040e2
--- /dev/null
+++ b/res/drawable-xxxhdpi/clock_analog_hour.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/clock_analog_minute.png b/res/drawable-xxxhdpi/clock_analog_minute.png
new file mode 100644
index 0000000..4223579
--- /dev/null
+++ b/res/drawable-xxxhdpi/clock_analog_minute.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/clock_analog_second.png b/res/drawable-xxxhdpi/clock_analog_second.png
new file mode 100644
index 0000000..891c55e
--- /dev/null
+++ b/res/drawable-xxxhdpi/clock_analog_second.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/fastscroll_thumb_default_holo.png b/res/drawable-xxxhdpi/fastscroll_thumb_default_holo.png
new file mode 100644
index 0000000..58928ce
--- /dev/null
+++ b/res/drawable-xxxhdpi/fastscroll_thumb_default_holo.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/fastscroll_thumb_pressed_holo.png b/res/drawable-xxxhdpi/fastscroll_thumb_pressed_holo.png
new file mode 100644
index 0000000..1e8bde0
--- /dev/null
+++ b/res/drawable-xxxhdpi/fastscroll_thumb_pressed_holo.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_add_timer.png b/res/drawable-xxxhdpi/ic_add_timer.png
new file mode 100644
index 0000000..421ffeb
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_add_timer.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_alarm_small.png b/res/drawable-xxxhdpi/ic_alarm_small.png
new file mode 100644
index 0000000..243191a
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_alarm_small.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_backspace_disabled.png b/res/drawable-xxxhdpi/ic_backspace_disabled.png
new file mode 100644
index 0000000..37e65a8
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_backspace_disabled.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_backspace_normal.png b/res/drawable-xxxhdpi/ic_backspace_normal.png
new file mode 100644
index 0000000..0cfded4
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_backspace_normal.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_cancel.png b/res/drawable-xxxhdpi/ic_cancel.png
new file mode 100644
index 0000000..563f59a
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_cancel.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_delete.png b/res/drawable-xxxhdpi/ic_delete.png
new file mode 100644
index 0000000..4bc8aed
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_delete.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_delete_small.png b/res/drawable-xxxhdpi/ic_delete_small.png
new file mode 100644
index 0000000..ea840d5
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_delete_small.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_expand_down.png b/res/drawable-xxxhdpi/ic_expand_down.png
new file mode 100644
index 0000000..b562e00
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_expand_down.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_fab_alarm.png b/res/drawable-xxxhdpi/ic_fab_alarm.png
new file mode 100644
index 0000000..a0c893c
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_fab_alarm.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_fab_pause.png b/res/drawable-xxxhdpi/ic_fab_pause.png
new file mode 100644
index 0000000..47616f1
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_fab_pause.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_fab_play.png b/res/drawable-xxxhdpi/ic_fab_play.png
new file mode 100644
index 0000000..0ae54f0
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_fab_play.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_fab_plus.png b/res/drawable-xxxhdpi/ic_fab_plus.png
new file mode 100644
index 0000000..14ad343
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_fab_plus.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_fab_stop.png b/res/drawable-xxxhdpi/ic_fab_stop.png
new file mode 100644
index 0000000..4c36402
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_fab_stop.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_label_normal.png b/res/drawable-xxxhdpi/ic_label_normal.png
new file mode 100644
index 0000000..99d2c83
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_label_normal.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_label_pressed.png b/res/drawable-xxxhdpi/ic_label_pressed.png
new file mode 100644
index 0000000..a944222
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_label_pressed.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_lap.png b/res/drawable-xxxhdpi/ic_lap.png
new file mode 100644
index 0000000..890c4ac
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_lap.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_add.png b/res/drawable-xxxhdpi/ic_menu_add.png
new file mode 100644
index 0000000..0bad9e9
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_revert_holo_dark.png b/res/drawable-xxxhdpi/ic_menu_revert_holo_dark.png
new file mode 100644
index 0000000..37e2fda
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_menu_revert_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_noalarms.png b/res/drawable-xxxhdpi/ic_noalarms.png
index ba4166e..e59fa71 100644
--- a/res/drawable-xxxhdpi/ic_noalarms.png
+++ b/res/drawable-xxxhdpi/ic_noalarms.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notify_lap.png b/res/drawable-xxxhdpi/ic_notify_lap.png
new file mode 100644
index 0000000..6d3549b
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_notify_lap.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notify_reset.png b/res/drawable-xxxhdpi/ic_notify_reset.png
new file mode 100644
index 0000000..8e7cff7
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_notify_reset.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notify_start.png b/res/drawable-xxxhdpi/ic_notify_start.png
new file mode 100644
index 0000000..358dfad
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_notify_start.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notify_stop.png b/res/drawable-xxxhdpi/ic_notify_stop.png
new file mode 100644
index 0000000..d12c0f2
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_notify_stop.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_plusone.png b/res/drawable-xxxhdpi/ic_plusone.png
new file mode 100644
index 0000000..8a56664
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_plusone.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_reset.png b/res/drawable-xxxhdpi/ic_reset.png
new file mode 100644
index 0000000..cdab3ad
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_reset.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_ringtone.png b/res/drawable-xxxhdpi/ic_ringtone.png
new file mode 100644
index 0000000..7ce5b40
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_ringtone.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_share.png b/res/drawable-xxxhdpi/ic_share.png
new file mode 100644
index 0000000..171d9b1
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_share.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_swipe_circle_bottom.png b/res/drawable-xxxhdpi/ic_swipe_circle_bottom.png
new file mode 100644
index 0000000..93c81a8
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_swipe_circle_bottom.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_swipe_circle_dark.png b/res/drawable-xxxhdpi/ic_swipe_circle_dark.png
new file mode 100644
index 0000000..6e339b8
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_swipe_circle_dark.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_swipe_circle_light.png b/res/drawable-xxxhdpi/ic_swipe_circle_light.png
new file mode 100644
index 0000000..ae48b7f
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_swipe_circle_light.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_swipe_circle_top.png b/res/drawable-xxxhdpi/ic_swipe_circle_top.png
new file mode 100644
index 0000000..82168a3
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_swipe_circle_top.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/panel_undo_holo.9.png b/res/drawable-xxxhdpi/panel_undo_holo.9.png
new file mode 100644
index 0000000..1dc4927
--- /dev/null
+++ b/res/drawable-xxxhdpi/panel_undo_holo.9.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/stat_notify_alarm.png b/res/drawable-xxxhdpi/stat_notify_alarm.png
new file mode 100644
index 0000000..a435523
--- /dev/null
+++ b/res/drawable-xxxhdpi/stat_notify_alarm.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/stat_notify_stopwatch.png b/res/drawable-xxxhdpi/stat_notify_stopwatch.png
new file mode 100644
index 0000000..276e3bd
--- /dev/null
+++ b/res/drawable-xxxhdpi/stat_notify_stopwatch.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/stat_notify_timer.png b/res/drawable-xxxhdpi/stat_notify_timer.png
new file mode 100644
index 0000000..7b37922
--- /dev/null
+++ b/res/drawable-xxxhdpi/stat_notify_timer.png
Binary files differ
diff --git a/res/drawable/alarm_tab.xml b/res/drawable/alarm_tab.xml
deleted file mode 100644
index 2debaf7..0000000
--- a/res/drawable/alarm_tab.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false"
- android:drawable="@drawable/ic_tab_alarm_activated" />
- <item android:state_focused="true" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_alarm_activated" />
- <item android:state_focused="false" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_alarm_activated" />
- <item android:state_selected="true"
- android:drawable="@drawable/ic_tab_alarm_activated" />
- <item android:drawable="@drawable/ic_tab_alarm_normal" />
-</selector>
diff --git a/res/drawable/bg_circle_pink.xml b/res/drawable/bg_circle_pink.xml
new file mode 100644
index 0000000..0d858da
--- /dev/null
+++ b/res/drawable/bg_circle_pink.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+ -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid android:color="@color/hot_pink" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/bg_circle_white.xml b/res/drawable/bg_circle_white.xml
new file mode 100644
index 0000000..e04b38b
--- /dev/null
+++ b/res/drawable/bg_circle_white.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+ -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid android:color="@android:color/white" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/btn_strip_trans_left.xml b/res/drawable/btn_strip_trans_left.xml
deleted file mode 100644
index dd8cbd6..0000000
--- a/res/drawable/btn_strip_trans_left.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- StateListDrawable used for the small round ImageButtons at the upper
- corners of the in-call onscreen touch UI. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_strip_trans_left_pressed" />
-
- <item android:state_focused="true"
- android:drawable="@drawable/btn_strip_trans_left_selected" />
-
- <item android:state_enabled="true"
- android:drawable="@drawable/btn_strip_trans_left_normal" />
-
-</selector>
diff --git a/res/drawable/btn_strip_trans_middle.xml b/res/drawable/btn_strip_trans_middle.xml
deleted file mode 100644
index b0b715a..0000000
--- a/res/drawable/btn_strip_trans_middle.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- StateListDrawable used for the small round ImageButtons at the upper
- corners of the in-call onscreen touch UI. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_strip_trans_middle_pressed" />
-
- <item android:state_focused="true"
- android:drawable="@drawable/btn_strip_trans_middle_selected" />
-
- <item android:state_enabled="true"
- android:drawable="@drawable/btn_strip_trans_middle_normal" />
-
-</selector>
diff --git a/res/drawable/btn_strip_trans_right.xml b/res/drawable/btn_strip_trans_right.xml
deleted file mode 100644
index 23cab56..0000000
--- a/res/drawable/btn_strip_trans_right.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- StateListDrawable used for the small round ImageButtons at the upper
- corners of the in-call onscreen touch UI. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_strip_trans_right_pressed" />
-
- <item android:state_focused="true"
- android:drawable="@drawable/btn_strip_trans_right_selected" />
-
- <item android:state_enabled="true"
- android:drawable="@drawable/btn_strip_trans_right_normal" />
-
-</selector>
diff --git a/res/drawable/clock_tab.xml b/res/drawable/clock_tab.xml
deleted file mode 100644
index 6fc2779..0000000
--- a/res/drawable/clock_tab.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false"
- android:drawable="@drawable/ic_tab_clock_activated" />
- <item android:state_focused="true" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_clock_activated" />
- <item android:state_focused="false" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_clock_activated" />
- <item android:state_selected="true"
- android:drawable="@drawable/ic_tab_clock_activated" />
- <item android:drawable="@drawable/ic_tab_clock_normal" />
-</selector>
diff --git a/res/drawable/snooze_circle.xml b/res/drawable/divider.xml
similarity index 82%
rename from res/drawable/snooze_circle.xml
rename to res/drawable/divider.xml
index 385c5fd..79a1fb6 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/drawable/divider.xml
@@ -14,10 +14,7 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <size android:width="1dip" />
+ <solid android:color="@color/black_16p" />
</shape>
\ No newline at end of file
diff --git a/res/drawable/ic_alarm.xml b/res/drawable/ic_alarm.xml
new file mode 100644
index 0000000..575b960
--- /dev/null
+++ b/res/drawable/ic_alarm.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24" >
+ <group
+ android:name="button"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="button_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <group
+ android:name="right_button"
+ android:translateX="19.0722"
+ android:translateY="4.5758" >
+ <path
+ android:name="path_1"
+ android:pathData="M 2.9409942627,1.16249084473 c 0.0,0.0 -4.59599304199,-3.85699462891 -4.59599304199,-3.85699462891 c 0.0,0.0 -1.2859954834,1.53300476074 -1.2859954834,1.53300476074 c 0.0,0.0 4.59599304199,3.85600280762 4.59599304199,3.85600280762 c 0.0,0.0 1.2859954834,-1.53201293945 1.2859954834,-1.53201293945 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ <group
+ android:name="left_button"
+ android:translateX="4.9262"
+ android:translateY="4.5729" >
+ <path
+ android:name="left_button_path"
+ android:pathData="M 2.9409942627,-1.16250610352 c 0.0,0.0 -1.2859954834,-1.53199768066 -1.2859954834,-1.53199768066 c 0.0,0.0 -4.59599304199,3.85600280762 -4.59599304199,3.85600280762 c 0.0,0.0 1.2859954834,1.53300476074 1.2859954834,1.53300476074 c 0.0,0.0 4.59599304199,-3.8570098877 4.59599304199,-3.8570098877 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ </group>
+ <group
+ android:name="alarm"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="alarm_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <group
+ android:name="alarm_hands"
+ android:translateX="13.75"
+ android:translateY="12.4473" >
+ <path
+ android:name="alarm_hands_path"
+ android:pathData="M -1.25,-4.42700195312 c 0.0,0.0 -1.5,0.0 -1.5,0.0 c 0.0,0.0 0.0,6.0 0.0,6.0 c 0.0,0.0 4.74699401855,2.85400390625 4.74699401855,2.85400390625 c 0.0,0.0 0.753005981445,-1.23199462891 0.753005981445,-1.23199462891 c 0.0,0.0 -4.0,-2.37200927734 -4.0,-2.37200927734 c 0.0,0.0 0.0,-5.25 0.0,-5.25 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ <group
+ android:name="alarm_body"
+ android:translateX="12"
+ android:translateY="13.0203" >
+ <path
+ android:name="alarm_outline_path"
+ android:pathData="M -0.0050048828125,-9 c -4.97399902344,0 -8.99499511719,4.0299987793 -8.99499511719,9 c 0,4.9700012207 4.02099609375,9 8.99499511719,9 c 4.97399902344,0 9.00500488281,-4.0299987793 9.00500488281,-9 c 0,-4.9700012207 -4.03100585938,-9 -9.00500488281,-9 Z M 0,7 c -3.86700439453,0 -7,-3.13400268555 -7,-7 c 0,-3.86599731445 3.13299560547,-7 7,-7 c 3.86700439453,0 7,3.13400268555 7,7 c 0,3.86599731445 -3.13299560547,7 -7,7 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ </group>
+</vector>
diff --git a/res/drawable/ic_alarm_animation.xml b/res/drawable/ic_alarm_animation.xml
new file mode 100644
index 0000000..f439ed6
--- /dev/null
+++ b/res/drawable/ic_alarm_animation.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:state_selected="false" android:state_focused="true"
+ android:drawable="@drawable/ic_tab_alarm_activated" />
+
+ <item android:id="@+id/on" android:state_selected="true"
+ android:drawable="@drawable/ic_tab_alarm_activated" />
+
+ <item android:id="@+id/off"
+ android:drawable="@drawable/ic_tab_alarm_normal" />
+
+ <transition android:fromId="@id/off" android:toId="@id/on">
+ <animated-vector android:drawable="@drawable/ic_alarm">
+ <target
+ android:name="button"
+ android:animation="@animator/ic_alarm_animation_button" />
+ </animated-vector>
+ </transition>
+
+</animated-selector>
\ No newline at end of file
diff --git a/res/drawable/ic_clock.xml b/res/drawable/ic_clock.xml
new file mode 100644
index 0000000..9fb2cfc
--- /dev/null
+++ b/res/drawable/ic_clock.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24" >
+ <group
+ android:name="clock_frame"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="clock_frame_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <group
+ android:name="hour_hand"
+ android:translateX="12.00763"
+ android:translateY="9.992" >
+ <path
+ android:name="hour_hand_path"
+ android:pathData="M 0.742004394531,2.99200439453 c 0.0,0.0 -1.48400878906,0.0 -1.48400878906,0.0 c 0.0,0.0 0.0,-5.98400878906 0.0,-5.98400878906 c 0.0,0.0 1.48400878906,0.0 1.48400878906,0.0 c 0.0,0.0 0.0,5.98400878906 0.0,5.98400878906 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ <group
+ android:name="clock_frame_1"
+ android:translateX="12"
+ android:translateY="12" >
+ <path
+ android:name="clock_ouline_path"
+ android:pathData="M -0.0050048828125,-10 c -5.52699279785,0 -9.99499511719,4.47700500488 -9.99499511719,10 c 0,5.52299499512 4.46800231934,10 9.99499511719,10 c 5.52600097656,0 10.0050048828,-4.47700500488 10.0050048828,-10 c 0,-5.52299499512 -4.47900390625,-10 -10.0050048828,-10 Z M 0,8 c -4.41999816895,0 -8,-3.58200073242 -8,-8 c 0,-4.41799926758 3.58000183105,-8 8,-8 c 4.41999816895,0 8,3.58200073242 8,8 c 0,4.41799926758 -3.58000183105,8 -8,8 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ </group>
+ <group
+ android:name="second_hand"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="second_hand_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <path
+ android:name="second_hand_path"
+ android:pathData="M 12.7418060303,12.9839935303 c 0.0,0.0 -1.48399353027,0.0 -1.48399353027,0.0 c 0.0,0.0 0.0,-5.98399353027 0.0,-5.98399353027 c 0.0,0 1.48399353027,0 1.48399353027,0 c 0.0,0 0.0,5.98399353027 0.0,5.98399353027 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+</vector>
diff --git a/res/drawable/ic_clock_animation.xml b/res/drawable/ic_clock_animation.xml
new file mode 100644
index 0000000..608fbb7
--- /dev/null
+++ b/res/drawable/ic_clock_animation.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:state_selected="false" android:state_focused="true"
+ android:drawable="@drawable/ic_tab_clock_activated" />
+
+ <item android:id="@+id/on" android:state_selected="true"
+ android:drawable="@drawable/ic_tab_clock_activated" />
+
+ <item android:id="@+id/off"
+ android:drawable="@drawable/ic_tab_clock_normal" />
+
+ <transition android:fromId="@id/off" android:toId="@id/on">
+ <animated-vector android:drawable="@drawable/ic_clock">
+ <target
+ android:name="second_hand"
+ android:animation="@animator/ic_clock_animation_second_hand" />
+ </animated-vector>
+ </transition>
+
+
+</animated-selector>
+
diff --git a/res/drawable/ic_plusone.xml b/res/drawable/ic_plusone.xml
deleted file mode 100644
index 315edff..0000000
--- a/res/drawable/ic_plusone.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_enabled="false"
- android:drawable="@drawable/ic_plusone_disabled" />
- <item android:state_focused="true" android:state_window_focused="true"
- android:drawable="@drawable/ic_plusone_pressed" />
- <item android:state_pressed="true" android:state_window_focused="true"
- android:drawable="@drawable/ic_plusone_pressed" />
- <item android:state_focused="false"
- android:drawable="@drawable/ic_plusone_normal" />
-</selector>
diff --git a/res/drawable/ic_stopwatch.xml b/res/drawable/ic_stopwatch.xml
new file mode 100644
index 0000000..1ea01c9
--- /dev/null
+++ b/res/drawable/ic_stopwatch.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24" >
+ <group
+ android:name="timer"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="timer_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <group
+ android:name="timer_body" >
+ <path
+ android:name="timer_interior_path"
+ android:pathData="M 19.0269927979,7.40730285645 c 0.0,0.0 1.42401123047,-1.42399597168 1.42401123047,-1.42399597168 c -0.428009033203,-0.513000488281 -0.902008056641,-0.98600769043 -1.41500854492,-1.41400146484 c 0.0,0.0 -1.4229888916,1.42399597168 -1.4229888916,1.42399597168 c -1.54000854492,-1.23199462891 -3.49101257324,-1.97300720215 -5.61801147461,-1.97300720215 c -4.97399902344,0.0 -8.99499511719,4.0299987793 -8.99499511719,9.0 c 0,4.9700012207 4.02099609375,9.0 8.99499511719,9.0 c 4.97399902344,0.0 9.00500488281,-4.0299987793 9.00500488281,-9.0 c 0,-2.125 -0.740997314453,-4.07398986816 -1.97300720215,-5.61299133301 Z M 12,20.0202941895 c -3.86700439453,0.0 -7,-3.13398742676 -7,-7.0 c 0,-3.86599731445 3.13299560547,-7.0 7,-7.0 c 3.86700439453,0.0 7,3.13400268555 7,7.0 c 0,3.86601257324 -3.13299560547,7.0 -7,7.0 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ </group>
+ <group
+ android:name="hand"
+ android:translateX="11.96875"
+ android:translateY="13.17188" >
+ <group
+ android:name="hand_pivot"
+ android:translateX="-12"
+ android:translateY="-13.17188" >
+ <path
+ android:name="hand_path"
+ android:pathData="M 11,14.0200042725 c 0,0.0 2,0.0 2,0.0 c 0,0.0 0,-6.0 0,-6.0 c 0,0.0 -2,0.0 -2,0.0 c 0,0.0 0,6.0 0,6.0 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ <group
+ android:name="button"
+ android:translateX="12"
+ android:translateY="12" >
+ <group
+ android:name="button_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <path
+ android:name="button_path"
+ android:pathData="M 15,1.02000427246 c 0,0.0 -6,0.0 -6,0.0 c 0,0.0 0,2.0 0,2.0 c 0,0.0 6,0.0 6,0.0 c 0,0.0 0,-2.0 0,-2.0 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+</vector>
diff --git a/res/drawable/ic_stopwatch_animation.xml b/res/drawable/ic_stopwatch_animation.xml
new file mode 100644
index 0000000..c9a235c
--- /dev/null
+++ b/res/drawable/ic_stopwatch_animation.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:state_selected="false" android:state_focused="true"
+ android:drawable="@drawable/ic_tab_stopwatch_activated" />
+
+ <item android:id="@+id/on" android:state_selected="true"
+ android:drawable="@drawable/ic_tab_stopwatch_activated" />
+
+ <item android:id="@+id/off"
+ android:drawable="@drawable/ic_tab_stopwatch_normal" />
+
+ <transition android:fromId="@id/off" android:toId="@id/on">
+ <animated-vector android:drawable="@drawable/ic_stopwatch">
+ <target
+ android:name="hand"
+ android:animation="@animator/ic_stopwatch_animation_hand" />
+ <target
+ android:name="button"
+ android:animation="@animator/ic_stopwatch_animation_button" />
+ </animated-vector>
+ </transition>
+
+</animated-selector>
diff --git a/res/drawable/ic_timer.xml b/res/drawable/ic_timer.xml
new file mode 100644
index 0000000..d0663d9
--- /dev/null
+++ b/res/drawable/ic_timer.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24" >
+ <group
+ android:name="hourglass_frame"
+ android:translateX="12"
+ android:translateY="12"
+ android:scaleX="0.7"
+ android:scaleY="0.7" >
+ <group
+ android:name="hourglass_frame_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <group
+ android:name="hourglass_bottom"
+ android:translateX="12"
+ android:translateY="6.5" >
+ <path
+ android:name="bottom_inner_path"
+ android:pathData="M 6.52099609375,-3.89300537109 c 0.0,0.0 -6.52099609375,6.87901306152 -6.52099609375,6.87901306152 c 0,0.0 -6.52099609375,-6.87901306152 -6.52099609375,-6.87901306152 c 0.0,0.0 13.0419921875,0.0 13.0419921875,0.0 Z M 9.99800109863,-6.5 c 0.0,0.0 -19.9960021973,0.0 -19.9960021973,0.0 c -0.890991210938,0.0 -1.33700561523,1.07699584961 -0.707000732422,1.70700073242 c 0.0,0.0 10.7050018311,11.2929992676 10.7050018311,11.2929992676 c 0,0.0 10.7050018311,-11.2929992676 10.7050018311,-11.2929992676 c 0.630004882812,-0.630004882812 0.183990478516,-1.70700073242 -0.707000732422,-1.70700073242 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ <group
+ android:name="hourglass_top"
+ android:translateX="12"
+ android:translateY="17.5" >
+ <path
+ android:name="top_inner_path"
+ android:pathData="M 0,-2.98600769043 c 0,0.0 6.52099609375,6.87901306152 6.52099609375,6.87901306152 c 0.0,0.0 -13.0419921875,0.0 -13.0419921875,0.0 c 0.0,0.0 6.52099609375,-6.87901306152 6.52099609375,-6.87901306152 Z M 0,-6.5 c 0,0.0 -10.7050018311,11.2929992676 -10.7050018311,11.2929992676 c -0.630004882812,0.630004882812 -0.184005737305,1.70700073242 0.707000732422,1.70700073242 c 0.0,0.0 19.9960021973,0.0 19.9960021973,0.0 c 0.890991210938,0.0 1.33699035645,-1.07699584961 0.707000732422,-1.70700073242 c 0.0,0.0 -10.7050018311,-11.2929992676 -10.7050018311,-11.2929992676 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+ </group>
+ <group
+ android:name="hourglass_fill"
+ android:translateX="12"
+ android:translateY="12"
+ android:scaleX="0.7"
+ android:scaleY="0.7" >
+ <group
+ android:name="hourglass_fill_pivot"
+ android:translateX="-12"
+ android:translateY="-12" >
+ <clip-path
+ android:name="mask_1"
+ android:pathData="M 24,13.3999938965 c 0,0.0 -24,0.0 -24,0.0 c 0,0.0 0,10.6000061035 0,10.6000061035 c 0,0 24,0 24,0 c 0,0 0,-10.6000061035 0,-10.6000061035 Z" />
+ <path
+ android:name="fill_path"
+ android:pathData="M 22.7100067139,22.2900085449 c 0.629989624023,0.629989624023 0.179992675781,1.70999145508 -0.710006713867,1.70999145508 c 0,0 -20,0 -20,0 c -0.889999389648,0 -1.33999633789,-1.08000183105 -0.710006713867,-1.70999145508 c 0.0,0.0 9.76000976562,-10.2900085449 9.76000976562,-10.2900085449 c 0.0,0 -9.76000976562,-10.2899932861 -9.76000976562,-10.2899932861 c -0.629989624023,-0.630004882812 -0.179992675781,-1.71000671387 0.710006713867,-1.71000671387 c 0,0 20,0 20,0 c 0.889999389648,0 1.33999633789,1.08000183105 0.710006713867,1.71000671387 c 0.0,0.0 -9.76000976562,10.2899932861 -9.76000976563,10.2899932861 c 0.0,0 9.76000976563,10.2900085449 9.76000976563,10.2900085449 Z"
+ android:fillColor="#FFFFFFFF"
+ android:fillAlpha="1" />
+ </group>
+ </group>
+</vector>
diff --git a/res/drawable/ic_timer_animation.xml b/res/drawable/ic_timer_animation.xml
new file mode 100644
index 0000000..31d9f12
--- /dev/null
+++ b/res/drawable/ic_timer_animation.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+-->
+
+<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:state_selected="false" android:state_focused="true"
+ android:drawable="@drawable/ic_tab_timer_activated" />
+
+ <item android:id="@+id/on" android:state_selected="true"
+ android:drawable="@drawable/ic_tab_timer_activated" />
+
+ <item android:id="@+id/off"
+ android:drawable="@drawable/ic_tab_timer_normal" />
+
+ <transition android:fromId="@id/off" android:toId="@id/on">
+ <animated-vector android:drawable="@drawable/ic_timer">
+ <target
+ android:name="hourglass_frame"
+ android:animation="@animator/ic_timer_animation_hourglass_frame" />
+ <target
+ android:name="hourglass_fill"
+ android:animation="@animator/ic_timer_animation_hourglass_fill" />
+ <target
+ android:name="mask_1"
+ android:animation="@animator/ic_timer_animation_mask_1" />
+ </animated-vector>
+ </transition>
+
+</animated-selector>
diff --git a/res/drawable/snooze_circle.xml b/res/drawable/notification_background.xml
similarity index 66%
copy from res/drawable/snooze_circle.xml
copy to res/drawable/notification_background.xml
index 385c5fd..78e4c8e 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/drawable/notification_background.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,9 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="?android:attr/colorButtonNormal">
+ <item android:id="@android:id/mask">
+ <color android:color="?android:attr/colorButtonNormal" />
+ </item>
+</ripple>
\ No newline at end of file
diff --git a/res/drawable/notification_bg.xml b/res/drawable/notification_bg.xml
deleted file mode 100644
index 362a524..0000000
--- a/res/drawable/notification_bg.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android"
- android:exitFadeDuration="@android:integer/config_mediumAnimTime">
-
- <item android:state_pressed="true" android:drawable="@drawable/notification_bg_normal_pressed" />
- <item android:state_pressed="false" android:drawable="@drawable/notification_bg_normal" />
-</selector>
diff --git a/res/drawable/stopwatch_tab.xml b/res/drawable/stopwatch_tab.xml
deleted file mode 100644
index 9404da0..0000000
--- a/res/drawable/stopwatch_tab.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false"
- android:drawable="@drawable/ic_tab_stopwatch_activated" />
- <item android:state_focused="true" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_stopwatch_activated" />
- <item android:state_focused="false" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_stopwatch_activated" />
- <item android:state_selected="true"
- android:drawable="@drawable/ic_tab_stopwatch_activated" />
- <item android:drawable="@drawable/ic_tab_stopwatch_normal" />
-</selector>
diff --git a/res/drawable/timer_tab.xml b/res/drawable/timer_tab.xml
deleted file mode 100644
index 75daefe..0000000
--- a/res/drawable/timer_tab.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:state_pressed="false"
- android:drawable="@drawable/ic_tab_timer_activated" />
- <item android:state_focused="true" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_timer_activated" />
- <item android:state_focused="false" android:state_pressed="true"
- android:drawable="@drawable/ic_tab_timer_activated" />
- <item android:state_selected="true"
- android:drawable="@drawable/ic_tab_timer_activated" />
- <item android:drawable="@drawable/ic_tab_timer_normal" />
-</selector>
diff --git a/res/drawable/toggle_circle.xml b/res/drawable/toggle_circle.xml
index d2fc1c3..b28e3f5 100644
--- a/res/drawable/toggle_circle.xml
+++ b/res/drawable/toggle_circle.xml
@@ -16,7 +16,7 @@
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/hot_pink">
+ android:color="@color/clock_white">
<item>
<bitmap
android:src="@drawable/bg_day_selected"
diff --git a/res/drawable/snooze_circle.xml b/res/interpolator/ic_stopwatch_button_translatex_interpolator.xml
similarity index 68%
copy from res/drawable/snooze_circle.xml
copy to res/interpolator/ic_stopwatch_button_translatex_interpolator.xml
index 385c5fd..b9a5349 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/interpolator/ic_stopwatch_button_translatex_interpolator.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+ Copyright (C) 2014 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.
@@ -14,10 +15,5 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:pathData="M 0.000000,0.000000 C 0.2,0 0.1,0.5 0.5,0.5 C 0.7,0.5 0.6,1 1,1 " />
diff --git a/res/layout-land/alarm_alert.xml b/res/layout-land/alarm_alert.xml
deleted file mode 100644
index 8ec5bc7..0000000
--- a/res/layout-land/alarm_alert.xml
+++ /dev/null
@@ -1,140 +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.
--->
-
-<!-- TODO update this view with landscape layout, now it's exactly the same as portrait -->
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <RelativeLayout
- android:id="@+id/final_reveal_screen"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/final_text"
- style="@style/alarm_lockscreen_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:textStyle="bold"
- android:textColor="@color/white"/>
-
- <TextView
- android:id="@+id/additional_text"
- style="@style/alarm_lockscreen_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:layout_below="@id/final_text"
- android:textColor="@color/white"/>
-
- </RelativeLayout>
-
- <LinearLayout
- android:id="@+id/main_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:paddingTop="72dip"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/alertTitle"
- style="@style/header_not_caps"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="end"
- android:layout_gravity="center"
- android:singleLine="true"
- android:textColor="@color/clock_white"/>
-
- <TextClock
- android:id="@+id/digitalClock"
- style="@style/big_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:baselineAligned="true"
- android:ellipsize="none"
- android:format12Hour="@string/main_clock_12_hours_format"
- android:format24Hour="@string/clock_24_hours_format"
- android:gravity="top"
- android:singleLine="true"
- android:textColor="@color/clock_white"/>
-
- <FrameLayout
- android:id="@+id/ripple_pad"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <ImageView
- android:id="@+id/snooze_circle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible"
- android:src="@drawable/snooze_circle"/>
-
- <ImageView
- android:id="@+id/snooze_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="32dip"
- android:scaleX="0.7"
- android:scaleY="0.7"
- android:alpha="0.65"
- android:layout_gravity="center_vertical|left"
- android:src="@drawable/ic_snooze"/>
-
- <com.android.deskclock.alarms.AlarmRipple
- android:id="@+id/center_ripple"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"/>
-
- <ImageView
- android:id="@+id/center_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:src="@drawable/ic_fab_alarm"/>
-
- <ImageView
- android:id="@+id/dismiss_circle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible"
- android:src="@drawable/ic_alarm_off_hover"/>
-
- <ImageView
- android:id="@+id/dismiss_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:scaleX="0.7"
- android:scaleY="0.7"
- android:alpha="0.65"
- android:layout_marginRight="32dip"
- android:layout_gravity="center_vertical|right"
- android:src="@drawable/ic_alarm_off"/>
-
- </FrameLayout>
-
- </LinearLayout>
-
-</FrameLayout>
-
diff --git a/res/layout-land/clock_fragment.xml b/res/layout-land/clock_fragment.xml
index 9ce2499..d5804b4 100644
--- a/res/layout-land/clock_fragment.xml
+++ b/res/layout-land/clock_fragment.xml
@@ -16,31 +16,34 @@
<!-- Use this clock_fragment for landscape, which has main clock frame next to cities,
with a spacing ratio dependent on the number of clocks per row (phone has 1, tablet has 2). -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingTop="?android:attr/actionBarSize" >
+ android:paddingStart="@dimen/clock_side_padding"
+ android:paddingEnd="@dimen/clock_side_padding"
+ android:paddingTop="?android:attr/actionBarSize"
+ android:orientation="horizontal">
+
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:gravity="center"
- android:weightSum="@integer/clocks_per_row" >
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="2"
+ android:layout_marginBottom="@dimen/main_clock_bottom_margin"
+ android:gravity="center">
+
<include layout="@layout/main_clock_frame"
android:id="@+id/main_clock_left_pane"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="2"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
- android:layout_gravity="center" />
- <ListView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+
+ <ListView
android:id="@+id/cities"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="@integer/world_clocks_per_row"
- android:clickable="false"
- android:layout_marginRight="20dp"
- android:layout_gravity="center" />
- </LinearLayout>
-</FrameLayout>
+ android:layout_gravity="center"
+ android:clickable="false" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/stopwatch_fragment.xml b/res/layout-land/stopwatch_fragment.xml
index be8d386..d7271f1 100644
--- a/res/layout-land/stopwatch_fragment.xml
+++ b/res/layout-land/stopwatch_fragment.xml
@@ -17,7 +17,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
- android:paddingTop="32dip"
+ android:paddingTop="?android:attr/actionBarSize"
android:baselineAligned="false">
<Space
@@ -27,74 +27,43 @@
android:layout_width="0dip"
android:layout_height="match_parent"/>
- <com.android.deskclock.CircleButtonsLayout
- android:id="@+id/stopwatch_circle"
- android:layout_width="@dimen/circle_size"
- android:layout_height="@dimen/circle_size"
- android:layout_gravity="center"
- android:layout_marginLeft="32dip"
- android:layout_marginBottom="32dip"
- android:layout_marginRight="32dip">
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginBottom="@dimen/stopwatch_circle_margin_bottom"
+ android:gravity="center"
+ android:orientation="vertical">
- <com.android.deskclock.timer.CountingTimerView
- android:id="@+id/stopwatch_time_text"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ <com.android.deskclock.CircleButtonsLayout
+ android:id="@+id/stopwatch_circle"
+ android:layout_width="@dimen/circle_size"
+ android:layout_height="@dimen/circle_size"
+ android:layout_marginStart="32dip"
+ android:layout_marginEnd="32dip"
+ android:gravity="center">
- <com.android.deskclock.CircleTimerView
- android:id="@+id/stopwatch_time"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@null" />
+ <com.android.deskclock.timer.CountingTimerView
+ android:id="@+id/stopwatch_time_text"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
- <ImageButton
- android:id="@+id/stopwatch_left_button"
- android:layout_gravity="bottom|start"
- android:layout_width="56dip"
- style="@style/button"
- android:src="@drawable/ic_lap"
- android:background="@null"
- android:layout_height="56dip" />
+ <com.android.deskclock.CircleTimerView
+ android:id="@+id/stopwatch_time"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@null" />
- <TextView
- android:id="@+id/stopwatch_stop"
- android:visibility="invisible"
- android:layout_gravity="bottom|center_horizontal"
- android:gravity="center"
- android:layout_marginBottom="0dip"
- android:paddingLeft="10dip"
- android:paddingStart="10dip"
- android:paddingRight="10dip"
- android:paddingEnd="10dip"
- android:paddingBottom="5dip"
- android:paddingTop="5dip"
- android:text="@string/timer_stop"
- android:layout_width="wrap_content"
- style="@style/bold_button"
- android:contentDescription="@string/timer_stop"
- android:layout_height="wrap_content"
- android:focusable="true" />
+ </com.android.deskclock.CircleButtonsLayout>
- <ImageButton
- android:id="@+id/stopwatch_share_button"
- android:background="@null"
- android:layout_width="56dip"
- android:src="@drawable/ic_share"
- style="@style/button"
- android:layout_gravity="bottom|end"
- android:layout_height="56dip"
- android:contentDescription="@string/sw_share_button" />
- </com.android.deskclock.CircleButtonsLayout>
+ </LinearLayout>
<ListView
android:id="@+id/laps_list"
- android:layout_marginTop="32dip"
- android:layout_marginBottom="48dip"
- android:layout_marginStart="@dimen/stopwatch_list_margin_start"
- android:layout_marginEnd="16dip"
- android:layout_gravity="center"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="2"
+ android:layout_marginBottom="8dip"
+ android:layout_gravity="center" />
<Space
android:id="@+id/end_space"
diff --git a/res/layout-land/time_setup_view.xml b/res/layout-land/time_setup_view.xml
index 114b67b..f07d182 100644
--- a/res/layout-land/time_setup_view.xml
+++ b/res/layout-land/time_setup_view.xml
@@ -13,32 +13,33 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal">
+ android:layout_height="match_parent">
- <!-- This nested ltr layout cannot be combined with the parent because
- in RTL, the Keypad and Timer value should swap. -->
<LinearLayout
- android:id="@+id/timer_time_display"
- android:layout_width="0dp"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_weight="3"
- android:gravity="center"
- android:layoutDirection="ltr"
android:orientation="horizontal">
+ <!-- This nested ltr layout cannot be combined with the parent because
+ in RTL, the Keypad and Timer value should swap. -->
<LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:id="@+id/timer_time_display"
+ android:layout_width="0dip"
+ android:layout_height="match_parent"
+ android:layout_weight="3"
+ android:layout_marginBottom="@dimen/footer_button_size"
+ android:layoutDirection="ltr"
+ android:gravity="center"
+ android:orientation="vertical"
+ >
<com.android.deskclock.timer.TimerView
android:id="@+id/timer_time_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="center_horizontal|top">
+ android:gravity="center_vertical">
<include layout="@layout/timer_h_mm_ss_view" />
@@ -64,49 +65,29 @@
</LinearLayout>
- </LinearLayout>
+ <LinearLayout
+ android:layout_width="0dip"
+ android:layout_height="match_parent"
+ android:layout_weight="2"
+ android:orientation="vertical" >
- <LinearLayout
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="2"
- android:orientation="vertical">
+ <include
+ android:id="@+id/first"
+ layout="@layout/three_keys_view" />
+ <include
+ android:id="@+id/second"
+ layout="@layout/three_keys_view" />
+ <include
+ android:id="@+id/third"
+ layout="@layout/three_keys_view" />
+ <include
+ android:id="@+id/fourth"
+ layout="@layout/three_keys_view" />
- <include
- android:id="@+id/first"
- layout="@layout/three_keys_view" />
-
- <include
- android:id="@+id/second"
- layout="@layout/three_keys_view" />
-
- <include
- android:id="@+id/third"
- layout="@layout/three_keys_view" />
-
- <include
- android:id="@+id/fourth"
- layout="@layout/three_keys_view" />
-
- <FrameLayout
- android:id="@+id/timer_footer"
- android:layout_width="match_parent"
- android:layout_height="@dimen/footer_button_size"
- android:layout_margin="@dimen/footer_button_layout_margin"
- android:layout_gravity="bottom">
-
- <ImageButton
- android:id="@+id/timer_cancel"
- style="@style/button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|center_vertical"
- android:background="@color/transparent"
- android:gravity="center"
- android:src="@drawable/ic_delete" />
-
- </FrameLayout>
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
+ <include layout="@layout/timer_cancel_button" />
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/drawable/snooze_circle.xml b/res/layout-land/timer_fragment.xml
similarity index 62%
copy from res/drawable/snooze_circle.xml
copy to res/layout-land/timer_fragment.xml
index 385c5fd..6254e4f 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/layout-land/timer_fragment.xml
@@ -14,10 +14,16 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/timers_list_page"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="?android:attr/actionBarSize"
+ android:baselineAligned="false">
+
+ <include layout="@layout/timer_timer_view"/>
+
+ <include layout="@layout/timer_setup_view"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout-land/world_clock_item.xml b/res/layout-land/world_clock_item.xml
index c308a91..c2a7a6a 100644
--- a/res/layout-land/world_clock_item.xml
+++ b/res/layout-land/world_clock_item.xml
@@ -38,7 +38,6 @@
style="@style/medium_light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="@dimen/digital_world_clock_text_size"
android:textColor="@color/clock_white"
android:format12Hour="@string/world_clock_12_hours_format"
android:format24Hour="@string/clock_24_hours_format"
diff --git a/res/layout-sw600dp-land/alarm_clock.xml b/res/layout-sw600dp-land/alarm_clock.xml
index 136d53d..0a88683 100644
--- a/res/layout-sw600dp-land/alarm_clock.xml
+++ b/res/layout-sw600dp-land/alarm_clock.xml
@@ -33,25 +33,26 @@
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
+ android:paddingBottom="@dimen/button_footer_height"
android:clipToPadding="false"
android:descendantFocusability="beforeDescendants"
android:divider="@null"
- android:dividerHeight="6dp" />
+ android:dividerHeight="0dip" />
</LinearLayout>
<FrameLayout
android:id="@+id/alarms_footer_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom" >
+ android:layout_width="@dimen/footer_button_size"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_gravity="bottom|end" >
<ImageButton
android:id="@+id/menu_button"
android:contentDescription="@string/button_menu"
style="?android:attr/actionOverflowButtonStyle"
android:layout_gravity="end|center_vertical"
- android:layout_width="@dimen/footer_button_size"
- android:layout_height="@dimen/footer_button_size" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
</FrameLayout>
<TextView
android:id="@+id/alarms_empty_view"
diff --git a/res/layout/actionable_toast_row.xml b/res/layout/actionable_toast_row.xml
index ac50bb5..d22fcbb 100644
--- a/res/layout/actionable_toast_row.xml
+++ b/res/layout/actionable_toast_row.xml
@@ -23,7 +23,8 @@
android:layout_gravity="center_vertical"
android:paddingLeft="16dip"
android:paddingStart="16dip"
- android:src="@drawable/ic_menu_revert_holo_dark" />
+ android:src="@drawable/ic_menu_revert_holo_dark"
+ android:contentDescription="@string/alarm_undo" />
<TextView
android:id="@+id/description_text"
@@ -63,7 +64,8 @@
android:layout_gravity="center_vertical"
android:layout_marginRight="4dip"
android:layout_marginEnd="4dip"
- android:src="@drawable/ic_menu_revert_holo_dark" />
+ android:src="@drawable/ic_menu_revert_holo_dark"
+ android:contentDescription="@null" />
<TextView
android:id="@+id/action_text"
diff --git a/res/layout/alarm_activity.xml b/res/layout/alarm_activity.xml
new file mode 100644
index 0000000..b46b0b7
--- /dev/null
+++ b/res/layout/alarm_activity.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+ -->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
+ android:layoutDirection="ltr">
+
+ <GridLayout
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:rowCount="3"
+ android:columnCount="3">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_row="0"
+ android:layout_column="0"
+ android:layout_columnSpan="3"
+ android:layout_gravity="fill_horizontal"
+ android:layout_marginTop="?android:attr/actionBarSize"
+ android:gravity="center"
+ android:singleLine="true"
+ android:textAppearance="@style/header_not_caps"
+ android:textColor="@android:color/white" />
+
+ <TextClock
+ android:id="@+id/digital_clock"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_row="1"
+ android:layout_column="0"
+ android:layout_columnSpan="3"
+ android:layout_gravity="fill_horizontal"
+ android:format12Hour="@string/main_clock_12_hours_format"
+ android:format24Hour="@string/clock_24_hours_format"
+ android:gravity="center"
+ android:includeFontPadding="false"
+ android:singleLine="true"
+ android:textAppearance="@style/big_thin"
+ android:textColor="@android:color/white" />
+
+ <View
+ android:id="@+id/pulse"
+ android:layout_width="@dimen/alarm_lockscreen_pulse_size"
+ android:layout_height="@dimen/alarm_lockscreen_pulse_size"
+ android:layout_row="2"
+ android:layout_column="0"
+ android:layout_columnSpan="3"
+ android:layout_gravity="center"
+ android:background="@drawable/bg_circle_white" />
+
+ <ImageView
+ android:id="@+id/snooze"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_row="2"
+ android:layout_column="0"
+ android:layout_columnWeight="1"
+ android:layout_gravity="center"
+ android:background="@drawable/bg_circle_pink"
+ android:contentDescription="@string/description_direction_left"
+ android:src="@drawable/ic_snooze" />
+
+ <ImageView
+ android:id="@+id/dismiss"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_row="2"
+ android:layout_column="2"
+ android:layout_columnWeight="1"
+ android:layout_gravity="center"
+ android:background="@drawable/bg_circle_white"
+ android:contentDescription="@string/description_direction_right"
+ android:src="@drawable/ic_alarm_off" />
+
+ <ImageView
+ android:id="@+id/alarm"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_row="2"
+ android:layout_column="1"
+ android:layout_columnWeight="1"
+ android:layout_gravity="center"
+ android:background="@android:color/transparent"
+ android:contentDescription="@string/description_direction_right"
+ android:paddingLeft="@dimen/alarm_lockscreen_alarm_horizontal_padding"
+ android:paddingRight="@dimen/alarm_lockscreen_alarm_horizontal_padding"
+ android:paddingTop="@dimen/alarm_lockscreen_alarm_vertical_padding"
+ android:paddingBottom="@dimen/alarm_lockscreen_alarm_vertical_padding"
+ android:src="@drawable/ic_fab_alarm" />
+
+ <TextView
+ android:id="@+id/hint"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_row="2"
+ android:layout_column="0"
+ android:layout_columnSpan="3"
+ android:layout_gravity="bottom|center_horizontal"
+ android:layout_marginBottom="@dimen/alarm_lockscreen_bottom_margin"
+ android:textColor="@android:color/white"
+ android:textSize="@dimen/bottom_text_size"
+ android:visibility="gone" />
+
+ </GridLayout>
+
+ <GridLayout
+ android:id="@+id/alert"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:orientation="vertical"
+ android:visibility="gone">
+
+ <TextView
+ android:id="@+id/alert_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:textAppearance="@style/alarm_lockscreen_thin"
+ android:textColor="@android:color/white" />
+
+ <TextView
+ android:id="@+id/alert_info"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:textAppearance="@style/alarm_lockscreen_thin"
+ android:textColor="@android:color/white"
+ android:textStyle="bold"
+ android:visibility="gone" />
+
+ </GridLayout>
+
+</FrameLayout>
diff --git a/res/layout/alarm_alert.xml b/res/layout/alarm_alert.xml
deleted file mode 100644
index 187ae84..0000000
--- a/res/layout/alarm_alert.xml
+++ /dev/null
@@ -1,138 +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.
--->
-
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <RelativeLayout
- android:id="@+id/final_reveal_screen"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/final_text"
- style="@style/alarm_lockscreen_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:textStyle="bold"
- android:textColor="@color/white"/>
-
- <TextView
- android:id="@+id/additional_text"
- style="@style/alarm_lockscreen_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:layout_below="@id/final_text"
- android:textColor="@color/white"/>
-
- </RelativeLayout>
-
- <LinearLayout
- android:id="@+id/main_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:paddingTop="72dip"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/alertTitle"
- style="@style/header_not_caps"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="end"
- android:layout_gravity="center"
- android:singleLine="true"
- android:textColor="@color/clock_white"/>
-
- <TextClock
- android:id="@+id/digitalClock"
- style="@style/big_thin"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:baselineAligned="true"
- android:ellipsize="none"
- android:format12Hour="@string/main_clock_12_hours_format"
- android:format24Hour="@string/clock_24_hours_format"
- android:gravity="top"
- android:singleLine="true"
- android:textColor="@color/clock_white"/>
-
- <FrameLayout
- android:id="@+id/ripple_pad"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <ImageView
- android:id="@+id/snooze_circle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible"
- android:src="@drawable/snooze_circle"/>
-
- <ImageView
- android:id="@+id/snooze_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="32dip"
- android:scaleX="0.7"
- android:scaleY="0.7"
- android:alpha="0.65"
- android:layout_gravity="center_vertical|left"
- android:src="@drawable/ic_snooze"/>
-
- <com.android.deskclock.alarms.AlarmRipple
- android:id="@+id/center_ripple"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"/>
-
- <ImageView
- android:id="@+id/center_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:src="@drawable/ic_fab_alarm"/>
-
- <ImageView
- android:id="@+id/dismiss_circle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="invisible"
- android:src="@drawable/ic_alarm_off_hover"/>
-
- <ImageView
- android:id="@+id/dismiss_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:scaleX="0.7"
- android:scaleY="0.7"
- android:alpha="0.65"
- android:layout_marginRight="32dip"
- android:layout_gravity="center_vertical|right"
- android:src="@drawable/ic_alarm_off"/>
-
- </FrameLayout>
-
- </LinearLayout>
-
-</FrameLayout>
diff --git a/res/layout/alarm_clock.xml b/res/layout/alarm_clock.xml
index 59a1532..056b708 100644
--- a/res/layout/alarm_clock.xml
+++ b/res/layout/alarm_clock.xml
@@ -25,10 +25,11 @@
android:id="@+id/alarms_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:paddingBottom="@dimen/button_footer_height"
android:clipToPadding="false"
android:descendantFocusability="beforeDescendants"
android:divider="@null"
- android:dividerHeight="0dp"
+ android:dividerHeight="0dip"
/>
<TextView
@@ -39,6 +40,7 @@
android:layout_gravity="center"
android:contentDescription="@string/no_alarms"
android:drawableTop="@drawable/ic_noalarms"
+ android:gravity="center"
android:text="@string/no_alarms"
android:textColor="#4cffffff"
android:paddingBottom="88dp" />
@@ -62,16 +64,16 @@
<FrameLayout
android:id="@+id/alarms_footer_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
+ android:layout_width="@dimen/footer_button_size"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_gravity="bottom|end"
android:layout_marginBottom="@dimen/footer_button_layout_margin" >
<ImageButton
android:id="@+id/menu_button"
android:contentDescription="@string/button_menu"
style="?android:attr/actionOverflowButtonStyle"
android:layout_gravity="end|center_vertical"
- android:layout_width="@dimen/footer_button_size"
- android:layout_height="@dimen/footer_button_size" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
diff --git a/res/layout/alarm_time.xml b/res/layout/alarm_time.xml
index aeda1f6..83dd855 100644
--- a/res/layout/alarm_time.xml
+++ b/res/layout/alarm_time.xml
@@ -20,6 +20,8 @@
xmlns:dc="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingStart="@dimen/alarm_side_padding"
+ android:paddingEnd="@dimen/alarm_side_padding"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_horizontal|top"
android:orientation="vertical">
@@ -28,9 +30,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginEnd="12dp"
- android:layout_marginStart="12dp"
- android:layout_marginTop="12dp"
+ android:layout_marginTop="@dimen/alarm_clock_vertical_margin"
android:orientation="horizontal">
<com.android.deskclock.widget.TextTime
@@ -51,6 +51,7 @@
<Switch
android:id="@+id/onoff"
+ android:theme="@style/AlarmSwitchTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end" />
@@ -72,44 +73,38 @@
<CheckBox
android:id="@+id/repeat_onoff"
android:layout_width="wrap_content"
- android:layout_height="48dp"
+ android:layout_height="48dip"
android:layout_gravity="center_vertical|start"
- android:layout_marginEnd="16dp"
- android:layout_marginStart="10dp"
android:text="@string/alarm_repeat"
android:textSize="16sp"
- android:paddingStart="16dip"
+ android:paddingStart="12dip"
android:textColor="@color/clock_white" />
<LinearLayout
android:id="@+id/repeat_days"
android:layout_width="match_parent"
- android:layout_height="48dp"
+ android:layout_height="48dip"
android:layout_gravity="top"
- android:layout_marginEnd="10dp"
- android:layout_marginStart="10dp"
android:orientation="horizontal"
android:visibility="gone">
<!-- Day buttons are put here programatically -->
</LinearLayout>
- <RelativeLayout
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="64dp"
- android:layout_marginEnd="16dp"
- android:layout_marginStart="10dp"
- android:gravity="center_vertical">
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:orientation="horizontal" >
<TextView
android:id="@+id/choose_ringtone"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_width="0dip"
+ android:layout_height="48dip"
+ android:layout_weight="1"
android:layout_alignParentStart="true"
- android:layout_marginEnd="16dp"
- android:layout_toLeftOf="@+id/vibrate_onoff"
- android:layout_toStartOf="@+id/vibrate_onoff"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
+ android:paddingStart="4dip"
android:drawablePadding="16dp"
android:drawableStart="@drawable/ic_ringtone"
android:ellipsize="marquee"
@@ -125,21 +120,20 @@
<CheckBox
android:id="@+id/vibrate_onoff"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="48dip"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:includeFontPadding="false"
android:text="@string/alarm_vibrate"
android:paddingStart="16dip"
android:textSize="16sp"
- android:textColor="@color/clock_gray" />
- </RelativeLayout>
+ android:textColor="@color/white" />
+ </LinearLayout>
<TextView
android:id="@+id/edit_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginEnd="16dp"
android:ellipsize="end"
android:hint="@string/label"
android:paddingBottom="12dp"
@@ -150,14 +144,13 @@
android:paddingTop="12dp"
android:singleLine="true"
android:textSize="16sp"
- android:textColor="@color/clock_gray" />
+ android:textColor="@color/white" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/hairline_height"
android:layout_marginLeft="12dip"
android:layout_marginRight="12dip"
- android:layout_marginBottom="12dip"
android:background="@color/hairline" />
</LinearLayout>
@@ -165,19 +158,21 @@
<FrameLayout
android:id="@+id/collapse_expand"
android:layout_width="match_parent"
- android:layout_height="@dimen/collapse_expand_height"
- android:layout_gravity="bottom"
- android:contentDescription="@string/collapse_alarm">
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom">
- <ImageView
+ <ImageButton
android:id="@+id/delete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="@dimen/touch_target_min_size"
+ android:layout_height="@dimen/touch_target_min_size"
+ android:layout_gravity="center_vertical|start"
+ android:layout_marginTop="@dimen/alarm_clock_vertical_margin"
+ android:layout_marginBottom="@dimen/alarm_clock_vertical_margin"
android:layout_marginStart="4dip"
- android:layout_gravity="start|center_vertical"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/delete_alarm"
- android:padding="8dp"
- android:src="@drawable/ic_delete" />
+ android:scaleType="center"
+ android:src="@drawable/ic_delete_small" />
<View
android:id="@+id/hairline"
@@ -192,8 +187,7 @@
android:id="@+id/summary"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginEnd="104dp"
- android:layout_marginStart="16dp"
+ android:layout_marginBottom="@dimen/alarm_clock_vertical_margin"
android:gravity="center_vertical">
<TextView
@@ -202,6 +196,7 @@
android:layout_height="wrap_content"
android:ellipsize="none"
android:singleLine="true"
+ android:paddingEnd="4dip"
android:textSize="16sp"
android:textColor="@color/clock_gray" />
@@ -229,17 +224,15 @@
<ImageView
android:id="@+id/arrow"
- android:layout_width="48dp"
- android:layout_height="32dp"
- android:layout_gravity="end|center_vertical"
+ android:layout_width="@dimen/touch_target_min_size"
+ android:layout_height="@dimen/touch_target_min_size"
+ android:layout_gravity="center_vertical|end"
+ android:layout_marginTop="@dimen/alarm_clock_vertical_margin"
+ android:layout_marginBottom="@dimen/alarm_clock_vertical_margin"
android:contentDescription="@string/expand_alarm"
+ android:scaleType="center"
android:src="@drawable/ic_expand_down" />
</FrameLayout>
</FrameLayout>
- <View
- android:id="@+id/alarm_footer_filler"
- android:layout_width="match_parent"
- android:layout_height="@dimen/button_footer_height"
- android:visibility="gone" />
</LinearLayout>
diff --git a/res/layout/cities_activity.xml b/res/layout/cities_activity.xml
index b1f770a..49822a5 100644
--- a/res/layout/cities_activity.xml
+++ b/res/layout/cities_activity.xml
@@ -17,6 +17,7 @@
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cities_list"
+ android:theme="@style/CitiesListViewTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
diff --git a/res/layout/city_list_header.xml b/res/layout/city_list_header.xml
index fe3368f..b0658a1 100644
--- a/res/layout/city_list_header.xml
+++ b/res/layout/city_list_header.xml
@@ -25,5 +25,4 @@
android:gravity="center"
android:textColor="@color/clock_white"
android:textSize="20sp"
- android:textStyle="bold"
android:text="@string/selected_cities_label" />
diff --git a/res/layout/city_list_item.xml b/res/layout/city_list_item.xml
index 4091647..2c143b4 100644
--- a/res/layout/city_list_item.xml
+++ b/res/layout/city_list_item.xml
@@ -37,20 +37,18 @@
android:clickable="false" />
<TextView
android:id="@+id/city_name"
- style="@style/city_name"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingStart="16dip"
android:paddingEnd="10dip"
- android:textColor="@color/clock_white"
android:ellipsize="end"
- android:singleLine="true" />
+ android:singleLine="true"
+ android:textAppearance="@style/PrimaryLabelTextAppearance" />
<TextView
android:id="@+id/city_time"
- style="@style/city_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dip"
- android:textColor="@color/clock_gray" />
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
</LinearLayout>
diff --git a/res/layout/clock_fragment.xml b/res/layout/clock_fragment.xml
index 2e5052b..38e4b9c 100644
--- a/res/layout/clock_fragment.xml
+++ b/res/layout/clock_fragment.xml
@@ -22,18 +22,20 @@
android:id="@+id/cities"
android:clickable="false"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:paddingStart="@dimen/clock_side_padding"
+ android:paddingEnd="@dimen/clock_side_padding_reduced" />
<FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
+ android:layout_width="@dimen/footer_button_size"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_gravity="bottom|end"
android:layout_marginBottom="@dimen/footer_button_layout_margin" >
<ImageButton
android:id="@+id/menu_button"
android:contentDescription="@string/button_menu"
style="?android:attr/actionOverflowButtonStyle"
android:layout_gravity="end|center_vertical"
- android:layout_width="@dimen/footer_button_size"
- android:layout_height="@dimen/footer_button_size" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
</FrameLayout>
</FrameLayout>
diff --git a/res/layout/day_button.xml b/res/layout/day_button.xml
index ccf679a..9328e14 100644
--- a/res/layout/day_button.xml
+++ b/res/layout/day_button.xml
@@ -17,11 +17,11 @@
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
- style="@style/body"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
android:background="@drawable/toggle_circle"
android:gravity="center"
android:minWidth="0dp"
- android:minHeight="0dp" />
+ android:minHeight="0dp"
+ android:textSize="@dimen/day_button_font_size" />
diff --git a/res/layout/desk_clock.xml b/res/layout/desk_clock.xml
index aa55077..13cb783 100644
--- a/res/layout/desk_clock.xml
+++ b/res/layout/desk_clock.xml
@@ -25,12 +25,64 @@
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- <ImageButton
- android:id="@+id/fab"
- android:layout_width="@dimen/footer_button_size"
- android:layout_height="@dimen/footer_button_size"
- android:layout_gravity="center_horizontal|bottom"
- android:layout_margin="@dimen/footer_button_layout_margin"
- android:background="@drawable/floating_action_button"/>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:orientation="horizontal">
+
+ <FrameLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="start|center_vertical"
+ android:layout_weight="1">
+
+ <ImageButton
+ android:id="@+id/left_button"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_horizontal"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
+
+ <FrameLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1">
+
+ <ImageButton
+ android:id="@+id/fab"
+ android:layout_width="@dimen/footer_button_size"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_margin="@dimen/footer_button_layout_margin"
+ android:layout_gravity="center_horizontal"
+ android:background="@drawable/floating_action_button"
+ android:elevation="8dip"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
+
+ <FrameLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="end|center_vertical"
+ android:layout_weight="1">
+
+ <ImageButton
+ android:id="@+id/right_button"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_horizontal"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
+
+ </LinearLayout>
</FrameLayout>
diff --git a/res/layout/lap_view.xml b/res/layout/lap_view.xml
index 44a41f1..5130c11 100644
--- a/res/layout/lap_view.xml
+++ b/res/layout/lap_view.xml
@@ -16,41 +16,38 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_marginTop="4dip"
- android:layout_marginBottom="4dip"
- android:gravity="center"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:layoutDirection="ltr"
android:paddingTop="@dimen/body_font_padding"
android:paddingBottom="@dimen/body_font_padding"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:gravity="center"
+ android:orientation="horizontal">
+
<TextView
+ android:id="@+id/lap_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/clock_gray"
- android:layout_marginRight="@dimen/sw_item_space"
android:layout_marginEnd="@dimen/sw_item_space"
android:gravity="start"
- style="@style/body"
android:textAllCaps="false"
- android:id="@+id/lap_number" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="@dimen/sw_item_space"
- android:layout_marginEnd="@dimen/sw_item_space"
- android:textColor="@color/clock_gray"
- android:gravity="end"
- style="@style/body"
- android:textAllCaps="false"
- android:id="@+id/lap_time" />
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:textColor="@color/clock_gray"
- android:gravity="end"
- style="@style/body"
- android:textAllCaps="false"
- android:id="@+id/lap_total" />
-</LinearLayout>
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
+ <TextView
+ android:id="@+id/lap_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/sw_item_space"
+ android:gravity="end"
+ android:textAllCaps="false"
+ android:textAppearance="@style/PrimaryLabelTextAppearance" />
+
+ <TextView
+ android:id="@+id/lap_total"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:gravity="end"
+ android:textAllCaps="false"
+ android:textAppearance="@style/PrimaryLabelTextAppearance" />
+
+</LinearLayout>
diff --git a/res/layout/main_clock_frame.xml b/res/layout/main_clock_frame.xml
index c766d50..9805a8f 100644
--- a/res/layout/main_clock_frame.xml
+++ b/res/layout/main_clock_frame.xml
@@ -18,7 +18,8 @@
android:id="@+id/main_clock_frame"
android:orientation="vertical"
android:layout_width="match_parent"
- android:layout_height="wrap_content" >
+ android:layout_height="wrap_content"
+ android:paddingEnd="@dimen/clock_fragment_end_padding" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -43,12 +44,9 @@
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/top_text_spacing_digital"
- android:layout_marginBottom="@dimen/bottom_text_spacing_digital"
android:singleLine="true"
android:ellipsize="none"
style="@style/big_thin"
- android:textSize="@dimen/digital_main_clock_text_size"
android:textColor="@color/clock_white" />
</FrameLayout>
@@ -59,32 +57,24 @@
<TextView android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/clock_white"
- style="@style/label"
- android:textSize="@dimen/bottom_text_size"
android:gravity="center"
- />
+ android:textAppearance="@style/PrimaryLabelTextAppearance" />
<TextView android:id="@+id/nextAlarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_marginLeft="8dip"
+ android:layout_marginStart="8dip"
android:drawablePadding="2dip"
android:drawableLeft="@drawable/ic_alarm_small"
android:drawableStart="@drawable/ic_alarm_small"
- android:textColor="@color/clock_gray"
- style="@style/label"
- android:textSize="@dimen/bottom_text_size"
- android:layout_marginLeft="8dip"
- android:layout_marginStart="8dip"
android:gravity="center"
- />
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
</LinearLayout>
<View
android:id="@+id/hairline"
android:layout_width="match_parent"
android:layout_height="@dimen/hairline_height"
- android:layout_marginLeft="16dip"
- android:layout_marginRight="16dip"
android:layout_marginTop="24dip"
android:background="@color/hairline" />
</LinearLayout>
diff --git a/res/layout/popup_window_item.xml b/res/layout/popup_window_item.xml
deleted file mode 100644
index f7f77cf..0000000
--- a/res/layout/popup_window_item.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2012 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/list_item"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingBottom="10dip"
- android:paddingLeft="16dip"
- android:paddingStart="16dip"
- android:paddingRight="16dip"
- android:paddingEnd="16dip"
- android:paddingTop="10dip" >
-
- <ImageView
- android:id="@+id/icon"
- android:layout_width="32dip"
- android:layout_height="32dip"
- android:layout_gravity="center_vertical"
- android:layout_marginRight="8dip"
- android:layout_marginEnd="8dip"
- android:duplicateParentState="true" />
-
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:duplicateParentState="true"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceLargePopupMenu" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/stopwatch_fragment.xml b/res/layout/stopwatch_fragment.xml
index 12df84b..32b78de 100644
--- a/res/layout/stopwatch_fragment.xml
+++ b/res/layout/stopwatch_fragment.xml
@@ -46,45 +46,6 @@
android:layout_height="match_parent"
android:background="@null" />
- <ImageButton
- android:id="@+id/stopwatch_left_button"
- style="@style/button"
- android:layout_width="56dip"
- android:layout_height="56dip"
- android:layout_gravity="bottom|start"
- android:background="@null"
- android:contentDescription="@string/sw_lap_button"
- android:src="@drawable/ic_lap" />
-
- <TextView
- android:id="@+id/stopwatch_stop"
- style="@style/bold_button"
- android:visibility="invisible"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="bottom|center_horizontal"
- android:gravity="center"
- android:layout_marginBottom="0dip"
- android:contentDescription="@string/timer_stop"
- android:paddingLeft="10dip"
- android:paddingStart="10dip"
- android:paddingRight="10dip"
- android:paddingEnd="10dip"
- android:paddingBottom="5dip"
- android:paddingTop="5dip"
- android:textColor="@color/clock_white"
- android:text="@string/timer_stop"
- android:focusable="true" />
-
- <ImageButton
- android:id="@+id/stopwatch_share_button"
- style="@style/button"
- android:layout_width="56dip"
- android:layout_height="56dip"
- android:layout_gravity="bottom|end"
- android:contentDescription="@string/sw_share_button"
- android:background="@null"
- android:src="@drawable/ic_share" />
</com.android.deskclock.CircleButtonsLayout>
<Space
@@ -101,6 +62,8 @@
android:layout_height="0dip" />
<Space
+ android:id="@+id/bottom_space"
+ android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="@dimen/footer_button_size"
android:layout_margin="@dimen/footer_button_layout_margin" />
diff --git a/res/layout/stopwatch_notif_collapsed.xml b/res/layout/stopwatch_notif_collapsed.xml
index 3d1d71c..fd6d4d1 100644
--- a/res/layout/stopwatch_notif_collapsed.xml
+++ b/res/layout/stopwatch_notif_collapsed.xml
@@ -22,22 +22,17 @@
android:layout_height="64dp"
internal:layout_maxHeight="64dp"
internal:layout_minHeight="64dp"
- android:background="@drawable/notification_bg" >
+ android:background="@drawable/notification_background" >
- <ImageView
- android:id="@+id/notification_icon"
- android:layout_width="@dimen/notification_large_icon_width"
- android:layout_height="@dimen/notification_large_icon_height"
- android:background="@drawable/notification_template_icon_bg"
- android:scaleType="center" />
+ <include layout="@layout/stopwatch_notification_icon"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
- android:layout_marginStart="@dimen/notification_large_icon_width"
+ android:layout_marginStart="@dimen/notification_icon_size"
android:gravity="center"
- android:minHeight="@dimen/notification_large_icon_height"
+ android:minHeight="@dimen/notification_icon_size"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingEnd="8dp"
diff --git a/res/layout/stopwatch_notif_expanded.xml b/res/layout/stopwatch_notif_expanded.xml
index b623cb4..4199118 100644
--- a/res/layout/stopwatch_notif_expanded.xml
+++ b/res/layout/stopwatch_notif_expanded.xml
@@ -18,7 +18,6 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/black"
android:orientation="vertical" >
<FrameLayout
@@ -29,22 +28,17 @@
android:layout_height="64dp"
internal:layout_maxHeight="64dp"
internal:layout_minHeight="64dp"
- android:background="@drawable/notification_bg" >
+ android:background="@drawable/notification_background" >
- <ImageView
- android:id="@+id/notification_icon"
- android:layout_width="@dimen/notification_large_icon_width"
- android:layout_height="@dimen/notification_large_icon_height"
- android:background="@drawable/notification_template_icon_bg"
- android:scaleType="center" />
+ <include layout="@layout/stopwatch_notification_icon"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
- android:layout_marginStart="@dimen/notification_large_icon_width"
+ android:layout_marginStart="@dimen/notification_icon_size"
android:gravity="center"
- android:minHeight="@dimen/notification_large_icon_height"
+ android:minHeight="@dimen/notification_icon_size"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingEnd="8dp"
@@ -82,49 +76,47 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="1dip"
- android:background="#28ffffff" />
+ android:background="@color/black_16p"
+ android:contentDescription="@null" />
<FrameLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/notification_bg_normal" >
+ android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/notification_large_icon_width"
- android:divider="?android:attr/listDivider"
+ android:layout_marginStart="@dimen/notification_icon_size"
+ android:divider="@drawable/divider"
android:dividerPadding="12dp"
android:orientation="horizontal"
android:showDividers="middle" >
<TextView
android:id="@+id/swn_left_button"
- style="?android:attr/borderlessButtonStyle"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
+ android:background="@drawable/notification_background"
android:drawablePadding="8dp"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:paddingStart="8dp"
android:singleLine="true"
- android:textColor="#ccc"
- android:textSize="14dp" />
+ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" />
<TextView
android:id="@+id/swn_right_button"
- style="?android:attr/borderlessButtonStyle"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
+ android:background="@drawable/notification_background"
android:drawablePadding="8dp"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:paddingStart="8dp"
android:singleLine="true"
- android:textColor="#ccc"
- android:textSize="14dp" />
+ android:textAppearance="@style/TextAppearance.StatusBar.EventContent" />
</LinearLayout>
</FrameLayout>
diff --git a/res/layout/stopwatch_notification_icon.xml b/res/layout/stopwatch_notification_icon.xml
new file mode 100644
index 0000000..3d09a0d
--- /dev/null
+++ b/res/layout/stopwatch_notification_icon.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="@dimen/notification_icon_size"
+ android:layout_height="@dimen/notification_icon_size">
+
+ <ImageView
+ android:id="@+id/notification_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:background="@drawable/bg_gray_circle"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/drawable/snooze_circle.xml b/res/layout/stopwatch_spacer.xml
similarity index 74%
copy from res/drawable/snooze_circle.xml
copy to res/layout/stopwatch_spacer.xml
index 385c5fd..31b648b 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/layout/stopwatch_spacer.xml
@@ -14,10 +14,7 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<Space
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/stopwatch_list_bottom_spacing" />
diff --git a/res/layout/time_setup_view.xml b/res/layout/time_setup_view.xml
index 25afac5..9a413b2 100644
--- a/res/layout/time_setup_view.xml
+++ b/res/layout/time_setup_view.xml
@@ -66,22 +66,6 @@
android:id="@+id/fourth"
layout="@layout/three_keys_view" />
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="@dimen/footer_button_size"
- android:layout_margin="@dimen/footer_button_layout_margin"
- android:layout_gravity="bottom">
-
- <ImageButton
- android:id="@+id/timer_cancel"
- style="@style/button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|center_vertical"
- android:gravity="center"
- android:background="@color/transparent"
- android:src="@drawable/ic_delete" />
-
- </FrameLayout>
+ <include layout="@layout/timer_cancel_button" />
</LinearLayout>
diff --git a/res/layout/timer_cancel_button.xml b/res/layout/timer_cancel_button.xml
new file mode 100644
index 0000000..821150a
--- /dev/null
+++ b/res/layout/timer_cancel_button.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_gravity="bottom"
+ android:orientation="horizontal">
+
+ <ImageButton
+ android:id="@+id/timer_cancel"
+ style="@style/button"
+ android:layout_width="0dip"
+ android:layout_weight="1"
+ android:layout_height="match_parent"
+ android:paddingEnd="20dip"
+ android:contentDescription="@string/timer_cancel"
+ android:src="@drawable/ic_cancel" />
+
+ <Space
+ android:layout_width="0dip"
+ android:layout_weight="2"
+ android:layout_height="match_parent">
+ </Space>
+
+</LinearLayout>
diff --git a/res/layout/timer_fragment.xml b/res/layout/timer_fragment.xml
index cbf4665..9b51969 100644
--- a/res/layout/timer_fragment.xml
+++ b/res/layout/timer_fragment.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
+<!-- Copyright (C) 2014 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.
@@ -13,40 +13,16 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/timers_list_page"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
- android:paddingTop="?android:attr/actionBarSize" >
+ android:paddingTop="?android:attr/actionBarSize">
- <FrameLayout
- android:id="@+id/timers_list_page"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <com.android.deskclock.widget.sgv.StaggeredGridView
- android:id="@+id/timers_list"
- android:divider="@null"
- android:dividerHeight="@dimen/timer_divider_height"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="88dp"/>
- <FrameLayout
- android:id="@+id/timer_footer"
- android:layout_width="match_parent"
- android:layout_height="72dp"
- android:layout_gravity="bottom" >
- </FrameLayout>
- </FrameLayout>
+ <include layout="@layout/timer_timer_view"/>
-
- <com.android.deskclock.TimerSetupView
- android:id="@+id/timer_setup"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_marginLeft="16dip"
- android:layout_marginStart="16dip"
- android:layout_marginRight="16dip"
- android:layout_marginEnd="16dip"/>
+ <include layout="@layout/timer_setup_view"/>
</FrameLayout>
diff --git a/res/layout/timer_full_screen_fragment.xml b/res/layout/timer_full_screen_fragment.xml
new file mode 100644
index 0000000..5962267
--- /dev/null
+++ b/res/layout/timer_full_screen_fragment.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingTop="?android:attr/actionBarSize">
+
+ <FrameLayout
+ android:id="@+id/timers_list_page"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <com.android.deskclock.widget.sgv.StaggeredGridView
+ android:id="@+id/timers_list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:divider="@null"
+ android:dividerHeight="@dimen/timer_divider_height"
+ android:paddingBottom="88dp"/>
+
+ <ImageButton
+ android:id="@+id/fab"
+ android:layout_width="@dimen/footer_button_size"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_gravity="center_horizontal|bottom"
+ android:layout_margin="@dimen/footer_button_layout_margin"
+ android:background="@drawable/floating_action_button"
+ android:src="@drawable/ic_fab_stop"
+ android:contentDescription="@string/timer_stop" />
+ </FrameLayout>
+
+ <com.android.deskclock.TimerSetupView
+ android:id="@+id/timer_setup"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginEnd="16dip"
+ android:layout_marginStart="16dip"/>
+
+</FrameLayout>
diff --git a/res/layout/timer_list_item.xml b/res/layout/timer_list_item.xml
index 528e29e..006e94d 100644
--- a/res/layout/timer_list_item.xml
+++ b/res/layout/timer_list_item.xml
@@ -15,106 +15,76 @@
-->
<!-- timer item in the list of active timers -->
-<LinearLayout
+<com.android.deskclock.timer.TimerListItem
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:gravity="center_vertical"
+ android:paddingBottom="@dimen/timer_list_padding_bottom"
android:orientation="vertical">
<com.android.deskclock.CircleButtonsLayout
- android:id="@+id/timer_circle"
- android:layout_width="@dimen/circle_size"
- android:layout_height="@dimen/circle_size"
- android:layout_gravity="center"
- android:layout_marginLeft="@dimen/timer_circle_margin"
- android:layout_marginStart="@dimen/timer_circle_margin"
- android:layout_marginRight="@dimen/timer_circle_margin"
- android:layout_marginEnd="@dimen/timer_circle_margin">
+ android:id="@+id/timer_circle"
+ android:layout_width="@dimen/circle_size"
+ android:layout_height="@dimen/circle_size"
+ android:layout_gravity="center"
+ android:layout_marginEnd="@dimen/timer_circle_margin"
+ android:layout_marginStart="@dimen/timer_circle_margin">
<com.android.deskclock.CircleTimerView
- android:id="@+id/timer_time"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
+ android:id="@+id/timer_time"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
<com.android.deskclock.timer.CountingTimerView
- android:id="@+id/timer_time_text"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
+ android:id="@+id/timer_time_text"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
<FrameLayout
- android:id="@+id/timer_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="0dip"
- android:layout_gravity="top|center_horizontal"
- android:enabled="true"
- android:clickable="true"
- android:contentDescription="@string/label"
- >
+ android:id="@+id/timer_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="top|center_horizontal"
+ android:layout_marginTop="0dip"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/label">
<TextView
- android:id="@+id/timer_label_text"
- android:layout_height="56dip"
- android:layout_width="wrap_content"
- android:background="@null"
- android:layout_gravity="center_horizontal"
- android:gravity="center"
- style="@style/timer_label"
- android:enabled="false"
- android:clickable="false"
- android:singleLine="true"
- android:ellipsize="end"
- android:text="@string/label_unlabeled"/>
+ android:id="@+id/timer_label_text"
+ android:layout_width="wrap_content"
+ android:layout_height="56dip"
+ android:layout_gravity="center_horizontal"
+ android:ellipsize="end"
+ android:enabled="false"
+ android:gravity="center"
+ android:singleLine="true"
+ android:text="@string/label_unlabeled"
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
- <ImageButton
- android:id="@+id/timer_label_icon"
- android:layout_height="56dip"
- android:layout_width="56dip"
- android:background="@null"
- android:layout_gravity="center_horizontal"
- android:enabled="false"
- android:clickable="false"
- android:contentDescription="@string/label"
- style="@style/button"
- android:src="@drawable/ic_label"/>
+ <TextView
+ android:id="@+id/timer_label_placeholder"
+ android:layout_width="wrap_content"
+ android:layout_height="56dip"
+ android:layout_gravity="center_horizontal"
+ android:contentDescription="@string/label"
+ android:enabled="false"
+ android:src="@drawable/ic_label"
+ android:text="@string/label"
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
</FrameLayout>
<ImageButton
- android:id="@+id/timer_plus_one"
- android:src="@drawable/ic_plusone"
- android:background="@null"
- android:layout_width="56dip"
- android:layout_gravity="bottom|start"
- style="@style/button"
- android:contentDescription="@string/timer_plus_one"
- android:layout_height="56dip"/>
+ android:id="@+id/reset_add"
+ android:layout_width="50dip"
+ android:layout_height="50dip"
+ android:layout_gravity="bottom|center_horizontal"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:contentDescription="@string/timer_plus_one"
+ android:gravity="center"
+ android:src="@drawable/ic_plusone"/>
- <TextView
- android:id="@+id/timer_stop"
- android:layout_gravity="bottom|center_horizontal"
- android:gravity="center"
- android:layout_marginBottom="0dip"
- android:paddingLeft="10dip"
- android:paddingStart="10dip"
- android:paddingRight="10dip"
- android:paddingEnd="10dip"
- android:paddingBottom="5dip"
- android:paddingTop="5dip"
- android:text="@string/timer_stop"
- android:layout_width="wrap_content"
- style="@style/bold_button"
- android:contentDescription="@string/timer_stop"
- android:layout_height="wrap_content"/>
-
- <ImageButton
- android:id="@+id/timer_delete"
- android:src="@drawable/ic_delete"
- android:background="@null"
- android:layout_gravity="bottom|end"
- android:layout_width="56dip"
- android:contentDescription="@string/timer_delete"
- style="@style/button"
- android:layout_height="56dip"/>
</com.android.deskclock.CircleButtonsLayout>
-</LinearLayout>
+</com.android.deskclock.timer.TimerListItem>
diff --git a/res/drawable/snooze_circle.xml b/res/layout/timer_setup_view.xml
similarity index 72%
copy from res/drawable/snooze_circle.xml
copy to res/layout/timer_setup_view.xml
index 385c5fd..6c437b4 100644
--- a/res/drawable/snooze_circle.xml
+++ b/res/layout/timer_setup_view.xml
@@ -14,10 +14,9 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="oval">
- <solid android:color="@color/hot_pink"/>
- <size
- android:width="80dip"
- android:height="80dip" />
-</shape>
\ No newline at end of file
+<com.android.deskclock.TimerSetupView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/timer_setup"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="16dip" />
diff --git a/res/layout/timer_timer_view.xml b/res/layout/timer_timer_view.xml
new file mode 100644
index 0000000..440e36a
--- /dev/null
+++ b/res/layout/timer_timer_view.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<FrameLayout
+ android:id="@+id/timer_view"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/page_indicators"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_gravity="end|center_vertical"
+ android:layout_marginEnd="24dip"
+ android:gravity="center"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@+id/page_indicator0"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+
+ <ImageView
+ android:id="@+id/page_indicator1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null" />
+
+ <ImageView
+ android:id="@+id/page_indicator2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null" />
+
+ <ImageView
+ android:id="@+id/page_indicator3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/footer_button_size"
+ android:layout_marginTop="@dimen/footer_button_layout_margin"
+ android:layout_marginBottom="@dimen/footer_button_layout_margin" />
+
+ </LinearLayout>
+
+ <com.android.deskclock.VerticalViewPager
+ android:id="@+id/vertical_view_pager"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</FrameLayout>
+
+
diff --git a/res/layout/world_clock_item.xml b/res/layout/world_clock_item.xml
index 8fc2f74..10b9ef0 100644
--- a/res/layout/world_clock_item.xml
+++ b/res/layout/world_clock_item.xml
@@ -18,8 +18,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingLeft="@dimen/medium_space_top"
- android:paddingRight="@dimen/medium_space_top"
android:paddingTop="@dimen/medium_space_top">
<com.android.deskclock.widget.EllipsizeLayout
@@ -44,7 +42,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/medium_light"
- android:textSize="@dimen/digital_world_clock_text_size"
android:textColor="@color/clock_white"
android:baselineAligned="true"
android:layout_gravity="center"
diff --git a/res/layout/world_clock_label.xml b/res/layout/world_clock_label.xml
index 95467b8..360cad1 100644
--- a/res/layout/world_clock_label.xml
+++ b/res/layout/world_clock_label.xml
@@ -17,23 +17,21 @@
<TextView
android:id="@+id/city_name"
- style="@style/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
- android:textColor="@color/clock_white"/>
+ android:textAppearance="@style/PrimaryLabelTextAppearance" />
<TextView
android:id="@+id/city_day"
- style="@style/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/style_label_space"
android:layout_marginStart="@dimen/style_label_space"
android:ellipsize="none"
android:singleLine="true"
- android:textColor="@color/clock_gray"/>
+ android:textAppearance="@style/SecondaryLabelTextAppearance" />
</merge>
diff --git a/res/layout/world_clock_list_item.xml b/res/layout/world_clock_list_item.xml
index a2cdcdc..49519df 100644
--- a/res/layout/world_clock_list_item.xml
+++ b/res/layout/world_clock_list_item.xml
@@ -22,6 +22,7 @@
android:layout_marginEnd="@dimen/world_clock_margin"
android:layout_marginLeft="@dimen/world_clock_margin"
android:layout_marginStart="@dimen/world_clock_margin"
+ android:paddingEnd="@dimen/clock_fragment_end_padding"
android:orientation="horizontal">
<include layout="@layout/world_clock_item"
diff --git a/res/values-af/array.xml b/res/values-af/array.xml
index 9e9a54b..9fd808b 100644
--- a/res/values-af/array.xml
+++ b/res/values-af/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index e7a5c6a..9e6173e 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Horlosie"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Wekkers"</string>
<string name="add_alarm" msgid="5976616107390962899">"Voeg wekker by"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"VOLGENDE WEKKERS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Skermhorlosie"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Redigeer wekker"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Vee wekker uit"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Alarm se luitoon"</string>
<string name="ringtone" msgid="9110746249688559579">"Luitoon"</string>
<string name="time" msgid="8067216534232296518">"Tyd"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Môre"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Vandag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Word wakker!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Af"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Maak toe"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Maak nou toe"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Wekker gemis"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Gesluimer"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> minute"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Wekker af"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Sluimer"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Sluimer tans vir 1 minuut."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minute"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nooit"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minute"</item>
- <item msgid="3663730603519549990">"10 minute"</item>
- <item msgid="1385481095199681200">"15 minute"</item>
- <item msgid="420479821767342125">"20 minute"</item>
- <item msgid="2107936130151066746">"25 minute"</item>
- <item msgid="7219791437023378544">"30 minute"</item>
+ <item msgid="3024545954917711306">"1 minuut"</item>
+ <item msgid="5431906692406316549">"5 minute"</item>
+ <item msgid="7742728812068919959">"10 minute"</item>
+ <item msgid="2855948657259647629">"15 minute"</item>
+ <item msgid="6330196381284475079">"20 minute"</item>
+ <item msgid="7809240121716151904">"25 minute"</item>
<item msgid="4278641338024561333">"Nooit"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Klaar"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Horlosieskerm"</string>
<string name="label_description" msgid="8736179296142915727">"Etiket"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Luitoon"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Weerinligting is nie nou beskikbaar nie."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Klankterugspeel-diens vir wekkers word in Clock gestel."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Laai tans luitoon…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Tydhouer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Horlosie"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stophorlosie"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Wekkers"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Voeg wekker by"</string>
<string name="button_cities" msgid="4555761857494501363">"Stede"</string>
<string name="button_menu" msgid="6050484561842120282">"Meer opsies"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Instellings"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Kanselleer"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tyd is op"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Tydhouer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maksimum van 4 aftellers"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Jy\'s \'n regte spoedduiwel."</item>
<item msgid="6332879039890727169">"Geniet die vrugte van jou arbeid."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Tuis"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Stede"</string>
- <string name="clock_settings" msgid="8887845806151785393">"HORLOSIE"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Horlosie"</string>
<string name="clock_style" msgid="2265011060429742344">"Styl"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analoog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"WEKKERS"</string>
- <string name="see_all" msgid="775983396630163739">"Sien almal..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Wekkers"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stophorlosie-diens om die kennisgewing te laat loop"</string>
<string name="swn_stopped" msgid="783124901663086172">"Gestop"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Gly regs om toe te maak"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Gly links om te sluimer"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Gly op om toe te maak"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Gly af om te sluimer"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Swiep na regs om toe te maak"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Swiep na links om te laat sluimer"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Afteller gestop"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> aftellers gestop"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Raak om jou aftellers te sien"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Moet hierdie stad verwyder word?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitale horlosie"</string>
<string name="no_alarms" msgid="6429431324842022917">"Geen wekkers nie"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Geen wekkers gestel nie"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"GEEN KOMENDE WEKKERS NIE"</string>
</resources>
diff --git a/res/values-am/array.xml b/res/values-am/array.xml
index 5b5d82f..e89c8a7 100644
--- a/res/values-am/array.xml
+++ b/res/values-am/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ቴጉሲጋልፓ"</item>
<item msgid="7087691675228926801">"ፓራማሪቦ"</item>
<item msgid="478384295484578701">"ኩይቶ"</item>
+ <item msgid="4517870253399384206">"ልዩብልያና"</item>
</string-array>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 110f04e..0c8c2e5 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ሰዓት"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"ማንቂያ ደወሎች"</string>
<string name="add_alarm" msgid="5976616107390962899">"የማንቂያ ደወልአክል"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ቀጣይ ማንቂያ ደወሎች"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"የጠረጴዛ ሰዓት"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ማንቂያ ደወል አርትዕ"</string>
<string name="delete_alarm" msgid="3457780990646206817">"ማንቂያ ደወል ሰርዝ"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"የማንቂያ ደውል ቅላጼ"</string>
<string name="ringtone" msgid="9110746249688559579">"የደወል ቅላጼ"</string>
<string name="time" msgid="8067216534232296518">"ጊዜ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"ነገ"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ዛሬ"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ይንቁ!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ጠፍቷል"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"አጥፋ"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"አሁን አጥፋ"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"ያመለጠ ማንቂያ"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"አንቀላፍቷል"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 ደቂቃ"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> ደቂቃ"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"ማንቂያ ጠፍቷል"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"አሸልብ"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ለ1 ደቂቃ በማሸለብ ላይ"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> ደቂቃዎች"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"በጭራሽ"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 ደቂቃዎች"</item>
- <item msgid="3663730603519549990">"10 ደቂቃዎች"</item>
- <item msgid="1385481095199681200">"15 ደቂቃዎች"</item>
- <item msgid="420479821767342125">"20 ደቂቃዎች"</item>
- <item msgid="2107936130151066746">"25 ደቂቃዎች"</item>
- <item msgid="7219791437023378544">"30 ደቂቃዎች"</item>
+ <item msgid="3024545954917711306">"1 ደቂቃ"</item>
+ <item msgid="5431906692406316549">"5 ደቂቃዎች"</item>
+ <item msgid="7742728812068919959">"10 ደቂቃዎች"</item>
+ <item msgid="2855948657259647629">"15 ደቂቃዎች"</item>
+ <item msgid="6330196381284475079">"20 ደቂቃዎች"</item>
+ <item msgid="7809240121716151904">"25 ደቂቃዎች"</item>
<item msgid="4278641338024561333">"በጭራሽ"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"ተከናውኗል"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"ሰዓት ማሳያ"</string>
<string name="label_description" msgid="8736179296142915727">"መለያ ስም"</string>
<string name="ringtone_description" msgid="7580922112921069925">"የደወል ቅላጼ"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"የአየር ጠባይ መረጃ አሁን አይገኝም፡፡"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"በጠረጴዛ ሰዓት ለተዘጋጁ ማንቂያ ደውሎች የዳግም አጫዋት አገልግሎት ድምፅ አሰማ።"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"የስልክ ጥሪ ድምፅ በመስቀል ላይ...."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"ሰዓት ቆጣሪ"</string>
<string name="menu_clock" msgid="5612760670606829805">"ሰዓት"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"የሩጫ ሰዓት"</string>
- <string name="button_alarms" msgid="8016103479617020265">"ማንቂያዎች"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"የማንቂያ ደውል አክል"</string>
<string name="button_cities" msgid="4555761857494501363">"ከተማዎች"</string>
<string name="button_menu" msgid="6050484561842120282">"ተጨማሪ አማራጮች"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"ቅንብሮች"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"ይቅር"</string>
<string name="timer_times_up" msgid="9190440395938519009">"ጊዜው አብቅቷል"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"የሰዓት ቆጣሪ"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 ጊዜ መቁጠሪያዎች ቢበዛ"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"ፈጣን ነዎት።"</item>
<item msgid="6332879039890727169">"በልፋትዎ ውጤት ይደሰቱ።"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"መነሻ"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ከተማዎች"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ሰዓት"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ሰዓት"</string>
<string name="clock_style" msgid="2265011060429742344">"ቅጥ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"አናሎግ"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"ቶንጋ"</item>
<item msgid="5176858645450908751">"ጃካርታ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ማንቂያ ደወሎች"</string>
- <string name="see_all" msgid="775983396630163739">"ሁሉንም ይመልከቱ…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"ማንቂያዎች"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"የሩጫ ሰዓት አገልግሎት ማሳወቂያውን ሊያሂድ ነው።"</string>
<string name="swn_stopped" msgid="783124901663086172">"ቆሟል"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"ለማሰናበት ወደ ቀኝ ያንሸራትቱ"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"ለማሸለብ ወደ ግራ ያንሸራትቱ"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"ለማሰናበት ወደ ላይ ያንሸራትቱ"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"ለአሸልብ ወደ ታች ያንሸራትቱ"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"ለማሰናበት ወደ ቀኝ ያንሸራትቱ"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"ለማሸለብ ወደ ግራ ያንሸራትቱ"</string>
<string name="timer_stopped" msgid="2730331837832462008">"የሰዓት ቆጣሪ ቆሟል"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> የሰዓት ቆጣሪዎች ቆመዋል"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"የሰዓት ቆጣሪዎችዎን ለማየት ይንኩ"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ይህ ከተማ ይወገድ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ዲጂታል ሰዓት"</string>
<string name="no_alarms" msgid="6429431324842022917">"ማንቂያ የለም"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"ምንም ማንቂያ አልተዘጋጀም"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ምንም በቅርብ ጊዜ የሚሆኑ ማንቂያዎች የሉም"</string>
</resources>
diff --git a/res/values-ar/array.xml b/res/values-ar/array.xml
index 60c5a2e..a89dbb1 100644
--- a/res/values-ar/array.xml
+++ b/res/values-ar/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"تيغوسيغالبا"</item>
<item msgid="7087691675228926801">"باراماریبو"</item>
<item msgid="478384295484578701">"كيتو"</item>
+ <item msgid="4517870253399384206">"ليوبليانا"</item>
</string-array>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f1c747b..102dca0 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"الساعة"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"الاشعارات"</string>
<string name="add_alarm" msgid="5976616107390962899">"إضافة منبه"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"الاشعارات التالية"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ساعة مكتب"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"تعديل المنبه"</string>
<string name="delete_alarm" msgid="3457780990646206817">"حذف المنبه"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"نغمة رنين المنبه"</string>
<string name="ringtone" msgid="9110746249688559579">"نغمة الرنين"</string>
<string name="time" msgid="8067216534232296518">"الوقت"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"غدًا"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"اليوم"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"استيقظ"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"تعطيل"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"تجاهل"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"رفض الآن"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"تنبيه فائت"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"تم التأجيل"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"دقيقة"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> من الدقائق"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"تم تعطيل المنبه"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"غفوة"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"غفوة لمدة دقيقة واحدة."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> دقيقة"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"أبدًا"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 دقائق"</item>
- <item msgid="3663730603519549990">"10 دقائق"</item>
- <item msgid="1385481095199681200">"15 دقيقة"</item>
- <item msgid="420479821767342125">"20 دقيقة"</item>
- <item msgid="2107936130151066746">"25 دقيقة"</item>
- <item msgid="7219791437023378544">"30 دقيقة"</item>
+ <item msgid="3024545954917711306">"دقيقة واحدة"</item>
+ <item msgid="5431906692406316549">"5 دقائق"</item>
+ <item msgid="7742728812068919959">"10 دقائق"</item>
+ <item msgid="2855948657259647629">"15 دقيقة"</item>
+ <item msgid="6330196381284475079">"20 دقيقة"</item>
+ <item msgid="7809240121716151904">"25 دقيقة"</item>
<item msgid="4278641338024561333">"أبدًا"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"تم"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"عرض الساعة"</string>
<string name="label_description" msgid="8736179296142915727">"تصنيف"</string>
<string name="ringtone_description" msgid="7580922112921069925">"نغمة الرنين"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"معلومات الطقس غير متاحة في الوقت الحالي."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"خدمة تشغيل الصوت بالنسبة إلى الاشعارات التي تم تعيينها في الساعة."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"جارٍ تحميل نغمة الرنين…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"موقت"</string>
<string name="menu_clock" msgid="5612760670606829805">"الساعة"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"ساعة توقيف"</string>
- <string name="button_alarms" msgid="8016103479617020265">"الاشعارات"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"إضافة منبه"</string>
<string name="button_cities" msgid="4555761857494501363">"المدن"</string>
<string name="button_menu" msgid="6050484561842120282">"مزيد من الخيارات"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"الإعدادات"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"إلغاء"</string>
<string name="timer_times_up" msgid="9190440395938519009">"انتهى الوقت"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"مؤقت"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"يبلغ الحد الأقصى 4 موقّتات"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"يمكنك إجراء كل شيء بسرعة البرق."</item>
<item msgid="6332879039890727169">"استمتع بحصاد ثمار تعبك."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"الوقت المحلي"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"مدن"</string>
- <string name="clock_settings" msgid="8887845806151785393">"الساعة"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"الساعة"</string>
<string name="clock_style" msgid="2265011060429742344">"النمط"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"تناظري"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"تونغا"</item>
<item msgid="5176858645450908751">"جاکارتا"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"الاشعارات"</string>
- <string name="see_all" msgid="775983396630163739">"عرض الكل..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"التنبيهات"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"خدمة ساعة التوقيف لتشغيل التنبيه"</string>
<string name="swn_stopped" msgid="783124901663086172">"تم الإيقاف"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"التمرير إلى اليسار للتجاهل"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"التمرير إلى اليمين للغفوة"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"التمرير لأعلى للتجاهل"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"التمرير لأسفل للغفوة"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"مرر بسرعة إلى اليسار للإلغاء"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"مرر بسرعة إلى اليمين لإجراء غفوة"</string>
<string name="timer_stopped" msgid="2730331837832462008">"تم إيقاف الموقت"</string>
<string name="timers_stopped" msgid="2393640808691864520">"تم إيقاف <xliff:g id="NUMBER">%d</xliff:g> من الموقتات"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"المس للاطلاع على الموقتات"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"هل تريد إزالة هذه المدينة؟"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ساعة رقمية"</string>
<string name="no_alarms" msgid="6429431324842022917">"ليست هناك اشعارات"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"لم يتم تعيين تنبيهات"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ليست هناك اشعارات مقبلة"</string>
</resources>
diff --git a/res/values-bg/array.xml b/res/values-bg/array.xml
index 13546df..638d711 100644
--- a/res/values-bg/array.xml
+++ b/res/values-bg/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигалпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 82653f8..ebf920f 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Часовник"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Будилници"</string>
<string name="add_alarm" msgid="5976616107390962899">"Добавяне на будилник"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"СЛЕДВАЩИ БУДИЛНИЦИ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Настолен часовник"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Редактиране на будилника"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Изтриване на будилника"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Мелодия на будилника"</string>
<string name="ringtone" msgid="9110746249688559579">"Мелодия"</string>
<string name="time" msgid="8067216534232296518">"Час"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Утре"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Днес"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Събуди се!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Изкл."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Отхвърляне"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Отхвърляне сега"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Пропуснат будилник"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Отложено"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мин"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мин"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Буд. е изкл."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Отлагане"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Отлагане за 1 минута."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> минути"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Никога"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 минути"</item>
- <item msgid="3663730603519549990">"10 минути"</item>
- <item msgid="1385481095199681200">"15 минути"</item>
- <item msgid="420479821767342125">"20 минути"</item>
- <item msgid="2107936130151066746">"25 минути"</item>
- <item msgid="7219791437023378544">"30 минути"</item>
+ <item msgid="3024545954917711306">"1 минута"</item>
+ <item msgid="5431906692406316549">"5 минути"</item>
+ <item msgid="7742728812068919959">"10 минути"</item>
+ <item msgid="2855948657259647629">"15 минути"</item>
+ <item msgid="6330196381284475079">"20 минути"</item>
+ <item msgid="7809240121716151904">"25 минути"</item>
<item msgid="4278641338024561333">"Никога"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Готово"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Показване на часовника"</string>
<string name="label_description" msgid="8736179296142915727">"Етикет"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Мелодия"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"В момента няма информация за времето."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Услуга за възпроизвеждане на звук за будилниците, зададени в часовника."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Мелодията се зарежда..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Таймер"</string>
<string name="menu_clock" msgid="5612760670606829805">"Часовник"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Хронометър"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Будилници"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Добавяне на будилник"</string>
<string name="button_cities" msgid="4555761857494501363">"Градове"</string>
<string name="button_menu" msgid="6050484561842120282">"Още опции"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Настройки"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Отказ"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Времето изтече"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Таймер"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Максимално 4 таймера"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Развивате светкавична скорост."</item>
<item msgid="6332879039890727169">"Радвайте се на плодовете от труда си."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Местна"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Градове"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ЧАСОВНИК"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Часовник"</string>
<string name="clock_style" msgid="2265011060429742344">"Стил"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналогов"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Джакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"БУДИЛНИЦИ"</string>
- <string name="see_all" msgid="775983396630163739">"Вижте всички…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Будилници"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Услуга на хронометъра за пускане на известието."</string>
<string name="swn_stopped" msgid="783124901663086172">"Спряно"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Плъзнете надясно за отхвърляне"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Плъзнете наляво за отлагане"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Плъзнете нагоре за отхвърляне"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Плъзнете надолу за отлагане"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Прекарайте пръст надясно, за да отхвърлите"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Прекарайте пръст наляво, за да отложите"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Таймерът е спрян"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> таймера са спрени"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Докоснете, за да видите таймерите си"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Да се премахне ли този град?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Цифров часовник"</string>
<string name="no_alarms" msgid="6429431324842022917">"Няма будилници"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Няма будилници"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"НЯМА ПРЕДСТОЯЩИ БУДИЛНИЦИ"</string>
</resources>
diff --git a/res/values-bn-rBD/array.xml b/res/values-bn-rBD/array.xml
index 86603d7..97cd326 100644
--- a/res/values-bn-rBD/array.xml
+++ b/res/values-bn-rBD/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"তেগুসিগালপা"</item>
<item msgid="7087691675228926801">"প্যারামেরিবো"</item>
<item msgid="478384295484578701">"কিটো"</item>
+ <item msgid="4517870253399384206">"লুবলিয়ানা"</item>
</string-array>
</resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index d70581c..eb4760e 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ঘড়ি"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"অ্যালার্মগুলি"</string>
<string name="add_alarm" msgid="5976616107390962899">"অ্যালার্ম জুড়ুন"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"পরবর্তী অ্যালার্মগুলি"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ডেস্ক ঘড়ি"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"অ্যালার্ম সম্পাদনা করুন"</string>
<string name="delete_alarm" msgid="3457780990646206817">"অ্যালার্ম মুছুন"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"অ্যালার্ম রিংটোন"</string>
<string name="ringtone" msgid="9110746249688559579">"রিংটোন"</string>
<string name="time" msgid="8067216534232296518">"সময়"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"আগামীকাল"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"আজ"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"জেগে উঠুন!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"বন্ধ করুন"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"খারিজ করুন"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"এখন খারিজ করুন"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"মিসড অ্যালার্ম"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"পরে মনে করা"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"১ মিনিট"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> মিনিট"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"অ্যালার্ম বন্ধ"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"স্নুজ"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 মিনিটের জন্য স্নুজ হয়ে আছে।"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"হোম"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"শহর"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ঘড়ি"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ঘড়ি"</string>
<string name="clock_style" msgid="2265011060429742344">"শৈলী"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"অ্যানালগ"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"টোঙ্গা"</item>
<item msgid="5176858645450908751">"জাকার্তা"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"অ্যালার্মগুলি"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"অ্যালার্মগুলি"</string>
<string name="see_all" msgid="775983396630163739">"সবগুলো দেখুন..."</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"বিজ্ঞপ্তি চালানোর জন্য স্টপওয়াচ পরিষেবা"</string>
<string name="swn_stopped" msgid="783124901663086172">"থেমেছে"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"এই শহর সরাবেন?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ডিজিটাল ঘড়ি"</string>
<string name="no_alarms" msgid="6429431324842022917">"কোনো অ্যালার্ম নাই"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"কোনো অ্যালার্ম সেট করা নেই"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"কোনো আসন্ন অ্যালার্ম নাই"</string>
</resources>
diff --git a/res/values-ca/array.xml b/res/values-ca/array.xml
index 10a576c..6fbe221 100644
--- a/res/values-ca/array.xml
+++ b/res/values-ca/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 74bf25c..a59051a 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Rellotge"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmes"</string>
<string name="add_alarm" msgid="5976616107390962899">"Afegeix una alarma"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PROPERES ALARMES"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Rellotge d\'escriptori"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edita l\'alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Suprimeix l\'alarma"</string>
@@ -28,7 +27,7 @@
<string name="delete_alarm_confirm" msgid="6578572637340860840">"Vols suprimir aquesta alarma?"</string>
<string name="show_clock" msgid="8358759982675616915">"Mostra el rellotge"</string>
<string name="hide_clock" msgid="3217727306480505694">"Amaga el rellotge"</string>
- <string name="label" msgid="162189613902857319">"Etiqueta"</string>
+ <string name="label" msgid="162189613902857319">"Nom de l\'alarma"</string>
<string name="default_label" msgid="5590025289805630372">"Alarma"</string>
<string name="set_alarm" msgid="9148359866152726808">"Defineix l\'alarma"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibra"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"To de l\'alarma"</string>
<string name="ringtone" msgid="9110746249688559579">"To"</string>
<string name="time" msgid="8067216534232296518">"Hora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Demà"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Avui"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Desperta\'t"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Apaga"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Omet"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Descarta ara"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarma perduda"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Posposada"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarma apagada"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Repeteix"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Posposada 1 minut"</item>
@@ -55,14 +64,14 @@
<item msgid="8458069283817013813">"Temps restant: <xliff:g id="HOURS">%1$s</xliff:g> <xliff:g id="MINUTES">%2$s</xliff:g>"</item>
</string-array>
<string-array name="alarm_set">
- <item msgid="6450913786084215050">"Alarma definida per a d\'aquí a menys d\'un minut."</item>
- <item msgid="6002066367368421848">"Alarma definida per a d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g>."</item>
- <item msgid="8824719306247973774">"Alarma definida per a d\'aquí a <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="8182406852935468862">"Alarma definida per a d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g> i <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="2532279224777213194">"Alarma definida per a d\'aquí a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="5936557894247187717">"Alarma definida per a d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g> i <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="9115697840826129603">"Alarma definida per a d\'aquí a <xliff:g id="HOURS">%2$s</xliff:g> i <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="2332583385137381060">"Alarma definida per a d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> i <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="6450913786084215050">"L\'alarma sonarà d\'aquí a menys d\'un minut."</item>
+ <item msgid="6002066367368421848">"L\'alarma sonarà d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g>."</item>
+ <item msgid="8824719306247973774">"L\'alarma sonarà d\'aquí a <xliff:g id="HOURS">%2$s</xliff:g>."</item>
+ <item msgid="8182406852935468862">"L\'alarma sonarà d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g> i <xliff:g id="HOURS">%2$s</xliff:g>."</item>
+ <item msgid="2532279224777213194">"L\'alarma sonarà d\'aquí a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="5936557894247187717">"L\'alarma sonarà d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g> i <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="9115697840826129603">"L\'alarma sonarà d\'aquí a <xliff:g id="HOURS">%2$s</xliff:g> i <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="2332583385137381060">"L\'alarma sonarà d\'aquí a <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> i <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> dies"</string>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minuts"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Mai"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuts"</item>
- <item msgid="3663730603519549990">"10 minuts"</item>
- <item msgid="1385481095199681200">"15 minuts"</item>
- <item msgid="420479821767342125">"20 minuts"</item>
- <item msgid="2107936130151066746">"25 minuts"</item>
- <item msgid="7219791437023378544">"30 minuts"</item>
+ <item msgid="3024545954917711306">"1 minut"</item>
+ <item msgid="5431906692406316549">"5 minuts"</item>
+ <item msgid="7742728812068919959">"10 minuts"</item>
+ <item msgid="2855948657259647629">"15 minuts"</item>
+ <item msgid="6330196381284475079">"20 minuts"</item>
+ <item msgid="7809240121716151904">"25 minuts"</item>
<item msgid="4278641338024561333">"Mai"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Fet"</string>
@@ -103,7 +112,7 @@
<string name="delete" msgid="5732434972457000541">"Suprimeix"</string>
<string name="alarm_volume_title" msgid="8506245173912428522">"Volum de l\'alarma"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"Silenciosa"</string>
- <string name="alarm_notify_text" msgid="4891014685945904766">"Posposa o descarta l\'alarma."</string>
+ <string name="alarm_notify_text" msgid="4891014685945904766">"Posposa o ignora l\'alarma"</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (repetida)"</string>
<string name="alarm_notify_snooze_text" msgid="4819324081410990368">"Alarma definida per a les <xliff:g id="TIME">%s</xliff:g>. Toca per cancel·lar."</string>
<string name="volume_button_setting_title" msgid="6937131248843413357">"Botons de volum"</string>
@@ -120,9 +129,8 @@
<string name="nightmode_button_description" msgid="990894208217576381">"Dim"</string>
<string name="home_button_description" msgid="3383859096809056157">"Launcher"</string>
<string name="desk_clock_button_description" msgid="4207371097361657274">"Visualització del rellotge"</string>
- <string name="label_description" msgid="8736179296142915727">"Etiqueta"</string>
+ <string name="label_description" msgid="8736179296142915727">"Nom"</string>
<string name="ringtone_description" msgid="7580922112921069925">"To"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"La informació meteorològica no està disponible en aquest moment."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Reproducció d\'alarmes definides al rellotge."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"S\'està carregant el to..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporitzador"</string>
<string name="menu_clock" msgid="5612760670606829805">"Rellotge"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronòmetre"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmes"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Afegeix una alarma"</string>
<string name="button_cities" msgid="4555761857494501363">"Ciutats"</string>
<string name="button_menu" msgid="6050484561842120282">"Més opcions"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Configuració"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancel·la"</string>
<string name="timer_times_up" msgid="9190440395938519009">"S\'ha esgotat el temps"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporitzador"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 temporitzadors com a màxim"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Ets un boig del volant."</item>
<item msgid="6332879039890727169">"Gaudeix dels fruits de la teva feina."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Ciutats"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELLOTGE"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Rellotge"</string>
<string name="clock_style" msgid="2265011060429742344">"Estil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analògic"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMES"</string>
- <string name="see_all" msgid="775983396630163739">"Mostra-ho tot..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmes"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Servei de cronòmetre per executar les notificacions."</string>
<string name="swn_stopped" msgid="783124901663086172">"Aturada"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Fes lliscar el dit cap a la dreta per ometre"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Fes lliscar el dit cap a l\'esquerra per posposar"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Fes lliscar el dit cap amunt per ometre"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Fes lliscar el dit cap avall per posposar"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Fes lliscar cap a la dreta per ometre"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Fes lliscar cap a l\'esquerra per posposar"</string>
<string name="timer_stopped" msgid="2730331837832462008">"S\'ha aturat el temporitzador"</string>
<string name="timers_stopped" msgid="2393640808691864520">"S\'han aturat <xliff:g id="NUMBER">%d</xliff:g> temporitzadors"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Toca per veure els temporitzadors"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Vols eliminar aquesta ciutat?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Rellotge digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Cap alarma"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Sense alarmes"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NO HI HA ALARMES PROPERAMENT"</string>
</resources>
diff --git a/res/values-cs/array.xml b/res/values-cs/array.xml
index 789a1af..0f063e5 100644
--- a/res/values-cs/array.xml
+++ b/res/values-cs/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Lublaň"</item>
</string-array>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index d1cc243..bff54d6 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Hodiny"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Budíky"</string>
<string name="add_alarm" msgid="5976616107390962899">"Přidat budík"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"DALŠÍ BUDÍKY"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Stolní hodiny"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Upravit budík"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Smazat budík"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Vyzváněcí tón budíku"</string>
<string name="ringtone" msgid="9110746249688559579">"Vyzváněcí tón"</string>
<string name="time" msgid="8067216534232296518">"Čas"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Zítra"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Dnes"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vstávejte!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Vypnuto"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Zavřít"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Vypnout budík"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Zmeškaný budík"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Odloženo"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Budík je vypnut"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Odložit"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Odloženo o 1 minutu."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nikdy"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutách"</item>
- <item msgid="3663730603519549990">"10 minutách"</item>
- <item msgid="1385481095199681200">"15 minutách"</item>
- <item msgid="420479821767342125">"20 minutách"</item>
- <item msgid="2107936130151066746">"25 minutách"</item>
- <item msgid="7219791437023378544">"30 minutách"</item>
+ <item msgid="3024545954917711306">"1 minuta"</item>
+ <item msgid="5431906692406316549">"5 minutách"</item>
+ <item msgid="7742728812068919959">"10 minutách"</item>
+ <item msgid="2855948657259647629">"15 minutách"</item>
+ <item msgid="6330196381284475079">"20 minutách"</item>
+ <item msgid="7809240121716151904">"25 minutách"</item>
<item msgid="4278641338024561333">"Nikdy"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Hotovo"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Zobrazení hodin"</string>
<string name="label_description" msgid="8736179296142915727">"Štítek"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Vyzváněcí tón"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informace o počasí nejsou momentálně k dispozici."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Služba přehrávání zvuku budíků nastavených v aplikaci Hodiny."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Načítání vyzváněcího tónu..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Časovač"</string>
<string name="menu_clock" msgid="5612760670606829805">"Hodiny"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopky"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Budíky"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Přidat budík"</string>
<string name="button_cities" msgid="4555761857494501363">"Města"</string>
<string name="button_menu" msgid="6050484561842120282">"Další možnosti"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Nastavení"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Zrušit"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Čas vypršel"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Časovač"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Můžete mít maximálně čtyři časovače"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Jste rychlí jako ďas."</item>
<item msgid="6332879039890727169">"Vychutnejte si plody své práce."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Doma"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Města"</string>
- <string name="clock_settings" msgid="8887845806151785393">"HODINY"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Hodiny"</string>
<string name="clock_style" msgid="2265011060429742344">"Styl"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogové"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"BUDÍKY"</string>
- <string name="see_all" msgid="775983396630163739">"Zobrazit vše"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Budíky"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Služba Stopky ke spouštění upozornění."</string>
<string name="swn_stopped" msgid="783124901663086172">"Zastaveno"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Přejetím vpravo budík zrušíte"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Přejetím vlevo budík odložíte"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Přejetím nahoru budík zrušíte"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Přejetím dolů budík odložíte"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Přejetím prstem vpravo budík zrušíte."</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Přejetím prsem vlevo budík odložíte."</string>
<string name="timer_stopped" msgid="2730331837832462008">"Časovač zastaven"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Zastavené časovače (<xliff:g id="NUMBER">%d</xliff:g>)"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Dotykem zobrazíte časovače"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Chcete toto město odebrat?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitální hodiny"</string>
<string name="no_alarms" msgid="6429431324842022917">"Žádné budíky"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Budíky nejsou nastaveny."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ŽÁDNÉ PLÁNOVANÉ BUDÍKY"</string>
</resources>
diff --git a/res/values-da/array.xml b/res/values-da/array.xml
index f4f6d29..6322067 100644
--- a/res/values-da/array.xml
+++ b/res/values-da/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index f954646..a15134f 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Ur"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmer"</string>
<string name="add_alarm" msgid="5976616107390962899">"Tilføj alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NÆSTE ALARMER"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Ur på skrivebord"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Rediger alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Slet alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ringetone for alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Ringetone"</string>
<string name="time" msgid="8067216534232296518">"Tid"</string>
- <string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Annuller"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"I morgen"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"I dag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vågn op!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Fra"</string>
+ <string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Luk"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Afvis nu"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Ubesvaret alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Udsat"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm fra"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Udsæt"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Snoozet i 1 minut."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutter"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Aldrig"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutter"</item>
- <item msgid="3663730603519549990">"10 minutter"</item>
- <item msgid="1385481095199681200">"15 minutter"</item>
- <item msgid="420479821767342125">"20 minutter"</item>
- <item msgid="2107936130151066746">"25 minutter"</item>
- <item msgid="7219791437023378544">"30 minutter"</item>
+ <item msgid="3024545954917711306">"1 minut"</item>
+ <item msgid="5431906692406316549">"5 minutter"</item>
+ <item msgid="7742728812068919959">"10 minutter"</item>
+ <item msgid="2855948657259647629">"15 minutter"</item>
+ <item msgid="6330196381284475079">"20 minutter"</item>
+ <item msgid="7809240121716151904">"25 minutter"</item>
<item msgid="4278641338024561333">"Aldrig"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"OK"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Urvisning"</string>
<string name="label_description" msgid="8736179296142915727">"Etiket"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ringetone"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Vejroplysninger er ikke tilgængelige lige nu."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Tjenesten til afspilning af alarmlyd, der er angivet i uret."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Indlæser ringetone..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Ur"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopur"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmer"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Tilføj alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Byer"</string>
<string name="button_menu" msgid="6050484561842120282">"Flere valgmuligheder"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Indstillinger"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Annuller"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tiden er gået"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maks. fire timere"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Du er en rigtig fartdjævel."</item>
<item msgid="6332879039890727169">"Nyd frugterne af dit arbejde."</item>
@@ -200,8 +209,8 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Hjemme"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Byer"</string>
- <string name="clock_settings" msgid="8887845806151785393">"UR"</string>
- <string name="clock_style" msgid="2265011060429742344">"Udseende"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Ur"</string>
+ <string name="clock_style" msgid="2265011060429742344">"Urtype"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
<item msgid="8483930821046925592">"Digital"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMER"</string>
- <string name="see_all" msgid="775983396630163739">"Se alle…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmer"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stopurstjeneste, der skal køre underretningen."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stoppet"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Glid til højre for at annullere"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Skub til venstre for at udsætte"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Glid op for at annullere"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Skub ned for at udsætte"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Stryg til højre for at afvise"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Stryg til venstre for at udsætte"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Ur stoppet"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ure stoppet"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Tryk for at se dine ure"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Vil du fjerne denne by?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitalur"</string>
<string name="no_alarms" msgid="6429431324842022917">"Ingen alarmer"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ingen alarmer"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"INGEN KOMMENDE ALARMER"</string>
</resources>
diff --git a/res/values-de/array.xml b/res/values-de/array.xml
index 0640ae8..d753dc2 100644
--- a/res/values-de/array.xml
+++ b/res/values-de/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 0fbf521..1a9efab 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Uhr"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Wecker"</string>
<string name="add_alarm" msgid="5976616107390962899">"Wecker hinzufügen"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"Nächste Alarme"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Schreibtischuhr"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Wecker bearbeiten"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Wecker löschen"</string>
@@ -28,7 +27,7 @@
<string name="delete_alarm_confirm" msgid="6578572637340860840">"Diesen Wecker löschen?"</string>
<string name="show_clock" msgid="8358759982675616915">"Uhr anzeigen"</string>
<string name="hide_clock" msgid="3217727306480505694">"Uhr ausblenden"</string>
- <string name="label" msgid="162189613902857319">"Label"</string>
+ <string name="label" msgid="162189613902857319">"Name"</string>
<string name="default_label" msgid="5590025289805630372">"Wecker"</string>
<string name="set_alarm" msgid="9148359866152726808">"Wecker einstellen"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibrieren"</string>
@@ -36,18 +35,28 @@
<string name="alert" msgid="6506982899651975645">"Weckton"</string>
<string name="ringtone" msgid="9110746249688559579">"Klingelton"</string>
<string name="time" msgid="8067216534232296518">"Uhrzeit"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Morgen"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Heute"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Aufwachen!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Aus"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ausschalten"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Jetzt schließen"</string>
- <string name="alarm_missed_title" msgid="3828345099754063392">"Entgangener Alarm"</string>
+ <string name="alarm_missed_title" msgid="3828345099754063392">"Entgangener Weckruf"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g>–<xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Schlummern"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 Minute"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> Minuten"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Wecker aus"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Schlummern"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Schlummerfunktion für 1 Minute aktiv"</item>
<item quantity="other" msgid="7377899473014259727">"Schlummerfunktion für <xliff:g id="MINUTES">%d</xliff:g> Minuten aktiv"</item>
</plurals>
<string name="alarm_alert_snooze_until" msgid="6958013659168344550">"Schlummern bis <xliff:g id="TIME">%s</xliff:g>"</string>
- <string name="alarm_alert_predismiss_title" msgid="5723945586913705445">"Anstehender Alarm"</string>
- <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"Ihr entgangener Alarm wurde gelöscht."</string>
+ <string name="alarm_alert_predismiss_title" msgid="5723945586913705445">"Anstehender Weckruf"</string>
+ <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"Der entgangene Weckruf wurde gelöscht."</string>
<string-array name="timer_notifications">
<item msgid="7760558912503484257">"Nur noch weniger als eine Minute"</item>
<item msgid="83197792732433351">"Noch <xliff:g id="HOURS">%1$s</xliff:g>"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> Minuten"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nie"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 Minuten"</item>
- <item msgid="3663730603519549990">"10 Minuten"</item>
- <item msgid="1385481095199681200">"15 Minuten"</item>
- <item msgid="420479821767342125">"20 Minuten"</item>
- <item msgid="2107936130151066746">"25 Minuten"</item>
- <item msgid="7219791437023378544">"30 Minuten"</item>
+ <item msgid="3024545954917711306">"1 Minute"</item>
+ <item msgid="5431906692406316549">"5 Minuten"</item>
+ <item msgid="7742728812068919959">"10 Minuten"</item>
+ <item msgid="2855948657259647629">"15 Minuten"</item>
+ <item msgid="6330196381284475079">"20 Minuten"</item>
+ <item msgid="7809240121716151904">"25 Minuten"</item>
<item msgid="4278641338024561333">"Nie"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Fertig"</string>
@@ -120,9 +129,8 @@
<string name="nightmode_button_description" msgid="990894208217576381">"Dimmen"</string>
<string name="home_button_description" msgid="3383859096809056157">"Übersicht"</string>
<string name="desk_clock_button_description" msgid="4207371097361657274">"Uhrendisplay"</string>
- <string name="label_description" msgid="8736179296142915727">"Label"</string>
+ <string name="label_description" msgid="8736179296142915727">"Name"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Klingelton"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Wetterinformationen sind derzeit nicht verfügbar."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Tonwiedergabedienst für in der Weckfunktion eingestellte Wecker"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Klingelton wird geladen..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Uhr"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stoppuhr"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Wecker"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Weckruf hinzufügen"</string>
<string name="button_cities" msgid="4555761857494501363">"Städte"</string>
<string name="button_menu" msgid="6050484561842120282">"Weitere Optionen"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Einstellungen"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Abbrechen"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Zeit ist abgelaufen."</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Es können maximal 4 Timer gestellt werden."</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Sie sind teuflisch schnell."</item>
<item msgid="6332879039890727169">"Ernten Sie die Früchte Ihrer Arbeit!"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Zuhause"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Städte"</string>
- <string name="clock_settings" msgid="8887845806151785393">"Uhr"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Uhr"</string>
<string name="clock_style" msgid="2265011060429742344">"Design"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"Wecker"</string>
- <string name="see_all" msgid="775983396630163739">"Alle anzeigen"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Wecker"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Benachrichtigung über Stoppuhr-Dienst"</string>
<string name="swn_stopped" msgid="783124901663086172">"Gestoppt"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Zum Schließen nach rechts bewegen"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Zum Schlummern nach links bewegen"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Zum Schließen nach oben bewegen"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Zum Schlummern nach unten bewegen"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Zum Schließen nach rechts wischen"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Zum Schlummern nach links wischen"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timer gestoppt"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> Timer gestoppt"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Zum Ansehen der Timer berühren"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Diese Stadt entfernen?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitaluhr"</string>
<string name="no_alarms" msgid="6429431324842022917">"Keine Wecker"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Keine Wecker"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"Keine anstehenden Alarme"</string>
</resources>
diff --git a/res/values-el/array.xml b/res/values-el/array.xml
index 24f28f1..29107db 100644
--- a/res/values-el/array.xml
+++ b/res/values-el/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Τεγκουσιγκάλπα"</item>
<item msgid="7087691675228926801">"Παραμαρίμπο"</item>
<item msgid="478384295484578701">"Κουίτο"</item>
+ <item msgid="4517870253399384206">"Λιουμπλιάνα"</item>
</string-array>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9893e29..0ff72cd 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Ρολόι"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Ειδοποιήσεις"</string>
<string name="add_alarm" msgid="5976616107390962899">"Προσθήκη ξυπνητηριού"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ΕΠΟΜΕΝΕΣ ΕΙΔΟΠ."</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Ρολόι γραφείου"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Επεξεργασία ξυπνητηριού"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Διαγραφή ξυπνητηριού"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ήχος κλήσης ξυπνητηριού"</string>
<string name="ringtone" msgid="9110746249688559579">"Ήχος κλήσης"</string>
<string name="time" msgid="8067216534232296518">"Ώρα"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Αύριο"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Σήμερα"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Ξύπνα!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Ανεν."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Παράβλεψη"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Παράβλεψη τώρα"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Ειδοποίηση χωρίς σχετική ενέργεια"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Σε αναβολή"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 λεπτό"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> λεπτά"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Ανεν. ειδοπ."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Αναβολή αφύπνισης"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Αναβολή αφύπνισης για 1 λεπτό."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> λεπτά"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Ποτέ"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 λεπτά"</item>
- <item msgid="3663730603519549990">"10 λεπτά"</item>
- <item msgid="1385481095199681200">"15 λεπτά"</item>
- <item msgid="420479821767342125">"20 λεπτά"</item>
- <item msgid="2107936130151066746">"25 λεπτά"</item>
- <item msgid="7219791437023378544">"30 λεπτά"</item>
+ <item msgid="3024545954917711306">"1 λεπτό"</item>
+ <item msgid="5431906692406316549">"5 λεπτά"</item>
+ <item msgid="7742728812068919959">"10 λεπτά"</item>
+ <item msgid="2855948657259647629">"15 λεπτά"</item>
+ <item msgid="6330196381284475079">"20 λεπτά"</item>
+ <item msgid="7809240121716151904">"25 λεπτά"</item>
<item msgid="4278641338024561333">"Ποτέ"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Τέλος"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Οθόνη ρολογιού"</string>
<string name="label_description" msgid="8736179296142915727">"Ετικέτα"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ήχος κλήσης"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Οι πληροφορίες καιρού δεν είναι διαθέσιμες αυτήν τη στιγμή."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Η υπηρεσία αναπαραγωγής ήχου για ειδοποιήσεις έχει ρυθμιστεί στο Ρολόι."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Φόρτωση ήχου κλήσης"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Χρονόμετρο"</string>
<string name="menu_clock" msgid="5612760670606829805">"Ρολόι"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Χρονόμετρο"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Ειδοποιήσεις"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Προσθήκη ξυπνητηριού"</string>
<string name="button_cities" msgid="4555761857494501363">"Πόλεις"</string>
<string name="button_menu" msgid="6050484561842120282">"Περισσότερες επιλογές"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Ρυθμίσεις"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Ακύρωση"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Ο χρόνος έχει τελειώσει"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Ξυπνητήρι"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 χρονόμετρα το μέγιστο"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Είστε πάρα πολύ γρήγοροι."</item>
<item msgid="6332879039890727169">"Απολαύστε"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Οικία"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Πόλεις"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ΡΟΛΟΙ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Ρολόι"</string>
<string name="clock_style" msgid="2265011060429742344">"Στυλ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Αναλογικό"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Τόνγκα"</item>
<item msgid="5176858645450908751">"Τζακάρτα"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ΞΥΠΝΗΤΗΡΙΑ"</string>
- <string name="see_all" msgid="775983396630163739">"Εμφάνιση όλων…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Ξυπνητήρια"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Υπηρεσία χρονόμετρου για την εκτέλεση της ειδοποίησης."</string>
<string name="swn_stopped" msgid="783124901663086172">"Διακόπηκε"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Ολίσθηση δεξιά για παράλειψη"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Ολίσθηση αριστερά για αναβολή"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Ολίσθηση επάνω για παράλειψη"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Ολίσθηση κάτω για αναβολή"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Σύρετε δεξιά για παράβλεψη"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Σύρετε αριστερά για αναβολή"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Το ξυπνητήρι διακόπηκε"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ξυπνητήρια διακόπηκαν"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Αγγίξτε για να δείτε τα ξυπνητήρια σας"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Να διαγραφεί αυτή η πόλη;"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Ψηφιακό ρολόι"</string>
<string name="no_alarms" msgid="6429431324842022917">"Δεν υπάρχουν ξυπνητήρια"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Χωρίς ειδοπ."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ΧΩΡΙΣ ΠΡΟΣΕΧΕΙΣ ΕΙΔΟΠΟΙΗΣΕΙΣ"</string>
</resources>
diff --git a/res/values-en-rGB/array.xml b/res/values-en-rGB/array.xml
index d2acbe1..aa53872 100644
--- a/res/values-en-rGB/array.xml
+++ b/res/values-en-rGB/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 69d2113..7bb0ae0 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Clock"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarms"</string>
<string name="add_alarm" msgid="5976616107390962899">"Add alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NEXT ALARMS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Desk clock"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edit alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Delete alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Alarm Ringtone"</string>
<string name="ringtone" msgid="9110746249688559579">"Ring tone"</string>
<string name="time" msgid="8067216534232296518">"Time"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Tomorrow"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Today"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Wake up!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Off"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Dismiss"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Dismiss Now"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Missed alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Snoozed"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm off"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Snoozing for 1 minute."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Never"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutes"</item>
- <item msgid="3663730603519549990">"10 minutes"</item>
- <item msgid="1385481095199681200">"15 minutes"</item>
- <item msgid="420479821767342125">"20 minutes"</item>
- <item msgid="2107936130151066746">"25 minutes"</item>
- <item msgid="7219791437023378544">"30 minutes"</item>
+ <item msgid="3024545954917711306">"1 minute"</item>
+ <item msgid="5431906692406316549">"5 minutes"</item>
+ <item msgid="7742728812068919959">"10 minutes"</item>
+ <item msgid="2855948657259647629">"15 minutes"</item>
+ <item msgid="6330196381284475079">"20 minutes"</item>
+ <item msgid="7809240121716151904">"25 minutes"</item>
<item msgid="4278641338024561333">"Never"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Done"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Clock display"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ring tone"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Weather information isn\'t available at the moment."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Sound playback service for alarms set in Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Loading ringtone…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Clock"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopwatch"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarms"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Add alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Cities"</string>
<string name="button_menu" msgid="6050484561842120282">"More options"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Settings"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancel"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Time\'s up"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 timers maximum"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"You\'re quite the speed demon."</item>
<item msgid="6332879039890727169">"Enjoy the fruits of your labour."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Home"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Cities"</string>
- <string name="clock_settings" msgid="8887845806151785393">"CLOCK"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Clock"</string>
<string name="clock_style" msgid="2265011060429742344">"Style"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogue"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"Alarms"</string>
- <string name="see_all" msgid="775983396630163739">"See all…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarms"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stopwatch service to run the notification."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stopped"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Slide right to dismiss"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Slide left to snooze"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Slide up to dismiss"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Slide down to snooze"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Swipe right to dismiss"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Swipe left to snooze"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timer stopped"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> timers stopped"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Touch to see your timers"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Remove this city?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digital clock"</string>
<string name="no_alarms" msgid="6429431324842022917">"No Alarms"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"No alarms set"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NO UPCOMING ALARMS"</string>
</resources>
diff --git a/res/values-en-rIN/array.xml b/res/values-en-rIN/array.xml
index d2acbe1..aa53872 100644
--- a/res/values-en-rIN/array.xml
+++ b/res/values-en-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 69d2113..7bb0ae0 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Clock"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarms"</string>
<string name="add_alarm" msgid="5976616107390962899">"Add alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NEXT ALARMS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Desk clock"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edit alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Delete alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Alarm Ringtone"</string>
<string name="ringtone" msgid="9110746249688559579">"Ring tone"</string>
<string name="time" msgid="8067216534232296518">"Time"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Tomorrow"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Today"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Wake up!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Off"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Dismiss"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Dismiss Now"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Missed alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Snoozed"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm off"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Snoozing for 1 minute."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Never"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutes"</item>
- <item msgid="3663730603519549990">"10 minutes"</item>
- <item msgid="1385481095199681200">"15 minutes"</item>
- <item msgid="420479821767342125">"20 minutes"</item>
- <item msgid="2107936130151066746">"25 minutes"</item>
- <item msgid="7219791437023378544">"30 minutes"</item>
+ <item msgid="3024545954917711306">"1 minute"</item>
+ <item msgid="5431906692406316549">"5 minutes"</item>
+ <item msgid="7742728812068919959">"10 minutes"</item>
+ <item msgid="2855948657259647629">"15 minutes"</item>
+ <item msgid="6330196381284475079">"20 minutes"</item>
+ <item msgid="7809240121716151904">"25 minutes"</item>
<item msgid="4278641338024561333">"Never"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Done"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Clock display"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ring tone"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Weather information isn\'t available at the moment."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Sound playback service for alarms set in Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Loading ringtone…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Clock"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopwatch"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarms"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Add alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Cities"</string>
<string name="button_menu" msgid="6050484561842120282">"More options"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Settings"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancel"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Time\'s up"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 timers maximum"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"You\'re quite the speed demon."</item>
<item msgid="6332879039890727169">"Enjoy the fruits of your labour."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Home"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Cities"</string>
- <string name="clock_settings" msgid="8887845806151785393">"CLOCK"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Clock"</string>
<string name="clock_style" msgid="2265011060429742344">"Style"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogue"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"Alarms"</string>
- <string name="see_all" msgid="775983396630163739">"See all…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarms"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stopwatch service to run the notification."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stopped"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Slide right to dismiss"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Slide left to snooze"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Slide up to dismiss"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Slide down to snooze"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Swipe right to dismiss"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Swipe left to snooze"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timer stopped"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> timers stopped"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Touch to see your timers"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Remove this city?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digital clock"</string>
<string name="no_alarms" msgid="6429431324842022917">"No Alarms"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"No alarms set"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NO UPCOMING ALARMS"</string>
</resources>
diff --git a/res/values-es-rUS/array.xml b/res/values-es-rUS/array.xml
index c4441f9..6e865df 100644
--- a/res/values-es-rUS/array.xml
+++ b/res/values-es-rUS/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Liubliana"</item>
</string-array>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 106ef99..fa58e42 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Reloj"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmas"</string>
<string name="add_alarm" msgid="5976616107390962899">"Agregar alarma"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PRÓXIMAS ALARMAS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Reloj de escritorio"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Modificar alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Eliminar alarma"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Tono de alarma"</string>
<string name="ringtone" msgid="9110746249688559579">"Tono"</string>
<string name="time" msgid="8067216534232296518">"Hora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Mañana"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hoy"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"¡Arriba!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Des."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Descartar"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorar ahora"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarma perdida"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g>: <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Pospuesta"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarma des."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Posponer"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Pospuesta por 1 minuto"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutos"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nunca"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutos"</item>
- <item msgid="3663730603519549990">"10 minutos"</item>
- <item msgid="1385481095199681200">"15 minutos"</item>
- <item msgid="420479821767342125">"20 minutos"</item>
- <item msgid="2107936130151066746">"25 minutos"</item>
- <item msgid="7219791437023378544">"30 minutos"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minutos"</item>
+ <item msgid="7742728812068919959">"10 minutos"</item>
+ <item msgid="2855948657259647629">"15 minutos"</item>
+ <item msgid="6330196381284475079">"20 minutos"</item>
+ <item msgid="7809240121716151904">"25 minutos"</item>
<item msgid="4278641338024561333">"Nunca"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Listo"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Visualización del reloj"</string>
<string name="label_description" msgid="8736179296142915727">"Etiqueta"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Tono"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"La información meteorológica no está disponible en este momento."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Servicio de reproducción de sonidos para alarmas configuradas en Reloj"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Cargando tono..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporizador"</string>
<string name="menu_clock" msgid="5612760670606829805">"Reloj"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronómetro"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmas"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Agregar alarma"</string>
<string name="button_cities" msgid="4555761857494501363">"Ciudades"</string>
<string name="button_menu" msgid="6050484561842120282">"Más opciones"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Configuración"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancelar"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Se acabó el tiempo"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporizador"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Máximo: 4 temporizadores"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Vas a la velocidad de la luz."</item>
<item msgid="6332879039890727169">"Disfruta de los frutos de tu trabajo."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Ciudades"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELOJ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Reloj"</string>
<string name="clock_style" msgid="2265011060429742344">"Estilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analógico"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Yakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMAS"</string>
- <string name="see_all" msgid="775983396630163739">"Ver todo..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmas"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Servicio de cronómetro para ejecutar la notificación"</string>
<string name="swn_stopped" msgid="783124901663086172">"Detenido"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Desliza a la derecha para descartar."</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Desliza a la izquierda para posponer."</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Desliza hacia arriba para descartar."</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Desliza hacia abajo para posponer."</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Desliza hacia la derecha para descartar."</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Desliza hacia la izquierda para posponer."</string>
<string name="timer_stopped" msgid="2730331837832462008">"Temporizador detenido"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> temporizadores detenidos"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Toca para ver tus temporizadores."</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"¿Eliminar esta ciudad?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Reloj digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Sin alarmas"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"No hay alarmas."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NO HAY ALARMAS PRÓXIMAMENTE"</string>
</resources>
diff --git a/res/values-es/array.xml b/res/values-es/array.xml
index 14fc90c..49ca919 100644
--- a/res/values-es/array.xml
+++ b/res/values-es/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Liubliana"</item>
</string-array>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9f0d86b..0e592de 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Reloj"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmas"</string>
<string name="add_alarm" msgid="5976616107390962899">"Añadir alarma"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PRÓXIMAS ALARMAS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Reloj de escritorio"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Modificar alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Eliminar alarma"</string>
@@ -31,15 +30,25 @@
<string name="label" msgid="162189613902857319">"Nombre de la alarma"</string>
<string name="default_label" msgid="5590025289805630372">"Alarma"</string>
<string name="set_alarm" msgid="9148359866152726808">"Establecer alarma"</string>
- <string name="alarm_vibrate" msgid="3476686921490362230">"Vibración"</string>
+ <string name="alarm_vibrate" msgid="3476686921490362230">"Vibrar"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Repetir"</string>
<string name="alert" msgid="6506982899651975645">"Tono de alarma"</string>
<string name="ringtone" msgid="9110746249688559579">"Tono de llamada"</string>
<string name="time" msgid="8067216534232296518">"Hora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Mañana"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hoy"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"¡Despierta!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"No"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Descartar"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorar ahora"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarma perdida"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Pospuesta"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 minuto"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarma desactivada"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Posponer"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Pospuesta durante 1 minuto."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutos"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nunca"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutos"</item>
- <item msgid="3663730603519549990">"10 minutos"</item>
- <item msgid="1385481095199681200">"15 minutos"</item>
- <item msgid="420479821767342125">"20 minutos"</item>
- <item msgid="2107936130151066746">"25 minutos"</item>
- <item msgid="7219791437023378544">"30 minutos"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minutos"</item>
+ <item msgid="7742728812068919959">"10 minutos"</item>
+ <item msgid="2855948657259647629">"15 minutos"</item>
+ <item msgid="6330196381284475079">"20 minutos"</item>
+ <item msgid="7809240121716151904">"25 minutos"</item>
<item msgid="4278641338024561333">"Nunca"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Listo"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Reloj"</string>
<string name="label_description" msgid="8736179296142915727">"Nombre"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Tono de llamada"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"La información meteorológica no está disponible en este momento."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Reproducción de alarmas definidas en Reloj"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Cargando tono…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporizador"</string>
<string name="menu_clock" msgid="5612760670606829805">"Reloj"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronómetro"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmas"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Añadir alarma"</string>
<string name="button_cities" msgid="4555761857494501363">"Ciudades"</string>
<string name="button_menu" msgid="6050484561842120282">"Más opciones"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Ajustes"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancelar"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tiempo agotado"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporizador"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Máximo: 4 temporizadores"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Eres el rey de la velocidad."</item>
<item msgid="6332879039890727169">"Disfruta de los frutos de tu trabajo."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Ciudades"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELOJ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Reloj"</string>
<string name="clock_style" msgid="2265011060429742344">"Estilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analógico"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Yakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMAS"</string>
- <string name="see_all" msgid="775983396630163739">"Ver todo…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmas"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Servicio de cronómetro para ejecutar la notificación"</string>
<string name="swn_stopped" msgid="783124901663086172">"Detenido"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Deslizar el dedo hacia la derecha para descartar"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Deslizar el dedo hacia la izquierda para posponer"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Deslizar el dedo hacia arriba para descartar"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Deslizar el dedo hacia abajo para posponer"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Deslizar hacia la derecha para ignorar"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Deslizar hacia la izquierda para posponer"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Temporizador detenido"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> temporizadores detenidos"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Toca para ver tus temporizadores"</string>
@@ -321,7 +327,7 @@
<string name="night_mode_summary" msgid="1017350187324162631">"Pantalla muy atenuada (para espacios oscuros)"</string>
<string name="expand_alarm" msgid="7392616528943305020">"Expandir alarma"</string>
<string name="collapse_alarm" msgid="3561772046433483980">"Contraer alarma"</string>
- <string name="alarm_undo" msgid="5710042601177655254">"deshacer"</string>
+ <string name="alarm_undo" msgid="5710042601177655254">"Deshacer"</string>
<string name="alarm_deleted" msgid="5017075127290219443">"Alarma eliminada"</string>
<string name="slash" msgid="2077577763821006919">"/"</string>
<string name="world_day_of_week_label" msgid="5911196322328341288">"/ <xliff:g id="LABEL">%s</xliff:g>"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"¿Eliminar esta ciudad?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Reloj digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"No hay alarmas"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"No hay alarmas"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NO HAY ALARMAS PRÓXIMAMENTE"</string>
</resources>
diff --git a/res/values-et-rEE/array.xml b/res/values-et-rEE/array.xml
index 44b7cc5..5e7c704 100644
--- a/res/values-et-rEE/array.xml
+++ b/res/values-et-rEE/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 9ef9d1b..965d3c1 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Kell"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Äratused"</string>
<string name="add_alarm" msgid="5976616107390962899">"Lisa äratus"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"JÄRGMISED ALARMID"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Lauakell"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Muuda äratust"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Kustuta äratus"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Äratuse helin"</string>
<string name="ringtone" msgid="9110746249688559579">"Helin"</string>
<string name="time" msgid="8067216534232296518">"Kellaaeg"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Homme"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Täna"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Ärgake!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Välj."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Loobu"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Loobu nüüd"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Märkamata jäänud alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Ed. lükat."</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 minut"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm väljas"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Lükka edasi"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Äratuse edasilükkamine 1 minuti võrra."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutit"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Mitte kunagi"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutit"</item>
- <item msgid="3663730603519549990">"10 minutit"</item>
- <item msgid="1385481095199681200">"15 minutit"</item>
- <item msgid="420479821767342125">"20 minutit"</item>
- <item msgid="2107936130151066746">"25 minutit"</item>
- <item msgid="7219791437023378544">"30 minutit"</item>
+ <item msgid="3024545954917711306">"1 minut"</item>
+ <item msgid="5431906692406316549">"5 minutit"</item>
+ <item msgid="7742728812068919959">"10 minutit"</item>
+ <item msgid="2855948657259647629">"15 minutit"</item>
+ <item msgid="6330196381284475079">"20 minutit"</item>
+ <item msgid="7809240121716151904">"25 minutit"</item>
<item msgid="4278641338024561333">"Mitte kunagi"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Valmis"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Kella ekraan"</string>
<string name="label_description" msgid="8736179296142915727">"Silt"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Helin"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Ilmateade ei ole praegu saadaval."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Kellas äratuste jaoks määratud heli taasesitamise teenus."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Helina laadimine ..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Taimer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Kell"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopper"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmid"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Lisa äratus"</string>
<string name="button_cities" msgid="4555761857494501363">"Linnad"</string>
<string name="button_menu" msgid="6050484561842120282">"Rohkem valikuid"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Seaded"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Tühista"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Aeg on läbi"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Taimer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maksimaalselt võib olla 4 taimerit"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Olete ülikiire."</item>
<item msgid="6332879039890727169">"Nautige oma töö vilju."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Kodu"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Linnad"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KELL"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Kell"</string>
<string name="clock_style" msgid="2265011060429742344">"Stiil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analoog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMID"</string>
- <string name="see_all" msgid="775983396630163739">"Kuva kõik ..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmid"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Märguandeid käitav stopperiteenus."</string>
<string name="swn_stopped" msgid="783124901663086172">"Peatatud"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Loobumiseks lohistage paremale"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Äratuse edasilükkamiseks lohistage vasakule"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Loobumiseks lohistage üles"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Äratuse edasilükkamiseks lohistage alla"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Loobumiseks pühkige paremale"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Edasilükkamiseks pühkige vasakule"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Taimer on peatatud"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> taimerit on peatatud"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Puudutage, et näha oma taimereid"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Kas eemalda see linn?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitaalkell"</string>
<string name="no_alarms" msgid="6429431324842022917">"Alarme pole"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Alarme pole"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"TULEVASI ALARME POLE"</string>
</resources>
diff --git a/res/values-eu-rES/array.xml b/res/values-eu-rES/array.xml
index 2ce0014..c9ec155 100644
--- a/res/values-eu-rES/array.xml
+++ b/res/values-eu-rES/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 4c2c00e..f2a0c8c 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Erlojua"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmak"</string>
<string name="add_alarm" msgid="5976616107390962899">"Gehitu alarma"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"HURRENGO ALARMAK"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Mahaigaineko erlojua"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Editatu alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ezabatu alarma"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Alarmaren tonua"</string>
<string name="ringtone" msgid="9110746249688559579">"Tonua"</string>
<string name="time" msgid="8067216534232296518">"Ordua"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Bihar"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Gaur"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Esnatu!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Desaktibatuta"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Baztertu"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Baztertu"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarmari ezikusi egin zaio"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Atzeratuta"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarma desaktibatuta"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Atzeratu"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 minutu atzeratuta."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Etxekoa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Hiriak"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ERLOJUA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Erlojua"</string>
<string name="clock_style" msgid="2265011060429742344">"Estiloa"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogikoa"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMAK"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmak"</string>
<string name="see_all" msgid="775983396630163739">"Ikusi guztiak…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Jakinarazpena exekutatzeko kronometro-zerbitzua."</string>
<string name="swn_stopped" msgid="783124901663086172">"Geldituta"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Hiria kendu?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Erloju digitala"</string>
<string name="no_alarms" msgid="6429431324842022917">"Alarmarik ez"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ez da alarmarik ezarri"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"EZ DAGO ALARMARIK"</string>
</resources>
diff --git a/res/values-fa/array.xml b/res/values-fa/array.xml
index 950e89c..435f88a 100644
--- a/res/values-fa/array.xml
+++ b/res/values-fa/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"تگوسیگالپا"</item>
<item msgid="7087691675228926801">"پاراماريبو"</item>
<item msgid="478384295484578701">"کویتو"</item>
+ <item msgid="4517870253399384206">"لیوبلیانا"</item>
</string-array>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6683c9a..1f38742 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ساعت"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"زنگهای ساعت"</string>
<string name="add_alarm" msgid="5976616107390962899">"افزودن زنگ ساعت"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"هشدارهای بعدی"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ساعت رومیزی"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ویرایش زنگ ساعت"</string>
<string name="delete_alarm" msgid="3457780990646206817">"حذف زنگ ساعت"</string>
@@ -29,17 +28,27 @@
<string name="show_clock" msgid="8358759982675616915">"نمایش ساعت"</string>
<string name="hide_clock" msgid="3217727306480505694">"پنهان کردن ساعت"</string>
<string name="label" msgid="162189613902857319">"برچسب"</string>
- <string name="default_label" msgid="5590025289805630372">"زنگ ساعت"</string>
+ <string name="default_label" msgid="5590025289805630372">"هشدار"</string>
<string name="set_alarm" msgid="9148359866152726808">"تنظیم زنگ ساعت"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"لرزش"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"تکرار"</string>
<string name="alert" msgid="6506982899651975645">"آهنگ زنگ هشدار"</string>
<string name="ringtone" msgid="9110746249688559579">"آهنگ زنگ"</string>
<string name="time" msgid="8067216534232296518">"زمان"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"فردا"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"امروز"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"بیدار شو!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"خاموش"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"رد کردن"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"اکنون نادیده گرفته شود"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"هشدارهای بیپاسخ"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"به تعویق افتاده"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"۱ دقیقه"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> دقیقه"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"هشدار خاموش"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"تعویق"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"تعویق به مدت ۱ دقیقه."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> دقیقه"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"هیچوقت"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"۵ دقیقه"</item>
- <item msgid="3663730603519549990">"۱۰ دقیقه"</item>
- <item msgid="1385481095199681200">"۱۵ دقیقه"</item>
- <item msgid="420479821767342125">"۲۰ دقیقه"</item>
- <item msgid="2107936130151066746">"۲۵ دقیقه"</item>
- <item msgid="7219791437023378544">"۳۰ دقیقه"</item>
+ <item msgid="3024545954917711306">"۱ دقیقه"</item>
+ <item msgid="5431906692406316549">"۵ دقیقه"</item>
+ <item msgid="7742728812068919959">"۱۰ دقیقه"</item>
+ <item msgid="2855948657259647629">"۱۵ دقیقه"</item>
+ <item msgid="6330196381284475079">"۲۰ دقیقه"</item>
+ <item msgid="7809240121716151904">"۲۵ دقیقه"</item>
<item msgid="4278641338024561333">"هیچوقت"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"انجام شد"</string>
@@ -106,7 +115,7 @@
<string name="alarm_notify_text" msgid="4891014685945904766">"هشدار را موقتاً یا به طور کامل قطع کنید."</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (معوق)"</string>
<string name="alarm_notify_snooze_text" msgid="4819324081410990368">"زنگ هشدار برای <xliff:g id="TIME">%s</xliff:g> تنظیم شد. جهت لغو لمس کنید."</string>
- <string name="volume_button_setting_title" msgid="6937131248843413357">"دکمههای تنظیم صدا"</string>
+ <string name="volume_button_setting_title" msgid="6937131248843413357">"دکمههای میزان صدا"</string>
<string name="volume_button_dialog_title" msgid="8768042543750036853">"تأثیر دکمه"</string>
<string-array name="volume_button_setting_entries">
<item msgid="7972756698723318690">"تعویق"</item>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"نمایش ساعت"</string>
<string name="label_description" msgid="8736179296142915727">"برچسب"</string>
<string name="ringtone_description" msgid="7580922112921069925">"آهنگ زنگ"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"اطلاعات آب و هوا در حال حاضر در دسترس نیست."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"نمظیم سرویس بازپخش صدا برای هشدارها در \"ساعت رومیزی\"."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"در حال بارگیری آهنگ زنگ..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"تایمر"</string>
<string name="menu_clock" msgid="5612760670606829805">"ساعت"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"کرونومتر"</string>
- <string name="button_alarms" msgid="8016103479617020265">"زنگهای ساعت"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"افزودن زنگ ساعت"</string>
<string name="button_cities" msgid="4555761857494501363">"شهرها"</string>
<string name="button_menu" msgid="6050484561842120282">"گزینههای بیشتر"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"تنظیمات"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"لغو"</string>
<string name="timer_times_up" msgid="9190440395938519009">"وقت تمام است"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"تایمر"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"حداکثر ۴ تایمر"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"شما واقعاً خدای سرعت هستید."</item>
<item msgid="6332879039890727169">"از ثمره زحمات خود لذت ببرید."</item>
@@ -200,14 +209,14 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ساعت محلی"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"شهرها"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ساعت"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ساعت"</string>
<string name="clock_style" msgid="2265011060429742344">"سبک"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"آنالوگ"</item>
<item msgid="8483930821046925592">"دیجیتال"</item>
</string-array>
<string name="automatic_home_clock" msgid="6274174710735449252">"ساعت خودکار مبدأ"</string>
- <string name="automatic_home_clock_summary" msgid="6020476321040807273">"هنگام سفر در منطقهای که با منطقه شما تفاوت زمانی دارد، یک ساعت برای منطقه خود اضافه کنید"</string>
+ <string name="automatic_home_clock_summary" msgid="6020476321040807273">"هنگام سفر در منطقهای که با منطقه شما تفاوت زمانی دارد، یک ساعت برای محل زندگیتان اضافه کنید"</string>
<string name="home_time_zone" msgid="9199730676287974501">"منطقهٔ زمانی مبدأ"</string>
<string name="home_time_zone_title" msgid="807894493443834624">"منطقهٔ زمانی مبدأ"</string>
<string name="time_picker_cancel" msgid="7437106489606013077">"لغو"</string>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"تونگا"</item>
<item msgid="5176858645450908751">"جاکارتا"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"زنگها"</string>
- <string name="see_all" msgid="775983396630163739">"مشاهده همه..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"هشدارها"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"سرویس کرنومتر برای اجرای اعلان."</string>
<string name="swn_stopped" msgid="783124901663086172">"متوقف شد"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"برای رد کردن، انگشت خود را به سمت راست بکشید"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"برای تعویق انگشت خود را به سمت چپ بکشید"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"برای رد کردن، انگشت خود را به سمت بالا بکشید"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"برای تعویق انگشت خود را به سمت پایین بکشید"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"برای ردکردن، انگشتتان را روی صفحه تند به راست بکشید"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"برای تعویق، انگشتتان را روی صفحه تند به چپ بکشید"</string>
<string name="timer_stopped" msgid="2730331837832462008">"تایمر متوقف شد"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> تایمر متوقف شد"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"برای دیدن تایمرهای خود لمس کنید"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"این شهر حذف شود؟"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ساعت دیجیتال"</string>
<string name="no_alarms" msgid="6429431324842022917">"بدون هشدار"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"هشدار تنظیم نشده"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"هشداری در آینده فعال نیست"</string>
</resources>
diff --git a/res/values-fi/array.xml b/res/values-fi/array.xml
index f797f01..f1ea666 100644
--- a/res/values-fi/array.xml
+++ b/res/values-fi/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index c4f3282..bea7d51 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Kello"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Herätykset"</string>
<string name="add_alarm" msgid="5976616107390962899">"Lisää herätys"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"SEUR. ILMOITUKSET"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Työpöydän kello"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Muokkaa herätystä"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Poista herätys"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Herätyksen soittoääni"</string>
<string name="ringtone" msgid="9110746249688559579">"Soittoääni"</string>
<string name="time" msgid="8067216534232296518">"Aika"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Huomenna"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Tänään"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Herätys!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Ohita"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Hylkää"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Hylkää"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Vastaamaton ilmoitus"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Torkutettu"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Herätys oh."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Torkku"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Torkutettu yhden minuutin ajaksi."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minuuttia"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Ei koskaan"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuuttia"</item>
- <item msgid="3663730603519549990">"10 minuuttia"</item>
- <item msgid="1385481095199681200">"15 minuuttia"</item>
- <item msgid="420479821767342125">"20 minuuttia"</item>
- <item msgid="2107936130151066746">"25 minuuttia"</item>
- <item msgid="7219791437023378544">"30 minuuttia"</item>
+ <item msgid="3024545954917711306">"1 minuutti"</item>
+ <item msgid="5431906692406316549">"5 minuuttia"</item>
+ <item msgid="7742728812068919959">"10 minuuttia"</item>
+ <item msgid="2855948657259647629">"15 minuuttia"</item>
+ <item msgid="6330196381284475079">"20 minuuttia"</item>
+ <item msgid="7809240121716151904">"25 minuuttia"</item>
<item msgid="4278641338024561333">"Ei koskaan"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Valmis"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Kellon näyttö"</string>
<string name="label_description" msgid="8736179296142915727">"Tunniste"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Soittoääni"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Säätietoja ei ole saatavilla juuri nyt."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Äänentoistopalvelu Kelloon asetetuille hälytyksille."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Ladataan soittoääntä..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Ajastin"</string>
<string name="menu_clock" msgid="5612760670606829805">"Kello"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Sekuntikello"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Herätykset"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Lisää hälytys"</string>
<string name="button_cities" msgid="4555761857494501363">"Kaupungit"</string>
<string name="button_menu" msgid="6050484561842120282">"Lisää asetuksia"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Asetukset"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Peruuta"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Aika loppui"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Ajastin"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Enintään neljä ajastinta"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Olet supernopea."</item>
<item msgid="6332879039890727169">"Nauti työsi hedelmistä."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Koti"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Kaupungit"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KELLO"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Kello"</string>
<string name="clock_style" msgid="2265011060429742344">"Tyyli"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analoginen"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"HERÄTYKSET"</string>
- <string name="see_all" msgid="775983396630163739">"Näytä kaikki..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Herätykset"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Sekuntikello, joka näyttää ilmoituksen."</string>
<string name="swn_stopped" msgid="783124901663086172">"Pysäytetty"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Ohita liu\'uttamalla sormea oikealle ruudulla"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Torkuta liu\'uttamalla sormea vasemmalle ruudulla"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Ohita liu\'uttamalla sormea ylös ruudulla"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Torkuta liu\'uttamalla sormea alaspäin ruudulla"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Hylkää pyyhkäisemällä oikealle"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Torkuta pyyhkäisemällä vasemmalle"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Ajastin pysäytetty"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ajastinta pysäytetty"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Kosketa ja näytä ajastimet"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Poistetaanko tämä kaupunki?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitaalinen kello"</string>
<string name="no_alarms" msgid="6429431324842022917">"Ei herätyksiä"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ei herätyksiä"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"EI TULEVIA HÄLYTYKSIÄ"</string>
</resources>
diff --git a/res/values-fr-rCA/array.xml b/res/values-fr-rCA/array.xml
index f4de8f0..e77b614 100644
--- a/res/values-fr-rCA/array.xml
+++ b/res/values-fr-rCA/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 6484a56..ac8be9a 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Horloge"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmes"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ajouter alarme"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PROCHAINES ALARMES"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Horloge de bureau"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Modifier l\'alarme"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Supprimer l\'alarme"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Sonnerie de l\'alarme"</string>
<string name="ringtone" msgid="9110746249688559579">"Sonnerie"</string>
<string name="time" msgid="8067216534232296518">"Heure"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Demain"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Aujourd\'hui"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Réveille-toi!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Désactivée"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ignorer"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorer"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarme manquée"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Reportée"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarme arrêtée"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Arrêt momentané"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Répétition après 1 minute."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Jamais"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutes"</item>
- <item msgid="3663730603519549990">"10 minutes"</item>
- <item msgid="1385481095199681200">"15 minutes"</item>
- <item msgid="420479821767342125">"20 minutes"</item>
- <item msgid="2107936130151066746">"25 minutes"</item>
- <item msgid="7219791437023378544">"30 minutes"</item>
+ <item msgid="3024545954917711306">"1 minute"</item>
+ <item msgid="5431906692406316549">"5 minutes"</item>
+ <item msgid="7742728812068919959">"10 minutes"</item>
+ <item msgid="2855948657259647629">"15 minutes"</item>
+ <item msgid="6330196381284475079">"20 minutes"</item>
+ <item msgid="7809240121716151904">"25 minutes"</item>
<item msgid="4278641338024561333">"Jamais"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Terminé"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Affichage de l\'horloge"</string>
<string name="label_description" msgid="8736179296142915727">"Étiquette"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Sonnerie"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Les informations météo ne sont pas disponibles actuellement."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Service de retour audio pour les alarmes définies via l\'Horloge de bureau."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Chargement de la sonnerie..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Minuteur"</string>
<string name="menu_clock" msgid="5612760670606829805">"Horloge"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Chronomètre"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmes"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Ajouter une alarme"</string>
<string name="button_cities" msgid="4555761857494501363">"Villes"</string>
<string name="button_menu" msgid="6050484561842120282">"Plus d\'options"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Paramètres"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Annuler"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Le temps est écoulé."</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Minuteur"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Un maximum de quatre minuteries est autorisé"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"On peut dire que vous êtes rapide."</item>
<item msgid="6332879039890727169">"Profitez du fruit de votre travail."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Domicile"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Villes"</string>
- <string name="clock_settings" msgid="8887845806151785393">"HORLOGE"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Horloge"</string>
<string name="clock_style" msgid="2265011060429742344">"Style"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogique"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMES"</string>
- <string name="see_all" msgid="775983396630163739">"Tout afficher…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmes"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Chronomètre pour exécuter la notification"</string>
<string name="swn_stopped" msgid="783124901663086172">"Arrêté"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Faire glisser votre doigt vers la droite pour ignorer"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Faire glisser votre doigt vers la gauche pour répéter"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Faire glisser votre doigt vers le haut pour ignorer"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Faire glisser votre doigt vers le bas pour répéter"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Glissez vers la droite pour supprimer"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Glissez vers la gauche pour répéter"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Arrêt du minuteur"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Arrêt de <xliff:g id="NUMBER">%d</xliff:g> minuteurs"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Appuyer ici pour afficher les minuteurs"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Supprimer cette ville?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Horloge numérique"</string>
<string name="no_alarms" msgid="6429431324842022917">"Aucune alarme"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Aucune alarme"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"AUCUNE ALARME À VENIR"</string>
</resources>
diff --git a/res/values-fr/array.xml b/res/values-fr/array.xml
index d20dedb..df396c5 100644
--- a/res/values-fr/array.xml
+++ b/res/values-fr/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 23d3667..be358e1 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Horloge"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmes"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ajouter alarme"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PROCHAINES ALARMES"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Horloge de bureau"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Modifier l\'alarme"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Supprimer l\'alarme"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Sonnerie de l\'alarme"</string>
<string name="ringtone" msgid="9110746249688559579">"Sonnerie"</string>
<string name="time" msgid="8067216534232296518">"Heure"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Demain"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Aujourd\'hui"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Debout !"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Arrêter"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Quitter"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorer"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarme manquée"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Répétée"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarme arrêtée"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Répéter"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Répétition après 1 minute."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Jamais"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutes"</item>
- <item msgid="3663730603519549990">"10 minutes"</item>
- <item msgid="1385481095199681200">"15 minutes"</item>
- <item msgid="420479821767342125">"20 minutes"</item>
- <item msgid="2107936130151066746">"25 minutes"</item>
- <item msgid="7219791437023378544">"30 minutes"</item>
+ <item msgid="3024545954917711306">"Une minute"</item>
+ <item msgid="5431906692406316549">"5 minutes"</item>
+ <item msgid="7742728812068919959">"10 minutes"</item>
+ <item msgid="2855948657259647629">"15 minutes"</item>
+ <item msgid="6330196381284475079">"20 minutes"</item>
+ <item msgid="7809240121716151904">"25 minutes"</item>
<item msgid="4278641338024561333">"Jamais"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"OK"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Affichage de l\'horloge"</string>
<string name="label_description" msgid="8736179296142915727">"Libellé"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Sonnerie"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Les informations météo ne sont pas disponibles actuellement."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Service de retour audio pour les alarmes définies via l\'Horloge de bureau."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Chargement de la sonnerie..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Minuteur"</string>
<string name="menu_clock" msgid="5612760670606829805">"Horloge"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Chronomètre"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmes"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Ajouter une alarme"</string>
<string name="button_cities" msgid="4555761857494501363">"Villes"</string>
<string name="button_menu" msgid="6050484561842120282">"Autres options"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Paramètres"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Annuler"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Le temps est écoulé."</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Minuteur"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Quatre minuteurs maximum."</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"On peut dire que vous êtes rapide."</item>
<item msgid="6332879039890727169">"Profitez du fruit de votre travail."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Domicile"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Villes"</string>
- <string name="clock_settings" msgid="8887845806151785393">"HORLOGE"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Horloge"</string>
<string name="clock_style" msgid="2265011060429742344">"Style"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogique"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMES"</string>
- <string name="see_all" msgid="775983396630163739">"Tout afficher…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmes"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Chronomètre pour exécuter la notification"</string>
<string name="swn_stopped" msgid="783124901663086172">"Arrêtée"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Faire glisser votre doigt vers la droite pour ignorer"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Faire glisser votre doigt vers la gauche pour répéter"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Faire glisser votre doigt vers le haut pour ignorer"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Faire glisser votre doigt vers le bas pour répéter"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Faire glisser le doigt vers la droite pour ignorer"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Faire glisser le doigt vers la gauche pour répéter"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Arrêt du minuteur"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Arrêt de <xliff:g id="NUMBER">%d</xliff:g> minuteurs"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Appuyer ici pour afficher les minuteurs"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Supprimer cette ville ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Horloge numérique"</string>
<string name="no_alarms" msgid="6429431324842022917">"Aucune alarme"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Aucune alarme"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"AUCUNE ALARME À VENIR"</string>
</resources>
diff --git a/res/values-gl-rES/array.xml b/res/values-gl-rES/array.xml
index 2ece2d8..e9f200e 100644
--- a/res/values-gl-rES/array.xml
+++ b/res/values-gl-rES/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 8cb51fe..1a08aa2 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Reloxo"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmas"</string>
<string name="add_alarm" msgid="5976616107390962899">"Engadir alarma"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PRÓXIMAS ALARMAS"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Reloxo de mesa"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Editar alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Eliminar alarma"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ton de chamada da alarma"</string>
<string name="ringtone" msgid="9110746249688559579">"Ton de chamada"</string>
<string name="time" msgid="8067216534232296518">"Hora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Mañá"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hoxe"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Esperta!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Desactivar"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Rexeitar"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Rexeitar agora"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarma perdida"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Adiada"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Desactivada"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Adiar"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Adiada 1 minuto"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Cidades"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELOXO"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Reloxo"</string>
<string name="clock_style" msgid="2265011060429742344">"Estilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analóxico"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Iacarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMAS"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmas"</string>
<string name="see_all" msgid="775983396630163739">"Ver todo..."</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Servizo de cronómetro para executar a notificación."</string>
<string name="swn_stopped" msgid="783124901663086172">"Detido"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Queres eliminar esta cidade?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Reloxo dixital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Non hai alarmas"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ningunha alarma"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NON HAI ALARMAS PROXIMAMENTE"</string>
</resources>
diff --git a/res/values-hi/array.xml b/res/values-hi/array.xml
index 1664558..e19f55b 100644
--- a/res/values-hi/array.xml
+++ b/res/values-hi/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"टेगुसिगाल्पा"</item>
<item msgid="7087691675228926801">"पेरामरिबो"</item>
<item msgid="478384295484578701">"क्विटो"</item>
+ <item msgid="4517870253399384206">"लुबलियाना"</item>
</string-array>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 873a847..3e45f63 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"घड़ी"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"अलार्म"</string>
<string name="add_alarm" msgid="5976616107390962899">"अलार्म जोड़ें"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"अगले अलार्म"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"मेज घड़ी"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"अलार्म संपादित करें"</string>
<string name="delete_alarm" msgid="3457780990646206817">"अलार्म हटाएं"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"अलार्म रिंगटोन"</string>
<string name="ringtone" msgid="9110746249688559579">"रिंगटोन"</string>
<string name="time" msgid="8067216534232296518">"समय"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"कल"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"आज"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"जागिए!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"बंद"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"खारिज करें"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"अभी ख़ारिज करें"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"छूटा हुआ अलार्म"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"याद दिलाया"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 मिनट"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> मिनट"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"अलार्म बंद"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"याद दिलाएं"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 मिनट के लिए स्नूज़ हो रहा है."</item>
@@ -74,7 +83,7 @@
<string name="never" msgid="54104287800571769">"कभी नहीं"</string>
<string name="day_concat" msgid="971998564991636532">", "</string>
<string name="clock_instructions" msgid="2656876819515011590">"कोई घड़ी चुनें"</string>
- <string name="analog_gadget" msgid="1670505720837152766">"एनालॉग घड़ी"</string>
+ <string name="analog_gadget" msgid="1670505720837152766">"ऐनालॉग घड़ी"</string>
<string name="help" msgid="7786263119482654015">"सहायता"</string>
<string name="settings" msgid="5849739030579520686">"सेटिंग"</string>
<string name="snooze_duration_title" msgid="1097309861110780483">"इतनी देर के बाद याद दिलाएं:"</string>
@@ -90,23 +99,23 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> मिनट"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"कभी नहीं"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 मिनट"</item>
- <item msgid="3663730603519549990">"10 मिनट"</item>
- <item msgid="1385481095199681200">"15 मिनट"</item>
- <item msgid="420479821767342125">"20 मिनट"</item>
- <item msgid="2107936130151066746">"25 मिनट"</item>
- <item msgid="7219791437023378544">"30 मिनट"</item>
+ <item msgid="3024545954917711306">"1 मिनट"</item>
+ <item msgid="5431906692406316549">"5 मिनट"</item>
+ <item msgid="7742728812068919959">"10 मिनट"</item>
+ <item msgid="2855948657259647629">"15 मिनट"</item>
+ <item msgid="6330196381284475079">"20 मिनट"</item>
+ <item msgid="7809240121716151904">"25 मिनट"</item>
<item msgid="4278641338024561333">"कभी नहीं"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"हो गया"</string>
<string name="revert" msgid="9100911171235162926">"पहले जैसा करें"</string>
<string name="delete" msgid="5732434972457000541">"हटाएं"</string>
- <string name="alarm_volume_title" msgid="8506245173912428522">"अलार्म का आवाज़"</string>
+ <string name="alarm_volume_title" msgid="8506245173912428522">"अलार्म की आवाज़"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"मौन"</string>
<string name="alarm_notify_text" msgid="4891014685945904766">"थोडी देर बाद याद दिलाएं/बंद करें."</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (याद दिलाया जाएगा)"</string>
<string name="alarm_notify_snooze_text" msgid="4819324081410990368">"अलार्म <xliff:g id="TIME">%s</xliff:g> के लिए सेट. रद्द करने के लिए स्पर्श करें."</string>
- <string name="volume_button_setting_title" msgid="6937131248843413357">"आवाज़ बटन"</string>
+ <string name="volume_button_setting_title" msgid="6937131248843413357">"आवाज़ बटन को दबाने पर"</string>
<string name="volume_button_dialog_title" msgid="8768042543750036853">"बटन प्रभाव"</string>
<string-array name="volume_button_setting_entries">
<item msgid="7972756698723318690">"बाद में याद दिलाएं"</item>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"घड़ी का प्रदर्शन"</string>
<string name="label_description" msgid="8736179296142915727">"लेबल"</string>
<string name="ringtone_description" msgid="7580922112921069925">"रिंगटोन"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"मौसम की जानकारी अभी उपलब्ध नहीं है."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"घड़ी में सेट अलार्म के लिए आवाज़ प्लेबैक सेवा."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"रिंगटोन लोड कर रहा है…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"टाइमर"</string>
<string name="menu_clock" msgid="5612760670606829805">"घड़ी"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"स्टॉपवॉच"</string>
- <string name="button_alarms" msgid="8016103479617020265">"अलार्म"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"अलार्म जोड़ें"</string>
<string name="button_cities" msgid="4555761857494501363">"शहर"</string>
<string name="button_menu" msgid="6050484561842120282">"अधिक विकल्प"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"सेटिंग"</string>
@@ -151,7 +159,7 @@
<string name="sw_share_button" msgid="4478648110382859382">"साझा करें"</string>
<string name="hours_label" msgid="3393478155635368097">"घं."</string>
<string name="minutes_label" msgid="3568098128251438588">"मि."</string>
- <string name="seconds_label" msgid="124655952824003246">"से."</string>
+ <string name="seconds_label" msgid="124655952824003246">"सै."</string>
<string name="hours_label_description" msgid="8652842524970971830">"घंटे"</string>
<string name="minutes_label_description" msgid="965686733490357796">"मिनट"</string>
<string name="seconds_label_description" msgid="3821620053141299692">"सेकंड"</string>
@@ -179,9 +187,10 @@
<string name="timer_stop" msgid="3361154678667736722">"रोकें"</string>
<string name="timer_done" msgid="2375990511982914051">"यहां हटाया गया"</string>
<string name="timer_reset" msgid="7848424809190171640">"रीसेट करें"</string>
- <string name="timer_cancel" msgid="3572868404230815644">"रद्द करें"</string>
+ <string name="timer_cancel" msgid="3572868404230815644">"रहने दें"</string>
<string name="timer_times_up" msgid="9190440395938519009">"समय समाप्त"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"टाइमर"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"अधिकतम 4 टाइमर"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"आप गति को बहुत पसंद करते हैं."</item>
<item msgid="6332879039890727169">"अपने परिश्रम के फल का आनंद लें."</item>
@@ -200,17 +209,17 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"देश का समय"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"शहर"</string>
- <string name="clock_settings" msgid="8887845806151785393">"घड़ी"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"घड़ी"</string>
<string name="clock_style" msgid="2265011060429742344">"शैली"</string>
<string-array name="clock_style_entries">
- <item msgid="917900462224167608">"एनालॉग"</item>
+ <item msgid="917900462224167608">"ऐनालॉग"</item>
<item msgid="8483930821046925592">"डिजिटल"</item>
</string-array>
- <string name="automatic_home_clock" msgid="6274174710735449252">"स्वचालित देश की घड़ी"</string>
+ <string name="automatic_home_clock" msgid="6274174710735449252">"अपनेआप देश की घड़ी दिखाएं"</string>
<string name="automatic_home_clock_summary" msgid="6020476321040807273">"भिन्न समय वाले किसी क्षेत्र में यात्रा करते समय, अपने देश की घड़ी जोड़ें"</string>
<string name="home_time_zone" msgid="9199730676287974501">"देश का समय क्षेत्र"</string>
<string name="home_time_zone_title" msgid="807894493443834624">"देश का समय क्षेत्र"</string>
- <string name="time_picker_cancel" msgid="7437106489606013077">"रद्द करें"</string>
+ <string name="time_picker_cancel" msgid="7437106489606013077">"रहने दें"</string>
<string name="time_picker_set" msgid="331153175471468051">"ठीक है"</string>
<string name="time_picker_time_seperator" msgid="7484926510054777041">":"</string>
<string name="time_picker_ampm_label" msgid="6754113715199751083">"--"</string>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"टोंगा"</item>
<item msgid="5176858645450908751">"जकार्ता"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"अलार्म"</string>
- <string name="see_all" msgid="775983396630163739">"सभी देखें…"</string>
- <string name="stopwatch_service_desc" msgid="8416624630388063996">"सूचना चलाने के लिए स्टॉपवॉच सेवा."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"अलार्म"</string>
+ <string name="stopwatch_service_desc" msgid="8416624630388063996">"नोटिफिकेशन चलाने के लिए स्टॉपवॉच सेवा."</string>
<string name="swn_stopped" msgid="783124901663086172">"रोका गया"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"खारिज करने के लिए दाईं ओर स्लाइड करें"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"बाद में याद दिलाने के लिए बाईं ओर स्लाइड करें"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"खारिज करने के लिए ऊपर स्लाइड करें"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"बाद में याद दिलाने के लिए नीचे स्लाइड करें"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"ख़ारिज करने के लिए दाएं स्वाइप करें"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"याद दिलाने के लिए बाएं स्वाइप करें"</string>
<string name="timer_stopped" msgid="2730331837832462008">"टाइमर रुक गया"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> टाइमर रुक गए"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"अपने टाइमर देखने के लिए स्पर्श करें"</string>
@@ -321,7 +327,7 @@
<string name="night_mode_summary" msgid="1017350187324162631">"बहुत मद्धिम प्रदर्शन (अंधेरे कमरों के लिए)"</string>
<string name="expand_alarm" msgid="7392616528943305020">"अलार्म विस्तृत करें"</string>
<string name="collapse_alarm" msgid="3561772046433483980">"अलार्म संक्षिप्त करें"</string>
- <string name="alarm_undo" msgid="5710042601177655254">"पूर्ववत करें"</string>
+ <string name="alarm_undo" msgid="5710042601177655254">"वापस लाएं"</string>
<string name="alarm_deleted" msgid="5017075127290219443">"अलार्म हटा दिया गया."</string>
<string name="slash" msgid="2077577763821006919">"/"</string>
<string name="world_day_of_week_label" msgid="5911196322328341288">"/ <xliff:g id="LABEL">%s</xliff:g>"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"यह शहर निकालें?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"डिजिटल घड़ी"</string>
<string name="no_alarms" msgid="6429431324842022917">"कोई अलार्म नहीं"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"अलार्म सेट नहीं"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"कोई आगामी अलार्म नहीं"</string>
</resources>
diff --git a/res/values-hr/array.xml b/res/values-hr/array.xml
index 885e39f..0b46217 100644
--- a/res/values-hr/array.xml
+++ b/res/values-hr/array.xml
@@ -280,7 +280,7 @@
<item msgid="6470041111418276646">"Lahore"</item>
<item msgid="5672665774945554582">"Sana\'a"</item>
<item msgid="4227294244388933650">"Barcelona"</item>
- <item msgid="2404605478532633099">"Minhen"</item>
+ <item msgid="2404605478532633099">"Munchen"</item>
<item msgid="2402973841037462176">"Milano"</item>
<item msgid="1658609023659261743">"Frankfurt"</item>
<item msgid="4214691757607136548">"Hanoi"</item>
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index f48c5bb..e7075f4 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Sat"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmi"</string>
<string name="add_alarm" msgid="5976616107390962899">"Dodaj alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"SLJEDEĆI ALARMI"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Stolni sat"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Uredi alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Izbriši alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Melodija alarma"</string>
<string name="ringtone" msgid="9110746249688559579">"Zvuk zvona"</string>
<string name="time" msgid="8067216534232296518">"Vrijeme"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Sutra"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Danas"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Buđenje!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Isk."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Odbaci"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Odbaci sad"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Propušteni alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Odgođeno"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm isklj."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Odgoda alarma"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Odgoda alarma na 1 minutu."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nikada"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuta"</item>
- <item msgid="3663730603519549990">"10 minuta"</item>
- <item msgid="1385481095199681200">"15 minuta"</item>
- <item msgid="420479821767342125">"20 minuta"</item>
- <item msgid="2107936130151066746">"25 minuta"</item>
- <item msgid="7219791437023378544">"30 minuta"</item>
+ <item msgid="3024545954917711306">"1 minuta"</item>
+ <item msgid="5431906692406316549">"5 minuta"</item>
+ <item msgid="7742728812068919959">"10 minuta"</item>
+ <item msgid="2855948657259647629">"15 minuta"</item>
+ <item msgid="6330196381284475079">"20 minuta"</item>
+ <item msgid="7809240121716151904">"25 minuta"</item>
<item msgid="4278641338024561333">"Nikada"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Gotovo"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Prikaz sata"</string>
<string name="label_description" msgid="8736179296142915727">"Natpis"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Zvuk zvona"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Trenutačno nisu dostupne informacije o prognozi vremena."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Usluga reprodukcije zvuka za alarme postavljena je u aplikaciji Sat."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Učitavanje melodije zvona…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Mjerač vremena"</string>
<string name="menu_clock" msgid="5612760670606829805">"Sat"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Kronometar"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmi"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Dodaj alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Gradovi"</string>
<string name="button_menu" msgid="6050484561842120282">"Više opcija"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Postavke"</string>
@@ -169,7 +177,7 @@
</plurals>
<plurals name="Nseconds_description">
<item quantity="one" msgid="6589853086641485725">"1 sekunda"</item>
- <item quantity="other" msgid="7583230315175387547">"Ovoliko sekundi: <xliff:g id="NUMBER">%d</xliff:g>"</item>
+ <item quantity="other" msgid="7583230315175387547">"<xliff:g id="NUMBER">%d</xliff:g> s"</item>
</plurals>
<string name="timer_add_timer" msgid="862733633862574752">"Dodaj mjerač"</string>
<string name="timer_start" msgid="6158486445614356442">"Početak"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Odustani"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Vrijeme je isteklo"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Mjerač vremena"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maksimalno 4 tajmera"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Brzi ste kao munja."</item>
<item msgid="6332879039890727169">"Uživajte u plodovima svojeg rada."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Lokalno vrijeme"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Gradovi"</string>
- <string name="clock_settings" msgid="8887845806151785393">"SAT"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Sat"</string>
<string name="clock_style" msgid="2265011060429742344">"Stil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogno"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMI"</string>
- <string name="see_all" msgid="775983396630163739">"Prikaži sve…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmi"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Usluga kronometra za pokretanje obavijesti."</string>
<string name="swn_stopped" msgid="783124901663086172">"Zaustavljeno"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Povucite udesno za odbacivanje"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Povucite ulijevo za odgodu alarma"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Povucite prema gore za odbacivanje"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Povucite prema dolje za odgodu alarma"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Prijeđite prstom udesno za odbacivanje"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Prijeđite prstom ulijevo za odgodu"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Mjerač vremena zaustavljen je"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Broj zaustavljenih mjerača vremena: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Dodirnite da biste vidjeli svoje mjerače vremena"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Ukloniti ovaj grad?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitalni sat"</string>
<string name="no_alarms" msgid="6429431324842022917">"Bez alarma"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nema alarma"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NEMA PREDSTOJEĆIH ALARMA"</string>
</resources>
diff --git a/res/values-hu/array.xml b/res/values-hu/array.xml
index 01dfb1b..e5333f8 100644
--- a/res/values-hu/array.xml
+++ b/res/values-hu/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 4b20955..ef9cc65 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Óra"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Ébresztések"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ébresztés hozzáadása"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"KÖVETKEZŐ ÉBRESZTŐK"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Asztali óra"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Ébresztés szerkesztése"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ébresztés törlése"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ébresztés csengőhangja"</string>
<string name="ringtone" msgid="9110746249688559579">"Csengőhang"</string>
<string name="time" msgid="8067216534232296518">"Időpont"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Holnap"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Ma"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Ébresztő!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Ki"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Elvetés"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Elvetés most"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Elmulasztott ébresztő"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Elhalasztva"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 p"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> perc"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Értesítés ki"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Szundi"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Elhalasztva 1 perccel."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> perc"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Soha"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 perc"</item>
- <item msgid="3663730603519549990">"10 perc"</item>
- <item msgid="1385481095199681200">"15 perc"</item>
- <item msgid="420479821767342125">"20 perc"</item>
- <item msgid="2107936130151066746">"25 perc"</item>
- <item msgid="7219791437023378544">"30 perc"</item>
+ <item msgid="3024545954917711306">"1 perc"</item>
+ <item msgid="5431906692406316549">"5 perc"</item>
+ <item msgid="7742728812068919959">"10 perc"</item>
+ <item msgid="2855948657259647629">"15 perc"</item>
+ <item msgid="6330196381284475079">"20 perc"</item>
+ <item msgid="7809240121716151904">"25 perc"</item>
<item msgid="4278641338024561333">"Soha"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Kész"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Óra megjelenítése"</string>
<string name="label_description" msgid="8736179296142915727">"Címke"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Csengőhang"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Most nem érhetők el időjárási adatok."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Hanglejátszó szolgáltatás az Órában beállított riasztásokhoz."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Csengőhang betöltése..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Időzítő"</string>
<string name="menu_clock" msgid="5612760670606829805">"Óra"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopperóra"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Ébresztések"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Ébresztés hozzáadása"</string>
<string name="button_cities" msgid="4555761857494501363">"Városok"</string>
<string name="button_menu" msgid="6050484561842120282">"További beállítások"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Beállítások"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Mégse"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Az idő lejárt!"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Időzítő"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Legfeljebb 4 időzítő lehetséges"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Ön valósággal a sebesség ördöge."</item>
<item msgid="6332879039890727169">"Élvezze a munkája gyümölcsét."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Otthoni"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Városok"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ÓRA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Óra"</string>
<string name="clock_style" msgid="2265011060429742344">"Stílus"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analóg"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ÉBRESZTÉS"</string>
- <string name="see_all" msgid="775983396630163739">"Összes..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Ébresztés"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stopperóra az értesítés futtatásához."</string>
<string name="swn_stopped" msgid="783124901663086172">"Leállítva"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Csúsztassa jobbra az elvetéshez"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Csúsztassa balra a szundihoz"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Csúsztassa fel az elvetéshez"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Csúsztassa le a szundihoz"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Az elutasításhoz csúsztassa gyorsan jobbra"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"A szundihoz csúsztassa gyorsan balra"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Időzítő megállítva"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> időzítő megállítva"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Érintse meg az időzítők megtekintéséhez"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Eltávolítja ezt a várost?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitális óra"</string>
<string name="no_alarms" msgid="6429431324842022917">"Nincs ébresztés"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nincs riasztás"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NINCS KÖZELGŐ RIASZTÁS"</string>
</resources>
diff --git a/res/values-hy-rAM/array.xml b/res/values-hy-rAM/array.xml
index df60ff6..c1447c3 100644
--- a/res/values-hy-rAM/array.xml
+++ b/res/values-hy-rAM/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Տեգուսիգալպա"</item>
<item msgid="7087691675228926801">"Պարամարիբո"</item>
<item msgid="478384295484578701">"Կիտո"</item>
+ <item msgid="4517870253399384206">"Լյուբլյանա"</item>
</string-array>
</resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 1da3263..884fc47 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Ժամացույց"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Զարթուցիչներ"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ավելացնել զարթուցիչ"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"Հաջորդ ազդանշանները"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Սեղանի ժամացույց"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Խմբագրել զարթուցիչը"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ջնջել զարթուցիչը"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Զարթուցիչի զանգերանգը"</string>
<string name="ringtone" msgid="9110746249688559579">"Զանգերանգ"</string>
<string name="time" msgid="8067216534232296518">"Ժամանակ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Վաղը"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Այսօր"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Արթնացի՛ր:"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Անջ."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Անտեսել"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Անտեսել հիմա"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Բաց թողնված ազդանշան"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Ննջեցված է"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 րոպե"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> րոպե"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Անջատված է"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Ննջել"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Ննջում է 1 րոպեով"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> րոպեից"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Երբեք"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 րոպե"</item>
- <item msgid="3663730603519549990">"10 րոպե"</item>
- <item msgid="1385481095199681200">"15 րոպե"</item>
- <item msgid="420479821767342125">"20 րոպե"</item>
- <item msgid="2107936130151066746">"25 րոպե"</item>
- <item msgid="7219791437023378544">"30 րոպե"</item>
+ <item msgid="3024545954917711306">"1 րոպե"</item>
+ <item msgid="5431906692406316549">"5 րոպե"</item>
+ <item msgid="7742728812068919959">"10 րոպե"</item>
+ <item msgid="2855948657259647629">"15 րոպե"</item>
+ <item msgid="6330196381284475079">"20 րոպե"</item>
+ <item msgid="7809240121716151904">"25 րոպե"</item>
<item msgid="4278641338024561333">"Երբեք"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Կատարված է"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Ժամացույցի տեսքը"</string>
<string name="label_description" msgid="8736179296142915727">"Պիտակ"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Զանգերանգ"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Եղանակի տեսությունն անհասանելի է այս պահին:"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Զարթուցիչների ձայնի նվագարկման ծառայությունը դրված է ժամացույցում:"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Բեռնվում է զանգերանգը…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Ժամաչափ"</string>
<string name="menu_clock" msgid="5612760670606829805">"Ժամացույց"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Վայրկյանաչափ"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Զարթուցիչներ"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Ավելացնել զարթուցիչ"</string>
<string name="button_cities" msgid="4555761857494501363">"Քաղաքներ"</string>
<string name="button_menu" msgid="6050484561842120282">"Այլ ընտրանքներ"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Կարգավորումներ"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Չեղարկել"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Ժամանակը սպառվել է"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Ժամաչափ"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"թույլատրվում է առավելագույնը 4 ժամաչափ"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Դուք լրիվ արագության խենթ եք:"</item>
<item msgid="6332879039890727169">"Վայելեք ձեր աշխատանքի պտուղները:"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Տեղական"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Քաղաքներ"</string>
- <string name="clock_settings" msgid="8887845806151785393">"Ժամացույց"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Ժամացույց"</string>
<string name="clock_style" msgid="2265011060429742344">"Տեսակը"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Անալոգ"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Տոնգա"</item>
<item msgid="5176858645450908751">"Ջակարտա"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"Զարթուցիչներ"</string>
- <string name="see_all" msgid="775983396630163739">"Տեսնել բոլորը…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Զարթուցիչներ"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Վայկյանաչափի ծառայությունը կգործարկի ծանուցումներ:"</string>
<string name="swn_stopped" msgid="783124901663086172">"Դադարեցված է"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Սահեք ձախ՝ անտեսելու համար"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Սահեք ձախ՝ ննջելու համար"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Սահեք վեր՝ անտեսելու համար"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Սահեք ներքև՝ ննջելու համար"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Անջատելու համար սահեցրեք աջ"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Հետաձգելու համար սահեցրեք ձախ"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Ժամաչափը դադարեցված է"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ժամաչափ դադարեցված է"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Հպեք՝ ձեր ժամաչափերը տեսնելու համար"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Հեռացնե՞լ այս քաղաքը:"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Թվային ժամացույց"</string>
<string name="no_alarms" msgid="6429431324842022917">"Զարթուցիչներ չկան"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Սահմանված զարթուցիչներ չկան"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"Սպասվող ազդանշաններ չկան"</string>
</resources>
diff --git a/res/values-in/array.xml b/res/values-in/array.xml
index 8a27f4b..7698206 100644
--- a/res/values-in/array.xml
+++ b/res/values-in/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 700883e..1c36dd9 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Jam"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarm"</string>
<string name="add_alarm" msgid="5976616107390962899">"Tambahkan alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ALARM BERIKUTNYA"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Jam meja"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edit alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Hapus alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Nada Dering Alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Nada Dering"</string>
<string name="time" msgid="8067216534232296518">"Waktu"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Besok"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hari ini"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Bangun!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Mati"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Tutup"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Tutup Sekarang"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarm yang terlewat"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Ditunda"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 menit"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> menit"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm mati"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Tunda"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Ditunda selama 1 menit."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> menit"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Tidak Pernah"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 menit"</item>
- <item msgid="3663730603519549990">"10 menit"</item>
- <item msgid="1385481095199681200">"15 menit"</item>
- <item msgid="420479821767342125">"20 menit"</item>
- <item msgid="2107936130151066746">"25 menit"</item>
- <item msgid="7219791437023378544">"30 menit"</item>
+ <item msgid="3024545954917711306">"1 menit"</item>
+ <item msgid="5431906692406316549">"5 menit"</item>
+ <item msgid="7742728812068919959">"10 menit"</item>
+ <item msgid="2855948657259647629">"15 menit"</item>
+ <item msgid="6330196381284475079">"20 menit"</item>
+ <item msgid="7809240121716151904">"25 menit"</item>
<item msgid="4278641338024561333">"Tidak Pernah"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Selesai"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Tampilan jam"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Nada Dering"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Saat ini informasi cuaca tidak tersedia."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Layanan pemutaran suara untuk alarm yang disetel di Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Memuat nada dering…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Pewaktu"</string>
<string name="menu_clock" msgid="5612760670606829805">"Jam"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopwatch"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarm"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Tambahkan alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Kota"</string>
<string name="button_menu" msgid="6050484561842120282">"Opsi lainnya"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Setelan"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Batal"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Waktu habis"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Pewaktu"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"maksimum 4 pewaktu"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Anda benar-benar cepat."</item>
<item msgid="6332879039890727169">"Nikmati hasil kerja keras Anda."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Rumah"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Kota"</string>
- <string name="clock_settings" msgid="8887845806151785393">"JAM"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Jam"</string>
<string name="clock_style" msgid="2265011060429742344">"Gaya"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARM"</string>
- <string name="see_all" msgid="775983396630163739">"Lihat semua..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarm"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Layanan stopwatch untuk menjalankan pemberitahuan."</string>
<string name="swn_stopped" msgid="783124901663086172">"Dihentikan"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Geser ke kanan untuk menyingkirkan"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Geser ke kiri untuk menunda"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Geser ke atas untuk menyingkirkan"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Geser ke bawah untuk menunda"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Geser ke kanan untuk menutup"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Geser ke kiri untuk menunda"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Pewaktu dihentikan"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> pewaktu dihentikan"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Sentuh untuk melihat pewaktu Anda"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Hapus kota ini?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Jam digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Tidak Ada Alarm"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Tak ada alarm"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"TIDAK ADA ALARM MENDATANG"</string>
</resources>
diff --git a/res/values-is-rIS/array.xml b/res/values-is-rIS/array.xml
index 2fd15e1..6404675 100644
--- a/res/values-is-rIS/array.xml
+++ b/res/values-is-rIS/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index afe34e5..e381539 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Klukka"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Vekjarar"</string>
<string name="add_alarm" msgid="5976616107390962899">"Bæta vekjara við"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NÆSTU VEKJARAR"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Borðklukka"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Breyta vekjara"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Eyða vekjara"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Hringitónn vekjara"</string>
<string name="ringtone" msgid="9110746249688559579">"Hringitónn"</string>
<string name="time" msgid="8067216534232296518">"Tími"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Á morgun"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Í dag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vaknaðu!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Af"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Hunsa"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Hunsa núna"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Hunsaður vekjari"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Blundað"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 mín."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> mín."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Vekjari af"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Blunda"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Blundar í 1 mínútu."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Heima"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Borgir"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KLUKKA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Klukka"</string>
<string name="clock_style" msgid="2265011060429742344">"Stíll"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Með vísum"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Djakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"VEKJARAR"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Vekjarar"</string>
<string name="see_all" msgid="775983396630163739">"Sjá allt…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Skeiðklukkuþjónusta til að keyra tilkynninguna."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stöðvuð"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Fjarlægja þessa borg?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Stafræn klukka"</string>
<string name="no_alarms" msgid="6429431324842022917">"Engir vekjarar"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Engir vekjarar"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ENGIR VÆNTANLEGIR VEKJARAR"</string>
</resources>
diff --git a/res/values-it/array.xml b/res/values-it/array.xml
index e31f63f..ce357df 100644
--- a/res/values-it/array.xml
+++ b/res/values-it/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Lubiana"</item>
</string-array>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index de21d79..8ad0fc0 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -17,37 +17,46 @@
<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">"Orologio"</string>
- <string name="alarm_list_title" msgid="7589940465292950600">"Allarmi"</string>
- <string name="add_alarm" msgid="5976616107390962899">"Aggiungi allarme"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PROSSIMI ALLARMI"</string>
+ <string name="alarm_list_title" msgid="7589940465292950600">"Sveglie"</string>
+ <string name="add_alarm" msgid="5976616107390962899">"Aggiungi sveglia"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Orologio da tavolo"</string>
- <string name="menu_edit_alarm" msgid="7204602994918829751">"Modifica allarme"</string>
- <string name="delete_alarm" msgid="3457780990646206817">"Elimina allarme"</string>
- <string name="enable_alarm" msgid="1834599140632142536">"Attiva allarme"</string>
- <string name="disable_alarm" msgid="5889378670229554109">"Disattiva allarme"</string>
- <string name="delete_alarm_confirm" msgid="6578572637340860840">"Eliminare questo allarme?"</string>
+ <string name="menu_edit_alarm" msgid="7204602994918829751">"Modifica sveglia"</string>
+ <string name="delete_alarm" msgid="3457780990646206817">"Elimina sveglia"</string>
+ <string name="enable_alarm" msgid="1834599140632142536">"Attiva sveglia"</string>
+ <string name="disable_alarm" msgid="5889378670229554109">"Disattiva sveglia"</string>
+ <string name="delete_alarm_confirm" msgid="6578572637340860840">"Eliminare questa sveglia?"</string>
<string name="show_clock" msgid="8358759982675616915">"Mostra orologio"</string>
<string name="hide_clock" msgid="3217727306480505694">"Nascondi orologio"</string>
<string name="label" msgid="162189613902857319">"Etichetta"</string>
- <string name="default_label" msgid="5590025289805630372">"Allarme"</string>
- <string name="set_alarm" msgid="9148359866152726808">"Imposta allarme"</string>
+ <string name="default_label" msgid="5590025289805630372">"Sveglia"</string>
+ <string name="set_alarm" msgid="9148359866152726808">"Imposta sveglia"</string>
<string name="alarm_vibrate" msgid="3476686921490362230">"Vibrazione"</string>
<string name="alarm_repeat" msgid="7242985466344233206">"Ripeti"</string>
- <string name="alert" msgid="6506982899651975645">"Suoneria allarme"</string>
+ <string name="alert" msgid="6506982899651975645">"Suoneria sveglia"</string>
<string name="ringtone" msgid="9110746249688559579">"Suoneria"</string>
<string name="time" msgid="8067216534232296518">"Ora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Domani"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Oggi"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Svegliati!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"No"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Spegni"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignora ora"</string>
- <string name="alarm_missed_title" msgid="3828345099754063392">"Allarme ignorato"</string>
+ <string name="alarm_missed_title" msgid="3828345099754063392">"Sveglia ignorata"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Posticip."</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Sveglia off"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Posticipa"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Posticipazione di un minuto."</item>
<item quantity="other" msgid="7377899473014259727">"Posticipazione di <xliff:g id="MINUTES">%d</xliff:g> minuti."</item>
</plurals>
<string name="alarm_alert_snooze_until" msgid="6958013659168344550">"Ripetizione allarme fino alle <xliff:g id="TIME">%s</xliff:g>"</string>
- <string name="alarm_alert_predismiss_title" msgid="5723945586913705445">"Prossimo allarme"</string>
- <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"L\'allarme ignorato è stato eliminato"</string>
+ <string name="alarm_alert_predismiss_title" msgid="5723945586913705445">"Prossima sveglia"</string>
+ <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"La sveglia ignorata è stata eliminata"</string>
<string-array name="timer_notifications">
<item msgid="7760558912503484257">"Resta meno di un minuto"</item>
<item msgid="83197792732433351">"<xliff:g id="HOURS">%1$s</xliff:g> rimanenti"</item>
@@ -55,14 +64,14 @@
<item msgid="8458069283817013813">"<xliff:g id="HOURS">%1$s</xliff:g> e <xliff:g id="MINUTES">%2$s</xliff:g> rimanenti"</item>
</string-array>
<string-array name="alarm_set">
- <item msgid="6450913786084215050">"L\'allarme sarà attivato tra meno di 1 minuto."</item>
- <item msgid="6002066367368421848">"L\'allarme sarà attivato tra <xliff:g id="DAYS">%1$s</xliff:g>."</item>
- <item msgid="8824719306247973774">"L\'allarme sarà attivato tra <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="8182406852935468862">"L\'allarme sarà attivato tra <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="2532279224777213194">"L\'allarme sarà attivato tra <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="5936557894247187717">"L\'allarme sarà attivato tra <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="9115697840826129603">"L\'allarme sarà attivato tra <xliff:g id="HOURS">%2$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="2332583385137381060">"L\'allarme sarà attivato tra <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>
+ <item msgid="6450913786084215050">"La sveglia sarà attivata tra meno di 1 minuto."</item>
+ <item msgid="6002066367368421848">"La sveglia sarà attivata tra <xliff:g id="DAYS">%1$s</xliff:g>."</item>
+ <item msgid="8824719306247973774">"La sveglia sarà attivata tra <xliff:g id="HOURS">%2$s</xliff:g>."</item>
+ <item msgid="8182406852935468862">"La sveglia sarà attivata tra <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="HOURS">%2$s</xliff:g>."</item>
+ <item msgid="2532279224777213194">"La sveglia sarà attivata tra <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="5936557894247187717">"La sveglia sarà attivata tra <xliff:g id="DAYS">%1$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="9115697840826129603">"La sveglia sarà attivata tra <xliff:g id="HOURS">%2$s</xliff:g> e <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="2332583385137381060">"La sveglia sarà attivata tra <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 giorno"</string>
<string name="days" msgid="2070509222727852210">"<xliff:g id="DAYS">%s</xliff:g> giorni"</string>
@@ -90,22 +99,22 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minuti"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Mai"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuti"</item>
- <item msgid="3663730603519549990">"10 minuti"</item>
- <item msgid="1385481095199681200">"15 minuti"</item>
- <item msgid="420479821767342125">"20 minuti"</item>
- <item msgid="2107936130151066746">"25 minuti"</item>
- <item msgid="7219791437023378544">"30 minuti"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minuti"</item>
+ <item msgid="7742728812068919959">"10 minuti"</item>
+ <item msgid="2855948657259647629">"15 minuti"</item>
+ <item msgid="6330196381284475079">"20 minuti"</item>
+ <item msgid="7809240121716151904">"25 minuti"</item>
<item msgid="4278641338024561333">"Mai"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Fine"</string>
<string name="revert" msgid="9100911171235162926">"Annulla modifiche"</string>
<string name="delete" msgid="5732434972457000541">"Elimina"</string>
- <string name="alarm_volume_title" msgid="8506245173912428522">"Volume allarme"</string>
+ <string name="alarm_volume_title" msgid="8506245173912428522">"Volume sveglia"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"Silenzioso"</string>
- <string name="alarm_notify_text" msgid="4891014685945904766">"Ripeti o elimina allarme."</string>
+ <string name="alarm_notify_text" msgid="4891014685945904766">"Ripeti o elimina sveglia."</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (sospeso)"</string>
- <string name="alarm_notify_snooze_text" msgid="4819324081410990368">"L\'allarme sarà attivato alle <xliff:g id="TIME">%s</xliff:g>. Tocca per annullare."</string>
+ <string name="alarm_notify_snooze_text" msgid="4819324081410990368">"La sveglia sarà attivata alle <xliff:g id="TIME">%s</xliff:g>. Tocca per annullare."</string>
<string name="volume_button_setting_title" msgid="6937131248843413357">"Pulsanti volume"</string>
<string name="volume_button_dialog_title" msgid="8768042543750036853">"Effetto pulsante"</string>
<string-array name="volume_button_setting_entries">
@@ -114,7 +123,7 @@
<item msgid="6302517608411378024">"Nessuna azione"</item>
</string-array>
<string name="default_ringtone_setting_title" msgid="4549726190682964245">"Imposta suoneria predefinita"</string>
- <string name="alarm_button_description" msgid="740283647046258651">"Allarmi"</string>
+ <string name="alarm_button_description" msgid="740283647046258651">"Sveglie"</string>
<string name="gallery_button_description" msgid="1151743663255257668">"Galleria"</string>
<string name="music_button_description" msgid="1626593420810117999">"Musica"</string>
<string name="nightmode_button_description" msgid="990894208217576381">"Abbassa"</string>
@@ -122,19 +131,18 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Visualizzazione orologio"</string>
<string name="label_description" msgid="8736179296142915727">"Etichetta"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Suoneria"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Le informazioni meteo non sono al momento disponibili."</string>
- <string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Servizio di riproduzione dei suoni per gli allarmi impostati in Orologio."</string>
+ <string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Servizio di riproduzione dei suoni per le sveglie impostate in Orologio."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Caricamento suoneria..."</string>
<string name="timer_ring_service_desc" msgid="2620214305660322415">"Servizio di riproduzione dei suoni per i timer impostati in Orologio."</string>
- <string name="control_set_alarm" msgid="2194676418924016327">"Imposta allarme"</string>
+ <string name="control_set_alarm" msgid="2194676418924016327">"Imposta sveglia"</string>
<!-- no translation found for control_set_alarm_with_existing (3359285346655630660) -->
<skip />
- <string name="menu_alarm" msgid="4772010125376647519">"Allarme"</string>
+ <string name="menu_alarm" msgid="4772010125376647519">"Sveglia"</string>
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Orologio"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronometro"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Allarmi"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Aggiungi sveglia"</string>
<string name="button_cities" msgid="4555761857494501363">"Città"</string>
<string name="button_menu" msgid="6050484561842120282">"Altre opzioni"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Impostazioni"</string>
@@ -144,7 +152,7 @@
<string name="menu_item_sort_by_name" msgid="1762931290495104106">"Ordina per nome"</string>
<string name="selected_cities_label" msgid="3607479399424246605">"Città selezionate"</string>
<string name="sw_resume_button" msgid="2569360966002022248">"Riprendi"</string>
- <string name="sw_start_button" msgid="8373422516681242270">"Inizia"</string>
+ <string name="sw_start_button" msgid="8373422516681242270">"Avvia"</string>
<string name="sw_stop_button" msgid="8322958613123274451">"Interrompi"</string>
<string name="sw_lap_button" msgid="6992264696039004233">"Giro"</string>
<string name="sw_reset_button" msgid="6616804728322906117">"Reimposta"</string>
@@ -172,7 +180,7 @@
<item quantity="other" msgid="7583230315175387547">"<xliff:g id="NUMBER">%d</xliff:g> secondi"</item>
</plurals>
<string name="timer_add_timer" msgid="862733633862574752">"Aggiungi timer"</string>
- <string name="timer_start" msgid="6158486445614356442">"Inizia"</string>
+ <string name="timer_start" msgid="6158486445614356442">"Avvia"</string>
<string name="timer_delete" msgid="8699122001991909302">"Elimina"</string>
<string name="timer_plus_one" msgid="6631211310420106116">"Aggiungi un minuto"</string>
<string name="timer_plus_1_min" msgid="8645224089494875062">"Aggiungi 1 min"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Annulla"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tempo scaduto"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Massimo quattro timer"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Sei davvero un fulmine."</item>
<item msgid="6332879039890727169">"Goditi i frutti del tuo lavoro."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Città"</string>
- <string name="clock_settings" msgid="8887845806151785393">"OROLOGIO"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Orologio"</string>
<string name="clock_style" msgid="2265011060429742344">"Stile"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogico"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Giacarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALLARMI"</string>
- <string name="see_all" msgid="775983396630163739">"Mostra tutto..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Sveglie"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Servizio cronometro per pubblicare la notifica."</string>
<string name="swn_stopped" msgid="783124901663086172">"Interrotto"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Fai scorrere il dito verso destra per eliminare"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Fai scorrere il dito verso sinistra per ripetizione allarme attiva"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Fai scorrere il dito verso l\'alto per eliminare"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Fai scorrere il dito verso il basso per posticipare"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Fai scorrere a destra per eliminare"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Fai scorrere a sinistra per posticipare"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timer fermato"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> timer fermati"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Tocca per visualizzare i timer"</string>
@@ -319,23 +325,24 @@
<string name="screensaver_settings" msgid="7013450738357352801">"Impostazioni Dream"</string>
<string name="night_mode_title" msgid="5983813889469616299">"Modalità Notte"</string>
<string name="night_mode_summary" msgid="1017350187324162631">"Display molto scuro (per stanze buie)"</string>
- <string name="expand_alarm" msgid="7392616528943305020">"Espandi allarme"</string>
- <string name="collapse_alarm" msgid="3561772046433483980">"Comprimi allarme"</string>
+ <string name="expand_alarm" msgid="7392616528943305020">"Espandi sveglia"</string>
+ <string name="collapse_alarm" msgid="3561772046433483980">"Comprimi sveglia"</string>
<string name="alarm_undo" msgid="5710042601177655254">"annulla"</string>
- <string name="alarm_deleted" msgid="5017075127290219443">"Allarme eliminato."</string>
+ <string name="alarm_deleted" msgid="5017075127290219443">"Sveglia eliminata."</string>
<string name="slash" msgid="2077577763821006919">"/"</string>
<string name="world_day_of_week_label" msgid="5911196322328341288">"/<xliff:g id="LABEL">%s</xliff:g>"</string>
- <string name="next_alarm_description" msgid="2650244835760747046">"Prossimo allarme: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
+ <string name="next_alarm_description" msgid="2650244835760747046">"Prossima sveglia: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
<string name="label_unlabeled" msgid="4699506713571930740"></string>
<string name="alarms_selected" msgid="1075308195332888260">"<xliff:g id="ALARMS">%d</xliff:g> selezionati"</string>
<string name="deleted_message" msgid="1220848140260509437">"Eliminato"</string>
<plurals name="alarm_delete_confirmation">
- <item quantity="one" msgid="111940612131906802">"Eliminare l\'allarme selezionato?"</item>
- <item quantity="other" msgid="6918176478191272189">"Eliminare gli allarmi selezionati?"</item>
+ <item quantity="one" msgid="111940612131906802">"Eliminare la sveglia selezionata?"</item>
+ <item quantity="other" msgid="6918176478191272189">"Eliminare le sveglie selezionate?"</item>
</plurals>
<string name="timer_delete_confirmation" msgid="2815524107015816453">"Eliminare questo timer?"</string>
<string name="city_delete_confirmation" msgid="1783441538785676299">"Rimuovere questa città?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Orologio digitale"</string>
- <string name="no_alarms" msgid="6429431324842022917">"Nessun allarme"</string>
- <string name="no_upcoming_alarms" msgid="2889840988069436254">"NESSUN ALLARME PROSSIMO"</string>
+ <string name="no_alarms" msgid="6429431324842022917">"Nessuna sveglia"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nessuna sveglia"</string>
+ <string name="no_upcoming_alarms" msgid="2889840988069436254">"NESSUNA SVEGLIA A BREVE"</string>
</resources>
diff --git a/res/values-iw/array.xml b/res/values-iw/array.xml
index c080896..cce9235 100644
--- a/res/values-iw/array.xml
+++ b/res/values-iw/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"טגוסיגלפה"</item>
<item msgid="7087691675228926801">"פרמאריבו"</item>
<item msgid="478384295484578701">"קיטו"</item>
+ <item msgid="4517870253399384206">"לובליאנה"</item>
</string-array>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4996d3d..dd73794 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"שעון"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"התראות"</string>
<string name="add_alarm" msgid="5976616107390962899">"הוסף צלצול"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ההתראות הבאות"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"שעון שולחני"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ערוך התראה"</string>
<string name="delete_alarm" msgid="3457780990646206817">"מחק התראה"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"צלצול שעון מעורר"</string>
<string name="ringtone" msgid="9110746249688559579">"רינגטון"</string>
<string name="time" msgid="8067216534232296518">"שעה"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"מחר"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"היום"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"תתעורר!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"כבוי"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"דחה"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"סגור כעת"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"החמצת התראה"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"מושהית"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"דקה אחת"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> דקות"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"ההתראה כבויה"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"נודניק"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"עובר למצב נודניק למשך דקה."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> דקות"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"לעולם לא"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 דקות"</item>
- <item msgid="3663730603519549990">"10 דקות"</item>
- <item msgid="1385481095199681200">"15 דקות"</item>
- <item msgid="420479821767342125">"20 דקות"</item>
- <item msgid="2107936130151066746">"25 דקות"</item>
- <item msgid="7219791437023378544">"30 דקות"</item>
+ <item msgid="3024545954917711306">"דקה"</item>
+ <item msgid="5431906692406316549">"5 דקות"</item>
+ <item msgid="7742728812068919959">"10 דקות"</item>
+ <item msgid="2855948657259647629">"15 דקות"</item>
+ <item msgid="6330196381284475079">"20 דקות"</item>
+ <item msgid="7809240121716151904">"25 דקות"</item>
<item msgid="4278641338024561333">"לעולם לא"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"סיום"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"תצוגת שעון"</string>
<string name="label_description" msgid="8736179296142915727">"תווית"</string>
<string name="ringtone_description" msgid="7580922112921069925">"רינגטון"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"לא זמינים כרגע נתונים על מזג האוויר."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"שירות השמעת צלילים עבור התראות נקבע ב-Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"טוען צלצול..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"טיימר"</string>
<string name="menu_clock" msgid="5612760670606829805">"שעון"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"שעון עצר"</string>
- <string name="button_alarms" msgid="8016103479617020265">"התראות"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"הוסף התראה"</string>
<string name="button_cities" msgid="4555761857494501363">"ערים"</string>
<string name="button_menu" msgid="6050484561842120282">"אפשרויות נוספות"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"הגדרות"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"בטל"</string>
<string name="timer_times_up" msgid="9190440395938519009">"הזמן נגמר"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"טיימר"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 טיימרים לכל היותר"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"אתה מהיר כשד משחת."</item>
<item msgid="6332879039890727169">"תיהנה מפירות עמלך."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"מקומי"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ערים"</string>
- <string name="clock_settings" msgid="8887845806151785393">"שעון"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"שעון"</string>
<string name="clock_style" msgid="2265011060429742344">"סגנון"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"אנלוגי"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"טונגה"</item>
<item msgid="5176858645450908751">"ג\'אקארטה"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"התראות"</string>
- <string name="see_all" msgid="775983396630163739">"הצג הכל…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"התראות"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"שירות שעון עצר להפעלת ההתראה."</string>
<string name="swn_stopped" msgid="783124901663086172">"נעצר"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"החלק ימינה כדי לסגור"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"החלק שמאלה כדי לעבור למצב נודניק"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"החלק מעלה כדי לסגור"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"החלק מטה כדי לעבור למצב נודניק"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"החלק ימינה כדי לבטל"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"החלק שמאלה כדי להפעיל נודניק"</string>
<string name="timer_stopped" msgid="2730331837832462008">"טיימר נעצר"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> טיימרים נעצרו"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"גע כדי לראות את הטיימרים שלך"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"האם להסיר את העיר הזאת?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"שעון דיגיטלי"</string>
<string name="no_alarms" msgid="6429431324842022917">"ללא התראות"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"לא הוגדרו התראות"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"אין התראות קרובות"</string>
</resources>
diff --git a/res/values-ja/array.xml b/res/values-ja/array.xml
index a65b59c..508763e 100644
--- a/res/values-ja/array.xml
+++ b/res/values-ja/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"テグシガルパ"</item>
<item msgid="7087691675228926801">"パラマリボ"</item>
<item msgid="478384295484578701">"キト"</item>
+ <item msgid="4517870253399384206">"リュブリャナ"</item>
</string-array>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 0f7944f..005951e 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"時計"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"アラーム"</string>
<string name="add_alarm" msgid="5976616107390962899">"アラームの設定"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"次のアラーム"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"卓上時計"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"アラームを編集"</string>
<string name="delete_alarm" msgid="3457780990646206817">"アラームを削除"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"アラーム音"</string>
<string name="ringtone" msgid="9110746249688559579">"着信音"</string>
<string name="time" msgid="8067216534232296518">"時刻"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"明日"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"今日"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"起きて!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"OFF"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"停止"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"今すぐ解除"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"聞き逃したアラーム"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"スヌーズ"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1分"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g>分"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"アラームOFF"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"スヌーズ"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1分後に再通知します。"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g>分"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"なし"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5分"</item>
- <item msgid="3663730603519549990">"10分"</item>
- <item msgid="1385481095199681200">"15分"</item>
- <item msgid="420479821767342125">"20分"</item>
- <item msgid="2107936130151066746">"25分"</item>
- <item msgid="7219791437023378544">"30分"</item>
+ <item msgid="3024545954917711306">"1分"</item>
+ <item msgid="5431906692406316549">"5分"</item>
+ <item msgid="7742728812068919959">"10分"</item>
+ <item msgid="2855948657259647629">"15分"</item>
+ <item msgid="6330196381284475079">"20分"</item>
+ <item msgid="7809240121716151904">"25分"</item>
<item msgid="4278641338024561333">"なし"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"完了"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"時計のディスプレイ"</string>
<string name="label_description" msgid="8736179296142915727">"ラベル"</string>
<string name="ringtone_description" msgid="7580922112921069925">"着信音"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"現在、天気情報をご利用いただけません。"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"時計で設定したアラーム用のサウンド再生サービスです。"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"着信音を読み込み中..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"タイマー"</string>
<string name="menu_clock" msgid="5612760670606829805">"時計"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"ストップウォッチ"</string>
- <string name="button_alarms" msgid="8016103479617020265">"アラーム"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"アラームを追加"</string>
<string name="button_cities" msgid="4555761857494501363">"世界時計"</string>
<string name="button_menu" msgid="6050484561842120282">"その他のオプション"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"設定"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"キャンセル"</string>
<string name="timer_times_up" msgid="9190440395938519009">"タイムアップ"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"タイマー"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"タイマーは最大4個まで"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"なかなかのスピード狂です。"</item>
<item msgid="6332879039890727169">"まさに努力の賜物です。"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"自宅"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"世界時計"</string>
- <string name="clock_settings" msgid="8887845806151785393">"時刻"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"時計"</string>
<string name="clock_style" msgid="2265011060429742344">"スタイル"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"アナログ"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"トンガ"</item>
<item msgid="5176858645450908751">"ジャカルタ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"アラーム"</string>
- <string name="see_all" msgid="775983396630163739">"すべて見る…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"アラーム"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"通知を行うためのストップウォッチサービスです。"</string>
<string name="swn_stopped" msgid="783124901663086172">"停止"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"右にスライドすると解除できます"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"左にスライドするとスヌーズを設定できます"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"上にスライドすると解除できます"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"下にスライドするとスヌーズを設定できます"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"右にスワイプすると解除できます"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"左にスワイプするとスヌーズを設定できます"</string>
<string name="timer_stopped" msgid="2730331837832462008">"タイマーが停止しました"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g>件のタイマーが停止しました"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"タップしてタイマーを表示"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"この都市を削除しますか?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"デジタルクロック"</string>
<string name="no_alarms" msgid="6429431324842022917">"アラームはありません"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"アラーム未設定"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"次のアラームはありません"</string>
</resources>
diff --git a/res/values-ka-rGE/array.xml b/res/values-ka-rGE/array.xml
index 86e82a1..8706fa2 100644
--- a/res/values-ka-rGE/array.xml
+++ b/res/values-ka-rGE/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ტეგუსიგალპა"</item>
<item msgid="7087691675228926801">"პარამარიბო"</item>
<item msgid="478384295484578701">"ქუიტო"</item>
+ <item msgid="4517870253399384206">"ლიუბლიანა"</item>
</string-array>
</resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 55e9fd5..2dd1959 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"საათი"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"მაღვიძარები"</string>
<string name="add_alarm" msgid="5976616107390962899">"მაღვიძარას დამატება"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"შემდეგი მაღვიძარები"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"საათი ეკრანზე"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"მაღვიძარას რედაქტირება"</string>
<string name="delete_alarm" msgid="3457780990646206817">"მაღვიძარას წაშლა"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"მაღვიძარას ზარი"</string>
<string name="ringtone" msgid="9110746249688559579">"ზარი"</string>
<string name="time" msgid="8067216534232296518">"დრო"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"ხვალ"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"დღეს"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"გაღვიძება!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"გამორ"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"დახურვა"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ახლა გაშვება"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"გაცდენილი მაღვიძარა"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"ჩათვლემა"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 წთ"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> წთ"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"მაღვ.გამორთ."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"ჩაჩუმება"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ჩაჩუმება 1 წუთით."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> წუთი"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"არასოდეს"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 წუთი"</item>
- <item msgid="3663730603519549990">"10 წუთი"</item>
- <item msgid="1385481095199681200">"15 წუთი"</item>
- <item msgid="420479821767342125">"20 წუთი"</item>
- <item msgid="2107936130151066746">"25 წუთი"</item>
- <item msgid="7219791437023378544">"30 წუთი"</item>
+ <item msgid="3024545954917711306">"1 წუთი"</item>
+ <item msgid="5431906692406316549">"5 წუთი"</item>
+ <item msgid="7742728812068919959">"10 წუთი"</item>
+ <item msgid="2855948657259647629">"15 წუთი"</item>
+ <item msgid="6330196381284475079">"20 წუთი"</item>
+ <item msgid="7809240121716151904">"25 წუთი"</item>
<item msgid="4278641338024561333">"არასოდეს"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"დასრულდა"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"საათის ეკრანი"</string>
<string name="label_description" msgid="8736179296142915727">"ლეიბლი"</string>
<string name="ringtone_description" msgid="7580922112921069925">"ზარი"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"ამინდის შესახებ ინფორმაცია ამ მომენტისთვის მიუწვდომელია."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Clock-ში ხმის დაკვრის სერვისი მაღვიძარების კომპლექტებისთვის."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"ზარის ჩატვირთვა…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"ტაიმერი"</string>
<string name="menu_clock" msgid="5612760670606829805">"საათი"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"წამზომი"</string>
- <string name="button_alarms" msgid="8016103479617020265">"მაღვიძარები"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"მაღვიძარას დამატება"</string>
<string name="button_cities" msgid="4555761857494501363">"ქალაქები"</string>
<string name="button_menu" msgid="6050484561842120282">"მეტი პარამეტრი"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"პარამეტრები"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"გაუქმება"</string>
<string name="timer_times_up" msgid="9190440395938519009">"დრო ამოიწურა"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"ტაიმერი"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"მაქსიმუმ 4 ტაიმერი"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"საკმაოდ სწრაფი ხართ."</item>
<item msgid="6332879039890727169">"ისიამოვნეთ თქვენი შრომის ნაყოფით."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ჩემი"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ქალაქები"</string>
- <string name="clock_settings" msgid="8887845806151785393">"საათი"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"საათი"</string>
<string name="clock_style" msgid="2265011060429742344">"სტილი"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"ანალოგი"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"ტონგა"</item>
<item msgid="5176858645450908751">"ჯაკარტა"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"მაღვიძარები"</string>
- <string name="see_all" msgid="775983396630163739">"ყველას ნახვა…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"მაღვიძარები"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"წამზომის სერვისი შეტყობინებების გასაგზავნად."</string>
<string name="swn_stopped" msgid="783124901663086172">"შეჩერდა"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"გასაუქმებლად გადაასრიალეთ მარჯვნივ"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"ჩასაჩუმებლად მარცხნივ გადასრიალება"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"გასაუქმებლად აასრიალეთ ზევით"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"ჩასაჩუმებლად ქვემოთ გადასრიალება"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"დასახურად გადაფურცლეთ მარჯვნივ"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"ჩაჩუმებისათვის გადაფურცლეთ მარცხნივ"</string>
<string name="timer_stopped" msgid="2730331837832462008">"ტაიმერი შეჩერდა"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ტაიმერი შეჩერდა"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"შეეხეთ, რათა ნახოთ თქვენი ტაიმერები"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"წაიშალოს ეს ქალაქი?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ციფრული საათი"</string>
<string name="no_alarms" msgid="6429431324842022917">"მაღვიძარები არ არის"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"მაღვიძ. არ არის"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"მომავალი მაღვიძარები არ არის"</string>
</resources>
diff --git a/res/values-kk-rKZ/array.xml b/res/values-kk-rKZ/array.xml
index e9147d8..c83874d 100644
--- a/res/values-kk-rKZ/array.xml
+++ b/res/values-kk-rKZ/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигальпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 17e5551..1c531f6 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Cағат"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Дабылдар"</string>
<string name="add_alarm" msgid="5976616107390962899">"Дабыл қосу"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"КЕЛЕСІ ДАБЫЛДАР"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Үстел сағаты"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Дабылды өңдеу"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Дабылды жою"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Дабылдың қоңырау әуені"</string>
<string name="ringtone" msgid="9110746249688559579">"Қоңырау әуені"</string>
<string name="time" msgid="8067216534232296518">"Уақыт"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Ертең"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Бүгін"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Ояныңыз!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Өшірулі"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Бас тарту"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Қазір бас тарту"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Өткізіп алған дабыл"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Кейінге қалдырылды"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мин."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мин."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Дабыл өшірулі"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Кейінге қалдыру"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 минутқа кейінге қалдыру."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Негізгі"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Қалалар"</string>
- <string name="clock_settings" msgid="8887845806151785393">"САҒАТ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Cағат"</string>
<string name="clock_style" msgid="2265011060429742344">"Мәнер"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналогтық"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Джакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ДАБЫЛДАР"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Дабылдар"</string>
<string name="see_all" msgid="775983396630163739">"Барлығын көру…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Хабарландыруды орындайтын секундомер қызметі."</string>
<string name="swn_stopped" msgid="783124901663086172">"Тоқтатылды"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Осы қаланы жою керек пе?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Сандық сағат"</string>
<string name="no_alarms" msgid="6429431324842022917">"Дабылдар жоқ"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Дабылдар орнатылмаған"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"КЕЛЕ ЖАТҚАН ДАБЫЛДАР ЖОҚ"</string>
</resources>
diff --git a/res/values-km-rKH/array.xml b/res/values-km-rKH/array.xml
index cdaf15a..6eb84ee 100644
--- a/res/values-km-rKH/array.xml
+++ b/res/values-km-rKH/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"តេហ្គូស៊ីហ្កាល់ប៉ា"</item>
<item msgid="7087691675228926801">"ប៉ារ៉ាម៉ារីបូ"</item>
<item msgid="478384295484578701">"គីតូ"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 5acf7da..6818fb1 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"នាឡិកា"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"សំឡេងរោទ៍"</string>
<string name="add_alarm" msgid="5976616107390962899">"បន្ថែមសំឡេងរោទ៍"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ការជូនដំណឹងបន្ទាប់"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"នាឡិការោទ៍"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"កែសំឡេងរោទ៍"</string>
<string name="delete_alarm" msgid="3457780990646206817">"លុបសំឡេងរោទ៍"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"សំឡេងរោទ៍"</string>
<string name="ringtone" msgid="9110746249688559579">"សំឡេងរោទ៍"</string>
<string name="time" msgid="8067216534232296518">"ពេលវេលា"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"ថ្ងៃស្អែក"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ថ្ងៃនេះ"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ភ្ញាក់!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"បិទ"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"បោះបង់"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"បដិសេធឥឡូវ"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"ខកខានការជូនដំណឹង"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"បានផ្អាក"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"១នាទី"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> នាទី"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"បិទសំឡេងរោទ៍"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"ផ្អាក"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ផ្អាក 1 នាទី។"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> នាទី"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"កុំ"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"៥ នាទី"</item>
- <item msgid="3663730603519549990">"១០ នាទី"</item>
- <item msgid="1385481095199681200">"១៥ នាទី"</item>
- <item msgid="420479821767342125">"២០ នាទី"</item>
- <item msgid="2107936130151066746">"២៥ នាទី"</item>
- <item msgid="7219791437023378544">"៣០ នាទី"</item>
+ <item msgid="3024545954917711306">"១នាទី"</item>
+ <item msgid="5431906692406316549">"៥ នាទី"</item>
+ <item msgid="7742728812068919959">"១០ នាទី"</item>
+ <item msgid="2855948657259647629">"១៥ នាទី"</item>
+ <item msgid="6330196381284475079">"២០ នាទី"</item>
+ <item msgid="7809240121716151904">"២៥ នាទី"</item>
<item msgid="4278641338024561333">"កុំ"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"ធ្វើរួច"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"ការបង្ហា្ញញនាឡិកា"</string>
<string name="label_description" msgid="8736179296142915727">"ស្លាក"</string>
<string name="ringtone_description" msgid="7580922112921069925">"សំឡេងរោទ៍"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"ថាតើបច្ចុប្បន្នមិនមានព័ត៌មាន។"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"បានកំណត់សេវាកម្មបន្លឺសំឡេងរោទ៍នៅក្នុងនាឡិកា។"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"កំពុងផ្ទុកសំឡេងរោទ៍…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"កម្មវិធីកំណត់ពេល"</string>
<string name="menu_clock" msgid="5612760670606829805">"នាឡិកា"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"នាឡិកាបញ្ឈប់"</string>
- <string name="button_alarms" msgid="8016103479617020265">"សំឡេងរោទ៍"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"បន្ថែមសំឡេងរោទ៍"</string>
<string name="button_cities" msgid="4555761857494501363">"ទីក្រុង"</string>
<string name="button_menu" msgid="6050484561842120282">"ជម្រើសបន្ថែម"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"ការកំណត់"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"បោះបង់"</string>
<string name="timer_times_up" msgid="9190440395938519009">"ដល់ម៉ោង"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"កម្មវិធីកំណត់ពេល"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"ច្រើនបំផុតកម្មវិធីកំណត់ម៉ោង ៤"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"អ្នកកំពុងស្ថិតក្នុងល្បឿនដ៏អស្ចារ្យ។"</item>
<item msgid="6332879039890727169">"រីករាយជាមួយលទ្ធផលការងាររបស់អ្នក។"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ដើម"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ទីក្រុង"</string>
- <string name="clock_settings" msgid="8887845806151785393">"នាឡិកា"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"នាឡិកា"</string>
<string name="clock_style" msgid="2265011060429742344">"រចនាប័ទ្ម"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"អាណាឡូក"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"តុងហ្គា"</item>
<item msgid="5176858645450908751">"ហ្សាការតា"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"សំឡេងរោទ៍"</string>
- <string name="see_all" msgid="775983396630163739">"មើលទាំងអស់…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"សំឡេងរោទ៍"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"សេវាកម្មនាឡិកាបញ្ឈប់ដើម្បីដំណើរការការជូនដំណឹង។"</string>
<string name="swn_stopped" msgid="783124901663086172">"បានឈប់"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"រុញទៅស្ដាំដើម្បីបោះបង់"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"រុញទៅឆ្វេងដើម្បីផ្អាក"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"រុញឡើងលើដើម្បីបោះបង់"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"រុញចុះក្រោមដើម្បីផ្អាក"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"អូសទៅស្ដាំដើម្បីបដិសេធ"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"អូសទៅឆ្វេងដើម្បីផ្អាក"</string>
<string name="timer_stopped" msgid="2730331837832462008">"កម្មវិធីកំណត់ពេលបានឈប់"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> កម្មវិធីកំណត់ពេលបានឈប់"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"ប៉ះដើម្បីមើលកម្មវិធីកំណត់ពេលរបស់អ្នក"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"លុបទីក្រុងនេះ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"នាឡិកាឌីជីថល"</string>
<string name="no_alarms" msgid="6429431324842022917">"គ្មានការជូនដំណឹង"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"មិនមានសំឡេងរោទ៍"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"គ្មានការជូនដំណឹងដែលនឹងកើតឡើង"</string>
</resources>
diff --git a/res/values-kn-rIN/array.xml b/res/values-kn-rIN/array.xml
index 2ad52a8..343f468 100644
--- a/res/values-kn-rIN/array.xml
+++ b/res/values-kn-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ತೆಗುಸಿಗಲ್ಪಾ"</item>
<item msgid="7087691675228926801">"ಪರಮಾರಿಬೋ"</item>
<item msgid="478384295484578701">"ಕ್ವಿಟೊ"</item>
+ <item msgid="4517870253399384206">"ಲ್ಯೂಬಿಯಾನಾ"</item>
</string-array>
</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 280a023..84aa5ea 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ಗಡಿಯಾರ"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"ಅಲಾರಾಂಗಳು"</string>
<string name="add_alarm" msgid="5976616107390962899">"ಅಲಾರಮ್ ಸೇರಿಸಿ"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ಮುಂದಿನ ಅಲಾರಮ್ಗಳು"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ಡೆಸ್ಕ್ ಗಡಿಯಾರ"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ಅಲಾರಾಂ ಸಂಪಾದಿಸಿ"</string>
<string name="delete_alarm" msgid="3457780990646206817">"ಅಲಾರಮ್ ಅಳಿಸು"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"ಅಲಾರಾಂ ರಿಂಗ್ಟೋನ್"</string>
<string name="ringtone" msgid="9110746249688559579">"ರಿಂಗ್ಟೋನ್"</string>
<string name="time" msgid="8067216534232296518">"ಸಮಯ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"ನಾಳೆ"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ಇಂದು"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ಎದ್ದೇಳಿ!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ಆಫ್"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"ವಜಾಗೊಳಿಸು"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ಈಗ ವಜಾಗೊಳಿಸು"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"ತಪ್ಪಿಹೋದ ಅಲಾರಾಂ"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"ಸ್ನೂಜ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 ನಿಮಿಷ"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> ನಿಮಿಷ"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"ಅಲಾರಂ ಆಫ್"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"ಸ್ನೂಜ್"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 ನಿಮಿಷಕ್ಕೆ ಸ್ನೂಜಿಂಗ್."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ಹೋಮ್"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ನಗರಗಳು"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ಗಡಿಯಾರ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ಗಡಿಯಾರ"</string>
<string name="clock_style" msgid="2265011060429742344">"ಶೈಲಿ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"ಅನಲಾಗ್"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"ಟೊಂಗಾ"</item>
<item msgid="5176858645450908751">"ಜಕಾರ್ತಾ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ಅಲಾರಮ್ಗಳು"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"ಅಲಾರಾಂಗಳು"</string>
<string name="see_all" msgid="775983396630163739">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"ಅಧಿಸೂಚನೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡಲು ಸ್ಟಾಪ್ವಾಚ್ ಸೇವೆ."</string>
<string name="swn_stopped" msgid="783124901663086172">"ನಿಲ್ಲಿಸಲಾಗಿದೆ"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ಈ ನಗರವನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ಡಿಜಿಟಲ್ ಗಡಿಯಾರ"</string>
<string name="no_alarms" msgid="6429431324842022917">"ಯಾವುದೇ ಅಲಾರಮ್ಗಳಿಲ್ಲ"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"ಅಲಾ. ಹೊಂದಿಸಿಲ್ಲ"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ಮುಂಬರುವ ಯಾವುದೇ ಅಲಾರಮ್ಗಳಿಲ್ಲ"</string>
</resources>
diff --git a/res/values-ko/array.xml b/res/values-ko/array.xml
index 4b659e8..b3ac737 100644
--- a/res/values-ko/array.xml
+++ b/res/values-ko/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"테구시갈파"</item>
<item msgid="7087691675228926801">"파라마리보"</item>
<item msgid="478384295484578701">"키토"</item>
+ <item msgid="4517870253399384206">"류블랴나"</item>
</string-array>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 2c07441..c2d017a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"시계"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"알람"</string>
<string name="add_alarm" msgid="5976616107390962899">"알람 추가"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"다음 알람"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"탁상 시계"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"알람 수정"</string>
<string name="delete_alarm" msgid="3457780990646206817">"알람 삭제"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"알람 벨소리"</string>
<string name="ringtone" msgid="9110746249688559579">"벨소리"</string>
<string name="time" msgid="8067216534232296518">"시간"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"내일"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"오늘"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"일어나세요!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"끄기"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"알람 해제"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"알람 해제"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"부재중 알람"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"일시 중지됨"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1분"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g>분"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"알람 끄기"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"다시 울림"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1분 동안 알림 일시 중지"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g>분"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"사용 안함"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5분"</item>
- <item msgid="3663730603519549990">"10분"</item>
- <item msgid="1385481095199681200">"15분"</item>
- <item msgid="420479821767342125">"20분"</item>
- <item msgid="2107936130151066746">"25분"</item>
- <item msgid="7219791437023378544">"30분"</item>
+ <item msgid="3024545954917711306">"1분"</item>
+ <item msgid="5431906692406316549">"5분"</item>
+ <item msgid="7742728812068919959">"10분"</item>
+ <item msgid="2855948657259647629">"15분"</item>
+ <item msgid="6330196381284475079">"20분"</item>
+ <item msgid="7809240121716151904">"25분"</item>
<item msgid="4278641338024561333">"사용 안함"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"완료"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"시계 디스플레이"</string>
<string name="label_description" msgid="8736179296142915727">"라벨"</string>
<string name="ringtone_description" msgid="7580922112921069925">"벨소리"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"현재 날씨 정보를 이용할 수 없습니다."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"시계에서 설정한 알람 사운드 재생 서비스"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"벨소리 로드 중…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"타이머"</string>
<string name="menu_clock" msgid="5612760670606829805">"시계"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"스톱워치"</string>
- <string name="button_alarms" msgid="8016103479617020265">"알람"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"알람 추가"</string>
<string name="button_cities" msgid="4555761857494501363">"도시"</string>
<string name="button_menu" msgid="6050484561842120282">"추가 옵션"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"설정"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"취소"</string>
<string name="timer_times_up" msgid="9190440395938519009">"시간이 다 되었습니다."</string>
<string name="timer_notification_label" msgid="4933184831583137249">"타이머"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"만들 수 있는 타이머는 최대 4개입니다."</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"속도광이시군요."</item>
<item msgid="6332879039890727169">"결과를 확인하세요."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"기본"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"도시"</string>
- <string name="clock_settings" msgid="8887845806151785393">"시계"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"시계"</string>
<string name="clock_style" msgid="2265011060429742344">"종류"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"아날로그"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"통가"</item>
<item msgid="5176858645450908751">"자카르타"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"알람"</string>
- <string name="see_all" msgid="775983396630163739">"전체 보기..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"알람"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"스톱워치 서비스로 알림을 실행"</string>
<string name="swn_stopped" msgid="783124901663086172">"중지됨"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"오른쪽으로 슬라이드하여 취소"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"왼쪽으로 슬라이드하여 일시 중지"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"위로 슬라이드하여 취소"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"아래로 슬라이드하여 일시 중지"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"오른쪽으로 스와이프하여 해제"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"왼쪽으로 스와이프하여 일시 중지"</string>
<string name="timer_stopped" msgid="2730331837832462008">"타이머가 정지됨"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g>개의 타이머가 정지됨"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"타이머를 보려면 터치하세요."</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"이 도시를 삭제하시겠습니까?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"디지털 시계"</string>
<string name="no_alarms" msgid="6429431324842022917">"알람 없음"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"설정된 알람 없음"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"예정된 알람 없음"</string>
</resources>
diff --git a/res/values-ky-rKG/array.xml b/res/values-ky-rKG/array.xml
index 1c8bfe7..6df90de 100644
--- a/res/values-ky-rKG/array.xml
+++ b/res/values-ky-rKG/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигальпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 4f487ab..6433040 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Саат"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Ойготкучтар"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ойготкуч кошуу"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"КИЙИНКИ ОЙГОТКУЧТАР"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Стол саат"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Ойготкучту түзөтүү"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Добулду өчүр"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ойготкучтун шыңгыры"</string>
<string name="ringtone" msgid="9110746249688559579">"Шыңгыр"</string>
<string name="time" msgid="8067216534232296518">"Убакыт"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Эртең"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Бүгүн"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Ойгон!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Өчүк"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Этибарга албоо"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Азыр этибарга албоо"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Көз жаздымда калган ойготкуч"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Тындырылды"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мүн."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мүн."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Ойготкуч өчүк"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Чырым эт"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 мүнөткө тындыруу."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Үй"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Шаарлар"</string>
- <string name="clock_settings" msgid="8887845806151785393">"СААТ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Саат"</string>
<string name="clock_style" msgid="2265011060429742344">"Стиль"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналог"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Жакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ОЙГОТКУЧТАР"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Ойготкучтар"</string>
<string name="see_all" msgid="775983396630163739">"Бардыгын көрүү…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Эскертмени иштетүүчү секунда өлчөгүч кызматы."</string>
<string name="swn_stopped" msgid="783124901663086172">"Токтотулду"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Бул шаар алынып салынсынбы?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Санариптик саат"</string>
<string name="no_alarms" msgid="6429431324842022917">"Ойготкуч жок"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ойготкучтар коюлган жок"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"АЛДЫДА ОЙГОТКУЧ ЖОК"</string>
</resources>
diff --git a/res/values-land/config.xml b/res/values-land/config.xml
deleted file mode 100644
index 0607115..0000000
--- a/res/values-land/config.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2013, 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.
-*/
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Number of world clocks in a row, for the clock tab. -->
- <item type="integer" name="world_clocks_per_row">1</item>
- <!-- Total clocks per row is 2 + world_clocks_per_row. -->
- <item type="integer" name="clocks_per_row">3</item>
-</resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index 57c22ef..2d22f32 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -24,12 +24,8 @@
<dimen name="ampm_text_size">32dip</dimen>
<dimen name="date_text_size">15sp</dimen>
<dimen name="next_alarm_text_size">15sp</dimen>
- <dimen name="time_margin_bottom">14dip</dimen>
<dimen name="time_margin_top">24dip</dimen>
- <dimen name="ampm_margin_top">16dip</dimen>
- <dimen name="font_margin_adjust">8dip</dimen>
- <dimen name="next_alarm_margin_top">-5dip</dimen>
- <dimen name="digital_screensaver_clock_text_size">120dp</dimen>
+ <dimen name="timer_list_padding_bottom">80dip</dimen>
<dimen name="dialpad_font_size">24sp</dimen>
<dimen name="dialpad_digit_padding">14dip</dimen>
@@ -37,8 +33,6 @@
<dimen name="timer_setup_delete_start_margin">24sp</dimen>
<dimen name="timer_setup_label_size">16sp</dimen>
- <dimen name="timer_circle_diameter">240dip</dimen>
- <dimen name="timer_circle_width">400dip</dimen>
<dimen name="actionbar_tab_padding">32dip</dimen>
<!-- Size of margin for circles. -->
@@ -50,17 +44,20 @@
<dimen name="top_text_spacing_digital">-25dp</dimen>
<dimen name="bottom_text_spacing_analog">5dp</dimen>
- <dimen name="circle_size">232dip</dimen>
+ <dimen name="alarm_side_padding">48dip</dimen>
+ <dimen name="clock_side_padding">32dip</dimen>
+ <dimen name="clock_fragment_end_padding">0dip</dimen>
+ <dimen name="main_clock_bottom_margin">80dip</dimen>
+
+ <dimen name="medium_font_size">48sp</dimen>
+
+ <dimen name="circle_size">190dip</dimen>
+ <dimen name="stopwatch_list_bottom_spacing">0dip</dimen>
+ <dimen name="stopwatch_circle_margin_bottom">80dip</dimen>
<dimen name="world_clock_margin">8dp</dimen>
<dimen name="sw_padding_end">8dp</dimen>
- <!-- Extra offset for timer button paddings. Only nonzero for non-tablets. -->
- <dimen name="timer_button_extra_offset">45dip</dimen>
-
- <dimen name="glowpadview_margin_bottom">0dip</dimen>
- <dimen name="glowpadview_margin_right">-64dip</dimen>
-
<dimen name="alarm_alert_clock_padding_left">32dp</dimen>
</resources>
diff --git a/res/values-lo-rLA/array.xml b/res/values-lo-rLA/array.xml
index d3c02cd..01443c4 100644
--- a/res/values-lo-rLA/array.xml
+++ b/res/values-lo-rLA/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ເຕກູຊິກັລປາ"</item>
<item msgid="7087691675228926801">"ພາຣາມາຣິໂບ"</item>
<item msgid="478384295484578701">"ຄວິດໂຕ"</item>
+ <item msgid="4517870253399384206">"ລູບລິຢານາ"</item>
</string-array>
</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index b604dd4..a002f4c 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ໂມງ"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"ໂມງປຸກ"</string>
<string name="add_alarm" msgid="5976616107390962899">"ເພີ່ມໂມງປຸກ"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ໂມງປຸກເທື່ອຕໍ່ໄປ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Desk Clock"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ແກ້ໄຂໂມງປຸກ"</string>
<string name="delete_alarm" msgid="3457780990646206817">"ລຶບໂມງປຸກ"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"ສຽງໂມງປຸກ"</string>
<string name="ringtone" msgid="9110746249688559579">"ສຽງໂມງປຸກ"</string>
<string name="time" msgid="8067216534232296518">"ເວລາ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"ມື້ອື່ນ"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ມື້ນີ້"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ຕື່ນ!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ປິດ"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"ປິດ"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ປິດໄວ້ກ່ອນຕອນນີ້"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"ໂມງປຸກທີ່ພາດ"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"ເລື່ອນແລ້ວ"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 ນທ"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> ນທ"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"ປິດໂມງປຸກ"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"ປິດສຽງເຕືອນຊົ່ວຄາວ"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ປິດສຽງເຕືອນຊົ່ວຄາວ 1 ນາທີ."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> ນາທີ"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"ບໍ່ໃຊ້"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 ນາທີ"</item>
- <item msgid="3663730603519549990">"10 ນາທີ"</item>
- <item msgid="1385481095199681200">"15 ນາທີ"</item>
- <item msgid="420479821767342125">"20 ນາທີ"</item>
- <item msgid="2107936130151066746">"25 ນາທີ"</item>
- <item msgid="7219791437023378544">"30 ນາທີ"</item>
+ <item msgid="3024545954917711306">"1 ນາທີ"</item>
+ <item msgid="5431906692406316549">"5 ນາທີ"</item>
+ <item msgid="7742728812068919959">"10 ນາທີ"</item>
+ <item msgid="2855948657259647629">"15 ນາທີ"</item>
+ <item msgid="6330196381284475079">"20 ນາທີ"</item>
+ <item msgid="7809240121716151904">"25 ນາທີ"</item>
<item msgid="4278641338024561333">"ບໍ່ໃຊ້"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"ແລ້ວໆ"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"ໂມງທີ່ສະແດງ"</string>
<string name="label_description" msgid="8736179296142915727">"ປ້າຍກຳກັບ"</string>
<string name="ringtone_description" msgid="7580922112921069925">"ສຽງໂມງປຸກ"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"ຂໍ້ມູນສະພາບອາກາດບໍ່ສາມາດໃຊ້ໄດ້ໃນເວລານີ້."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"ບໍລິການຫຼິ້ນສຽງສຳລັບການປຸກ ທີ່ຕັ້ງໄວ້ໃນໂປຣແກຣມໂມງ."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"ກຳລັງໂຫລດສຽງປຸກ..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"ໂມງນັບຖອຍຫຼັງ"</string>
<string name="menu_clock" msgid="5612760670606829805">"ໂມງ"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"ຈັບເວລາ"</string>
- <string name="button_alarms" msgid="8016103479617020265">"ໂມງປຸກ"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"ເພີ່ມໂມງປຸກ"</string>
<string name="button_cities" msgid="4555761857494501363">"ເມືອງ"</string>
<string name="button_menu" msgid="6050484561842120282">"ທາງເລືອກເພີ່ມເຕີມ"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"ຕັ້ງຄ່າ"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"ຍົກເລີກ"</string>
<string name="timer_times_up" msgid="9190440395938519009">"ໝົດເວລາ"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"ໂມງນັບຖອຍຫລັງ"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"ໂຕຈັບເວລາສູງສຸດ 4 ອັນ"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"ທ່ານໄວປານຜີພຸ້ນນໍ້."</item>
<item msgid="6332879039890727169">"ຂໍໃຫ້ມີຄວາມສຸກກັບໝາກຜົນຈາກເຫື່ອແຮງຂອງທ່ານ."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ຫນ້າທໍາອິດ"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"ເມືອງ"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ໂມງ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ໂມງ"</string>
<string name="clock_style" msgid="2265011060429742344">"ຮູບແບບ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"ໂມງເຂັມ"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"ທອງກາ"</item>
<item msgid="5176858645450908751">"ຈາກາຕາ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ໂມງປຸກ"</string>
- <string name="see_all" msgid="775983396630163739">"ເບິ່ງທັງຫມົດ..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"ໂມງປຸກ"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"ບໍລິການຂອງໂມງຈັບເວລາ ເພື່ອສະແດງໃນການແຈ້ງເຕືອນ."</string>
<string name="swn_stopped" msgid="783124901663086172">"ຢຸດແລ້ວ"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"ເລື່ອນຂວາເພື່ອປິດສຽງເຕືອນຊົ່ວຄາວ"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"ເລື່ອນຊ້າຍເພື່ອປິດສຽງເຕືອນຊົ່ວຄາວ"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"ເລື່ອນຂຶ້ນເພື່ອປິດ"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"ເລື່ອນລົງເພື່ອປິດສຽງເຕືອນຊົ່ວຄາວ"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"ປັດໄປຂວາເພື່ອປິດໄວ້"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"ປັດໄປຊ້າຍເພື່ອເລື່ອນອອກໄປກ່ອນ"</string>
<string name="timer_stopped" msgid="2730331837832462008">"ຢຸດນັບຖອຍຫຼັງແລ້ວ"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> ໂມງນັບຖອຍຫຼັງຢຸດແລ້ວ"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"ແຕະເພື່ອເບິ່ງໂຕຈັບເວລາຂອງທ່ານ"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ລຶບເມືອງນີ້ອອກ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ໂມງດິຈິຕອນ"</string>
<string name="no_alarms" msgid="6429431324842022917">"ບໍ່ມີການຕັ້ງໂມງປຸກ"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"ບໍ່ໄດ້ຕັ້ງໂມງປຸກ"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ບໍ່ມີການຕັ້ງໂມງປຸກແລ້ວ"</string>
</resources>
diff --git a/res/values-lt/array.xml b/res/values-lt/array.xml
index fcee316..2038813 100644
--- a/res/values-lt/array.xml
+++ b/res/values-lt/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegusigalpa"</item>
<item msgid="7087691675228926801">"Paramaribas"</item>
<item msgid="478384295484578701">"Kitas"</item>
+ <item msgid="4517870253399384206">"Liubliana"</item>
</string-array>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 626fb87..bef5eae 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Laikrodis"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Signalai"</string>
<string name="add_alarm" msgid="5976616107390962899">"Pridėti signalą"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"KITI SIGNALAI"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Darbalaukio laikrodis"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Redaguoti signalą"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ištrinti signalą"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Signalo skambėjimo tonas"</string>
<string name="ringtone" msgid="9110746249688559579">"Skambėjimo tonas"</string>
<string name="time" msgid="8067216534232296518">"Laikas"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Rytoj"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Šiandien"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Kelkis!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Išj."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Atsisakyti"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Atmesti dabar"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Praleistas signalas"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"N. snausti"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Sign. išj."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snausti"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Snaudžiama 1 min."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min."</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Niekada"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 min."</item>
- <item msgid="3663730603519549990">"10 min."</item>
- <item msgid="1385481095199681200">"15 min."</item>
- <item msgid="420479821767342125">"20 min."</item>
- <item msgid="2107936130151066746">"25 min."</item>
- <item msgid="7219791437023378544">"30 min."</item>
+ <item msgid="3024545954917711306">"1 min."</item>
+ <item msgid="5431906692406316549">"5 min."</item>
+ <item msgid="7742728812068919959">"10 min."</item>
+ <item msgid="2855948657259647629">"15 min."</item>
+ <item msgid="6330196381284475079">"20 min."</item>
+ <item msgid="7809240121716151904">"25 min."</item>
<item msgid="4278641338024561333">"Niekada"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Atlikta"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Laikrodžio pateiktis"</string>
<string name="label_description" msgid="8736179296142915727">"Etiketė"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Skambėjimo tonas"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Šiuo metu informacija apie orus negalima."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Garso atkūrimo paslauga, skirta laikrodžio nustatytiems signalams."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Įkeliamas skambėjimo tonas..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Laikmatis"</string>
<string name="menu_clock" msgid="5612760670606829805">"Laikrodis"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Chronometras"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Signalai"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Pridėti signalą"</string>
<string name="button_cities" msgid="4555761857494501363">"Miestai"</string>
<string name="button_menu" msgid="6050484561842120282">"Daugiau parinkčių"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Nustatymai"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Atšaukti"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Laikas baigėsi"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Laikmatis"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Daugiausia 4 laikmačiai"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Pasiekėte ganėtinai didelį greitį."</item>
<item msgid="6332879039890727169">"Mėgaukitės darbo vaisiais."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Namų"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Miestai"</string>
- <string name="clock_settings" msgid="8887845806151785393">"LAIKRODIS"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Laikrodis"</string>
<string name="clock_style" msgid="2265011060429742344">"Stilius"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analoginis"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Džakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"SIGNALAI"</string>
- <string name="see_all" msgid="775983396630163739">"Žr. viską…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Signalai"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Chronometro paslauga, skirta pranešimui paleisti."</string>
<string name="swn_stopped" msgid="783124901663086172">"Sustabdyta"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Slysti dešinėn, norint atsisakyti"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Slysti kairėn, norint įjungti snaudimą"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Slysti aukštyn, norint atsisakyti"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Slysti žemyn, norint įjungti snaudimą"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Perbraukite į dešinę, kad atmestumėte"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Perbraukite į kairę, kad nustatytumėte snaudimą"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Laikmatis sustabdytas"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Sustabdytų laikmačių: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Palieskite, jei norite peržiūrėti laikmačius"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Pašalinti šį miestą?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Skaitmeninis laikrodis"</string>
<string name="no_alarms" msgid="6429431324842022917">"Signalų nėra"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Signalų nenust."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NĖRA BŪSIMŲ SIGNALŲ"</string>
</resources>
diff --git a/res/values-lv/array.xml b/res/values-lv/array.xml
index 16c737d..71440d2 100644
--- a/res/values-lv/array.xml
+++ b/res/values-lv/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegusigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Kito"</item>
+ <item msgid="4517870253399384206">"Ļubļana"</item>
</string-array>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 4a7e613..a298cfd 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Pulkstenis"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Signāli"</string>
<string name="add_alarm" msgid="5976616107390962899">"Pievienot signālu"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NĀKAMIE SIGNĀLI"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Galda pulkstenis"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Rediģēt signālu"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Dzēst signālu"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Modinātāja signāls"</string>
<string name="ringtone" msgid="9110746249688559579">"Zvana signāls"</string>
<string name="time" msgid="8067216534232296518">"Laiks"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Rīt"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Šodien"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Mosties!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Izsl."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Noraidīt"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Nerādīt tagad"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Signāls tika nokavēts."</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> — <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Atlikts"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Izslēgts"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snauda"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Atlikts par 1 minūti."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minūte(-es)"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nekad"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minūtes"</item>
- <item msgid="3663730603519549990">"10 minūtes"</item>
- <item msgid="1385481095199681200">"15 minūtes"</item>
- <item msgid="420479821767342125">"20 minūtes"</item>
- <item msgid="2107936130151066746">"25 minūtes"</item>
- <item msgid="7219791437023378544">"30 minūtes"</item>
+ <item msgid="3024545954917711306">"1 minūte"</item>
+ <item msgid="5431906692406316549">"5 minūtes"</item>
+ <item msgid="7742728812068919959">"10 minūtes"</item>
+ <item msgid="2855948657259647629">"15 minūtes"</item>
+ <item msgid="6330196381284475079">"20 minūtes"</item>
+ <item msgid="7809240121716151904">"25 minūtes"</item>
<item msgid="4278641338024561333">"Nekad"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Gatavs"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Pulksteņa attēlojums"</string>
<string name="label_description" msgid="8736179296142915727">"Iezīme"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Zvana signāls"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informācija par laikapstākļiem pašlaik nav pieejama."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Skaņas atskaņošanas pakalpojums lietotnē Pulkstenis iestatītajiem signāliem"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Notiek zvana signāla ielāde…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Taimeris"</string>
<string name="menu_clock" msgid="5612760670606829805">"Pulkstenis"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Hronometrs"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Signāli"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Pievienot signālu"</string>
<string name="button_cities" msgid="4555761857494501363">"Pilsētas"</string>
<string name="button_menu" msgid="6050484561842120282">"Citas opcijas"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Iestatījumi"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Atcelt"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Laiks ir beidzies!"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Taimeris"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Ne vairāk kā 4 taimeri"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Jūs gan esat ātrs!"</item>
<item msgid="6332879039890727169">"Baudiet sava darba augļus!"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Sākums"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Pilsētas"</string>
- <string name="clock_settings" msgid="8887845806151785393">"PULKSTENIS"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Pulkstenis"</string>
<string name="clock_style" msgid="2265011060429742344">"Stils"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogais"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Džakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"SIGNĀLI"</string>
- <string name="see_all" msgid="775983396630163739">"Skatīt visu..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Signāli"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Hronometra pakalpojums paziņojuma darbībai."</string>
<string name="swn_stopped" msgid="783124901663086172">"Apturēts"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Velciet pa labi, lai nerādītu."</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Velciet pa kreisi, lai atliktu."</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Velciet uz augšu, lai nerādītu."</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Velciet uz leju, lai atliktu."</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Lai nerādītu, velciet pa labi"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Lai atliktu, velciet pa kreisi"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Taimeris ir apturēts."</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> taimeri ir apturēti."</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Pieskarieties, lai skatītu savus taimerus."</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Vai noņemt šo pilsētu?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitālais pulkstenis"</string>
<string name="no_alarms" msgid="6429431324842022917">"Bez signāla"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nav signālu"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NAV GAIDĀMU SIGNĀLU"</string>
</resources>
diff --git a/res/values-mk-rMK/array.xml b/res/values-mk-rMK/array.xml
index 9aecc37..69a7107 100644
--- a/res/values-mk-rMK/array.xml
+++ b/res/values-mk-rMK/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигалпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Љубљана"</item>
</string-array>
</resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 381d1fa..490b9f8 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Часовник"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Аларми"</string>
<string name="add_alarm" msgid="5976616107390962899">"Додај аларм"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"СЛЕДНИ АЛАРМИ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Статичен часовник"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Уреди аларм"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Избришете аларм"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Мелодија за аларм"</string>
<string name="ringtone" msgid="9110746249688559579">"Мелодија"</string>
<string name="time" msgid="8067216534232296518">"Време"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Утре"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Денес"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Разбуди се"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Искл."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Отфрли"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Отфрли сега"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Пропуштен аларм"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Одложен"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мин."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мин."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Аларм искл."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Одложи аларм"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Одложи за 1 минута."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Дома"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Градови"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ЧАСОВНИК"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Часовник"</string>
<string name="clock_style" msgid="2265011060429742344">"Стил"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналоген"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Џакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"АЛАРМИ"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Аларми"</string>
<string name="see_all" msgid="775983396630163739">"Види ги сите…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Услуга со стоперка за активирање на известувањето."</string>
<string name="swn_stopped" msgid="783124901663086172">"Запрено"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Да се отстрани градот?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Дигитален часовник"</string>
<string name="no_alarms" msgid="6429431324842022917">"Нема аларми"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Нема аларм"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"НЕМА ПРЕТСТОЈНИ АЛАРМИ"</string>
</resources>
diff --git a/res/values-ml-rIN/array.xml b/res/values-ml-rIN/array.xml
index 418ac1b..2648a11 100644
--- a/res/values-ml-rIN/array.xml
+++ b/res/values-ml-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ടെഗൂസിഗാൽപ"</item>
<item msgid="7087691675228926801">"പരമാറിബോ"</item>
<item msgid="478384295484578701">"ക്വിറ്റോ"</item>
+ <item msgid="4517870253399384206">"ലുബ്ലിയാന"</item>
</string-array>
</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index c8abcfa..0933de6 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ക്ലോക്ക്"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"അലാറങ്ങൾ"</string>
<string name="add_alarm" msgid="5976616107390962899">"അലാറം ചേർക്കുക"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"അടുത്ത അലാറങ്ങൾ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ഡെസ്ക്ക് ക്ലോക്ക്"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"അലാറം എഡിറ്റുചെയ്യുക"</string>
<string name="delete_alarm" msgid="3457780990646206817">"അലാറം ഇല്ലാതാക്കുക"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"അലാറം റിംഗ്ടോൺ"</string>
<string name="ringtone" msgid="9110746249688559579">"റിംഗ്ടോൺ"</string>
<string name="time" msgid="8067216534232296518">"സമയം"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"നാളെ"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ഇന്ന്"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ഉണരൂ!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ഓഫാക്കുക"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"നിരസിക്കുക"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ഇപ്പോൾ നിരസിക്കുക"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"അലാറം നഷ്ടമായി"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"സ്നൂസ് ചെയ്തു"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 മിനിറ്റ്"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> മിനിറ്റ്"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"അലാറം ഓഫാണ്"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"സ്നൂസ് ചെയ്യുക"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ഒരു മിനിറ്റ് നേരത്തേക്ക് സ്നൂസ് ചെയ്യുന്നു."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ഹോം"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"നഗരങ്ങൾ"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ക്ലോക്ക്"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ക്ലോക്ക്"</string>
<string name="clock_style" msgid="2265011060429742344">"ശൈലി"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"അനലോഗ്"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"ടോംഗ"</item>
<item msgid="5176858645450908751">"ജക്കാര്ത്ത"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"അലാറങ്ങൾ"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"അലാറങ്ങൾ"</string>
<string name="see_all" msgid="775983396630163739">"എല്ലാം കാണുക..."</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"അറിയിപ്പ് പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള സ്റ്റോപ്പ്വാച്ച് സേവനം."</string>
<string name="swn_stopped" msgid="783124901663086172">"നിർത്തി"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ഈ നഗരം നീക്കം ചെയ്യണോ?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ഡിജിറ്റൽ ക്ലോക്ക്"</string>
<string name="no_alarms" msgid="6429431324842022917">"അലാറങ്ങളില്ല"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"അലാറങ്ങളൊന്നും സജ്ജീകരിച്ചിട്ടില്ല"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"വരാനിരിക്കുന്ന അലാറങ്ങളൊന്നുമില്ല"</string>
</resources>
diff --git a/res/values-mn-rMN/array.xml b/res/values-mn-rMN/array.xml
index 51e283e..81e5902 100644
--- a/res/values-mn-rMN/array.xml
+++ b/res/values-mn-rMN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегуцигалпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Күйто"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 1d6f863..15df89f 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Цаг"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Сэрүүлэг"</string>
<string name="add_alarm" msgid="5976616107390962899">"Сэрүүлэг нэмэх"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ДАРААГИЙН СЭРҮҮЛГҮҮД"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Ширээний цаг"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Сэрүүлгийг засах"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Сэрүүлэг устгах"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Сэрүүлгийн ая"</string>
<string name="ringtone" msgid="9110746249688559579">"Хонхны ая"</string>
<string name="time" msgid="8067216534232296518">"Цаг"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Маргааш"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Өнөөдөр"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Сэрээрэй"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Идэвхгүй"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Алгасах"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Одоо алгасах"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Анзаараагүй сэрүүлэг"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Хойшлуулсан"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мин"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мин"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Сэрүүлэг идэвхгүй"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Түр хойшлуулах"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 минутын турш хойшлуулна."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> минут"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Хэзээ ч үгүй"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 минут"</item>
- <item msgid="3663730603519549990">"10 минут"</item>
- <item msgid="1385481095199681200">"15 минут"</item>
- <item msgid="420479821767342125">"20 минут"</item>
- <item msgid="2107936130151066746">"25 минут"</item>
- <item msgid="7219791437023378544">"30 минут"</item>
+ <item msgid="3024545954917711306">"1 минут"</item>
+ <item msgid="5431906692406316549">"5 минут"</item>
+ <item msgid="7742728812068919959">"10 минут"</item>
+ <item msgid="2855948657259647629">"15 минут"</item>
+ <item msgid="6330196381284475079">"20 минут"</item>
+ <item msgid="7809240121716151904">"25 минут"</item>
<item msgid="4278641338024561333">"Хэзээ ч үгүй"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Дууссан"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Цагны дэлгэц"</string>
<string name="label_description" msgid="8736179296142915727">"Шошго"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Хонхны ая"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Цаг агаарыг одоо үзэх боломжгүй байна."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Цаганд тохируулсан сэрүүлгийн дуу тоглуулах үйлчилгээ."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Хонхны аяыг ачааллаж байна…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Цаг хэмжигч"</string>
<string name="menu_clock" msgid="5612760670606829805">"Цаг"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Секунд хэмжигч"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Сэрүүлэг"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Сэрүүлэг нэмэх"</string>
<string name="button_cities" msgid="4555761857494501363">"Хотууд"</string>
<string name="button_menu" msgid="6050484561842120282">"Нэмэлт сонголтууд"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Тохиргоо"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Цуцлах"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Цаг дууслаа"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Цаг хэмжигч"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"хамгийн ихдээ 4 цаг тоологч"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Та хурдны мангас юм аа."</item>
<item msgid="6332879039890727169">"Хөдөлмөрийнхөө үр шимийг хүртээрэй."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Гэрийн"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Хотууд"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ЦАГ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Цаг"</string>
<string name="clock_style" msgid="2265011060429742344">"Загвар"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Aналог"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Жакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"СЭРҮҮЛЭГ"</string>
- <string name="see_all" msgid="775983396630163739">"Бүгдийг харах…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Сэрүүлэг"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Мэдэгдлийг ажиллуулахын тулд Секунд хэмжигч үйлчилгээ."</string>
<string name="swn_stopped" msgid="783124901663086172">"Зогсоосон"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Хаахын тулд баруун тийш гулсуулна уу"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Түр хойшлуулахын тулд зүүн тийш гулсуулна уу"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Хаахын тулд дээш гулсуулна уу"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Түр хойшлуулахын тулд доош гулсуулна уу"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Хаахын тулд баруун шудрана уу"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Түр хойшлуулахын тулд зүүн шудрана уу"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Цаг хэмжигч зогссон"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> цаг хэмжигч зогссон"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Цаг хэмжигчийг харахын тулд хүрнэ үү"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Энэ хотыг арилгах уу?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Дижитал цаг"</string>
<string name="no_alarms" msgid="6429431324842022917">"Сэрүүлэг байхгүй"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Сэрүүлэг тохируулаагүй"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"УДАХГҮЙ БОЛОХ СЭРҮҮЛЭГ БАЙХГҮЙ"</string>
</resources>
diff --git a/res/values-mr-rIN/array.xml b/res/values-mr-rIN/array.xml
index 8414050..4275d1c 100644
--- a/res/values-mr-rIN/array.xml
+++ b/res/values-mr-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"टेगुसिगाल्पा"</item>
<item msgid="7087691675228926801">"पारमारिबो"</item>
<item msgid="478384295484578701">"क्वीटो"</item>
+ <item msgid="4517870253399384206">"लियुब्लियाना"</item>
</string-array>
</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 2c3487e..b4dafb4 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"घड्याळ"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"अलार्म"</string>
<string name="add_alarm" msgid="5976616107390962899">"अलार्म जोडा"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"पुढील अलार्म"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"डेस्क घड्याळ"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"अलार्म संपादित करा"</string>
<string name="delete_alarm" msgid="3457780990646206817">"अलार्म हटवा"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"अलार्म रिंगटोन"</string>
<string name="ringtone" msgid="9110746249688559579">"रिंगटोन"</string>
<string name="time" msgid="8067216534232296518">"वेळ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"उद्या"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"आज"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"जागे व्हा!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"बंद"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"डिसमिस करा"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"आता डिसमिस करा"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"सुटलेला अलार्म"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"स्नूझ केले"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 मि"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> मि"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"अलार्म बंद"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"स्नूझ करा"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 मिनिटासाठी स्नूझिंग."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"घर"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"शहरे"</string>
- <string name="clock_settings" msgid="8887845806151785393">"घड्याळ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"घड्याळ"</string>
<string name="clock_style" msgid="2265011060429742344">"शैली"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"अॅनालॉग"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"टोंगा"</item>
<item msgid="5176858645450908751">"जकार्ता"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"अलार्म"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"अलार्म"</string>
<string name="see_all" msgid="775983396630163739">"सर्व पहा..."</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"सूचना चालविण्यासाठी स्टॉपवॉच सेवा."</string>
<string name="swn_stopped" msgid="783124901663086172">"थांबले"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"हे शहर काढायचे?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"डिजिटल घड्याळ"</string>
<string name="no_alarms" msgid="6429431324842022917">"कोणतेही अलार्म नाहीत"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"कोणतेही अलार्म सेट केलेले नाहीत"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"कोणतेही आगामी अलार्म नाहीत"</string>
</resources>
diff --git a/res/values-ms-rMY/array.xml b/res/values-ms-rMY/array.xml
index a05b668..707cd0a 100644
--- a/res/values-ms-rMY/array.xml
+++ b/res/values-ms-rMY/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 6e1f5ed..7a48618 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Jam"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Penggera"</string>
<string name="add_alarm" msgid="5976616107390962899">"Tambah penggera"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"PENGGERA SETERUSNYA"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Jam meja"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edit penggera"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Padam penggera"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Nada Dering Penggera"</string>
<string name="ringtone" msgid="9110746249688559579">"Nada dering"</string>
<string name="time" msgid="8067216534232296518">"Masa"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Esok"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hari ini"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Bangun!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Dimatikan"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ketepikan"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ketepikan Sekarang"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Penggera terlepas"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Ditunda"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Penggera dimatikan"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Tidur sekejap"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Ditunda selama 1 minit."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minit"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Jangan sekali-kali"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minit"</item>
- <item msgid="3663730603519549990">"10 minit"</item>
- <item msgid="1385481095199681200">"15 minit"</item>
- <item msgid="420479821767342125">"20 minit"</item>
- <item msgid="2107936130151066746">"25 minit"</item>
- <item msgid="7219791437023378544">"30 minit"</item>
+ <item msgid="3024545954917711306">"1 minit"</item>
+ <item msgid="5431906692406316549">"5 minit"</item>
+ <item msgid="7742728812068919959">"10 minit"</item>
+ <item msgid="2855948657259647629">"15 minit"</item>
+ <item msgid="6330196381284475079">"20 minit"</item>
+ <item msgid="7809240121716151904">"25 minit"</item>
<item msgid="4278641338024561333">"Jangan sekali-kali"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Selesai"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Paparan jam"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Nada dering"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Maklumat cuaca tidak tersedia sekarang."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Perkhidmatan main balik bunyi untuk penggera ditetapkan dalam Jam."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Memuatkan nada dering..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Pemasa"</string>
<string name="menu_clock" msgid="5612760670606829805">"Jam"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Jam randik"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Penggera"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Tambah penggera"</string>
<string name="button_cities" msgid="4555761857494501363">"Bandar"</string>
<string name="button_menu" msgid="6050484561842120282">"Lagi pilihan"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Tetapan"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Batalkan"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Masa tamat"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Pemasa"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maksimum 4 pemasa"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Anda memang pantas."</item>
<item msgid="6332879039890727169">"Nikmati hasil usaha anda."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Tempatan"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Bandar"</string>
- <string name="clock_settings" msgid="8887845806151785393">"JAM"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Jam"</string>
<string name="clock_style" msgid="2265011060429742344">"Gaya"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"PENGGERA"</string>
- <string name="see_all" msgid="775983396630163739">"Lihat semua..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Penggera"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Perkhidmatan jam randik untuk menjalankan pemberitahuan."</string>
<string name="swn_stopped" msgid="783124901663086172">"Dihentikan"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Luncurkan ke kanan untuk ketepikan"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Luncurkan ke kiri untuk menunda"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Luncurkan ke atas untuk ketepikan"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Luncurkan ke bawah untuk menunda"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Leret ke kanan untuk mengenepikan"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Leret ke kiri untuk menunda"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Pemasa berhenti"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> pemasa berhenti"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Sentuh untuk melihat pemasa anda"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Alih keluar kota ini?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Jam digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Tiada Penggera"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Tiada pgera dttpkn"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"TIADA PENGGERA AKAN DATANG"</string>
</resources>
diff --git a/res/values-my-rMM/array.xml b/res/values-my-rMM/array.xml
index 0b40d31..b7d8f3e 100644
--- a/res/values-my-rMM/array.xml
+++ b/res/values-my-rMM/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"တေဂူစီဂါလ်ပါ"</item>
<item msgid="7087691675228926801">"ပါရာမာရီဘို"</item>
<item msgid="478384295484578701">"ကွီးတို"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 9bb9cd6..8048ac4 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"နာရီ"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"နှိုးစက်များ"</string>
<string name="add_alarm" msgid="5976616107390962899">"နှိုးစက် ထည့်ရန်"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"လာမည့် နှိုးစက်များ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"စားပွဲတင် နာရီ"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"နိုးစက် တည်းဖြတ်ရန်"</string>
<string name="delete_alarm" msgid="3457780990646206817">"နှိုးစက် ဖျက်ရန်"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"နှိုးစက် သံစဉ်"</string>
<string name="ringtone" msgid="9110746249688559579">"သံစဉ်"</string>
<string name="time" msgid="8067216534232296518">"အချိန်"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"နက်ဖြန်"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ယနေ့"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"နှိုးလာပါ!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"မရှိ"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"ပယ်ရန်"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ယခု ပယ်ရန်"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"လွတ်သွားသည့် နှိုးစက်"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"မှေးနေ"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"၁ မိနစ်"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> မိစန်"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"နှိုးစက် ပိတ်ထား"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"မှေးရန်"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 မိနစ်ကြာ မှေးမည်။"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ပင်မ"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"မြို့များ"</string>
- <string name="clock_settings" msgid="8887845806151785393">"နာရီ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"နာရီ"</string>
<string name="clock_style" msgid="2265011060429742344">"ပုံစံ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"လက်တံနာရီ"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"တွန်ဂါ"</item>
<item msgid="5176858645450908751">"ဂျာကာတာ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"နှိုးစက်များ"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"နှိုးစက်များ"</string>
<string name="see_all" msgid="775983396630163739">"အားလုံးကို ကြည့်ရန်…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"အချိန်ဖမ်းနာရီ အတွက် အကြောင်းကြားချက်များ ပြသည့် ဝန်ဆောင်မှု။"</string>
<string name="swn_stopped" msgid="783124901663086172">"ရပ်ထားပြီ"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ဤမြို့ကို ဖယ်ရှားရမလား?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ဒီဂျီတယ် နာရီ"</string>
<string name="no_alarms" msgid="6429431324842022917">"နှိုးစက် မရှိ"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"နှိုးစက်များ သတ်မှတ် မထား"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"လာမည့် နှိုးစက်များ မရှိပါ"</string>
</resources>
diff --git a/res/values-nb/array.xml b/res/values-nb/array.xml
index 3f7d685..6fc23cc 100644
--- a/res/values-nb/array.xml
+++ b/res/values-nb/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 3550556..5cfe3ec 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Klokke"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmer"</string>
<string name="add_alarm" msgid="5976616107390962899">"Legg til alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NESTE ALARMER"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Skrivebordsklokke"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Rediger alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Slett alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ringetone for alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Ringetone"</string>
<string name="time" msgid="8067216534232296518">"Tidspunkt"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"I morgen"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"I dag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Våkn opp!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Av"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Slå av"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Avvis nå"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Tapt alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Utsatt"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> minutter"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarmen er av"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Slumre"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Slumrer i 1 minutt."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutter"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Aldri"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutter"</item>
- <item msgid="3663730603519549990">"10 minutter"</item>
- <item msgid="1385481095199681200">"15 minutter"</item>
- <item msgid="420479821767342125">"20 minutter"</item>
- <item msgid="2107936130151066746">"25 minutter"</item>
- <item msgid="7219791437023378544">"30 minutter"</item>
+ <item msgid="3024545954917711306">"1 minutt"</item>
+ <item msgid="5431906692406316549">"5 minutter"</item>
+ <item msgid="7742728812068919959">"10 minutter"</item>
+ <item msgid="2855948657259647629">"15 minutter"</item>
+ <item msgid="6330196381284475079">"20 minutter"</item>
+ <item msgid="7809240121716151904">"25 minutter"</item>
<item msgid="4278641338024561333">"Aldri"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"OK"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Klokkeskjerm"</string>
<string name="label_description" msgid="8736179296142915727">"Etikett"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ringetone"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Værinformasjonen er ikke tilgjengelig for øyeblikket."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Lydavspillingstjeneste for alarmer som er angitt i Klokke."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Laster inn ringetone ..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Tidtaker"</string>
<string name="menu_clock" msgid="5612760670606829805">"Klokke"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stoppeklokke"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmer"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Legg til alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Byer"</string>
<string name="button_menu" msgid="6050484561842120282">"Flere alternativer"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Innstillinger"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Avbryt"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tiden er ute"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Tidtaker"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Du kan ha maksimalt fire tidtakere"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Du er litt av et fartsmonster."</item>
<item msgid="6332879039890727169">"Høst fruktene av arbeidet ditt."</item>
@@ -200,11 +209,11 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Hjemme"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Byer"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KLOKKEN"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Klokke"</string>
<string name="clock_style" msgid="2265011060429742344">"Stil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
- <item msgid="8483930821046925592">"Digitalt"</item>
+ <item msgid="8483930821046925592">"Digital"</item>
</string-array>
<string name="automatic_home_clock" msgid="6274174710735449252">"Klokkeslett hjemme"</string>
<string name="automatic_home_clock_summary" msgid="6020476321040807273">"Når du reiser utenfor den vanlige tidssonen din, kan du legge til en klokke for hjemmetidssonen"</string>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMER"</string>
- <string name="see_all" msgid="775983396630163739">"Se alle"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmer"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stoppeklokke for å kjøre varslet."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stoppet"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Dra til høyre for å avvise"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Dra til venstre for å slumre"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Dra opp for å avvise"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Dra ned for å slumre"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Sveip til høyre for å avvise"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Sveip til venstre for å slumre"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Nedtellingen ble stoppet"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> nedtellinger ble stoppet"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Trykk for å se nedtellingene dine"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Vil du fjerne denne byen?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digital klokke"</string>
<string name="no_alarms" msgid="6429431324842022917">"Ingen alarmer"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ingen alarmer er stilt inn"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"INGEN KOMMENDE VARSLER"</string>
</resources>
diff --git a/res/values-ne-rNP/array.xml b/res/values-ne-rNP/array.xml
index ebdad70..ac003ec 100644
--- a/res/values-ne-rNP/array.xml
+++ b/res/values-ne-rNP/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"टेगुसिगाल्पा"</item>
<item msgid="7087691675228926801">"पारामारिबो"</item>
<item msgid="478384295484578701">"क्यिटो"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 1e52ea3..b9d304e 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"घडी"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"अलार्महरू"</string>
<string name="add_alarm" msgid="5976616107390962899">"अलार्म थप्नुहोस्"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"अर्को आलार्म"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"डेस्क घडी"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"अलार्म सम्पादन गर्नुहोस्"</string>
<string name="delete_alarm" msgid="3457780990646206817">"अलार्म मेट्नुहोस्"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"अलार्म रिङटोन"</string>
<string name="ringtone" msgid="9110746249688559579">"रिङटोन"</string>
<string name="time" msgid="8067216534232296518">"समय"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"भोली"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"आज"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"उठ्नुहोस्!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"बन्द"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"खारेज गर्नुहोस्"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"अब खारेज गर्नुहोस्"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"छुटेको आलार्म"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"स्नुज भयो"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"१ मिनेट"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> मिनेट"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"अलार्म बन्द"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"स्नुज"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"१ मिनटसम्म स्नुज गर्दै।"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"गृह"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"शहरहरू"</string>
- <string name="clock_settings" msgid="8887845806151785393">"घडी"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"घडी"</string>
<string name="clock_style" msgid="2265011060429742344">"शैली"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"एनालग"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"टोन्गा"</item>
<item msgid="5176858645450908751">"जाकार्ता"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"आलर्म"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"सचेतकहरू"</string>
<string name="see_all" msgid="775983396630163739">"सबै हेर्नुहोस्…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"सूचना सञ्चालन गर्न स्टपवाच सेवा"</string>
<string name="swn_stopped" msgid="783124901663086172">"रोकियो"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"यो शहर हटाउने हो?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"डिजिटल घडी"</string>
<string name="no_alarms" msgid="6429431324842022917">"आलार्महरू छैनन्"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"अलार्म सेट छैन"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"कुनै अगामी आलार्महरू छैनन्"</string>
</resources>
diff --git a/res/values-nl/array.xml b/res/values-nl/array.xml
index adb2928..55e0d18 100644
--- a/res/values-nl/array.xml
+++ b/res/values-nl/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index b06c271..882545b 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Klok"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Wekkers"</string>
<string name="add_alarm" msgid="5976616107390962899">"Alarm toevoegen"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"VOLGENDE ALARMEN"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Bureauklok"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Alarm bewerken"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Alarm verwijderen"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Beltoon voor alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Beltoon"</string>
<string name="time" msgid="8067216534232296518">"Tijd"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Morgen"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Vandaag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Word wakker!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Uit"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Negeren"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Nu sluiten"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarm gemist"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Gesnoozed"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm uit"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Snooze is ingesteld op 1 minuut."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minuten"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nooit"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuten"</item>
- <item msgid="3663730603519549990">"10 minuten"</item>
- <item msgid="1385481095199681200">"15 minuten"</item>
- <item msgid="420479821767342125">"20 minuten"</item>
- <item msgid="2107936130151066746">"25 minuten"</item>
- <item msgid="7219791437023378544">"30 minuten"</item>
+ <item msgid="3024545954917711306">"1 minuut"</item>
+ <item msgid="5431906692406316549">"5 minuten"</item>
+ <item msgid="7742728812068919959">"10 minuten"</item>
+ <item msgid="2855948657259647629">"15 minuten"</item>
+ <item msgid="6330196381284475079">"20 minuten"</item>
+ <item msgid="7809240121716151904">"25 minuten"</item>
<item msgid="4278641338024561333">"Nooit"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Gereed"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Klokweergave"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Beltoon"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Weersinformatie is momenteel niet beschikbaar."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Service geluidsweergave voor alarmen ingesteld in Klok."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Beltoon laden…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Klok"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopwatch"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Wekkers"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Alarm toevoegen"</string>
<string name="button_cities" msgid="4555761857494501363">"Plaatsen"</string>
<string name="button_menu" msgid="6050484561842120282">"Meer opties"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Instellingen"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Annuleren"</string>
<string name="timer_times_up" msgid="9190440395938519009">"De tijd is om"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Maximaal 4 timers"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"U bent wel erg snel."</item>
<item msgid="6332879039890727169">"Profiteer van uw inspanningen."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Thuis"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Plaatsen"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KLOK"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Klok"</string>
<string name="clock_style" msgid="2265011060429742344">"Stijl"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analoog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMEN"</string>
- <string name="see_all" msgid="775983396630163739">"Alles weergeven…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmen"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stopwatchservice die de melding beheert"</string>
<string name="swn_stopped" msgid="783124901663086172">"Gestopt"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Schuif naar rechts om te sluiten"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Schuif naar links om de snoozestand in te schakelen"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Schuif omhoog om te sluiten"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Schuif omlaag om de snoozestand in te schakelen"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Veeg naar rechts om te sluiten"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Veeg naar links om de snoozestand in te schakelen"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timer gestopt"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> timers gestopt"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Tik om uw timers te bekijken"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Deze stad verwijderen?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitale klok"</string>
<string name="no_alarms" msgid="6429431324842022917">"Geen alarmen"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Geen alarmen"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"GEEN AANKOMENDE ALARMEN"</string>
</resources>
diff --git a/res/values-pl/array.xml b/res/values-pl/array.xml
index 33e9800..96c50d6 100644
--- a/res/values-pl/array.xml
+++ b/res/values-pl/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Lublana"</item>
</string-array>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 147d479..02015c3 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Zegar"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmy"</string>
<string name="add_alarm" msgid="5976616107390962899">"Dodaj alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NASTĘPNE ALARMY"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Zegar biurkowy"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Edytuj alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Usuń alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Dźwięk alarmu"</string>
<string name="ringtone" msgid="9110746249688559579">"Dzwonek"</string>
<string name="time" msgid="8067216534232296518">"Godzina"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Jutro"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Dzisiaj"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Wstawaj!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Wył."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Wyłącz"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Zamknij teraz"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Przegapiony alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Uśpiony"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm wyłączony"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Drzemka"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Drzemka przez minutę."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nigdy"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minut"</item>
- <item msgid="3663730603519549990">"10 minut"</item>
- <item msgid="1385481095199681200">"15 minut"</item>
- <item msgid="420479821767342125">"20 minut"</item>
- <item msgid="2107936130151066746">"25 minut"</item>
- <item msgid="7219791437023378544">"30 minut"</item>
+ <item msgid="3024545954917711306">"1 minuta"</item>
+ <item msgid="5431906692406316549">"5 minut"</item>
+ <item msgid="7742728812068919959">"10 minut"</item>
+ <item msgid="2855948657259647629">"15 minut"</item>
+ <item msgid="6330196381284475079">"20 minut"</item>
+ <item msgid="7809240121716151904">"25 minut"</item>
<item msgid="4278641338024561333">"Nigdy"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Gotowe"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Wyświetlanie zegara"</string>
<string name="label_description" msgid="8736179296142915727">"Etykieta"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Dzwonek"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informacje o pogodzie są w tej chwili niedostępne."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Usługa odtwarzania dźwięku alarmów ustawionych w zegarze"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Wczytywanie dzwonka…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Minutnik"</string>
<string name="menu_clock" msgid="5612760670606829805">"Zegar"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stoper"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmy"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Dodaj alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Miasta"</string>
<string name="button_menu" msgid="6050484561842120282">"Więcej opcji"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Ustawienia"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Anuluj"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Czas minął"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Minutnik"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"maksymalnie cztery minutniki"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Niezły z Ciebie demon prędkości."</item>
<item msgid="6332879039890727169">"Ciesz się owocami pracy."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Dom"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Miasta"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ZEGAR"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Zegar"</string>
<string name="clock_style" msgid="2265011060429742344">"Wygląd"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogowy"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Dżakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMY"</string>
- <string name="see_all" msgid="775983396630163739">"Inne..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmy"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Usługa stopera odpowiedzialna za powiadamianie."</string>
<string name="swn_stopped" msgid="783124901663086172">"Zatrzymano"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Przesuń w prawo, by zamknąć"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Przesuń w lewo, by włączyć drzemkę"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Przesuń w górę, by zamknąć"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Przesuń w dół, by włączyć drzemkę"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Przesuń w prawo, by zamknąć"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Przesuń w lewo, by uśpić"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Minutnik zatrzymany"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> zatrzymane minutniki"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Kliknij, by zobaczyć minutniki"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Usunąć to miasto?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Zegar cyfrowy"</string>
<string name="no_alarms" msgid="6429431324842022917">"Brak alarmów"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Brak alarmów"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"BRAK NADCHODZĄCYCH ALARMÓW"</string>
</resources>
diff --git a/res/values-pt-rPT/array.xml b/res/values-pt-rPT/array.xml
index 5f86617..ac6dea5 100644
--- a/res/values-pt-rPT/array.xml
+++ b/res/values-pt-rPT/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Liubliana"</item>
</string-array>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c146bea..011b556 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -19,7 +19,6 @@
<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="alarm_timeline_title_text" msgid="595912293949219821">"ALARMES SEGUINTES"</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>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Toque do Alarme"</string>
<string name="ringtone" msgid="9110746249688559579">"Toque"</string>
<string name="time" msgid="8067216534232296518">"Hora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Amanhã"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hoje"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Acorde!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Desl."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Ignorar"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorar agora"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarme perdido"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Suspenso"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarme desl."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Suspender"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Suspendido durante 1 minuto."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutos"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nunca"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutos"</item>
- <item msgid="3663730603519549990">"10 minutos"</item>
- <item msgid="1385481095199681200">"15 minutos"</item>
- <item msgid="420479821767342125">"20 minutos"</item>
- <item msgid="2107936130151066746">"25 minutos"</item>
- <item msgid="7219791437023378544">"30 minutos"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minutos"</item>
+ <item msgid="7742728812068919959">"10 minutos"</item>
+ <item msgid="2855948657259647629">"15 minutos"</item>
+ <item msgid="6330196381284475079">"20 minutos"</item>
+ <item msgid="7809240121716151904">"25 minutos"</item>
<item msgid="4278641338024561333">"Nunca"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Concluído"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Apresentação do relógio"</string>
<string name="label_description" msgid="8736179296142915727">"Etiqueta"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Toque"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informações meteorológicas atualmente indisponíveis."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Serviço de reprodução de som para alarmes definidos no Despertador."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"A carregar toque..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporizador"</string>
<string name="menu_clock" msgid="5612760670606829805">"Relógio"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronómetro"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmes"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Adicionar alarme"</string>
<string name="button_cities" msgid="4555761857494501363">"Cidades"</string>
<string name="button_menu" msgid="6050484561842120282">"Mais opções"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Definições"</string>
@@ -172,7 +180,7 @@
<item quantity="other" msgid="7583230315175387547">"<xliff:g id="NUMBER">%d</xliff:g> segundos"</item>
</plurals>
<string name="timer_add_timer" msgid="862733633862574752">"Adicionar Temporizador"</string>
- <string name="timer_start" msgid="6158486445614356442">"Início"</string>
+ <string name="timer_start" msgid="6158486445614356442">"Iniciar"</string>
<string name="timer_delete" msgid="8699122001991909302">"Eliminar"</string>
<string name="timer_plus_one" msgid="6631211310420106116">"Adicionar 1 Minuto"</string>
<string name="timer_plus_1_min" msgid="8645224089494875062">"Adicionar 1 min"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancelar"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Terminou o tempo"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporizador"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Máximo de 4 temporizadores"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"É um verdadeiro ás da velocidade."</item>
<item msgid="6332879039890727169">"Aproveite os frutos do seu trabalho."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Cidades"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELÓGIO"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Relógio"</string>
<string name="clock_style" msgid="2265011060429742344">"Estilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analógico"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jacarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMES"</string>
- <string name="see_all" msgid="775983396630163739">"Ver tudo..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmes"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Serviço de cronómetro para executar a notificação."</string>
<string name="swn_stopped" msgid="783124901663086172">"Parado"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Deslizar lentamente para a direita para ignorar"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Deslizar lentamente para a esquerda para suspender"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Deslizar lentamente para cima para ignorar"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Deslizar lentamente para baixo para suspender"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Deslizar rapidamente para a direita para ignorar"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Deslizar rapidamente para a esquerda para suspender"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Temporizador parado"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> temporizadores parados"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Toque para ver os seus temporizadores"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Remover esta cidade?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Relógio digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Sem alarmes"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Sem alarm. def."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NENHUM ALARME PRÓXIMO"</string>
</resources>
diff --git a/res/values-pt/array.xml b/res/values-pt/array.xml
index 253343d..0885c19 100644
--- a/res/values-pt/array.xml
+++ b/res/values-pt/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Liubliana"</item>
</string-array>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index aae4b76..6426e44 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -19,7 +19,6 @@
<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="alarm_timeline_title_text" msgid="595912293949219821">"PRÓXIMOS ALARMES"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Relógio de mesa"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Editar alarme"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Excluir alarme"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Toque do alarme"</string>
<string name="ringtone" msgid="9110746249688559579">"Toque"</string>
<string name="time" msgid="8067216534232296518">"Horário"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Amanhã"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hoje"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Acorde!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Desativado"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Encerrar"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Dispensar agora"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarme perdido"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Adiado"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarme desativado"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Colocar em modo soneca"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Em soneca por 1 minuto."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minutos"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nunca"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minutos"</item>
- <item msgid="3663730603519549990">"10 minutos"</item>
- <item msgid="1385481095199681200">"15 minutos"</item>
- <item msgid="420479821767342125">"20 minutos"</item>
- <item msgid="2107936130151066746">"25 minutos"</item>
- <item msgid="7219791437023378544">"30 minutos"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minutos"</item>
+ <item msgid="7742728812068919959">"10 minutos"</item>
+ <item msgid="2855948657259647629">"15 minutos"</item>
+ <item msgid="6330196381284475079">"20 minutos"</item>
+ <item msgid="7809240121716151904">"25 minutos"</item>
<item msgid="4278641338024561333">"Nunca"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Concluído"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Exibição do relógio"</string>
<string name="label_description" msgid="8736179296142915727">"Marcador"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Toque"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"As informações meteorológicas não estão disponíveis no momento."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Serviço de reprodução de som para alarmes definidos no Relógio."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Carregando toque…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporizador"</string>
<string name="menu_clock" msgid="5612760670606829805">"Relógio"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronômetro"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmes"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Adicionar alarme"</string>
<string name="button_cities" msgid="4555761857494501363">"Cidades"</string>
<string name="button_menu" msgid="6050484561842120282">"Mais opções"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Configurações"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Cancelar"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tempo esgotado"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporizador"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Máximo: 4 temporizadores"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Você é o rei da velocidade."</item>
<item msgid="6332879039890727169">"Colha os frutos de seu trabalho."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Casa"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Cidades"</string>
- <string name="clock_settings" msgid="8887845806151785393">"RELÓGIO"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Relógio"</string>
<string name="clock_style" msgid="2265011060429742344">"Estilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analógico"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jacarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMES"</string>
- <string name="see_all" msgid="775983396630163739">"Ver todos..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmes"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Serviço de cronômetro para executar a notificação."</string>
<string name="swn_stopped" msgid="783124901663086172">"Parado"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Deslize para a direita para dispensar"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Deslize para a esquerda para soneca"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Deslize para cima para dispensar"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Deslize para baixo para soneca"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Deslize para a direita para dispensar"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Deslize para a esquerda para adiar"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Temporizador parado"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> temporizadores parados"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Toque para ver seus temporizadores"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Remover esta cidade?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Relógio digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Nenhum alarme"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nenhum alarme"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NENHUM ALARME PRÓXIMO"</string>
</resources>
diff --git a/res/values-ro/array.xml b/res/values-ro/array.xml
index 0e8b2e3..a691f3b 100644
--- a/res/values-ro/array.xml
+++ b/res/values-ro/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 4b159a3..37a8e69 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Ceas"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarme"</string>
<string name="add_alarm" msgid="5976616107390962899">"Adăugaţi o alarmă"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"URMĂTOARELE ALARME"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Ceas de birou"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Modificaţi alarma"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ștergeţi alarma"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ton de sonerie pentru alarmă"</string>
<string name="ringtone" msgid="9110746249688559579">"Ton de sonerie"</string>
<string name="time" msgid="8067216534232296518">"Ora"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Mâine"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Astăzi"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Trezirea!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Opr."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Renunţaţi"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ignorați"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarmă ratată"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Amânată"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarmă opr."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Amânaţi"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Alarmă amânată 1 minut."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> (de) minute"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Niciodată"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minute"</item>
- <item msgid="3663730603519549990">"10 minute"</item>
- <item msgid="1385481095199681200">"15 minute"</item>
- <item msgid="420479821767342125">"20 de minute"</item>
- <item msgid="2107936130151066746">"25 de minute"</item>
- <item msgid="7219791437023378544">"30 de minute"</item>
+ <item msgid="3024545954917711306">"Un minut"</item>
+ <item msgid="5431906692406316549">"5 minute"</item>
+ <item msgid="7742728812068919959">"10 minute"</item>
+ <item msgid="2855948657259647629">"15 minute"</item>
+ <item msgid="6330196381284475079">"20 de minute"</item>
+ <item msgid="7809240121716151904">"25 de minute"</item>
<item msgid="4278641338024561333">"Niciodată"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Terminat"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Afişarea ceasului"</string>
<string name="label_description" msgid="8736179296142915727">"Etichetă"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ton de sonerie"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informaţiile meteo nu sunt disponibile în acest moment."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Serviciul de redare a sunetului pentru setarea alarmelor în aplicaţia Ceas."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Se încarcă tonul soneriei..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Temporizator"</string>
<string name="menu_clock" msgid="5612760670606829805">"Ceas"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Cronometru"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarme"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Adăugaţi o alarmă"</string>
<string name="button_cities" msgid="4555761857494501363">"Oraşe"</string>
<string name="button_menu" msgid="6050484561842120282">"Mai multe opţiuni"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Setări"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Anulaţi"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Timpul a expirat!"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Temporizator"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Cel mult 4 cronometre"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Sunteţi demonul vitezei."</item>
<item msgid="6332879039890727169">"Bucuraţi-vă de roadele muncii dvs."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Acasă"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Oraşe"</string>
- <string name="clock_settings" msgid="8887845806151785393">"CEAS"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Ceas"</string>
<string name="clock_style" msgid="2265011060429742344">"Stil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogic"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARME"</string>
- <string name="see_all" msgid="775983396630163739">"Toate…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarme"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Serviciul Cronometru pentru notificări."</string>
<string name="swn_stopped" msgid="783124901663086172">"Oprită"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Glisaţi uşor spre dreapta pentru a închide"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Glisaţi uşor spre stânga pentru a amâna"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Glisaţi uşor în sus pentru a închide"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Glisaţi uşor în jos pentru a amâna"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Glisați spre dreapta pentru a închide"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Glisați spre stânga pentru a amâna"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Contor oprit"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Au fost oprite <xliff:g id="NUMBER">%d</xliff:g> contoare"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Atingeţi pentru a vedea contoarele"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Eliminaţi acest oraş?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Ceas digital"</string>
<string name="no_alarms" msgid="6429431324842022917">"Nu sunt alarme"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Nu sunt alarme"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NU SUNT ALARME VIITOARE"</string>
</resources>
diff --git a/res/values-ru/array.xml b/res/values-ru/array.xml
index d0d34ad..affcae0 100644
--- a/res/values-ru/array.xml
+++ b/res/values-ru/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигальпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 7daddad..25c9ca7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Часы"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Будильник"</string>
<string name="add_alarm" msgid="5976616107390962899">"Добавить будильник"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ВРЕМЯ СЛЕД. СИГНАЛА"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Настольные часы"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Изменить настройки"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Удалить будильник"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Звонок будильника"</string>
<string name="ringtone" msgid="9110746249688559579">"Рингтон"</string>
<string name="time" msgid="8067216534232296518">"Время"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Завтра"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Сегодня"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Проснись!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Выкл."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Выключить"</string>
- <string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Закрыть"</string>
+ <string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Отменить"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Пропущенный сигнал"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Отложено"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"на 1 мин."</item>
+ <item quantity="other" msgid="6731274475422132958">"на <xliff:g id="NUMBER">%d</xliff:g> мин."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Выключено"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Отложить"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Повтор через 1 мин."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> мин."</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Отключено"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 мин."</item>
- <item msgid="3663730603519549990">"10 мин."</item>
- <item msgid="1385481095199681200">"15 мин."</item>
- <item msgid="420479821767342125">"20 мин."</item>
- <item msgid="2107936130151066746">"25 мин."</item>
- <item msgid="7219791437023378544">"30 мин."</item>
+ <item msgid="3024545954917711306">"1 минута"</item>
+ <item msgid="5431906692406316549">"5 минут"</item>
+ <item msgid="7742728812068919959">"10 минут"</item>
+ <item msgid="2855948657259647629">"15 минут"</item>
+ <item msgid="6330196381284475079">"20 минут"</item>
+ <item msgid="7809240121716151904">"25 минут"</item>
<item msgid="4278641338024561333">"Никогда"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Готово"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Внешний вид"</string>
<string name="label_description" msgid="8736179296142915727">"Ярлык"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Рингтон"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Информация о погоде сейчас недоступна."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Служба воспроизведения сигналов в Часах."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Загрузка мелодии звонка..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Таймер"</string>
<string name="menu_clock" msgid="5612760670606829805">"Часы"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Секундомер"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Будильник"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Добавить будильник"</string>
<string name="button_cities" msgid="4555761857494501363">"Города"</string>
<string name="button_menu" msgid="6050484561842120282">"Ещё"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Настройки"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Отмена"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Время вышло"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Таймер"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Можно установить не более четырех таймеров"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Да вы просто Шумахер!"</item>
<item msgid="6332879039890727169">"Вы славно потрудились!"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Дома"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Города"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ЧАСЫ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Часы"</string>
<string name="clock_style" msgid="2265011060429742344">"Стиль"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Стрелки"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Джакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"БУДИЛЬНИК"</string>
- <string name="see_all" msgid="775983396630163739">"Ещё…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Будильник"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Секундомер для запуска уведомлений"</string>
<string name="swn_stopped" msgid="783124901663086172">"Остановлен"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Чтобы отключить будильник, проведите пальцем вправо"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Чтобы отложить сигнал, проведите пальцем влево"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Чтобы отключить будильник, проведите пальцем вверх"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Чтобы отложить сигнал, проведите пальцем вниз"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Пролистните вправо, чтобы отключить сигнал"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Пролистните влево, чтобы отложить сигнал"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Таймер остановлен"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Таймеров остановлено: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Нажмите, чтобы посмотреть таймеры"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Удалить этот город?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Часы"</string>
<string name="no_alarms" msgid="6429431324842022917">"Будильник отключен"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Нет будильников"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"СИГНАЛОВ НЕТ"</string>
</resources>
diff --git a/res/values-si-rLK/array.xml b/res/values-si-rLK/array.xml
index 498d6d5..84b19d3 100644
--- a/res/values-si-rLK/array.xml
+++ b/res/values-si-rLK/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ටෙගුසිගල්පා"</item>
<item msgid="7087691675228926801">"පැරමාරිබෝ"</item>
<item msgid="478384295484578701">"කිටෝ"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-si-rLK/dimens.xml b/res/values-si-rLK/dimens.xml
new file mode 100644
index 0000000..725236d
--- /dev/null
+++ b/res/values-si-rLK/dimens.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2014 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>
+ <dimen name="day_button_font_size">16sp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index a8e3337..88af1b4 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"ඔරලෝසුව"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"ඇඟවීම්"</string>
<string name="add_alarm" msgid="5976616107390962899">"ඇඟවීමක් එක් කරන්න"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"මීළඟ සීනු"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"මේස ඔරලෝසුව"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"ඇඟවීම සංස්කරණය කරන්න"</string>
<string name="delete_alarm" msgid="3457780990646206817">"ඇඟවීම් මකන්න"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"ඇඟවීම් රිංග්ටෝනය"</string>
<string name="ringtone" msgid="9110746249688559579">"රිංග්ටෝනය"</string>
<string name="time" msgid="8067216534232296518">"කාලය"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"හෙට"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"අද"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"අවදි වෙන්න!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"අක්රිය කරන්න"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"ඉවතලන්න"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"දැන් අස් කරන්න"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"අත හැරුණ සීනුව"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"සිහිකැඳවන ලදී"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"මිනි 1"</item>
+ <item quantity="other" msgid="6731274475422132958">"මිනි <xliff:g id="NUMBER">%d</xliff:g>"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"සීනුව අක්රියයි"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"යළි සිහි කැඳවන්න"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"මිනිත්තු 1 කින් යළි සිහි කැඳවන්න."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"නිවස"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"නගර"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ඔරලෝසුව"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"ඔරලෝසුව"</string>
<string name="clock_style" msgid="2265011060429742344">"විලාසය"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"ප්රතිසමය"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"ටොන්ගා"</item>
<item msgid="5176858645450908751">"ජකර්තා"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ඇඟවීම්"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"අනතුරු ඇඟවීම්"</string>
<string name="see_all" msgid="775983396630163739">"සියල්ල බලන්න…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"දැනුම්දීම් ධාවනය කිරීමට කාල ඝනක සේවාවක්."</string>
<string name="swn_stopped" msgid="783124901663086172">"නතර කර ඇත"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"මෙම නගරය ඉවත් කරන්නද?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ඩිජිටල් ඔරලෝසුව"</string>
<string name="no_alarms" msgid="6429431324842022917">"සීනු නැත"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"සීනු සකසා නැත"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ඉදිරියට එන සීනු නොමැත"</string>
</resources>
diff --git a/res/values-sk/array.xml b/res/values-sk/array.xml
index fb8726d..2e9b2ef 100644
--- a/res/values-sk/array.xml
+++ b/res/values-sk/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ľubľana"</item>
</string-array>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 5c1fcbc..f44436d 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Hodiny"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Budíky"</string>
<string name="add_alarm" msgid="5976616107390962899">"Pridať upozornenia"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"ĎALŠIE BUDÍKY"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Stolové hodiny"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Upraviť budík"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Odstrániť budík"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Tón zvonenia budíka"</string>
<string name="ringtone" msgid="9110746249688559579">"Tón zvonenia"</string>
<string name="time" msgid="8067216534232296518">"Čas"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Zajtra"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Dnes"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vstávať!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Vypnuté"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Zrušiť"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Zrušiť"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Zmeškaný budík"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Odložené"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Budík je vypnutý"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Odložiť"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Odložené o 1 minútu."</item>
@@ -55,14 +64,14 @@
<item msgid="8458069283817013813">"Zostávajúci čas: <xliff:g id="HOURS">%1$s</xliff:g> h <xliff:g id="MINUTES">%2$s</xliff:g> min"</item>
</string-array>
<string-array name="alarm_set">
- <item msgid="6450913786084215050">"Budík sa spustí o menej než 1 minútu."</item>
- <item msgid="6002066367368421848">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g>."</item>
- <item msgid="8824719306247973774">"Budík sa spustí o <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="8182406852935468862">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g> a <xliff:g id="HOURS">%2$s</xliff:g>."</item>
- <item msgid="2532279224777213194">"Budík sa spustí o <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="5936557894247187717">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="9115697840826129603">"Budík sa spustí o <xliff:g id="HOURS">%2$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
- <item msgid="2332583385137381060">"Budík sa spustí o: <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>."</item>
+ <item msgid="6450913786084215050">"Budík sa spustí o menej než 1 minútu"</item>
+ <item msgid="6002066367368421848">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g>"</item>
+ <item msgid="8824719306247973774">"Budík sa spustí o <xliff:g id="HOURS">%2$s</xliff:g>"</item>
+ <item msgid="8182406852935468862">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g> a <xliff:g id="HOURS">%2$s</xliff:g>"</item>
+ <item msgid="2532279224777213194">"Budík sa spustí o <xliff:g id="MINUTES">%3$s</xliff:g>"</item>
+ <item msgid="5936557894247187717">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>"</item>
+ <item msgid="9115697840826129603">"Budík sa spustí o <xliff:g id="HOURS">%2$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>"</item>
+ <item msgid="2332583385137381060">"Budík sa spustí o <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> a <xliff:g id="MINUTES">%3$s</xliff:g>"</item>
</string-array>
<string name="day" msgid="7984755014526510295">"1 deň"</string>
<string name="days" msgid="2070509222727852210">"<xliff:g id="DAYS">%s</xliff:g> d."</string>
@@ -90,18 +99,18 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min."</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nikdy"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minút"</item>
- <item msgid="3663730603519549990">"10 minút"</item>
- <item msgid="1385481095199681200">"15 minút"</item>
- <item msgid="420479821767342125">"20 minút"</item>
- <item msgid="2107936130151066746">"25 minút"</item>
- <item msgid="7219791437023378544">"30 minút"</item>
+ <item msgid="3024545954917711306">"1 minúta"</item>
+ <item msgid="5431906692406316549">"5 minút"</item>
+ <item msgid="7742728812068919959">"10 minút"</item>
+ <item msgid="2855948657259647629">"15 minút"</item>
+ <item msgid="6330196381284475079">"20 minút"</item>
+ <item msgid="7809240121716151904">"25 minút"</item>
<item msgid="4278641338024561333">"Nikdy"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Hotovo"</string>
<string name="revert" msgid="9100911171235162926">"Vrátiť"</string>
<string name="delete" msgid="5732434972457000541">"Odstrániť"</string>
- <string name="alarm_volume_title" msgid="8506245173912428522">"Hlasitosť budíka"</string>
+ <string name="alarm_volume_title" msgid="8506245173912428522">"Hlasitosť budíkov"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"Tichý"</string>
<string name="alarm_notify_text" msgid="4891014685945904766">"Odložiť alebo zrušiť budík."</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (odložené)"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Zobrazenie hodín"</string>
<string name="label_description" msgid="8736179296142915727">"Menovka"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Tón zvonenia"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Informácie o počasí nie sú momentálne k dispozícii."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Služba prehrávania zvuku budíkov nastavených v aplikácii Hodiny."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Prebieha načítavanie vyzváňacieho tónu..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Časomiera"</string>
<string name="menu_clock" msgid="5612760670606829805">"Hodiny"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopky"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Budíky"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Pridať budík"</string>
<string name="button_cities" msgid="4555761857494501363">"Mestá"</string>
<string name="button_menu" msgid="6050484561842120282">"Ďalšie možnosti"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Nastavenia"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Zrušiť"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Čas vypršal"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Časovač"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"maximálne 4 časovače"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Ste pánom rýchlosti."</item>
<item msgid="6332879039890727169">"Užite si plody svojej práce."</item>
@@ -200,14 +209,14 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Domovský čas"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Mestá"</string>
- <string name="clock_settings" msgid="8887845806151785393">"HODINY"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Hodiny"</string>
<string name="clock_style" msgid="2265011060429742344">"Štýl"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analógové"</item>
<item msgid="8483930821046925592">"Digitálne"</item>
</string-array>
- <string name="automatic_home_clock" msgid="6274174710735449252">"Automatické domáce hodiny"</string>
- <string name="automatic_home_clock_summary" msgid="6020476321040807273">"Pri cestách v oblasti s odlišným časovým pásmom môžete pridať hodiny pre domáce časové pásmo"</string>
+ <string name="automatic_home_clock" msgid="6274174710735449252">"Automatické domovské hodiny"</string>
+ <string name="automatic_home_clock_summary" msgid="6020476321040807273">"Pri cestách v odlišnom časovom pásme automaticky pridať hodiny s domovským časom"</string>
<string name="home_time_zone" msgid="9199730676287974501">"Domovské časové pásmo"</string>
<string name="home_time_zone_title" msgid="807894493443834624">"Domovské časové pásmo"</string>
<string name="time_picker_cancel" msgid="7437106489606013077">"Zrušiť"</string>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"BUDÍKY"</string>
- <string name="see_all" msgid="775983396630163739">"Zobraziť všetko..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Budíky"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Služba Stopky na spúšťanie upozornenia."</string>
<string name="swn_stopped" msgid="783124901663086172">"Zastavené"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Prejdením prstom doprava zrušíte"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Prejdením prstom doľava zvonenie odložíte"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Prejdením prstom hore zrušíte"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Prejdením prstom dole zvonenie odložíte"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Prejdením prstom doprava budík zrušíte"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Prejdením prstom doľava budík odložíte"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Časovač sa zastavil"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Počet zastavených časovačov: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Dotykom zobrazíte časovače"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Chcete odstrániť toto mesto?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitálne hodiny"</string>
<string name="no_alarms" msgid="6429431324842022917">"Žiadne budíky"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Budíky nenastavené"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ŽIADNE PLÁNOVANÉ BUDÍKY"</string>
</resources>
diff --git a/res/values-sl/array.xml b/res/values-sl/array.xml
index b60827d..b1bb3e1 100644
--- a/res/values-sl/array.xml
+++ b/res/values-sl/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 8859c31..402f850 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Ura"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmi"</string>
<string name="add_alarm" msgid="5976616107390962899">"Dodaj alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NASLEDNJI ALARMI"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Namizna ura"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Uredi alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Izbriši alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ton zvonjenja za alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Melodija zvonjenja"</string>
<string name="time" msgid="8067216534232296518">"Čas"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Jutri"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Danes"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Pokonci!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Izkl."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Opusti"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Opusti"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Zamujen alarm"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Preloženo"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 minuta"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm je izkl."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Dremež"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Dremež: 1 minuta."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> min"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Nikoli"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minut"</item>
- <item msgid="3663730603519549990">"10 minut"</item>
- <item msgid="1385481095199681200">"15 minut"</item>
- <item msgid="420479821767342125">"20 minut"</item>
- <item msgid="2107936130151066746">"25 minut"</item>
- <item msgid="7219791437023378544">"30 minut"</item>
+ <item msgid="3024545954917711306">"1 minuta"</item>
+ <item msgid="5431906692406316549">"5 minut"</item>
+ <item msgid="7742728812068919959">"10 minut"</item>
+ <item msgid="2855948657259647629">"15 minut"</item>
+ <item msgid="6330196381284475079">"20 minut"</item>
+ <item msgid="7809240121716151904">"25 minut"</item>
<item msgid="4278641338024561333">"Nikoli"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Dokončano"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Prikaz ure"</string>
<string name="label_description" msgid="8736179296142915727">"Oznaka"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Melodija zvonjenja"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Vremenski podatki trenutno niso na voljo."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Storitev predvajanja zvoka za alarme, nastavljene z namizno uro."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Nalaganje zvonjenja ..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Časovnik"</string>
<string name="menu_clock" msgid="5612760670606829805">"Ura"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Štoparica"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmi"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Dodajanje alarma"</string>
<string name="button_cities" msgid="4555761857494501363">"Mesta"</string>
<string name="button_menu" msgid="6050484561842120282">"Več možnosti"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Nastavitve"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Prekliči"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Čas je potekel"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Časovnik"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Največ 4 časovniki"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Hitri ste kot blisk."</item>
<item msgid="6332879039890727169">"Uživajte v sadovih svojega dela."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Doma"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Mesta"</string>
- <string name="clock_settings" msgid="8887845806151785393">"URA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Ura"</string>
<string name="clock_style" msgid="2265011060429742344">"Slog"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogno"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Džakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMI"</string>
- <string name="see_all" msgid="775983396630163739">"Prikaži vse ..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmi"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Uporaba štoparice pri objavi obvestila."</string>
<string name="swn_stopped" msgid="783124901663086172">"Ustavljeno"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Za preklic povlecite v desno"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Za dremež povlecite v levo"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Za preklic povlecite navzgor"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Za dremež povlecite navzdol"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Povlecite v desno za opustitev"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Povlecite v levo za dremež"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Časovnik ustavljen"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Št. ustavljenih časovnikov: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Dotaknite se za prikaz časovnikov"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Želite odstraniti ta kraj?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digitalna ura"</string>
<string name="no_alarms" msgid="6429431324842022917">"Brez opozoril"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ni nast. alarm."</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"NI PRIHAJAJOČIH OPOZORIL"</string>
</resources>
diff --git a/res/values-sr/array.xml b/res/values-sr/array.xml
index ec874fd..19b5fc0 100644
--- a/res/values-sr/array.xml
+++ b/res/values-sr/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусигалпа"</item>
<item msgid="7087691675228926801">"Парамарибо"</item>
<item msgid="478384295484578701">"Кито"</item>
+ <item msgid="4517870253399384206">"Љубљана"</item>
</string-array>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 72e4f9e..5bc42d8 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Сат"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Аларми"</string>
<string name="add_alarm" msgid="5976616107390962899">"Додај аларм"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"СЛЕДЕЋИ АЛАРМИ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Стони аларм"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Измени аларм"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Избриши аларм"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Мелодија аларма"</string>
<string name="ringtone" msgid="9110746249688559579">"Мелодија звона"</string>
<string name="time" msgid="8067216534232296518">"Време"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Сутра"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Данас"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Буђење!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Искљ."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Одбаци"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Одбаци одмах"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Пропуштени аларм"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Одложено"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 мин"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> мин"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Аларм је искљ."</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Одложи"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Одложено је за 1 минут."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> минута"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Никада"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 минута"</item>
- <item msgid="3663730603519549990">"10 минута"</item>
- <item msgid="1385481095199681200">"15 минута"</item>
- <item msgid="420479821767342125">"20 минута"</item>
- <item msgid="2107936130151066746">"25 минута"</item>
- <item msgid="7219791437023378544">"30 минута"</item>
+ <item msgid="3024545954917711306">"1 минут"</item>
+ <item msgid="5431906692406316549">"5 минута"</item>
+ <item msgid="7742728812068919959">"10 минута"</item>
+ <item msgid="2855948657259647629">"15 минута"</item>
+ <item msgid="6330196381284475079">"20 минута"</item>
+ <item msgid="7809240121716151904">"25 минута"</item>
<item msgid="4278641338024561333">"Никада"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Готово"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Приказ сата"</string>
<string name="label_description" msgid="8736179296142915727">"Ознака"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Мелодија звона"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Информације о времену тренутно нису доступне."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Услуга репродукције звука за аларме подешене у Сату."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Учитавање звука звона..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Мерач времена"</string>
<string name="menu_clock" msgid="5612760670606829805">"Сат"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Штоперица"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Аларми"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Додај аларм"</string>
<string name="button_cities" msgid="4555761857494501363">"Градови"</string>
<string name="button_menu" msgid="6050484561842120282">"Још опција"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Подешавања"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Откажи"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Време је истекло"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Тајмер"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Дозвољено је највише 4 тајмера"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Брзи сте као муња."</item>
<item msgid="6332879039890727169">"Уживајте у плодовима свог рада."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Кућа"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Градови"</string>
- <string name="clock_settings" msgid="8887845806151785393">"САТ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Сат"</string>
<string name="clock_style" msgid="2265011060429742344">"Стил"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналогни"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Џакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"АЛАРМИ"</string>
- <string name="see_all" msgid="775983396630163739">"Прикажи све..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Аларми"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Услуга штоперице за управљање обавештењима."</string>
<string name="swn_stopped" msgid="783124901663086172">"Заустављено"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Превуците удесно да бисте одбацили"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Превуците улево да бисте одложили"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Превуците нагоре да бисте одбацили"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Превуците надоле да бисте одложили"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Превуците надесно за одбацивање"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Превуците налево за одлагање"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Тајмер је заустављен"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Тајмери (<xliff:g id="NUMBER">%d</xliff:g>) су заустављени"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Додирните да бисте видели тајмере"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Желите ли да уклоните овај град?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Дигитални сат"</string>
<string name="no_alarms" msgid="6429431324842022917">"Без аларма"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Нема аларма"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"НЕМА ПРЕДСТОЈЕЋИХ АЛАРМА"</string>
</resources>
diff --git a/res/values-sv/array.xml b/res/values-sv/array.xml
index 76786a3..5853253 100644
--- a/res/values-sv/array.xml
+++ b/res/values-sv/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Teguciqalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubliana"</item>
</string-array>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d3a2878..ed55a36 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Klocka"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarm"</string>
<string name="add_alarm" msgid="5976616107390962899">"Lägg till alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"NÄSTA ALARM"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Bordsklocka"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Ändra alarmet"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Ta bort alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ringsignal för alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Ringsignal"</string>
<string name="time" msgid="8067216534232296518">"Tid"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"I morgon"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"I dag"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vakna!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Av"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Stäng av"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ta bort nu"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarmet lämnades utan åtgärd"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Pausat"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 min"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm av"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Snooze"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Alarmet återupptas om 1 minut."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> minuter"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Aldrig"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuter"</item>
- <item msgid="3663730603519549990">"10 minuter"</item>
- <item msgid="1385481095199681200">"15 minuter"</item>
- <item msgid="420479821767342125">"20 minuter"</item>
- <item msgid="2107936130151066746">"25 minuter"</item>
- <item msgid="7219791437023378544">"30 minuter"</item>
+ <item msgid="3024545954917711306">"1 minut"</item>
+ <item msgid="5431906692406316549">"5 minuter"</item>
+ <item msgid="7742728812068919959">"10 minuter"</item>
+ <item msgid="2855948657259647629">"15 minuter"</item>
+ <item msgid="6330196381284475079">"20 minuter"</item>
+ <item msgid="7809240121716151904">"25 minuter"</item>
<item msgid="4278641338024561333">"Aldrig"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Färdig"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Klockvisning"</string>
<string name="label_description" msgid="8736179296142915727">"Etikett"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ringsignal"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Väderinformationen är inte tillgänglig just nu."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Ljuduppspelningstjänst för alarm som ställts in i DeskClock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Läser in ringsignal..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Klocka"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stoppur"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarm"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Lägg till alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Orter"</string>
<string name="button_menu" msgid="6050484561842120282">"Fler alternativ"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Inställningar"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Avbryt"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Tiden är ute!"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Högst 4 timer"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Du är snabbheten personifierad."</item>
<item msgid="6332879039890727169">"Njut av frukterna av ditt arbete."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Startsida"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Orter"</string>
- <string name="clock_settings" msgid="8887845806151785393">"KLOCKA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Klocka"</string>
<string name="clock_style" msgid="2265011060429742344">"Format"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARM"</string>
- <string name="see_all" msgid="775983396630163739">"Visa alla …"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Larm"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Stoppurstjänst som kör meddelandet."</string>
<string name="swn_stopped" msgid="783124901663086172">"Stoppad"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Dra åt höger om du vill stänga av alarmet"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Dra åt vänster om du vill snooza"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Dra uppåt om du vill stänga av alarmet"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Dra nedåt om du vill snooza"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Stäng av alarmet genom att dra åt höger"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Snooza genom att dra åt vänster"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Timern stannade"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> timer stannade"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Visa timer genom att trycka"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Vill du ta bort den här staden?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digital klocka"</string>
<string name="no_alarms" msgid="6429431324842022917">"Inga alarm"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Inga alarm"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"INGA KOMMANDE ALARM"</string>
</resources>
diff --git a/res/values-sw/array.xml b/res/values-sw/array.xml
index f749ec8..f31f29a 100644
--- a/res/values-sw/array.xml
+++ b/res/values-sw/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 2ebaa36..a2ea882 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Saa"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Kengele"</string>
<string name="add_alarm" msgid="5976616107390962899">"Ongeza kengele"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"KENGELE ZINAZOFUATA"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Saa ya eneo kazi"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Hariri kengele"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Futa kengele"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Mlio wa Kengele"</string>
<string name="ringtone" msgid="9110746249688559579">"Mlio wa simu"</string>
<string name="time" msgid="8067216534232296518">"Saa"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Kesho"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Leo"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Amka!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Imezimwa"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Kata"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Ondoa Sasa"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Kengele ambayo haikushughulikiwa"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Yamepumzishwa"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"Dakika 1"</item>
+ <item quantity="other" msgid="6731274475422132958">"Dakika <xliff:g id="NUMBER">%d</xliff:g>"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Kengele imezimwa"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Nikumbushe baadaye"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Inasinzia kwa dakika 1"</item>
@@ -55,14 +64,14 @@
<item msgid="8458069283817013813">"Zimesalia <xliff:g id="HOURS">%1$s</xliff:g> <xliff:g id="MINUTES">%2$s</xliff:g>"</item>
</string-array>
<string-array name="alarm_set">
- <item msgid="6450913786084215050">"Kengele imewekwa chini ya dakika 1 kutoka sasa."</item>
- <item msgid="6002066367368421848">"Kengele imewekwa ya <xliff:g id="DAYS">%1$s</xliff:g> kuanzia sasa."</item>
- <item msgid="8824719306247973774">"Kengele imewekwa ya <xliff:g id="HOURS">%2$s</xliff:g> kuanzia sasa."</item>
- <item msgid="8182406852935468862">"Kengele imewekwa ya <xliff:g id="DAYS">%1$s</xliff:g> na <xliff:g id="HOURS">%2$s</xliff:g> kuanzia sasa."</item>
+ <item msgid="6450913786084215050">"Kengele imewekwa na italia baada ya chini ya dakika 1 kutoka sasa."</item>
+ <item msgid="6002066367368421848">"Kengele imewekwa na italia baada ya <xliff:g id="DAYS">%1$s</xliff:g> kutoka sasa."</item>
+ <item msgid="8824719306247973774">"Kengele imewekwa na italia baada ya <xliff:g id="HOURS">%2$s</xliff:g> kutoka sasa."</item>
+ <item msgid="8182406852935468862">"Kengele imewekwa na italia baada ya <xliff:g id="DAYS">%1$s</xliff:g> na <xliff:g id="HOURS">%2$s</xliff:g> kutoka sasa."</item>
<item msgid="2532279224777213194">"Kengele imewekwa kwa <xliff:g id="MINUTES">%3$s</xliff:g> kuanzia sasa."</item>
- <item msgid="5936557894247187717">"Kengele imewekwa ya <xliff:g id="DAYS">%1$s</xliff:g> na <xliff:g id="MINUTES">%3$s</xliff:g> kuanzia sasa."</item>
- <item msgid="9115697840826129603">"Kengele imewekwa ya <xliff:g id="HOURS">%2$s</xliff:g> na <xliff:g id="MINUTES">%3$s</xliff:g> kuanzia sasa."</item>
- <item msgid="2332583385137381060">"Kengele imewekwa ya <xliff:g id="DAYS">%1$s</xliff:g> , <xliff:g id="HOURS">%2$s</xliff:g> , na <xliff:g id="MINUTES">%3$s</xliff:g> kuanzia sasa."</item>
+ <item msgid="5936557894247187717">"Kengele imewekwa na italia baada ya <xliff:g id="DAYS">%1$s</xliff:g> na <xliff:g id="MINUTES">%3$s</xliff:g> kutoka sasa."</item>
+ <item msgid="9115697840826129603">"Kengele imewekwa na italia baada ya <xliff:g id="HOURS">%2$s</xliff:g> na <xliff:g id="MINUTES">%3$s</xliff:g> kutoka sasa."</item>
+ <item msgid="2332583385137381060">"Kengele imewekwa na italia baada ya <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g> na <xliff:g id="MINUTES">%3$s</xliff:g> kutoka sasa."</item>
</string-array>
<string name="day" msgid="7984755014526510295">"siku 1"</string>
<string name="days" msgid="2070509222727852210">"siku <xliff:g id="DAYS">%s</xliff:g>"</string>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> dakika"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Katu"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"Dakika 5"</item>
- <item msgid="3663730603519549990">"Dakika 10"</item>
- <item msgid="1385481095199681200">"Dakika 15"</item>
- <item msgid="420479821767342125">"Dakika 20"</item>
- <item msgid="2107936130151066746">"Dakika 25"</item>
- <item msgid="7219791437023378544">"Dakika 30"</item>
+ <item msgid="3024545954917711306">"Dakika 1"</item>
+ <item msgid="5431906692406316549">"Dakika 5"</item>
+ <item msgid="7742728812068919959">"Dakika 10"</item>
+ <item msgid="2855948657259647629">"Dakika 15"</item>
+ <item msgid="6330196381284475079">"Dakika 20"</item>
+ <item msgid="7809240121716151904">"Dakika 25"</item>
<item msgid="4278641338024561333">"Katu"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Kwisha"</string>
@@ -105,7 +114,7 @@
<string name="silent_alarm_summary" msgid="8605302849408279221">"Kimya"</string>
<string name="alarm_notify_text" msgid="4891014685945904766">"Ahirisha au uondoe kengele."</string>
<string name="alarm_notify_snooze_label" msgid="5404083762646377829">"<xliff:g id="LABEL">%s</xliff:g> (imesinzia)"</string>
- <string name="alarm_notify_snooze_text" msgid="4819324081410990368">"Kengele imewekwa ya <xliff:g id="TIME">%s</xliff:g>. Gusa ili kughairi."</string>
+ <string name="alarm_notify_snooze_text" msgid="4819324081410990368">"Kengele imewekwa na italia <xliff:g id="TIME">%s</xliff:g>. Gusa ili kughairi."</string>
<string name="volume_button_setting_title" msgid="6937131248843413357">"Vitufe vya kudhibiti sauti"</string>
<string name="volume_button_dialog_title" msgid="8768042543750036853">"Athari ya kitufe"</string>
<string-array name="volume_button_setting_entries">
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Onyesho la Saa"</string>
<string name="label_description" msgid="8736179296142915727">"Lebo"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Mlio wa simu"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Taarifa ya hali ya hewa haipatikani hivi sasa."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Huduma ya kuchezesha tena za kengele iliyowekwa kwenye Saa."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Inapakia mlio..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Kipima wakati"</string>
<string name="menu_clock" msgid="5612760670606829805">"Saa"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Saa ya kusitisha"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Kengele"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Ongeza kengele"</string>
<string name="button_cities" msgid="4555761857494501363">"Miji"</string>
<string name="button_menu" msgid="6050484561842120282">"Chaguo zaidi"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Mipangilio"</string>
@@ -145,7 +153,7 @@
<string name="selected_cities_label" msgid="3607479399424246605">"Miji Iliyochaguliwa"</string>
<string name="sw_resume_button" msgid="2569360966002022248">"Endelea"</string>
<string name="sw_start_button" msgid="8373422516681242270">"Anza"</string>
- <string name="sw_stop_button" msgid="8322958613123274451">"Acha"</string>
+ <string name="sw_stop_button" msgid="8322958613123274451">"Simama"</string>
<string name="sw_lap_button" msgid="6992264696039004233">"Mzunguko"</string>
<string name="sw_reset_button" msgid="6616804728322906117">"Weka upya"</string>
<string name="sw_share_button" msgid="4478648110382859382">"Shiriki"</string>
@@ -176,12 +184,13 @@
<string name="timer_delete" msgid="8699122001991909302">"Futa"</string>
<string name="timer_plus_one" msgid="6631211310420106116">"Ongeza Dakika 1"</string>
<string name="timer_plus_1_min" msgid="8645224089494875062">"Ongeza dakika 1"</string>
- <string name="timer_stop" msgid="3361154678667736722">"Acha"</string>
+ <string name="timer_stop" msgid="3361154678667736722">"Simama"</string>
<string name="timer_done" msgid="2375990511982914051">"Imekamilika"</string>
<string name="timer_reset" msgid="7848424809190171640">"Weka upya"</string>
<string name="timer_cancel" msgid="3572868404230815644">"Ghairi"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Muda umekwisha"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Kipima wakati"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Kiwango cha juu cha vipima muda 4"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Una kasi ya ajabu."</item>
<item msgid="6332879039890727169">"Furahia matunda ya kazi yako."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Mwanzo"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Miji"</string>
- <string name="clock_settings" msgid="8887845806151785393">"SAA"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Saa"</string>
<string name="clock_style" msgid="2265011060429742344">"Mtindo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analogi"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"KENGELE"</string>
- <string name="see_all" msgid="775983396630163739">"Angalia zote..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Kengele"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Huduma ya saa ya kusitisha kuendesha arifa."</string>
<string name="swn_stopped" msgid="783124901663086172">"Imekomeshwa"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Telezesha kulia ili kuondoa"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Telezesha kushoto ili kuahirisha"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Telezesha juu ili kutupa"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Telezesha chini ili kuahirisha"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Telezesha kidole kulia ili uondoe"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Telezesha kidole kushoto ili uahirishe"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Kipima wakati kimesimamishwa"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Vipima wakati <xliff:g id="NUMBER">%d</xliff:g> vilivyosimamishwa"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Gusa ili kuona vipima wakati vyako"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Iondoe mji huu?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Saa dijitali"</string>
<string name="no_alarms" msgid="6429431324842022917">"Hakuna Kengele Zilizowekwa"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Hakuna kengele zilizowekwa"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"HAKUNA KENGELE ZIJAZO"</string>
</resources>
diff --git a/res/values-sw360dp-land/dimens.xml b/res/values-sw360dp-land/dimens.xml
new file mode 100644
index 0000000..47e269b
--- /dev/null
+++ b/res/values-sw360dp-land/dimens.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2014 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.
+ -->
+
+<!--
+ These resources are around just to allow their values to be customized
+ for different hardware and product builds.
+-->
+<resources>
+
+ <dimen name="circle_size">232dip</dimen>
+
+</resources>
diff --git a/res/values-sw600dp-land/config.xml b/res/values-sw600dp-land/config.xml
index 9b8a46d..5a1fd2b 100644
--- a/res/values-sw600dp-land/config.xml
+++ b/res/values-sw600dp-land/config.xml
@@ -21,8 +21,4 @@
for different hardware and product builds. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<item type="integer" name="timer_column_count">2</item>
- <!-- Number of world clocks in a row, for the clock tab. -->
- <item type="integer" name="world_clocks_per_row">1</item>
- <!-- Total clocks per row is 2 + world_clocks_per_row. -->
- <item type="integer" name="clocks_per_row">3</item>
</resources>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index eef9503..67cfcb5 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -24,18 +24,11 @@
<dimen name="ampm_text_size">90dip</dimen>
<dimen name="date_text_size">15sp</dimen>
<dimen name="next_alarm_text_size">15sp</dimen>
- <dimen name="time_margin_left">8dip</dimen>
- <dimen name="time_margin_bottom">14dip</dimen>
<dimen name="time_margin_top">32dip</dimen>
- <dimen name="ampm_margin_top">28dip</dimen>
- <dimen name="font_margin_adjust">8dip</dimen>
- <dimen name="next_alarm_margin_top">-5dip</dimen>
- <dimen name="digital_world_clock_text_size">75dp</dimen>
- <dimen name="digital_world_clock_ampm_text_size">14dp</dimen>
- <dimen name="digital_main_clock_text_size">165dp</dimen>
- <dimen name="timer_circle_diameter">360dip</dimen>
- <dimen name="timer_circle_width">380dip</dimen>
+ <dimen name="alarm_side_padding">128dip</dimen>
+ <dimen name="clock_side_padding">48dip</dimen>
+ <dimen name="main_clock_bottom_margin">112dip</dimen>
<dimen name="dialpad_font_size">42sp</dimen>
<dimen name="dialpad_digit_padding">26dip</dimen>
@@ -45,25 +38,15 @@
<dimen name="timer_setup_label_size">24sp</dimen>
<!-- Size of margin for circles. -->
- <dimen name="circle_margin_top">16dp</dimen>
+ <dimen name="circle_margin_top">0dp</dimen>
<dimen name="circle_margin">48dp</dimen>
<dimen name="analog_clock_margin">48dp</dimen>
<dimen name="timer_circle_margin">48dp</dimen>
<dimen name="circle_size">360dip</dimen>
- <dimen name="stopwatch_list_margin_start">128dip</dimen>
+ <dimen name="stopwatch_list_bottom_spacing">0dip</dimen>
+ <dimen name="stopwatch_circle_margin_bottom">112dip</dimen>
<dimen name="world_clock_margin">48dp</dimen>
<dimen name="sw_padding_end">48dp</dimen>
-
- <!-- Empty space at the edges of the +1 and reset button icons. Based off of 56dip width.-->
- <dimen name="plusone_reset_button_padding">23dip</dimen>
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width. -->
- <dimen name="delete_button_padding">19dip</dimen>
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width, only nonzero for tablets. -->
- <dimen name="share_button_padding">16dip</dimen>
- <!-- Extra offset for timer button paddings. Only nonzero for non-tablets. -->
- <dimen name="timer_button_extra_offset">0dip</dimen>
-
- <dimen name="glowpadview_margin_right">-64dip</dimen>
</resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index 3ad1402..255ad12 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -20,38 +20,36 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <dimen name="label_text_size">18sp</dimen>
<dimen name="time_text_size">180dip</dimen>
<dimen name="ampm_text_size">54dip</dimen>
<dimen name="date_text_size">15sp</dimen>
<dimen name="next_alarm_text_size">15sp</dimen>
- <dimen name="time_margin_left">8dip</dimen>
- <dimen name="time_margin_right">36dip</dimen>
- <dimen name="small_time_margin_right">16dip</dimen>
- <dimen name="mini_time_margin_right">12dip</dimen>
- <dimen name="small_ampm_margin_left">10dip</dimen>
- <dimen name="time_margin_bottom">14dip</dimen>
<dimen name="time_margin_top">48dip</dimen>
- <dimen name="digital_margin_bottom">36dip</dimen>
+ <dimen name="timer_list_padding_bottom">112dip</dimen>
+ <!-- 88dip + 0.5 of footer_button_size -->
+ <dimen name="timer_cancel_end_margin">128dip</dimen>
<dimen name="screensaver_margin">20dip</dimen>
- <dimen name="ampm_margin_top">15dip</dimen>
- <dimen name="font_margin_adjust">8dip</dimen>
- <dimen name="next_alarm_margin_top">-5dip</dimen>
<dimen name="alarm_label_padding">64dip</dimen>
<dimen name="bottom_text_size">18sp</dimen>
- <dimen name="bottom_text_spacing_digital">-14dp</dimen>
+ <dimen name="bottom_text_spacing_digital">-18dp</dimen>
<dimen name="bottom_text_spacing_analog">18dp</dimen>
<dimen name="bottom_text_spacing_analog_small">10dp</dimen>
- <dimen name="digital_world_clock_text_size">100dp</dimen>
- <dimen name="digital_world_clock_ampm_text_size">18dp</dimen>
- <dimen name="digital_main_clock_text_size">220dp</dimen>
+ <dimen name="digital_screensaver_clock_text_size">104sp</dimen>
- <dimen name="big_font_size">220dp</dimen>
- <dimen name="medium_font_size">100dp</dimen>
+ <dimen name="alarm_side_padding">48dip</dimen>
+ <dimen name="clock_side_padding">48dip</dimen>
+ <dimen name="clock_side_padding_reduced">36dip</dimen>
+
+ <dimen name="big_font_size">160sp</dimen>
+ <dimen name="medium_font_size">96sp</dimen>
<dimen name="label_font_size">18sp</dimen>
<dimen name="alarm_label_size">18sp</dimen>
<dimen name="body_font_size">20sp</dimen>
+ <dimen name="day_button_font_size">20sp</dimen>
<dimen name="alarm_time_font_size">64sp</dimen>
- <dimen name="no_alarms_font_size">48sp</dimen>
+ <dimen name="alarm_info_font_size">48sp</dimen>
+ <dimen name="no_alarm_font_size">20sp</dimen>
<dimen name="widget_label_font_size">16sp</dimen>
<dimen name="body_font_padding">8dp</dimen>
@@ -72,9 +70,6 @@
<dimen name="timer_setup_delete_start_margin">42sp</dimen>
<dimen name="timer_setup_label_size">28sp</dimen>
- <dimen name="timer_circle_diameter">480dip</dimen>
- <dimen name="timer_circle_width">500dip</dimen>
-
<!-- Size of margin for circles. -->
<dimen name="circle_margin_top">48dp</dimen>
<dimen name="circle_margin">96dp</dimen>
@@ -82,6 +77,8 @@
<dimen name="timer_circle_margin">96dp</dimen>
<dimen name="circle_size">400dp</dimen>
+ <!-- stopwatch_list_bottom_spacing = footer_button_size + footer_button_layout_margin -->
+ <dimen name="stopwatch_list_bottom_spacing">96dip</dimen>
<!-- Width of the clock, for use with alarm buttons. -->
<dimen name="alarm_alert_display_width">550dip</dimen>
@@ -89,34 +86,16 @@
<!-- Size of analog clock in world clock. -->
<dimen name="world_clock_analog_size">200dip</dimen>
<dimen name="world_clock_margin">96dp</dimen>
- <!-- Empty space at the edges of the +1 and reset button icons. Based off of 56dip width.-->
- <dimen name="plusone_reset_button_padding">23dip</dimen>
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width. -->
- <dimen name="delete_button_padding">19dip</dimen>
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width, only nonzero for tablets. -->
- <dimen name="share_button_padding">16dip</dimen>
- <!-- Extra offset for timer button paddings. Only nonzero for non-tablets. -->
- <dimen name="timer_button_extra_offset">0dip</dimen>
-
- <!-- Size of alarm alert outer ring. -->
- <dimen name="glowpadview_outerring_diameter">364dip</dimen>
-
- <!-- Default target placement radius for GlowPadView. Should be 1/2 of outerring diameter. -->
- <dimen name="glowpadview_target_placement_radius">182dip</dimen>
-
- <dimen name="glowpadview_margin_bottom">0dip</dimen>
<!-- Digital Widget settings (keyguard|home_screen) -->
<!-- Use larger fonts -->
- <dimen name="widget_big_font_size">130dp</dimen>
- <dimen name="widget_medium_font_size">52dp</dimen>
- <dimen name="widget_24_medium_font_size">65dp</dimen>
+ <dimen name="widget_big_font_size">120sp</dimen>
+ <dimen name="widget_medium_font_size">52sp</dimen>
+ <dimen name="widget_24_medium_font_size">65sp</dimen>
<dimen name="widget_big_time_margin_right">12dip</dimen>
<dimen name="widget_medium_time_margin_right">8dip</dimen>
- <dimen name="min_digital_widget_width">335dp</dimen>
- <dimen name="min_digital_widget_height">207dp</dimen>
- <dimen name="min_digital_widget_resize_width">335dp</dimen>
- <dimen name="min_digital_widget_resize_height">207dp</dimen>
+ <dimen name="min_digital_widget_width">300dip</dimen>
+ <dimen name="min_digital_widget_height">170dip</dimen>
<dimen name="digital_widget_list_min_scaled_height">263dp</dimen>
<dimen name="digital_widget_list_min_fixed_height">15dp</dimen>
<dimen name="digital_widget_list_margin_top">15dp</dimen>
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
deleted file mode 100644
index 438f336..0000000
--- a/res/values-sw600dp/styles.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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>
-
- <style name="SetAlarmTheme" parent="android:Theme.Material.Dialog"/>
-
- <!-- NOTE: This must be a fullscreen theme, or else the fullscreen alarm will
- be unable to turn the screen on. -->
- <style name="AlarmAlertFullScreenTheme" parent="android:Theme.Material.Wallpaper.NoTitleBar">
- <item name="android:statusBarColor">@color/status_bar</item>
- </style>
-
-</resources>
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index c578316..d1eef05 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -19,8 +19,6 @@
for different hardware and product builds. -->
<resources>
- <dimen name="glowpadview_margin_right">48dip</dimen>
-
<dimen name="alarm_alert_clock_padding_left">128dp</dimen>
<dimen name="dialpad_font_size">42sp</dimen>
@@ -29,8 +27,9 @@
<dimen name="timer_setup_button_size">36sp</dimen>
<dimen name="timer_setup_delete_start_margin">38sp</dimen>
<dimen name="timer_setup_label_size">24sp</dimen>
- <dimen name="digital_world_clock_text_size">100dp</dimen>
- <dimen name="digital_world_clock_ampm_text_size">18dp</dimen>
- <dimen name="digital_main_clock_text_size">220dp</dimen>
+ <dimen name="digital_screensaver_clock_text_size">120sp</dimen>
+
+ <dimen name="alarm_side_padding">192dip</dimen>
+ <dimen name="clock_side_padding">96dip</dimen>
</resources>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
new file mode 100644
index 0000000..d7c5005
--- /dev/null
+++ b/res/values-sw720dp/dimens.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2014 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
+ -->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+
+ <dimen name="alarm_side_padding">96dip</dimen>
+ <dimen name="clock_side_padding">128dip</dimen>
+ <dimen name="clock_side_padding_reduced">116dip</dimen>
+
+ <dimen name="big_font_size">152sp</dimen>
+ <dimen name="medium_font_size">80sp</dimen>
+
+</resources>
diff --git a/res/values-ta-rIN/array.xml b/res/values-ta-rIN/array.xml
index d1cd5eb..7b29910 100644
--- a/res/values-ta-rIN/array.xml
+++ b/res/values-ta-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"தெகுசிகல்பா"</item>
<item msgid="7087691675228926801">"பரமரிபோ"</item>
<item msgid="478384295484578701">"குய்டொ"</item>
+ <item msgid="4517870253399384206">"லுஜுபுல்ஜானா"</item>
</string-array>
</resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 515b4c5..9c1e414 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"கடிகாரம்"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"அலாரங்கள்"</string>
<string name="add_alarm" msgid="5976616107390962899">"அலாரத்தைச் சேர்"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"அடுத்த அலாரங்கள்"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"மேசை கடிகாரம்"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"அலாரத்தைத் திருத்து"</string>
<string name="delete_alarm" msgid="3457780990646206817">"அலாரத்தை நீக்கு"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"அலார ரிங்டோன்"</string>
<string name="ringtone" msgid="9110746249688559579">"ரிங்டோன்"</string>
<string name="time" msgid="8067216534232296518">"நேரம்"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"நாளை"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"இன்று"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"எழவும்!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"முடக்கு"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"நிராகரி"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"இப்போது நிராகரி"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"தவறிய அலாரம்"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"உறக்கத்தில்"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 நி."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> நி."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"அலாரம் ஆஃப்"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"உறக்கநிலை"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 நிமிடத்திற்கு உறக்கநிலையில் வைக்கப்பட்டது."</item>
@@ -76,7 +85,7 @@
<string name="clock_instructions" msgid="2656876819515011590">"கடிகாரத்தைத் தேர்வுசெய்யவும்"</string>
<string name="analog_gadget" msgid="1670505720837152766">"அனலாக் கடிகாரம்"</string>
<string name="help" msgid="7786263119482654015">"உதவி"</string>
- <string name="settings" msgid="5849739030579520686">"அமைப்புகள்"</string>
+ <string name="settings" msgid="5849739030579520686">"அமைப்பு"</string>
<string name="snooze_duration_title" msgid="1097309861110780483">"உறக்கநிலையில் இருக்கும் காலஅளவு"</string>
<plurals name="snooze_duration">
<item quantity="one" msgid="7406963706727564418">"1 நிமிடம்"</item>
@@ -137,7 +146,7 @@
<string name="button_alarms" msgid="8016103479617020265">"அலாரங்கள்"</string>
<string name="button_cities" msgid="4555761857494501363">"நகரங்கள்"</string>
<string name="button_menu" msgid="6050484561842120282">"மேலும் விருப்பங்கள்"</string>
- <string name="menu_item_settings" msgid="1413723516369078665">"அமைப்புகள்"</string>
+ <string name="menu_item_settings" msgid="1413723516369078665">"அமைப்பு"</string>
<string name="menu_item_help" msgid="4570953476186849841">"உதவி"</string>
<string name="menu_item_night_mode" msgid="3486930302245398975">"இரவு பயன்முறை"</string>
<string name="menu_item_sort_by_gmt_offset" msgid="3120860422682721706">"நேரப்படி வகைப்படுத்து"</string>
@@ -200,13 +209,13 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"தாய்நாடு"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"நகரங்கள்"</string>
- <string name="clock_settings" msgid="8887845806151785393">"கடிகாரம்"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"கடிகாரம்"</string>
<string name="clock_style" msgid="2265011060429742344">"நடை"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"அனலாக்"</item>
<item msgid="8483930821046925592">"டிஜிட்டல்"</item>
</string-array>
- <string name="automatic_home_clock" msgid="6274174710735449252">"தன்னியக்க தாய்நாட்டு நேர மண்டல கடிகாரம்"</string>
+ <string name="automatic_home_clock" msgid="6274174710735449252">"தாய்நாட்டு நேரத்தை இயக்கு"</string>
<string name="automatic_home_clock_summary" msgid="6020476321040807273">"நேரம் மாறுபடும் இடத்தில் பயணம் மேற்கொள்ளும்போது, தாய்நாட்டு நேர மண்டலத்திற்குக் கடிகாரத்தை அமைக்கவும்"</string>
<string name="home_time_zone" msgid="9199730676287974501">"தாய்நாட்டின் நேரமண்டலம்"</string>
<string name="home_time_zone_title" msgid="807894493443834624">"தாய்நாட்டின் நேரமண்டலம்"</string>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"டோங்கா"</item>
<item msgid="5176858645450908751">"ஜகார்த்தா"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"அலாரங்கள்"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"அலாரங்கள்"</string>
<string name="see_all" msgid="775983396630163739">"அனைத்தையும் காட்டு..."</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"அறிவிப்பை இயக்குவதற்கான நிறுத்தக்கடிகார சேவை."</string>
<string name="swn_stopped" msgid="783124901663086172">"நிறுத்தப்பட்டது"</string>
@@ -316,7 +325,7 @@
<string name="all_timers_stopped_notif" msgid="278532320068394600">"உங்கள் டைமர்களைப் பார்க்க தொடவும்"</string>
<string name="timers_in_use" msgid="5570729467344408506">"<xliff:g id="NUMBER">%d</xliff:g> டைமர்கள்"</string>
<string name="next_timer_notif" msgid="6136454740115613653">"அடுத்த டைமர்: <xliff:g id="TIME_REMAINING">%s</xliff:g>"</string>
- <string name="screensaver_settings" msgid="7013450738357352801">"இயக்க அமைப்புகள்"</string>
+ <string name="screensaver_settings" msgid="7013450738357352801">"இயக்க அமைப்பு"</string>
<string name="night_mode_title" msgid="5983813889469616299">"இரவு பயன்முறை"</string>
<string name="night_mode_summary" msgid="1017350187324162631">"மிகவும் மங்கலான காட்சி (இருண்ட அறைகளுக்கானது)"</string>
<string name="expand_alarm" msgid="7392616528943305020">"அலாரத்தை விரிவாக்கு"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"இந்த நகரத்தை நீக்கவா?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"டிஜிட்டல் கடிகாரம்"</string>
<string name="no_alarms" msgid="6429431324842022917">"அலாரங்கள் இல்லை"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"அலாரம் இல்லை"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"அடுத்ததாக அலாரங்கள் இல்லை"</string>
</resources>
diff --git a/res/values-te-rIN/array.xml b/res/values-te-rIN/array.xml
index fbb3e04..b205b2d 100644
--- a/res/values-te-rIN/array.xml
+++ b/res/values-te-rIN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"తెగుసిగల్పా"</item>
<item msgid="7087691675228926801">"పరామారిబో"</item>
<item msgid="478384295484578701">"క్విటో"</item>
+ <item msgid="4517870253399384206">"ల్యూబ్ల్యానా"</item>
</string-array>
</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 3104447..bca56df 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"గడియారం"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"అలారాలు"</string>
<string name="add_alarm" msgid="5976616107390962899">"అలారంను జోడించు"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"తదుపరి అలారాలు"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"డెస్క్ గడియారం"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"అలారంను సవరించండి"</string>
<string name="delete_alarm" msgid="3457780990646206817">"అలారంను తొలగించు"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"అలారం రింగ్టోన్"</string>
<string name="ringtone" msgid="9110746249688559579">"రింగ్టోన్"</string>
<string name="time" msgid="8067216534232296518">"సమయం"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"రేపు"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ఈ రోజు"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"మేల్కొనండి!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ఆఫ్ చేయి"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"తీసివేయి"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ఇప్పుడే తీసివేయి"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"అలారంకు ప్రతిస్పందన లేదు"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"తాత్కా. ఆఫ్"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 నిమిషం"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> నిమిషాలు"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"అలారం ఆఫ్లో ఉంది"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"తాత్కాలికంగా ఆపివేయి"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 నిమిషం పాటు తాత్కాలికంగా ఆపివేయబడుతోంది."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"స్వస్థలం"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"నగరాలు"</string>
- <string name="clock_settings" msgid="8887845806151785393">"గడియారం"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"గడియారం"</string>
<string name="clock_style" msgid="2265011060429742344">"శైలి"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"అనలాగ్"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"టోంగా"</item>
<item msgid="5176858645450908751">"జకార్తా"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"అలారాలు"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"అలారాలు"</string>
<string name="see_all" msgid="775983396630163739">"అన్నీ చూడండి…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"నోటిఫికేషన్ను అమలు చేయడానికి స్టాప్ వాచ్ సేవ."</string>
<string name="swn_stopped" msgid="783124901663086172">"ఆపివేయబడింది"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"ఈ నగరాన్ని తీసివేయాలా?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"డిజిటల్ గడియారం"</string>
<string name="no_alarms" msgid="6429431324842022917">"అలారాలు లేవు"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"అలారాలను సెట్ చేయలేదు"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"సమయం ఆసన్నమయ్యే అలారాలు ఏవీ లేవు"</string>
</resources>
diff --git a/res/values-th/array.xml b/res/values-th/array.xml
index 98961d6..c3889e6 100644
--- a/res/values-th/array.xml
+++ b/res/values-th/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"เตกูซิกัลปา"</item>
<item msgid="7087691675228926801">"ปารามาริโบ"</item>
<item msgid="478384295484578701">"กีโต"</item>
+ <item msgid="4517870253399384206">"ลูบลิยานา"</item>
</string-array>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index a886992..c157aae 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -19,13 +19,12 @@
<string name="app_label" msgid="6674495003718166674">"นาฬิกา"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"การปลุก"</string>
<string name="add_alarm" msgid="5976616107390962899">"เพิ่มการปลุก"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"การปลุกครั้งถัดไป"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"นาฬิกาตั้งโต๊ะ"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"แก้ไขการปลุก"</string>
- <string name="delete_alarm" msgid="3457780990646206817">"นำออกการปลุก"</string>
+ <string name="delete_alarm" msgid="3457780990646206817">"ลบการปลุก"</string>
<string name="enable_alarm" msgid="1834599140632142536">"เปิดการปลุก"</string>
<string name="disable_alarm" msgid="5889378670229554109">"ปิดการปลุก"</string>
- <string name="delete_alarm_confirm" msgid="6578572637340860840">"นำออกการตั้งเวลาปลุกนี้หรือไม่"</string>
+ <string name="delete_alarm_confirm" msgid="6578572637340860840">"ลบการตั้งเวลาปลุกนี้หรือไม่"</string>
<string name="show_clock" msgid="8358759982675616915">"แสดงนาฬิกา"</string>
<string name="hide_clock" msgid="3217727306480505694">"ซ่อนนาฬิกา"</string>
<string name="label" msgid="162189613902857319">"ป้ายกำกับ"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"เสียงเตือน"</string>
<string name="ringtone" msgid="9110746249688559579">"เสียงเรียกเข้า"</string>
<string name="time" msgid="8067216534232296518">"เวลา"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"พรุ่งนี้"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"วันนี้"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"ตื่น!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"ปิด"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"ปิด"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ปิดทันที"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"การปลุกที่ถูกเพิกเฉย"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"ปิดเสียง"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 นาที"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> นาที"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"ปิดการปลุก"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"ปิดเสียงเตือนชั่วคราว"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"ปิดเสียงเตือนชั่วคราว 1 นาที"</item>
@@ -47,7 +56,7 @@
</plurals>
<string name="alarm_alert_snooze_until" msgid="6958013659168344550">"ปิดเสียงเตือนชั่วคราวจนถึง <xliff:g id="TIME">%s</xliff:g>"</string>
<string name="alarm_alert_predismiss_title" msgid="5723945586913705445">"การปลุกที่กำลังจะมาถึง"</string>
- <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"นำออกการปลุกที่พลาดออกไปแล้ว"</string>
+ <string name="missed_alarm_has_been_deleted" msgid="5295473204045979335">"ลบการปลุกที่พลาดออกไปแล้ว"</string>
<string-array name="timer_notifications">
<item msgid="7760558912503484257">"เหลืออีกไม่ถึงหนึ่งนาที"</item>
<item msgid="83197792732433351">"เหลืออีก <xliff:g id="HOURS">%1$s</xliff:g>"</item>
@@ -90,17 +99,17 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> นาที"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"ไม่ใช้"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 นาที"</item>
- <item msgid="3663730603519549990">"10 นาที"</item>
- <item msgid="1385481095199681200">"15 นาที"</item>
- <item msgid="420479821767342125">"20 นาที"</item>
- <item msgid="2107936130151066746">"25 นาที"</item>
- <item msgid="7219791437023378544">"30 นาที"</item>
+ <item msgid="3024545954917711306">"1 นาที"</item>
+ <item msgid="5431906692406316549">"5 นาที"</item>
+ <item msgid="7742728812068919959">"10 นาที"</item>
+ <item msgid="2855948657259647629">"15 นาที"</item>
+ <item msgid="6330196381284475079">"20 นาที"</item>
+ <item msgid="7809240121716151904">"25 นาที"</item>
<item msgid="4278641338024561333">"ไม่ใช้"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"เสร็จสิ้น"</string>
<string name="revert" msgid="9100911171235162926">"เปลี่ยนกลับ"</string>
- <string name="delete" msgid="5732434972457000541">"นำออก"</string>
+ <string name="delete" msgid="5732434972457000541">"ลบ"</string>
<string name="alarm_volume_title" msgid="8506245173912428522">"ระดับเสียงปลุก"</string>
<string name="silent_alarm_summary" msgid="8605302849408279221">"ปิดเสียง"</string>
<string name="alarm_notify_text" msgid="4891014685945904766">"ปิดเสียงเตือนชั่วคราวหรือปิดการปลุก"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"การแสดงนาฬิกา"</string>
<string name="label_description" msgid="8736179296142915727">"ป้ายกำกับ"</string>
<string name="ringtone_description" msgid="7580922112921069925">"เสียงเรียกเข้า"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"ข้อมูลสภาพอากาศไม่พร้อมใช้งานในขณะนี้"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"บริการเล่นเสียงสำหรับการปลุกที่ตั้งไว้ใน Clock"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"กำลังโหลดเสียงเรียกเข้า..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"ตัวจับเวลา"</string>
<string name="menu_clock" msgid="5612760670606829805">"นาฬิกา"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"นาฬิกาจับเวลา"</string>
- <string name="button_alarms" msgid="8016103479617020265">"การปลุก"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"เพิ่มการปลุก"</string>
<string name="button_cities" msgid="4555761857494501363">"เมือง"</string>
<string name="button_menu" msgid="6050484561842120282">"ตัวเลือกอื่น"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"การตั้งค่า"</string>
@@ -173,7 +181,7 @@
</plurals>
<string name="timer_add_timer" msgid="862733633862574752">"เพิ่มนาฬิกาจับเวลา"</string>
<string name="timer_start" msgid="6158486445614356442">"เริ่ม"</string>
- <string name="timer_delete" msgid="8699122001991909302">"นำออก"</string>
+ <string name="timer_delete" msgid="8699122001991909302">"ลบ"</string>
<string name="timer_plus_one" msgid="6631211310420106116">"เพิ่ม 1 นาที"</string>
<string name="timer_plus_1_min" msgid="8645224089494875062">"เพิ่ม 1 นาที"</string>
<string name="timer_stop" msgid="3361154678667736722">"หยุด"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"ยกเลิก"</string>
<string name="timer_times_up" msgid="9190440395938519009">"หมดเวลา"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"ตัวจับเวลา"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"มีตัวจับเวลาได้สูงสุด 4 ตัว"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"คุณนี่เป็นพวกคลั่งไคล้ความเร็วเสียจริง"</item>
<item msgid="6332879039890727169">"เริงรื่นกับผลสำเร็จจากความทุ่มเทของคุณ"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"บ้าน"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"เมือง"</string>
- <string name="clock_settings" msgid="8887845806151785393">"นาฬิกา"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"นาฬิกา"</string>
<string name="clock_style" msgid="2265011060429742344">"รูปแบบ"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"แอนะล็อก"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"ตองกา"</item>
<item msgid="5176858645450908751">"จาการ์ตา"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"การปลุก"</string>
- <string name="see_all" msgid="775983396630163739">"ดูทั้งหมด…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"การปลุก"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"บริการนาฬิกาจับเวลาเพื่อเรียกใช้การแจ้งเตือน"</string>
<string name="swn_stopped" msgid="783124901663086172">"หยุดแล้ว"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"เลื่อนไปทางขวาเพื่อปิด"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"เลื่อนไปทางซ้ายเพื่อปิดเสียงเตือนชั่วคราว"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"เลื่อนขึ้นเพื่อปิด"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"เลื่อนลงเพื่อปิดเสียงเตือนชั่วคราว"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"กวาดไปทางขวาเพื่อปิด"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"กวาดไปทางซ้ายเพื่อปิดเสียงเตือนชั่วคราว"</string>
<string name="timer_stopped" msgid="2730331837832462008">"หยุดนาฬิกาจับเวลาแล้ว"</string>
<string name="timers_stopped" msgid="2393640808691864520">"หยุดนาฬิกาจับเวลาแล้ว <xliff:g id="NUMBER">%d</xliff:g> เรือน"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"แตะเพื่อดูนาฬิกาจับเวลาของคุณ"</string>
@@ -322,20 +328,21 @@
<string name="expand_alarm" msgid="7392616528943305020">"ขยายการแจ้งเตือน"</string>
<string name="collapse_alarm" msgid="3561772046433483980">"ยุบการแจ้งเตือน"</string>
<string name="alarm_undo" msgid="5710042601177655254">"เลิกทำ"</string>
- <string name="alarm_deleted" msgid="5017075127290219443">"นำออกการแจ้งเตือนแล้ว"</string>
+ <string name="alarm_deleted" msgid="5017075127290219443">"ลบการแจ้งเตือนแล้ว"</string>
<string name="slash" msgid="2077577763821006919">"/"</string>
<string name="world_day_of_week_label" msgid="5911196322328341288">"/ <xliff:g id="LABEL">%s</xliff:g>"</string>
<string name="next_alarm_description" msgid="2650244835760747046">"ปลุกครั้งถัดไป: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
<string name="label_unlabeled" msgid="4699506713571930740"></string>
<string name="alarms_selected" msgid="1075308195332888260">"เลือกแล้ว <xliff:g id="ALARMS">%d</xliff:g> รายการ"</string>
- <string name="deleted_message" msgid="1220848140260509437">"นำออกแล้ว"</string>
+ <string name="deleted_message" msgid="1220848140260509437">"ลบแล้ว"</string>
<plurals name="alarm_delete_confirmation">
- <item quantity="one" msgid="111940612131906802">"นำออกการแจ้งเตือนที่เลือกหรือไม่"</item>
- <item quantity="other" msgid="6918176478191272189">"นำออกการแจ้งเตือนที่เลือกหรือไม่"</item>
+ <item quantity="one" msgid="111940612131906802">"ลบการแจ้งเตือนที่เลือกหรือไม่"</item>
+ <item quantity="other" msgid="6918176478191272189">"ลบการแจ้งเตือนที่เลือกหรือไม่"</item>
</plurals>
- <string name="timer_delete_confirmation" msgid="2815524107015816453">"นำออกตัวจับเวลานี้หรือไม่"</string>
- <string name="city_delete_confirmation" msgid="1783441538785676299">"นำออกเมืองนี้หรือไม่"</string>
+ <string name="timer_delete_confirmation" msgid="2815524107015816453">"ลบตัวจับเวลานี้หรือไม่"</string>
+ <string name="city_delete_confirmation" msgid="1783441538785676299">"ลบเมืองนี้หรือไม่"</string>
<string name="digital_gadget" msgid="2326954556720571358">"นาฬิกาดิจิทัล"</string>
<string name="no_alarms" msgid="6429431324842022917">"ไม่มีการเตือน"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"ไม่ได้ตั้งปลุก"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"ไม่มีการปลุกที่กำลังจะมาถึง"</string>
</resources>
diff --git a/res/values-tl/array.xml b/res/values-tl/array.xml
index 86f562b..f2d97dc 100644
--- a/res/values-tl/array.xml
+++ b/res/values-tl/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index f3473f6..e166ebb 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Orasan"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Mga Alarm"</string>
<string name="add_alarm" msgid="5976616107390962899">"Magdagdag ng alarm"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"SUSUNOD NA ALARMA"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Desk na orasan"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"I-edit ang alarm"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Tanggalin ang alarm"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ringtone ng Alarm"</string>
<string name="ringtone" msgid="9110746249688559579">"Ringtone"</string>
<string name="time" msgid="8067216534232296518">"Oras"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Bukas"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Ngayon"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Gising na!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Naka-off"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Balewalain"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"I-dismiss Ngayon"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Napalampas ang alarma"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Naka-snooze"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 minuto"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> (na) min"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"I-off, alarm"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"I-snooze"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Naka-snooze sa loob ng 1 minuto."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> (na) minuto"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Hindi Kailanman"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 minuto"</item>
- <item msgid="3663730603519549990">"10 minuto"</item>
- <item msgid="1385481095199681200">"15 minuto"</item>
- <item msgid="420479821767342125">"20 minuto"</item>
- <item msgid="2107936130151066746">"25 minuto"</item>
- <item msgid="7219791437023378544">"30 minuto"</item>
+ <item msgid="3024545954917711306">"1 minuto"</item>
+ <item msgid="5431906692406316549">"5 minuto"</item>
+ <item msgid="7742728812068919959">"10 minuto"</item>
+ <item msgid="2855948657259647629">"15 minuto"</item>
+ <item msgid="6330196381284475079">"20 minuto"</item>
+ <item msgid="7809240121716151904">"25 minuto"</item>
<item msgid="4278641338024561333">"Hindi Kailanman"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Tapos na"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Display ng orasan"</string>
<string name="label_description" msgid="8736179296142915727">"Label"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ringtone"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Hindi available sa ngayon ang impormasyon ng panahon."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Serbisyo sa pag-playback ng tunog para sa mga alarm na nakatakda sa Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Nilo-load ang ringtone…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Timer"</string>
<string name="menu_clock" msgid="5612760670606829805">"Orasan"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Stopwatch"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Mga Alarm"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Magdagdag ng alarm"</string>
<string name="button_cities" msgid="4555761857494501363">"Mga Lungsod"</string>
<string name="button_menu" msgid="6050484561842120282">"Higit pang mga pagpipilian"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Mga Setting"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Kanselahin"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Oras na"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Timer"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 na timer ang maximum"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Napakabilis mo naman."</item>
<item msgid="6332879039890727169">"I-enjoy ang mga pinagsikapan mo."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Local"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Mga Lungsod"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ORASAN"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Orasan"</string>
<string name="clock_style" msgid="2265011060429742344">"Istilo"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"MGA ALARMA"</string>
- <string name="see_all" msgid="775983396630163739">"Tingnan lahat…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Mga Alarm"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Serbisyo ng stopwatch upang patakbuhin ang notification."</string>
<string name="swn_stopped" msgid="783124901663086172">"Itinigil"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Mag-slide pakanan upang i-dismiss"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Mag-slide pakaliwa upang mag-snooze"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Mag-slide pataas upang i-dismiss"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Mag-slide pababa upang mag-snooze"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Mag-swipe pakanan upang i-dismiss"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Mag-swipe pakaliwa upang mag-snooze"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Huminto ang timer"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Huminto ang <xliff:g id="NUMBER">%d</xliff:g> (na) timer"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Pindutin upang tingnan ang iyong mga timer"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Alisin ang lungsod na ito?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Digital na orasan"</string>
<string name="no_alarms" msgid="6429431324842022917">"Walang Mga Alarm"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Wala nakatakda alarm"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"WALANG PAPARATING NA ALARMA"</string>
</resources>
diff --git a/res/values-tr/array.xml b/res/values-tr/array.xml
index 9099708..04f2726 100644
--- a/res/values-tr/array.xml
+++ b/res/values-tr/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index ac01737..6a6ba50 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Saat"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Alarmlar"</string>
<string name="add_alarm" msgid="5976616107390962899">"Alarm ekle"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"SONRAKİ ALARMLAR"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Masa saati"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Alarmı düzenle"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Alarmı sil"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Alarm Zil Sesi"</string>
<string name="ringtone" msgid="9110746249688559579">"Zil sesi"</string>
<string name="time" msgid="8067216534232296518">"Saat"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Yarın"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Bugün"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Uyanın!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Kapat"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Kapat"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Şimdi Kapat"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Alarm kaçırıldı"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Ertelendi"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 dk"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> dk"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Alarm kapalı"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Ertele"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 dakika ertelendi."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> dakika"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Hiçbir zaman"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 dakika"</item>
- <item msgid="3663730603519549990">"10 dakika"</item>
- <item msgid="1385481095199681200">"15 dakika"</item>
- <item msgid="420479821767342125">"20 dakika"</item>
- <item msgid="2107936130151066746">"25 dakika"</item>
- <item msgid="7219791437023378544">"30 dakika"</item>
+ <item msgid="3024545954917711306">"1 dakika"</item>
+ <item msgid="5431906692406316549">"5 dakika"</item>
+ <item msgid="7742728812068919959">"10 dakika"</item>
+ <item msgid="2855948657259647629">"15 dakika"</item>
+ <item msgid="6330196381284475079">"20 dakika"</item>
+ <item msgid="7809240121716151904">"25 dakika"</item>
<item msgid="4278641338024561333">"Hiçbir zaman"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Bitti"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Saat görüntüleme"</string>
<string name="label_description" msgid="8736179296142915727">"Etiket"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Zil sesi"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="PERCENT">%%</xliff:g><xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Hava durumu bilgileri şu anda kullanılamıyor."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Clock\'ta ayarlanmış alarmlar için ses çalma hizmeti"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Zil sesi yükleniyor..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Zamanlayıcı"</string>
<string name="menu_clock" msgid="5612760670606829805">"Saat"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Kronometre"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Alarmlar"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Alarm ekle"</string>
<string name="button_cities" msgid="4555761857494501363">"Şehirler"</string>
<string name="button_menu" msgid="6050484561842120282">"Diğer seçenekler"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Ayarlar"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"İptal"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Süre doldu"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Zamanlayıcı"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"En fazla 4 zamanlayıcı"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Oldukça yüksek hız tutkunusunuz."</item>
<item msgid="6332879039890727169">"Çalışmanızın meyvesini toplayabilirsiniz."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Ev"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Şehirler"</string>
- <string name="clock_settings" msgid="8887845806151785393">"SAAT"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Saat"</string>
<string name="clock_style" msgid="2265011060429742344">"Stil"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Cakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"ALARMLAR"</string>
- <string name="see_all" msgid="775983396630163739">"Tümünü göster…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Alarmlar"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Bildirimleri çalıştırmak için kronometre hizmeti."</string>
<string name="swn_stopped" msgid="783124901663086172">"Durduruldu"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Kapatmak için sağa kaydırın"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Ertelemek için sola kaydırın"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Kapatmak için yukarı kaydırın"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Ertelemek için aşağı kaydırın"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Kapatmak için hızlıca sağa kaydırın"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Ertelemek için hızlıca sola kaydırın"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Zamanlayıcı durdu"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> zamanlayıcı durdu"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Zamanlayıcılarınızı görmek için dokunun"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Bu şehir kaldırılsın mı?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Dijital saat"</string>
<string name="no_alarms" msgid="6429431324842022917">"Alarm Yok"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Alarm yok"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"YAKLAŞAN ALARM YOK"</string>
</resources>
diff --git a/res/values-uk/array.xml b/res/values-uk/array.xml
index 4f4d850..dd34136 100644
--- a/res/values-uk/array.xml
+++ b/res/values-uk/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Тегусігальпа"</item>
<item msgid="7087691675228926801">"Парамарібо"</item>
<item msgid="478384295484578701">"Кіто"</item>
+ <item msgid="4517870253399384206">"Любляна"</item>
</string-array>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 25b9bb3..ad9488a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Годинник"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Сигнали"</string>
<string name="add_alarm" msgid="5976616107390962899">"Додати сигнал"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"НАСТУПНІ СИГНАЛИ"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Настільн. год-к"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Редаг. сигнал"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Видалити сигнал"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Звук сигналу"</string>
<string name="ringtone" msgid="9110746249688559579">"Сигнал дзвінка"</string>
<string name="time" msgid="8067216534232296518">"Час"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Завтра"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Сьогодні"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Підйом!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Вимк."</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Припинити"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Закрити"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Пропущений сигнал"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Відкладено"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 хв"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> хв"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Вимкнено"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Періодично"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Відкладено на 1 хв."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> хв."</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Ніколи"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 хвилин"</item>
- <item msgid="3663730603519549990">"10 хвилин"</item>
- <item msgid="1385481095199681200">"15 хвилин"</item>
- <item msgid="420479821767342125">"20 хвилин"</item>
- <item msgid="2107936130151066746">"25 хвилин"</item>
- <item msgid="7219791437023378544">"30 хвилин"</item>
+ <item msgid="3024545954917711306">"1 хвилина"</item>
+ <item msgid="5431906692406316549">"5 хв."</item>
+ <item msgid="7742728812068919959">"10 хв."</item>
+ <item msgid="2855948657259647629">"15 хв."</item>
+ <item msgid="6330196381284475079">"20 хв."</item>
+ <item msgid="7809240121716151904">"25 хв."</item>
<item msgid="4278641338024561333">"Ніколи"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Готово"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Показ годинника"</string>
<string name="label_description" msgid="8736179296142915727">"Мітка"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Сигнал дзвінка"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Інформація про погоду зараз не доступна."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Служба відтворення звуків для набору сигналів у Годиннику."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Завантаж. мелодії…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Таймер"</string>
<string name="menu_clock" msgid="5612760670606829805">"Годинник"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Секундомір"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Сигнали"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Додати сигнал"</string>
<string name="button_cities" msgid="4555761857494501363">"Міста"</string>
<string name="button_menu" msgid="6050484561842120282">"Інші параметри"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Налаштування"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Скасувати"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Час вийшов"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Таймер"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Не більше 4 таймерів"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Ну ви й швидкі!"</item>
<item msgid="6332879039890727169">"Насолоджуйтесь плодами своєї праці."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Удома"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Міста"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ГОДИННИК"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Годинник"</string>
<string name="clock_style" msgid="2265011060429742344">"Стиль"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Аналоговий"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Тонга"</item>
<item msgid="5176858645450908751">"Джакарта"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"СИГНАЛИ"</string>
- <string name="see_all" msgid="775983396630163739">"Показати всі…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Сигнали"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Послуга \"Секундомір\" для запуску сповіщення."</string>
<string name="swn_stopped" msgid="783124901663086172">"Зупинено"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Проведіть пальцем праворуч, щоб відхилити"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Проведіть пальцем ліворуч, щоб відкласти"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Проведіть пальцем угору, щоб відхилити"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Проведіть пальцем униз, щоб відкласти"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Щоб відхилити, проведіть пальцем праворуч"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Щоб відкласти, проведіть пальцем ліворуч"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Таймер зупинився"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Зупинилося таймерів: <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Торкніться, щоб переглянути свої таймери"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Вилучити це місто?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Цифровий годинник"</string>
<string name="no_alarms" msgid="6429431324842022917">"Немає сигналів"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Немає сигналів"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"НЕМАЄ МАЙБУТНІХ СИГНАЛІВ"</string>
</resources>
diff --git a/res/values-ur-rPK/array.xml b/res/values-ur-rPK/array.xml
index 610cb2d..40da67d 100644
--- a/res/values-ur-rPK/array.xml
+++ b/res/values-ur-rPK/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"ٹیگوسیگالپے"</item>
<item msgid="7087691675228926801">"پیرامیروبی"</item>
<item msgid="478384295484578701">"کویٹو"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index abfd66e..88f6e82 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"کلاک"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"الارمز"</string>
<string name="add_alarm" msgid="5976616107390962899">"الارم شامل کریں"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"اگلے الارمز"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"ڈیسک کلاک"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"الارم میں ترمیم کریں"</string>
<string name="delete_alarm" msgid="3457780990646206817">"الارم حذف کریں"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"الارم رنگ ٹون"</string>
<string name="ringtone" msgid="9110746249688559579">"رنگ ٹون"</string>
<string name="time" msgid="8067216534232296518">"وقت"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"آئندہ کل"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"ﺁﺝ"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"جاگیں!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"آف"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"برخاست کریں"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"ابھی برخاست کریں"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"خاموش کردہ الارم"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"اسنوز کردہ"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 منٹ"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> منٹ"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"الارم آف ہے"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"اسنوز کریں"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 منٹ کیلئے اسنوز کر رہا ہے۔"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"ہوم"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"شہر"</string>
- <string name="clock_settings" msgid="8887845806151785393">"کلاک"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"کلاک"</string>
<string name="clock_style" msgid="2265011060429742344">"طرز"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"اینالاگ"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"تونگا"</item>
<item msgid="5176858645450908751">"جکارتہ"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"الارمز"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"الارمز"</string>
<string name="see_all" msgid="775983396630163739">"سبھی دیکھیں…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"اطلاع کو چلانے کیلئے اسٹاپ واچ سروس۔"</string>
<string name="swn_stopped" msgid="783124901663086172">"رک گیا"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"اس شہر کو ہٹائیں؟"</string>
<string name="digital_gadget" msgid="2326954556720571358">"ڈیجیٹل کلاک"</string>
<string name="no_alarms" msgid="6429431324842022917">"کوئی الارمز نہیں ہیں"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"الارمز سیٹ نہیں"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"کوئی آنے والے الارمز نہیں ہیں"</string>
</resources>
diff --git a/res/values-uz-rUZ/array.xml b/res/values-uz-rUZ/array.xml
index 4e12558..73cebc2 100644
--- a/res/values-uz-rUZ/array.xml
+++ b/res/values-uz-rUZ/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegusigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Kito"</item>
+ <item msgid="4517870253399384206">"Lyublyana"</item>
</string-array>
</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 254f2e3..123f45d 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Soat"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Uyg‘otkichlar"</string>
<string name="add_alarm" msgid="5976616107390962899">"Uyg‘otkich qo‘shish"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"KEYINGI UYG‘OTKICHLAR"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Ishchi stoli uchun soat"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Uyg‘otkichni tahrirlash"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Uyg‘otkichni o‘chirish"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Uyg‘otkich ringtoni"</string>
<string name="ringtone" msgid="9110746249688559579">"Rington"</string>
<string name="time" msgid="8067216534232296518">"Vaqt"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Ertaga"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Bugun"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Uyg\'oning!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"O‘chirib qo‘yish"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Yopish"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Yopish"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"O‘tkazib yuborilgan uyg‘otkich"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> – <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Mudratilgan"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 daq."</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> daq."</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Budilnik o\'chirilgan"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Kechiktirish"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"1 daqiqaga kechiktirildi."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Uy"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Shaharlar"</string>
- <string name="clock_settings" msgid="8887845806151785393">"SOAT"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Soat"</string>
<string name="clock_style" msgid="2265011060429742344">"Turi"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Ko‘rsatkichli"</item>
@@ -303,7 +312,7 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"UYG‘OTKICHLAR"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Uyg‘otkichlar"</string>
<string name="see_all" msgid="775983396630163739">"Barchasini ko‘rish…"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Bildirishnomalarni ishga tushirish uchun sekundomer."</string>
<string name="swn_stopped" msgid="783124901663086172">"To‘xtatildi"</string>
@@ -337,5 +346,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Ushbu shahar o‘chirib tashlansinmi?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Raqamli soat"</string>
<string name="no_alarms" msgid="6429431324842022917">"Hech qanday uyg‘otkich yo‘q"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Budilniklar o\'rnatilmagan"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"UYG‘OTKICHLAR YO‘Q"</string>
</resources>
diff --git a/res/values-vi/array.xml b/res/values-vi/array.xml
index af8740f..73fdf5f 100644
--- a/res/values-vi/array.xml
+++ b/res/values-vi/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"Tegucigalpa"</item>
<item msgid="7087691675228926801">"Paramaribo"</item>
<item msgid="478384295484578701">"Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 6bee885..2078d3f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Đồng hồ"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Báo thức"</string>
<string name="add_alarm" msgid="5976616107390962899">"Thêm báo thức"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"BÁO THỨC TIẾP THEO"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Đồng hồ để bàn"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Chỉnh sửa báo thức"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Xóa báo thức"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Nhạc chuông báo thức"</string>
<string name="ringtone" msgid="9110746249688559579">"Nhạc chuông"</string>
<string name="time" msgid="8067216534232296518">"Giờ"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Ngày mai"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Hôm nay"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Dậy đi!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Tắt"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Loại bỏ"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Loại bỏ bây giờ"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"Báo thức bị nhỡ"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Được báo lại"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 phút"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> phút"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"Tắt báo thức"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Báo lại"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Báo lại sau 1 phút."</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> phút"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Không bao giờ"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 phút"</item>
- <item msgid="3663730603519549990">"10 phút"</item>
- <item msgid="1385481095199681200">"15 phút"</item>
- <item msgid="420479821767342125">"20 phút"</item>
- <item msgid="2107936130151066746">"25 phút"</item>
- <item msgid="7219791437023378544">"30 phút"</item>
+ <item msgid="3024545954917711306">"1 phút"</item>
+ <item msgid="5431906692406316549">"5 phút"</item>
+ <item msgid="7742728812068919959">"10 phút"</item>
+ <item msgid="2855948657259647629">"15 phút"</item>
+ <item msgid="6330196381284475079">"20 phút"</item>
+ <item msgid="7809240121716151904">"25 phút"</item>
<item msgid="4278641338024561333">"Không bao giờ"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Xong"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Hiển thị đồng hồ"</string>
<string name="label_description" msgid="8736179296142915727">"Nhãn"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Nhạc chuông"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Hiện không có thông tin thời tiết."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Dịch vụ phát âm thanh cho báo thức đã đặt trong Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Đang tải nhạc chuông…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Bộ hẹn giờ"</string>
<string name="menu_clock" msgid="5612760670606829805">"Đồng hồ"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Đồng hồ bấm giờ"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Báo thức"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Thêm báo thức"</string>
<string name="button_cities" msgid="4555761857494501363">"Thành phố"</string>
<string name="button_menu" msgid="6050484561842120282">"Thêm tùy chọn"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Cài đặt"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Hủy"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Hết giờ"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Bộ hẹn giờ"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"Tối đa 4 bộ hẹn giờ"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Bạn đúng là con quỷ tốc độ."</item>
<item msgid="6332879039890727169">"Tận hưởng thành quả lao động của bạn."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Trang chủ"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Thành phố"</string>
- <string name="clock_settings" msgid="8887845806151785393">"ĐỒNG HỒ"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Đồng hồ"</string>
<string name="clock_style" msgid="2265011060429742344">"Kiểu"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"Đồng hồ kim"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"Tonga"</item>
<item msgid="5176858645450908751">"Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"BÁO THỨC"</string>
- <string name="see_all" msgid="775983396630163739">"Xem tất cả..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Báo thức"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Dịch vụ đồng hồ bấm giờ để chạy thông báo."</string>
<string name="swn_stopped" msgid="783124901663086172">"Đã dừng"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Trượt sang phải để loại bỏ"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Trượt sang trái để báo lại"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Trượt lên để loại bỏ"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Trượt xuống để báo lại"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Vuốt sang phải để loại bỏ"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Vuốt sang trái để báo lại"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Đã dừng bộ tính giờ"</string>
<string name="timers_stopped" msgid="2393640808691864520">"Đã dừng <xliff:g id="NUMBER">%d</xliff:g> bộ tính giờ"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Chạm để xem bộ tính giờ của bạn"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Xóa thành phố này?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Đồng hồ số"</string>
<string name="no_alarms" msgid="6429431324842022917">"Không có báo thức"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Ko đặt báo thức"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"KHÔNG CÓ BÁO THỨC SẮP TỚI"</string>
</resources>
diff --git a/res/values-zh-rCN/array.xml b/res/values-zh-rCN/array.xml
index c407568..c7dff60 100644
--- a/res/values-zh-rCN/array.xml
+++ b/res/values-zh-rCN/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"特古西加尔巴"</item>
<item msgid="7087691675228926801">"帕拉马里博"</item>
<item msgid="478384295484578701">"基多"</item>
+ <item msgid="4517870253399384206">"卢布尔雅那"</item>
</string-array>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index df28fea..0b86bd2 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"时钟"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"闹钟"</string>
<string name="add_alarm" msgid="5976616107390962899">"添加闹钟"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"后续闹钟"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"座钟"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"修改闹钟设置"</string>
<string name="delete_alarm" msgid="3457780990646206817">"删除闹钟"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"闹钟铃声"</string>
<string name="ringtone" msgid="9110746249688559579">"铃声"</string>
<string name="time" msgid="8067216534232296518">"时间"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"明天"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"今天"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"醒醒!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"关闭"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"取消"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"立即关闭"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"错过的闹钟"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"已暂停"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1分钟"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g>分钟"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"闹钟已关闭"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"暂停"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"暂停1分钟。"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g>分钟"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"永不"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5分钟"</item>
- <item msgid="3663730603519549990">"10分钟"</item>
- <item msgid="1385481095199681200">"15分钟"</item>
- <item msgid="420479821767342125">"20分钟"</item>
- <item msgid="2107936130151066746">"25分钟"</item>
- <item msgid="7219791437023378544">"30分钟"</item>
+ <item msgid="3024545954917711306">"1 分钟"</item>
+ <item msgid="5431906692406316549">"5 分钟"</item>
+ <item msgid="7742728812068919959">"10 分钟"</item>
+ <item msgid="2855948657259647629">"15 分钟"</item>
+ <item msgid="6330196381284475079">"20 分钟"</item>
+ <item msgid="7809240121716151904">"25 分钟"</item>
<item msgid="4278641338024561333">"永不"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"完成"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"时钟显示"</string>
<string name="label_description" msgid="8736179296142915727">"标签"</string>
<string name="ringtone_description" msgid="7580922112921069925">"铃声"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"目前无法提供天气信息。"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"在“时钟”内设置的闹钟铃声播放服务。"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"正在加载铃声..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"计时器"</string>
<string name="menu_clock" msgid="5612760670606829805">"时钟"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"秒表"</string>
- <string name="button_alarms" msgid="8016103479617020265">"闹钟"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"添加闹钟"</string>
<string name="button_cities" msgid="4555761857494501363">"城市"</string>
<string name="button_menu" msgid="6050484561842120282">"更多选项"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"设置"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"取消"</string>
<string name="timer_times_up" msgid="9190440395938519009">"时间到"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"计时器"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"最多只能设置4个计时器"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"您简直就像闪电侠。"</item>
<item msgid="6332879039890727169">"享受一下您大汗淋漓的成果吧。"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"家"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"城市"</string>
- <string name="clock_settings" msgid="8887845806151785393">"时钟"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"时钟"</string>
<string name="clock_style" msgid="2265011060429742344">"样式"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"指针"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"汤加"</item>
<item msgid="5176858645450908751">"雅加达"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"闹钟"</string>
- <string name="see_all" msgid="775983396630163739">"查看全部…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"闹钟"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"使用秒表服务执行通知功能。"</string>
<string name="swn_stopped" msgid="783124901663086172">"已停止"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"向右滑动即可关闭"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"向左滑动可暂停闹钟"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"向上滑动即可关闭"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"向下滑动可暂停闹钟"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"向右滑动可关闭闹钟"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"向左滑动可暂停闹钟"</string>
<string name="timer_stopped" msgid="2730331837832462008">"计时器已停止"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g>个计时器已停止"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"触摸可查看您的计时器"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"是否删除此城市?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"数字时钟"</string>
<string name="no_alarms" msgid="6429431324842022917">"没有闹钟"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"未设置闹钟"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"没有预定的闹钟"</string>
</resources>
diff --git a/res/values-zh-rHK/array.xml b/res/values-zh-rHK/array.xml
index cef5ebf..b307e8a 100644
--- a/res/values-zh-rHK/array.xml
+++ b/res/values-zh-rHK/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"德古斯加巴"</item>
<item msgid="7087691675228926801">"巴拉馬利波"</item>
<item msgid="478384295484578701">"基多"</item>
+ <item msgid="4517870253399384206">"盧布爾雅那"</item>
</string-array>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 7667e69..eafeebe 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"時鐘"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"鬧鐘"</string>
<string name="add_alarm" msgid="5976616107390962899">"新增鬧鐘"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"下次鬧鐘"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"桌面時鐘"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"編輯鬧鐘"</string>
<string name="delete_alarm" msgid="3457780990646206817">"刪除鬧鐘"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"鬧鐘鈴聲"</string>
<string name="ringtone" msgid="9110746249688559579">"鈴聲"</string>
<string name="time" msgid="8067216534232296518">"時間"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"明天"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"今天"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"醒醒!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"關閉"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"關閉"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"立即關閉"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"聽不到鬧鐘"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"已延後"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 分鐘"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> 分鐘"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"關閉鬧鐘"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"延遲"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"延遲 1 分鐘。"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> 分鐘"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"永不"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 分鐘"</item>
- <item msgid="3663730603519549990">"10 分鐘"</item>
- <item msgid="1385481095199681200">"15 分鐘"</item>
- <item msgid="420479821767342125">"20 分鐘"</item>
- <item msgid="2107936130151066746">"25 分鐘"</item>
- <item msgid="7219791437023378544">"30 分鐘"</item>
+ <item msgid="3024545954917711306">"1 分鐘"</item>
+ <item msgid="5431906692406316549">"5 分鐘"</item>
+ <item msgid="7742728812068919959">"10 分鐘"</item>
+ <item msgid="2855948657259647629">"15 分鐘"</item>
+ <item msgid="6330196381284475079">"20 分鐘"</item>
+ <item msgid="7809240121716151904">"25 分鐘"</item>
<item msgid="4278641338024561333">"永不"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"完成"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"時鐘顯示"</string>
<string name="label_description" msgid="8736179296142915727">"標籤"</string>
<string name="ringtone_description" msgid="7580922112921069925">"鈴聲"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"目前無法提供天氣資訊。"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"「時鐘」的鬧鐘鈴聲播放服務。"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"正在載入鈴聲..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"計時器"</string>
<string name="menu_clock" msgid="5612760670606829805">"時鐘"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"秒錶"</string>
- <string name="button_alarms" msgid="8016103479617020265">"鬧鐘"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"新增鬧鐘"</string>
<string name="button_cities" msgid="4555761857494501363">"城市"</string>
<string name="button_menu" msgid="6050484561842120282">"更多選項"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"設定"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"取消"</string>
<string name="timer_times_up" msgid="9190440395938519009">"時間已到"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"計時器"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"最多 4 個計時器"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"您就像閃電俠。"</item>
<item msgid="6332879039890727169">"享受辛勞的成果。"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"住宅"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"城市"</string>
- <string name="clock_settings" msgid="8887845806151785393">"時鐘"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"時鐘"</string>
<string name="clock_style" msgid="2265011060429742344">"樣式"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"類比"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"湯加"</item>
<item msgid="5176858645450908751">"雅加達"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"鬧鐘"</string>
- <string name="see_all" msgid="775983396630163739">"查看全部..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"鬧鐘"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"使用秒錶服務發出通知。"</string>
<string name="swn_stopped" msgid="783124901663086172">"已停止"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"向右滑動即可關閉"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"向左滑動即可開啟重響"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"向上滑動即可關閉"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"向下滑動即可開啟重響"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"向右快速滑動可關閉鬧鐘"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"向左快速滑動可重響鬧鐘"</string>
<string name="timer_stopped" msgid="2730331837832462008">"計時器已停止"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> 個計時器已停止"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"輕觸即可查看您的計時器"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"要移除這個城市嗎?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"數碼時鐘"</string>
<string name="no_alarms" msgid="6429431324842022917">"沒有設定鬧鐘"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"未設定鬧鐘"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"沒有啟用中的鬧鐘"</string>
</resources>
diff --git a/res/values-zh-rTW/array.xml b/res/values-zh-rTW/array.xml
index d07ef42..99bfe61 100644
--- a/res/values-zh-rTW/array.xml
+++ b/res/values-zh-rTW/array.xml
@@ -262,7 +262,7 @@
<item msgid="60834900460576333">"拉斯維加斯"</item>
<item msgid="1242224546028941695">"阿布奎基"</item>
<item msgid="2108508912885156322">"土桑"</item>
- <item msgid="2736505692163909286">"沙加缅度"</item>
+ <item msgid="2736505692163909286">"沙加緬度"</item>
<item msgid="4244292537769840523">"亞特蘭大"</item>
<item msgid="1458420523389537755">"克里夫蘭"</item>
<item msgid="6576927115185043547">"紐奧良"</item>
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"德古西加巴"</item>
<item msgid="7087691675228926801">"巴拉馬利波"</item>
<item msgid="478384295484578701">"基多"</item>
+ <item msgid="4517870253399384206">"盧比安納"</item>
</string-array>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1a9aad6..b7a84ee 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"時鐘"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"鬧鐘"</string>
<string name="add_alarm" msgid="5976616107390962899">"新增鬧鐘"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"後續鬧鐘"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"桌面時鐘"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"編輯鬧鐘"</string>
<string name="delete_alarm" msgid="3457780990646206817">"刪除鬧鐘"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"鬧鐘鈴聲"</string>
<string name="ringtone" msgid="9110746249688559579">"鈴聲"</string>
<string name="time" msgid="8067216534232296518">"時間"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"明天"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"今天"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"醒醒!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"關閉"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"關閉"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"立即關閉"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"已錯過鬧鐘"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"已延後"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 分鐘"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> 分鐘"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"關閉鬧鐘"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"貪睡"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"延後 1 分鐘。"</item>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> 分鐘"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"永遠不要"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 分鐘"</item>
- <item msgid="3663730603519549990">"10 分鐘"</item>
- <item msgid="1385481095199681200">"15 分鐘"</item>
- <item msgid="420479821767342125">"20 分鐘"</item>
- <item msgid="2107936130151066746">"25 分鐘"</item>
- <item msgid="7219791437023378544">"30 分鐘"</item>
+ <item msgid="3024545954917711306">"1 分鐘"</item>
+ <item msgid="5431906692406316549">"5 分鐘"</item>
+ <item msgid="7742728812068919959">"10 分鐘"</item>
+ <item msgid="2855948657259647629">"15 分鐘"</item>
+ <item msgid="6330196381284475079">"20 分鐘"</item>
+ <item msgid="7809240121716151904">"25 分鐘"</item>
<item msgid="4278641338024561333">"永遠不要"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"完成"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"時鐘顯示"</string>
<string name="label_description" msgid="8736179296142915727">"標籤"</string>
<string name="ringtone_description" msgid="7580922112921069925">"鈴聲"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"目前無法取得天氣資訊。"</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"在「時鐘」設定的鬧鐘鈴聲播放服務。"</string>
<string name="loading_ringtone" msgid="6523322777415268044">"正在載入鈴聲…"</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"計時器"</string>
<string name="menu_clock" msgid="5612760670606829805">"時鐘"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"碼表"</string>
- <string name="button_alarms" msgid="8016103479617020265">"鬧鐘"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"新增鬧鐘"</string>
<string name="button_cities" msgid="4555761857494501363">"城市"</string>
<string name="button_menu" msgid="6050484561842120282">"更多選項"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"設定"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"取消"</string>
<string name="timer_times_up" msgid="9190440395938519009">"時間到"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"計時器"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"最多只能建立 4 個計時器"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"您簡直就像閃電俠。"</item>
<item msgid="6332879039890727169">"盡情享受辛勞過後的果實。"</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"居住地時間"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"城市"</string>
- <string name="clock_settings" msgid="8887845806151785393">"時鐘"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"時鐘"</string>
<string name="clock_style" msgid="2265011060429742344">"樣式"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"類比"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"東加"</item>
<item msgid="5176858645450908751">"雅加達"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"鬧鐘"</string>
- <string name="see_all" msgid="775983396630163739">"全部顯示…"</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"鬧鐘"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"使用碼表服務執行通知功能。"</string>
<string name="swn_stopped" msgid="783124901663086172">"已停止"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"向右滑動可關閉鈴響"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"向左滑動可延後鈴響"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"向上滑動可關閉鈴響"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"向下滑動可延後鈴響"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"向右滑動可關閉鈴響"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"向左滑動可延後鈴響"</string>
<string name="timer_stopped" msgid="2730331837832462008">"計時器已停止"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> 個計時器已停止"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"輕觸即可查看您的計時器"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"移除這個城市?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"數位時鐘"</string>
<string name="no_alarms" msgid="6429431324842022917">"沒有設定鬧鐘"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"未設定鬧鐘"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"沒有預定的鬧鐘"</string>
</resources>
diff --git a/res/values-zu/array.xml b/res/values-zu/array.xml
index fc25bf5..10025a3 100644
--- a/res/values-zu/array.xml
+++ b/res/values-zu/array.xml
@@ -317,5 +317,6 @@
<item msgid="8613864994547669100">"I-Tegucigalpa"</item>
<item msgid="7087691675228926801">"I-Paramaribo"</item>
<item msgid="478384295484578701">"I-Quito"</item>
+ <item msgid="4517870253399384206">"Ljubljana"</item>
</string-array>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9f435a5..338756e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -19,7 +19,6 @@
<string name="app_label" msgid="6674495003718166674">"Iwashi"</string>
<string name="alarm_list_title" msgid="7589940465292950600">"Ama-alamu"</string>
<string name="add_alarm" msgid="5976616107390962899">"Engeza i-alamu"</string>
- <string name="alarm_timeline_title_text" msgid="595912293949219821">"AMA-ALAMU ALANDELAYO"</string>
<string name="menu_desk_clock" msgid="3241995064554071588">"Iwashi ledeski"</string>
<string name="menu_edit_alarm" msgid="7204602994918829751">"Hlela i-alamu"</string>
<string name="delete_alarm" msgid="3457780990646206817">"Susa i-alamu"</string>
@@ -36,10 +35,20 @@
<string name="alert" msgid="6506982899651975645">"Ithoni yokukhala ye-alamu"</string>
<string name="ringtone" msgid="9110746249688559579">"Ithoni yokukhala"</string>
<string name="time" msgid="8067216534232296518">"Isikhathi"</string>
+ <string name="alarm_tomorrow" msgid="131356848787643420">"Kusasa"</string>
+ <string name="alarm_today" msgid="7873594221106531654">"Namhlanje"</string>
+ <string name="alarm_alert_wake_up" msgid="6790780716498252583">"Vuka!"</string>
+ <string name="alarm_alert_off_action_text" msgid="2459925305288819812">"Valiwe"</string>
<string name="alarm_alert_dismiss_text" msgid="4942914605480888820">"Cashisa"</string>
<string name="alarm_alert_dismiss_now_text" msgid="3272183025444682500">"Cashisa manje"</string>
<string name="alarm_missed_title" msgid="3828345099754063392">"I-Alamu ekuphuthele"</string>
<string name="alarm_missed_text" msgid="6585658367289194023">"<xliff:g id="ALARM_TIME">%s</xliff:g> - <xliff:g id="ALARM_LABEL">%s</xliff:g>"</string>
+ <string name="alarm_alert_snoozed_text" msgid="7064642998528766113">"Kusnuziwe"</string>
+ <plurals name="alarm_alert_snooze_duration">
+ <item quantity="one" msgid="9092917312369131464">"1 iminithi"</item>
+ <item quantity="other" msgid="6731274475422132958">"<xliff:g id="NUMBER">%d</xliff:g> iminithi"</item>
+ </plurals>
+ <string name="alarm_alert_off_text" msgid="4472073417593915002">"I-alamu ivaliwe"</string>
<string name="alarm_alert_snooze_text" msgid="1774416052207651584">"Ukusnuza"</string>
<plurals name="alarm_alert_snooze_set">
<item quantity="one" msgid="7884410398338611019">"Isnuzwe iminithi engu-1"</item>
@@ -64,7 +73,7 @@
<item msgid="9115697840826129603">"I-alamu ihlelelwe u-<xliff:g id="HOURS">%2$s</xliff:g> kanye no-<xliff:g id="MINUTES">%3$s</xliff:g> ukusuka manje."</item>
<item msgid="2332583385137381060">"I-alamu isethelwe <xliff:g id="DAYS">%1$s</xliff:g>, <xliff:g id="HOURS">%2$s</xliff:g>, <xliff:g id="MINUTES">%3$s</xliff:g> kusuka manje."</item>
</string-array>
- <string name="day" msgid="7984755014526510295">"Usuku olungu-1"</string>
+ <string name="day" msgid="7984755014526510295">"1 usuku"</string>
<string name="days" msgid="2070509222727852210">"<xliff:g id="DAYS">%s</xliff:g> izinsuku"</string>
<string name="hour" msgid="2546819039651509323">"1 ihora"</string>
<string name="hours" msgid="2071487018566991613">"<xliff:g id="HOURS">%s</xliff:g> amahora"</string>
@@ -90,12 +99,12 @@
<string name="auto_silence_summary" msgid="7028508740659733028">"<xliff:g id="MINUTES">%d</xliff:g> amaminithi"</string>
<string name="auto_silence_never" msgid="4821982647348750809">"Ungalokothi"</string>
<string-array name="auto_silence_entries">
- <item msgid="3693401222993867634">"5 amaminithi"</item>
- <item msgid="3663730603519549990">"10 amaminithi"</item>
- <item msgid="1385481095199681200">"15 amaminithi"</item>
- <item msgid="420479821767342125">"20 amaminithi"</item>
- <item msgid="2107936130151066746">"25 amaminithi"</item>
- <item msgid="7219791437023378544">"30 amaminithi"</item>
+ <item msgid="3024545954917711306">"1 iminithi"</item>
+ <item msgid="5431906692406316549">"5 amaminithi"</item>
+ <item msgid="7742728812068919959">"10 amaminithi"</item>
+ <item msgid="2855948657259647629">"15 amaminithi"</item>
+ <item msgid="6330196381284475079">"20 amaminithi"</item>
+ <item msgid="7809240121716151904">"25 amaminithi"</item>
<item msgid="4278641338024561333">"Ungalokothi"</item>
</string-array>
<string name="done" msgid="6509722361933858451">"Kwenziwe"</string>
@@ -122,7 +131,6 @@
<string name="desk_clock_button_description" msgid="4207371097361657274">"Ukubukeka kwewashi"</string>
<string name="label_description" msgid="8736179296142915727">"Ilebula"</string>
<string name="ringtone_description" msgid="7580922112921069925">"Ithoni yokukhala"</string>
- <string name="battery_charging_level" msgid="5251483622085889693">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="weather_fetch_failure" msgid="3425804832021006835">"Ulwazi lwesimo sezulu alukho okwamanje."</string>
<string name="alarm_klaxon_service_desc" msgid="2147506334302260256">"Insiza yokudlala komsindo we-alamu usethwe ku-Desk Clock."</string>
<string name="loading_ringtone" msgid="6523322777415268044">"Ilayisha iringithoni..."</string>
@@ -134,7 +142,7 @@
<string name="menu_timer" msgid="6459070074762877114">"Isikali sesikhathi"</string>
<string name="menu_clock" msgid="5612760670606829805">"Iwashi"</string>
<string name="menu_stopwatch" msgid="3396117705293574701">"Iwashi lokumisa"</string>
- <string name="button_alarms" msgid="8016103479617020265">"Ama-alamu"</string>
+ <string name="button_alarms" msgid="3907838219512538763">"Engeza i-alamu"</string>
<string name="button_cities" msgid="4555761857494501363">"Amadolobha"</string>
<string name="button_menu" msgid="6050484561842120282">"Izinketho eziningi"</string>
<string name="menu_item_settings" msgid="1413723516369078665">"Izilungiselelo"</string>
@@ -182,6 +190,7 @@
<string name="timer_cancel" msgid="3572868404230815644">"Khansela"</string>
<string name="timer_times_up" msgid="9190440395938519009">"Isikhathi siphelile"</string>
<string name="timer_notification_label" msgid="4933184831583137249">"Isikali sesikhathi"</string>
+ <string name="timers_max_count_reached" msgid="9140022846793903813">"4 ubukhulu bezibali sikhathi"</string>
<string-array name="sw_share_strings">
<item msgid="842841032273927988">"Ulidimoni elisheshayo."</item>
<item msgid="6332879039890727169">"Thokozela izithelo zomsebenzi wakho."</item>
@@ -200,7 +209,7 @@
</plurals>
<string name="home_label" msgid="4436139365695453870">"Esasekhaya"</string>
<string name="cities_activity_title" msgid="8552462751129256730">"Amadolobha"</string>
- <string name="clock_settings" msgid="8887845806151785393">"IWASHI"</string>
+ <string name="clock_settings" msgid="8317286807280600391">"Iwashi"</string>
<string name="clock_style" msgid="2265011060429742344">"Isitayela"</string>
<string-array name="clock_style_entries">
<item msgid="917900462224167608">"I-Analog"</item>
@@ -303,14 +312,11 @@
<item msgid="5911600083231840181">"esase-Tonga"</item>
<item msgid="5176858645450908751">"I-Jakarta"</item>
</string-array>
- <string name="alarm_settings" msgid="6049627772103646753">"AMA-ALAMU"</string>
- <string name="see_all" msgid="775983396630163739">"Buka konke..."</string>
+ <string name="alarm_settings" msgid="2947147071388290814">"Ama-alamu"</string>
<string name="stopwatch_service_desc" msgid="8416624630388063996">"Isevisi yewashi lokumisa izoqalisa isaziso."</string>
<string name="swn_stopped" msgid="783124901663086172">"Imisiwe"</string>
- <string name="description_direction_right" msgid="1615911557926085934">"Shelelisela ngakwesokudla ukuze uchithe"</string>
- <string name="description_direction_left" msgid="6328816971226781776">"Shelelisela ngakwesokunxele ukuze usnuze"</string>
- <string name="description_direction_up" msgid="7875287578324520904">"Shelelisela phezulu ukuze uchithe"</string>
- <string name="description_direction_down" msgid="8240473964024874053">"Shelelisela phansi ukuze usnuze"</string>
+ <string name="description_direction_right" msgid="5709209043267548985">"Swayipha ngakwesokudla ukuze ucashise"</string>
+ <string name="description_direction_left" msgid="7448141043674998679">"Swayipha ngakwesokunxele ukuze usnuze"</string>
<string name="timer_stopped" msgid="2730331837832462008">"Isikhathi simisiwe"</string>
<string name="timers_stopped" msgid="2393640808691864520">"<xliff:g id="NUMBER">%d</xliff:g> izikhathi ezimisiwe"</string>
<string name="all_timers_stopped_notif" msgid="278532320068394600">"Thinta ukuze ubone izikhathi zakho"</string>
@@ -337,5 +343,6 @@
<string name="city_delete_confirmation" msgid="1783441538785676299">"Susa leli dolobha?"</string>
<string name="digital_gadget" msgid="2326954556720571358">"Iwashi elidijithali"</string>
<string name="no_alarms" msgid="6429431324842022917">"Awekho ama-alamu"</string>
+ <string name="no_alarms_set" msgid="4887558279496044764">"Awekho ama-alamu asethiwe"</string>
<string name="no_upcoming_alarms" msgid="2889840988069436254">"AWEKHO AMA-ALAMU EZAYO"</string>
</resources>
diff --git a/res/values/array.xml b/res/values/array.xml
index 8e9ed7d..b151373 100644
--- a/res/values/array.xml
+++ b/res/values/array.xml
@@ -315,6 +315,7 @@
<item>Tegucigalpa</item>
<item>Paramaribo</item>
<item>Quito</item>
+ <item>Ljubljana</item>
</string-array>
<string-array name="cities_tz" translatable="false">
@@ -617,6 +618,7 @@
<item>America/Tegucigalpa</item>
<item>America/Paramaribo</item>
<item>America/Panama</item>
+ <item>Europe/Ljubljana</item>
</string-array>
<string-array name="cities_id" translatable="false">
@@ -919,5 +921,6 @@
<item>C297</item>
<item>C298</item>
<item>C299</item>
+ <item>C300</item>
</string-array>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 36d62e5..205026a 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -23,31 +23,30 @@
<color name="screen_saver_dim_color">#FF001634</color>
<color name="action_bar_button_text_color">#FFFFFF</color>
<color name="dialog_gray">#28ffffff</color>
+ <color name="pressed_state_color">#33999999</color>
<color name="black">#ff000000</color>
- <color name="blackish_selected">#0cffffff</color>
+ <color name="black_87p">#de000000</color>
+ <color name="black_54p">#8a000000</color>
+ <color name="black_16p">#28000000</color>
+
<color name="white">#ffffffff</color>
- <color name="grey">#ffaaaaaa</color>
+ <color name="white_69p">#B1FFFFFF</color>
+
+ <color name="blackish_selected">#0cffffff</color>
<color name="transparent">#00000000</color>
- <color name="transparent_white">#66ffffff</color>
- <color name="alarm_whiteish">#0cffffff</color>
<color name="hot_pink">#FF4081</color>
<color name="hairline">#28ffffff</color>
<color name="bright_foreground_light_disabled">#80000000</color>
<color name="clock_white">#ffffff</color>
- <color name="clock_gray">#80ffffff</color>
- <color name="clock_blue">#ff33b5e5</color>
+ <color name="clock_gray">#B3ffffff</color>
<!-- App icon color as default -->
<color name="default_background">#5c6bc0</color>
<color name="status_bar">#26000000</color>
- <color name="notification_bg">#ff15444F</color>
- <color name="alarm_selected_color">#aa0099cc</color>
-
- <drawable name="notification_template_icon_bg">#3333B5E5</drawable>
- <drawable name="notification_template_icon_low_bg">#0cffffff</drawable>
+ <color name="time_picker_gray">#212121</color>
</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 380a851..9884671 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -26,6 +26,6 @@
<item type="integer" name="timer_column_count">1</item>
<!-- Number of world clocks in a row, for the clock tab. -->
<item type="integer" name="world_clocks_per_row">1</item>
- <!-- Total clocks per row is 2 + world_clocks_per_row. -->
- <item type="integer" name="clocks_per_row">3</item>
+ <!-- Number of world clocks in a row, for the digital appwidget. -->
+ <item type="integer" name="appwidget_world_clocks_per_row">2</item>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index ecd4ee1..f48dcd1 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -20,43 +20,37 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <dimen name="label_text_size">14sp</dimen>
<dimen name="time_text_size">120dip</dimen>
<dimen name="ampm_text_size">20dip</dimen>
<dimen name="date_text_size">15sp</dimen>
<dimen name="next_alarm_text_size">15sp</dimen>
- <dimen name="time_margin_right">18dip</dimen>
- <dimen name="small_time_margin_right">10dip</dimen>
- <dimen name="mini_time_margin_right">10dip</dimen>
- <dimen name="small_ampm_margin_left">6dip</dimen>
- <dimen name="time_margin_left">8dip</dimen>
- <dimen name="time_margin_bottom">8dip</dimen>
<dimen name="time_margin_top">32dip</dimen>
- <dimen name="digital_margin_bottom">24dip</dimen>
<dimen name="timer_padding_left">16dip</dimen>
+ <dimen name="timer_list_padding_bottom">88dip</dimen>
+ <!-- 88dip + 0.5 of footer_button_size -->
+ <dimen name="timer_cancel_end_margin">116dip</dimen>
<dimen name="screensaver_margin">16dip</dimen>
- <dimen name="ampm_margin_top">8dip</dimen>
- <dimen name="font_margin_adjust">4dip</dimen>
- <dimen name="next_alarm_margin_top">-4dip</dimen>
<dimen name="alarm_label_padding">8dip</dimen>
<dimen name="alert_dialog_title_height">64dip</dimen>
- <dimen name="popup_window_width">196dip</dimen>
<dimen name="bottom_text_spacing_digital">-8dp</dimen>
<dimen name="top_text_spacing_digital">4dp</dimen>
<dimen name="bottom_text_spacing_analog">14dp</dimen>
<dimen name="bottom_text_spacing_analog_small">6dp</dimen>
- <dimen name="digital_world_clock_text_size">60dp</dimen>
- <dimen name="digital_world_clock_ampm_text_size">14dp</dimen>
- <dimen name="digital_main_clock_text_size">120dp</dimen>
- <dimen name="digital_screensaver_clock_text_size">100dp</dimen>
+ <dimen name="digital_screensaver_clock_text_size">104sp</dimen>
+
+ <dimen name="alarm_side_padding">12dip</dimen>
+ <dimen name="clock_side_padding">12dip</dimen>
+ <!-- clock_side_padding_reduced = clock_side_padding - clock_fragment_end_padding -->
+ <dimen name="clock_side_padding_reduced">0dip</dimen>
+ <dimen name="clock_fragment_end_padding">12dip</dimen>
+ <dimen name="alarm_clock_vertical_margin">12dip</dimen>
<!-- Analog clock size in the the screen saver -->
- <dimen name="analog_clock_diameter">236dip</dimen>
- <dimen name="timer_circle_diameter">300dip</dimen>
- <dimen name="timer_circle_width">350dip</dimen>
<dimen name="bottom_text_size">16sp</dimen>
<dimen name="actionbar_tab_padding">0dip</dimen>
- <dimen name="actionbar_title_font_size">22sp</dimen>
+ <dimen name="actionbar_title_font_size">18sp</dimen>
<dimen name="footer_button_size">56dip</dimen>
<dimen name="footer_button_layout_margin">16dip</dimen>
@@ -69,20 +63,26 @@
<dimen name="circletimer_circle_size">4dip</dimen>
<dimen name="circletimer_marker_size">16dip</dimen>
- <dimen name="big_font_size">120dp</dimen>
- <dimen name="small_font_size">48sp</dimen>
- <dimen name="medium_font_size">60dp</dimen>
+ <dimen name="alarm_lockscreen_alarm_horizontal_padding">16dp</dimen>
+ <dimen name="alarm_lockscreen_alarm_vertical_padding">48dp</dimen>
+ <dimen name="alarm_lockscreen_pulse_size">256dp</dimen>
+ <dimen name="alarm_lockscreen_bottom_margin">40dp</dimen>
+
+ <dimen name="big_font_size">88sp</dimen>
+ <dimen name="medium_font_size">56sp</dimen>
+ <dimen name="small_font_size">32sp</dimen>
<dimen name="label_font_size">16sp</dimen>
<dimen name="widget_label_font_size">14sp</dimen>
<dimen name="main_ampm_font_size">32sp</dimen>
<dimen name="header_font_size">24sp</dimen>
<dimen name="body_font_size">18sp</dimen>
+ <dimen name="day_button_font_size">18sp</dimen>
<dimen name="alarm_time_font_size">64sp</dimen>
- <dimen name="no_alarms_font_size">36sp</dimen>
+ <dimen name="alarm_info_font_size">36sp</dimen>
+ <dimen name="no_alarm_font_size">16sp</dimen>
<dimen name="body_font_padding">4dp</dimen>
<dimen name="button_font_size">24sp</dimen>
- <dimen name="timer_label_font_size">24sp</dimen>
<dimen name="dialog_button_font_size">16sp</dimen>
<dimen name="alarm_label_size">14sp</dimen>
@@ -109,10 +109,6 @@
<dimen name="timer_setup_delete_padding">12dip</dimen>
<dimen name="timer_setup_label_size">18sp</dimen>
- <dimen name="city_name_font_size">16sp</dimen>
- <dimen name="city_time_font_size">16sp</dimen>
-
-
<dimen name="cities_list_item_height">56dip</dimen>
<!-- Size of margin for circles. -->
@@ -122,23 +118,22 @@
<dimen name="timer_circle_margin">32dp</dimen>
<dimen name="circle_size">280dp</dimen>
- <dimen name="stopwatch_list_margin_start">64dip</dimen>
+ <!-- stopwatch_list_bottom_spacing = footer_button_size + footer_button_layout_margin -->
+ <dimen name="stopwatch_list_bottom_spacing">72dip</dimen>
<dimen name="sw_padding_end">32dp</dimen>
- <!-- The width of the big icons in notifications. -->
- <dimen name="notification_large_icon_width">64dp</dimen>
- <!-- The width of the big icons in notifications. -->
- <dimen name="notification_large_icon_height">64dp</dimen>
+ <!-- The width and height of the notification icon -->
+ <dimen name="notification_icon_size">64dip</dimen>
<!-- Size of notification text (see TextAppearance.StatusBar.EventContent) -->
<dimen name="notification_text_size">14dp</dimen>
<!-- Size of notification text titles (see TextAppearance.StatusBar.EventContent.Title) -->
<dimen name="notification_title_text_size">18dp</dimen>
- <!-- Size of smaller notification text (see TextAppearance.StatusBar.EventContent.Line2, Info, Time) -->
- <dimen name="notification_subtext_size">12dp</dimen>
<!-- Width of the clock, for use with alarm buttons. -->
<dimen name="alarm_alert_display_width">304dip</dimen>
+ <!-- Bottom padding for alarm lock screen hint text -->
+ <dimen name="alarm_alert_hint_padding">32dip</dimen>
<!-- Size of analog clock in world clock. -->
<dimen name="world_clock_analog_size">100dip</dimen>
@@ -146,17 +141,6 @@
<dimen name="toast_bar_bottom_margin_in_conversation">24dip</dimen>
- <!-- Empty space at the edges of the +1 and reset button icons. Based off of 56dip width, only nonzero for tablets.-->
- <dimen name="plusone_reset_button_padding">0dip</dimen>
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width, only nonzero for tablets. -->
- <dimen name="delete_button_padding">0dip</dimen>
- <!-- Empty space at the edges of the lap button icon. Based off of 56dip width, only nonzero for tablets.-->
- <dimen name="lap_button_padding">0dip</dimen> <!-- 11 -->
- <!-- Empty space at the edges of the delete button icons. Based off of 56dip width, only nonzero for tablets. -->
- <dimen name="share_button_padding">0dip</dimen> <!-- 16 -->
- <!-- Extra offset for timer button paddings. Only nonzero for non-tablets. -->
- <dimen name="timer_button_extra_offset">14dip</dimen>
-
<!-- Height of the button footers. 56 height and 16 on top and bottom. -->
<dimen name="button_footer_height">88dip</dimen>
<!-- Negative value of the height of the button footers, for use with lightsout. -->
@@ -166,21 +150,18 @@
<!-- Digital Widget settings (keyguard|home_screen) -->
<!-- Clock and world clock sizes -->
- <dimen name="widget_big_font_size">80dp</dimen>
- <dimen name="widget_medium_font_size">32dp</dimen>
- <dimen name="widget_24_medium_font_size">40dp</dimen>
+ <dimen name="widget_big_font_size">75sp</dimen>
+ <dimen name="widget_medium_font_size">32sp</dimen>
+ <dimen name="widget_24_medium_font_size">40sp</dimen>
<!-- Hour and minute spacing -->
<dimen name="widget_big_time_margin_right">10dip</dimen>
<dimen name="widget_medium_time_margin_right">5dip</dimen>
<!-- width/height of layout/digital_widget_time -->
- <!-- height is sum of widget_big_font_size + label_font_size + margins -->
- <dimen name="min_digital_widget_width">206dp</dimen>
- <dimen name="min_digital_widget_height">129dp</dimen>
- <!-- same as min_digital_widget_{width,height} -->
- <dimen name="min_digital_widget_resize_width">206dp</dimen>
- <dimen name="min_digital_widget_resize_height">129dp</dimen>
+ <dimen name="min_digital_widget_width">206dip</dimen>
+ <dimen name="min_digital_widget_height">129dip</dimen>
+
<!-- sum of scaled heights -->
<dimen name="digital_widget_list_min_scaled_height">162dp</dimen>
<!-- sum of fixed heights -->
@@ -190,9 +171,12 @@
<dimen name="digital_widget_city_margin_bottom">10dp</dimen>
<!-- Bottom margin for the expand area -->
- <dimen name="collapse_expand_height">48dp</dimen>
+ <dimen name="collapse_expand_height">72dip</dimen>
<!-- Divider height -->
<dimen name="hairline_height">1dip</dimen>
+ <!-- The minimum height/width of any touch target -->
+ <dimen name="touch_target_min_size">48dip</dimen>
+
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8b877fa..acadb22 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -136,11 +136,6 @@
<item quantity="other">Snoozing for <xliff:g id="minutes">%d</xliff:g> minutes.</item>
</plurals>
- <!-- Text instruction for dismiss alarm on alarm lock screen (Do not translate to swipe left in RTL) -->
- <string name="swipe_dismiss_instruction">Swipe right to dismiss</string>
- <!-- Text instruction for snooze alarm on alarm lock screen (Do not translate to swipe right in RTL) -->
- <string name="swipe_snooze_instruction">Swipe left to snooze</string>
-
<!-- Text to appear inside a notification while an alarm is snoozing. -->
<string name="alarm_alert_snooze_until">Snoozing until <xliff:g id="time">%s</xliff:g></string>
@@ -257,24 +252,24 @@
<!-- Entries listed in the ListPreference when invoking the auto silence
preference. -->
<string-array name="auto_silence_entries">
+ <item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>15 minutes</item>
<item>20 minutes</item>
<item>25 minutes</item>
- <item>30 minutes</item>
<item>Never</item>
</string-array>
<!-- Values that are retrieved from the ListPreference. These must match
the auto_silence_entries above. -->
<string-array name="auto_silence_values" translatable="false">
+ <item>1</item>
<item>5</item>
<item>10</item>
<item>15</item>
<item>20</item>
<item>25</item>
- <item>30</item>
<item>-1</item> <!-- Off -->
</string-array>
@@ -338,9 +333,6 @@
<string name="label_description">Label</string>
<string name="ringtone_description">Ringtone</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. -->
@@ -376,7 +368,7 @@
<!-- Clock view buttons strings-->
<!-- Describes the purpose of the button to start the activity to add/edit/delete alarms -->
- <string name="button_alarms">Alarms</string>
+ <string name="button_alarms">Add alarm</string>
<!-- Describes the purpose of the button which provides a list of cities for the world clock settings -->
<string name="button_cities">Cities</string>
<!-- Describes the purpose of the button which pops up a menu of setting choices -->
@@ -406,7 +398,8 @@
<string name="sw_lap_button">Lap</string>
<!-- Describes the purpose of the button to return the stopwatch to zero and remove the lap times. -->
<string name="sw_reset_button">Reset</string>
- <!-- Describes the purpose of the button to share the stopwatch value. -->
+ <!-- Describes the purpose of the button to share the stopwatch value.
+ Also used as title for chooser when sharing stopwatch results. -->
<string name="sw_share_button">Share</string>
<!-- Abbreviation for temporal hours [CHAR LIMIT=1] -->
@@ -767,17 +760,19 @@
<!-- Header in the preferences settings for the section pertaining to alarms -->
<string name="alarm_settings">Alarms</string>
- <!-- Describes the purpose of the button to show the remaining choices whenever there were too many -->
- <string name="see_all">See all…</string>
<string name="desk_clock_help_url" translatable="false"></string>
<!-- Describes the running service for the stopwatch -->
<string name="stopwatch_service_desc">Stopwatch service to run the notification.</string>
<!-- Desription for the stopped stop watch -->
<string name="swn_stopped">Stopped</string>
- <!-- Description of the right direction in the alarm alert screen. [CHAR LIMIT=NONE] -->
+ <!-- Text instruction for dismiss alarm on alarm lock screen. The dismiss button will still
+ be on the right even on RTL languages so please do not reverse this during
+ translation. -->
<string name="description_direction_right">Swipe right to dismiss</string>
- <!-- Description of the left direction in the alarm alert screen. [CHAR LIMIT=NONE] -->
+ <!-- Text instruction for snooze alarm on alarm lock screen. The snooze button will still
+ be on the left even on RTL languages so please do not reverse this during
+ translation. -->
<string name="description_direction_left">Swipe left to snooze</string>
<!-- Notification title when timer is stopped. -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 90aec7b..f97e42b 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -23,22 +23,40 @@
<style name="DeskClockParentTheme" parent="@android:style/Theme.Material">
<item name="android:statusBarColor">@color/status_bar</item>
- <item name="android:colorControlActivated">@color/hot_pink</item>
+ <item name="android:colorControlActivated">@color/white</item>
<item name="android:colorControlNormal">@color/white</item>
- <item name="android:actionOverflowMenuStyle">@style/PopupMenu</item>
- <item name="android:actionOverflowButtonStyle">@style/ActionOverflowButtonStyle</item>
- <item name="android:popupMenuStyle">@style/PopupMenu</item>
+ <item name="android:popupMenuStyle">?android:attr/actionOverflowMenuStyle</item>
<item name="android:buttonStyle">?android:attr/borderlessButtonStyle</item>
</style>
- <style name="TimePickerTheme" parent="@android:style/Theme.Material.Dialog">
+ <style name="AlarmSwitchTheme">
<item name="android:colorControlActivated">@color/hot_pink</item>
- <item name="android:colorAccent">@color/hot_pink</item>
- <item name="android:colorControlNormal">@color/white</item>
</style>
- <style name="PopupMenu" parent="@android:style/Widget.Material.PopupMenu.Overflow">
- <item name="android:popupBackground">@color/bright_foreground_light_disabled</item>
+ <style name="TimePickerTheme" parent="@android:style/Theme.Material.Dialog">
+ <item name="android:background">@color/time_picker_gray</item>
+ <item name="android:timePickerStyle">@style/TimePickerStyle</item>
+ <item name="android:textColorPrimaryInverse">@color/hot_pink</item>
+ <item name="android:colorAccent">@color/hot_pink</item>
+ </style>
+
+ <style name="TimePickerStyle" parent="@android:style/Widget.Material.TimePicker">
+ <item name="android:headerBackground">@color/time_picker_gray</item>
+ <item name="android:headerTimeTextAppearance">@style/TimeLabelTextAppearance</item>
+ <item name="android:headerAmPmTextAppearance">@style/AmPmTextAppearance</item>
+ <item name="android:numbersBackgroundColor">@color/time_picker_gray</item>
+ <item name="android:numbersTextColor">@color/white</item>
+ <item name="android:amPmTextColor">@color/white</item>
+ </style>
+
+ <style name="TimeLabelTextAppearance" parent="@android:style/TextAppearance.Material">
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">60sp</item>
+ </style>
+
+ <style name="AmPmTextAppearance" parent="@android:style/TextAppearance.Material">
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">16sp</item>
</style>
<style name="DeskClock" parent="@style/DeskClockParentTheme">
@@ -59,10 +77,12 @@
<item name="android:dividerPadding">12dp</item>
<item name="android:gravity">center</item>
</style>
+
<style name="DeskClockBarStyle" parent="@android:style/Widget.Material.ActionBar">
<item name="android:background">@null</item>
<item name="android:backgroundStacked">@null</item>
<item name="android:backgroundSplit">@null</item>
+ <!-- Empty displayOptions is to hide App title at app launch -->
<item name="android:displayOptions"></item>
</style>
@@ -76,14 +96,32 @@
<style name="SettingsTheme" parent="@style/DeskClockParentTheme">
<item name="android:actionBarStyle">@style/SettingsTheme.ActionBar</item>
+ <item name="android:detailsElementBackground">@null</item>
<item name="android:dropDownListViewStyle">@style/DeskClockDropDownListView</item>
+ <item name="android:fontFamily">sans-serif-medium</item>
+ <item name="android:textColor">@color/white_69p</item>
+ <item name="android:textSize">@dimen/label_text_size</item>
</style>
<style name="CitiesTheme" parent="@style/DeskClockParentTheme">
<item name="android:fastScrollThumbDrawable">@drawable/red_fastscroll_thumb</item>
+ <item name="android:fastScrollStyle">@style/FastScrollStyle</item>
<item name="android:actionBarStyle">@style/CitiesTheme.ActionBar</item>
</style>
+ <!-- This is to control the FastScroll background color -->
+ <style name="CitiesListViewTheme" parent="@style/CitiesTheme">
+ <item name="android:colorControlActivated">@color/hot_pink</item>
+ </style>
+
+ <style name="FastScrollStyle" parent="@android:style/Widget.Material.FastScroll">
+ <item name="android:minWidth">48dip</item>
+ <item name="android:minHeight">48dip</item>
+ <item name="android:padding">16dip</item>
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">32sp</item>
+ </style>
+
<style name="CitiesTheme.ActionBar" parent="@android:style/Widget.Material.ActionBar">
<item name="android:displayOptions">useLogo</item>
</style>
@@ -91,39 +129,32 @@
<style name="SettingsTheme.ActionBar" parent="@android:style/Widget.Material.ActionBar">
<item name="android:titleTextStyle">@style/SettingsTheme.TextAppearance.ActionBar.Title</item>
<item name="android:displayOptions">useLogo|showTitle</item>
- <item name="android:background">@drawable/ab_hairline</item>
</style>
- <style name="SettingsTheme.TextAppearance.ActionBar.Title" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
+ <style name="SettingsTheme.TextAppearance.ActionBar.Title"
+ parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
<item name="android:textSize">@dimen/actionbar_title_font_size</item>
- <item name="android:textStyle">bold</item>
- </style>
-
- <style name="AlarmAlertFullScreenWindowTitle">
- <item name="android:maxLines">1</item>
- <item name="android:scrollHorizontally">true</item>
- <item name="android:textSize">22sp</item>
- <item name="android:textColor">@android:color/holo_blue_light</item>
</style>
<!-- NOTE: This must be a fullscreen theme, or else the fullscreen alarm will
be unable to turn the screen on. -->
<style name="AlarmAlertFullScreenTheme"
parent="@android:style/Theme.Material.Wallpaper.NoTitleBar">
- <item name="android:statusBarColor">@color/status_bar</item>
- <item name="android:windowTitleStyle">@style/AlarmAlertFullScreenWindowTitle</item>
+ <item name="android:windowTranslucentStatus">true</item>
</style>
- <style name="ScreensaverActivityTheme"
- parent="@android:style/Theme.Material.Wallpaper.NoTitleBar" />
+ <style name="TimerAlertFullScreenTheme"
+ parent="@android:style/Theme.Material.Wallpaper.NoTitleBar">
+ <item name="android:statusBarColor">@color/status_bar</item>
+ </style>
+
+ <style name="ScreensaverActivityTheme" parent="@android:style/Theme.Material.NoActionBar">
+ <!-- Hide navigation bar when Dream is started from within the Clock app -->
+ <item name="android:windowDrawsSystemBarBackgrounds">false</item>
+ </style>
<style name="ScreensaverSettingsActivityTheme" parent="@android:style/Theme.Material" />
- <style name="ActionOverflowButtonStyle" parent="@android:style/Widget.ActionButton.Overflow">
- <item name="android:src">@drawable/ic_overflow</item>
- <item name="android:scaleType">center</item>
- </style>
-
<style name="RoundTouchButton">
<item name="android:gravity">center</item>
<item name="android:layout_width">wrap_content</item>
@@ -131,25 +162,6 @@
<item name="android:background">@null</item>
</style>
- <style name="ButtonStripLeft">
- <item name="android:gravity">center</item>
- <item name="android:layout_width">wrap_content</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:background">@drawable/btn_strip_trans_left</item>
- </style>
- <style name="ButtonStripMiddle">
- <item name="android:gravity">center</item>
- <item name="android:layout_width">wrap_content</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:background">@drawable/btn_strip_trans_middle</item>
- </style>
- <style name="ButtonStripRight">
- <item name="android:gravity">center</item>
- <item name="android:layout_width">wrap_content</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:background">@drawable/btn_strip_trans_right</item>
- </style>
-
<style name="alarm_list_left_column">
<item name="android:layout_width">68dip</item>
<item name="android:layout_height">68dip</item>
@@ -166,8 +178,8 @@
</style>
<style name="no_alarms">
- <item name="android:textSize">@dimen/no_alarms_font_size</item>
- <item name="android:textStyle">bold</item>
+ <item name="android:textSize">@dimen/no_alarm_font_size</item>
+ <item name="android:textColor">@color/white_69p</item>
</style>
<style name="small_light">
@@ -221,7 +233,7 @@
</style>
<style name="alarm_lockscreen_thin">
- <item name="android:textSize">@dimen/small_font_size</item>
+ <item name="android:textSize">@dimen/alarm_info_font_size</item>
<item name="android:fontFamily">sans-serif-thin</item>
</style>
@@ -255,13 +267,10 @@
</style>
<style name="button">
+ <item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
<item name="android:textSize">@dimen/button_font_size</item>
</style>
- <style name="timer_label">
- <item name="android:textSize">@dimen/timer_label_font_size</item>
- </style>
-
<style name="labelEditTextStyle">
<item name="android:textCursorDrawable">@null</item>
<item name="android:inputType">textCapSentences</item>
@@ -277,12 +286,16 @@
<item name="android:fontFamily">sans-serif-thin</item>
</style>
- <style name="city_name">
- <item name="android:textSize">@dimen/city_name_font_size</item>
+ <style name="PrimaryLabelTextAppearance">
+ <item name="android:fontFamily">sans-serif-medium</item>
+ <item name="android:textSize">@dimen/label_text_size</item>
+ <item name="android:textColor">@color/white</item>
</style>
- <style name="city_time">
- <item name="android:textSize">@dimen/city_time_font_size</item>
+ <style name="SecondaryLabelTextAppearance">
+ <item name="android:fontFamily">sans-serif-medium</item>
+ <item name="android:textSize">@dimen/label_text_size</item>
+ <item name="android:textColor">@color/white_69p</item>
</style>
<style name="TextAppearance">
@@ -298,22 +311,12 @@
<!-- Notification content styles -->
<style name="TextAppearance.StatusBar.EventContent">
<item name="android:textSize">@dimen/notification_text_size</item>
- <item name="android:textColor">#999999</item>
+ <item name="android:textColor">@color/black_54p</item>
</style>
<style name="TextAppearance.StatusBar.EventContent.Title">
- <item name="android:textColor">#ffffff</item>
- <item name="android:fontFamily">sans-serif-light</item>
<item name="android:textSize">@dimen/notification_title_text_size</item>
- <item name="android:textStyle">bold</item>
+ <item name="android:textColor">@color/black_87p</item>
</style>
- <style name="TextAppearance.StatusBar.EventContent.Line2">
- <item name="android:textSize">@dimen/notification_subtext_size</item>
- </style>
- <style name="TextAppearance.StatusBar.EventContent.Time">
- <item name="android:textSize">@dimen/notification_subtext_size</item>
- <item name="android:textColor">#999999</item>
- </style>
-
<style name="ToastBarStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">48dip</item>
diff --git a/res/xml/digital_appwidget.xml b/res/xml/digital_appwidget.xml
index c13df26..49d87fd 100644
--- a/res/xml/digital_appwidget.xml
+++ b/res/xml/digital_appwidget.xml
@@ -17,12 +17,12 @@
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="@dimen/min_digital_widget_width"
android:minHeight="@dimen/min_digital_widget_height"
+ android:minResizeWidth="@dimen/min_digital_widget_width"
+ android:minResizeHeight="@dimen/min_digital_widget_height"
android:updatePeriodMillis="0"
android:previewImage="@drawable/appwidget_digital_clock_preview"
android:initialLayout="@layout/digital_appwidget"
android:resizeMode="vertical|horizontal"
- android:minResizeWidth="@dimen/min_digital_widget_resize_width"
- android:minResizeHeight="@dimen/min_digital_widget_resize_height"
android:widgetCategory="keyguard|home_screen"
>
</appwidget-provider>
diff --git a/src/com/android/alarmclock/DigitalWidgetViewsFactory.java b/src/com/android/alarmclock/DigitalWidgetViewsFactory.java
index 274798f..077fdba 100644
--- a/src/com/android/alarmclock/DigitalWidgetViewsFactory.java
+++ b/src/com/android/alarmclock/DigitalWidgetViewsFactory.java
@@ -52,6 +52,8 @@
public RemoteWorldClockAdapter(Context context) {
super(context);
+ mClocksPerRow = context.getResources().getInteger(
+ R.integer.appwidget_world_clocks_per_row);
mFontSize = context.getResources().getDimension(R.dimen.widget_medium_font_size);
mFont24Size = context.getResources().getDimension(R.dimen.widget_24_medium_font_size);
}
diff --git a/src/com/android/deskclock/AlarmAlertWakeLock.java b/src/com/android/deskclock/AlarmAlertWakeLock.java
index 07088dc..9e0eb87 100644
--- a/src/com/android/deskclock/AlarmAlertWakeLock.java
+++ b/src/com/android/deskclock/AlarmAlertWakeLock.java
@@ -28,7 +28,7 @@
public static PowerManager.WakeLock createPartialWakeLock(Context context) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
- return pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Log.LOGTAG);
+ return pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LogUtils.LOGTAG);
}
public static void acquireCpuWakeLock(Context context) {
@@ -46,7 +46,7 @@
}
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
sCpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
- | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, Log.LOGTAG);
+ | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, LogUtils.LOGTAG);
sCpuWakeLock.acquire();
}
diff --git a/src/com/android/deskclock/AlarmClockFragment.java b/src/com/android/deskclock/AlarmClockFragment.java
index 73dd036..d7fdcb2 100644
--- a/src/com/android/deskclock/AlarmClockFragment.java
+++ b/src/com/android/deskclock/AlarmClockFragment.java
@@ -18,7 +18,6 @@
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
-import android.animation.AnimatorInflater;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.app.Activity;
@@ -34,6 +33,7 @@
import android.content.res.Resources;
import android.database.Cursor;
import android.database.DataSetObserver;
+import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.media.Ringtone;
@@ -43,12 +43,13 @@
import android.os.Bundle;
import android.os.Vibrator;
import android.transition.AutoTransition;
+import android.transition.Fade;
import android.transition.Transition;
import android.transition.TransitionManager;
+import android.transition.TransitionSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewTreeObserver;
@@ -61,7 +62,6 @@
import android.widget.CursorAdapter;
import android.widget.FrameLayout;
import android.widget.ImageButton;
-import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Switch;
@@ -92,6 +92,10 @@
private static final int EXPAND_DURATION = 300;
private static final int COLLAPSE_DURATION = 250;
+ private static final int ROTATE_180_DEGREE = 180;
+ private static final float ALARM_ELEVATION = 8f;
+ private static final float TINTED_LEVEL = 0.09f;
+
private static final String KEY_EXPANDED_ID = "expandedId";
private static final String KEY_REPEAT_CHECKED_IDS = "repeatCheckedIds";
private static final String KEY_RINGTONE_TITLE_CACHE = "ringtoneTitleCache";
@@ -100,7 +104,6 @@
private static final String KEY_UNDO_SHOWING = "undoShowing";
private static final String KEY_PREVIOUS_DAY_MAP = "previousDayMap";
private static final String KEY_SELECTED_ALARM = "selectedAlarm";
- private static final String KEY_DELETE_CONFIRMATION = "deleteConfirmation";
private static final DeskClockExtensions sDeskClockExtensions = ExtensionsFactory
.getDeskClockExtensions();
@@ -115,10 +118,10 @@
// can not be found, and toast message will pop up that the alarm has be deleted.
public static final String SCROLL_TO_ALARM_INTENT_EXTRA = "deskclock.scroll.to.alarm";
+ private FrameLayout mMainLayout;
private ListView mAlarmsList;
private AlarmItemAdapter mAdapter;
private View mEmptyView;
- private View mAlarmsView;
private View mFooterView;
private Bundle mRingtoneTitleCache; // Key: ringtone uri, value: ringtone title
@@ -135,17 +138,12 @@
private Alarm mAddedAlarm;
private boolean mUndoShowing;
- private Animator mFadeIn;
- private Animator mFadeOut;
-
private Interpolator mExpandInterpolator;
private Interpolator mCollapseInterpolator;
private Transition mAddRemoveTransition;
private Transition mRepeatTransition;
-
- private int mTimelineViewWidth;
- private int mUndoBarInitialMargin;
+ private Transition mEmptyViewTransition;
public AlarmClockFragment() {
// Basic provider required by Fragment.java
@@ -188,6 +186,12 @@
mRepeatTransition.setDuration(ANIMATION_DURATION / 2);
mRepeatTransition.setInterpolator(new AccelerateDecelerateInterpolator());
+ mEmptyViewTransition = new TransitionSet()
+ .setOrdering(TransitionSet.ORDERING_SEQUENTIAL)
+ .addTransition(new Fade(Fade.OUT))
+ .addTransition(new Fade(Fade.IN))
+ .setDuration(ANIMATION_DURATION);
+
boolean isLandscape = getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
View menuButton = v.findViewById(R.id.menu_button);
@@ -201,44 +205,11 @@
}
mEmptyView = v.findViewById(R.id.alarms_empty_view);
- mEmptyView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- startCreatingAlarm();
- }
- });
+
+ mMainLayout = (FrameLayout) v.findViewById(R.id.main);
mAlarmsList = (ListView) v.findViewById(R.id.alarms_list);
- mFadeIn = AnimatorInflater.loadAnimator(getActivity(), R.animator.fade_in);
- mFadeIn.setDuration(ANIMATION_DURATION);
- mFadeIn.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- mEmptyView.setVisibility(View.VISIBLE);
- }
- });
- mFadeIn.setTarget(mEmptyView);
-
- mFadeOut = AnimatorInflater.loadAnimator(getActivity(), R.animator.fade_out);
- mFadeOut.setDuration(ANIMATION_DURATION);
- mFadeOut.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- mEmptyView.setVisibility(View.VISIBLE);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- mEmptyView.setVisibility(View.GONE);
- }
- });
- mFadeOut.setTarget(mEmptyView);
-
- mAlarmsView = v.findViewById(R.id.alarm_layout);
-
mUndoBar = (ActionableToastBar) v.findViewById(R.id.undo_bar);
- mUndoBarInitialMargin = getActivity().getResources()
- .getDimensionPixelOffset(R.dimen.alarm_undo_bar_horizontal_margin);
mUndoFrame = v.findViewById(R.id.undo_frame);
mUndoFrame.setOnTouchListener(this);
@@ -259,6 +230,10 @@
showUndoBar();
}
+ if ((count == 0 && prevAdapterCount > 0) || /* should fade in */
+ (count > 0 && prevAdapterCount == 0) /* should fade out */) {
+ TransitionManager.beginDelayedTransition(mMainLayout, mEmptyViewTransition);
+ }
mEmptyView.setVisibility(count == 0 ? View.VISIBLE : View.GONE);
// Cache this adapter's count for when the adapter changes.
@@ -292,6 +267,16 @@
@Override
public void onResume() {
super.onResume();
+
+ final DeskClock activity = (DeskClock) getActivity();
+ if (activity.getSelectedTab() == DeskClock.ALARM_TAB_INDEX) {
+ setFabAppearance();
+ setLeftRightButtonAppearance();
+ }
+
+ if (mAdapter != null) {
+ mAdapter.notifyDataSetChanged();
+ }
// Check if another app asked us to create a blank new alarm.
final Intent intent = getActivity().getIntent();
if (intent.hasExtra(ALARM_CREATE_NEW_INTENT_EXTRA)) {
@@ -501,7 +486,7 @@
saveRingtoneUri(data);
break;
default:
- Log.w("Unhandled request code in onActivityResult: " + requestCode);
+ LogUtils.w("Unhandled request code in onActivityResult: " + requestCode);
}
}
}
@@ -513,8 +498,6 @@
private final String[] mLongWeekDayStrings;
private final int mColorLit;
private final int mColorDim;
- private final int mBackgroundColorExpanded;
- private final int mBackgroundColor;
private final Typeface mRobotoNormal;
private final ListView mList;
@@ -547,7 +530,7 @@
Switch onoff;
TextView daysOfWeek;
TextView label;
- ImageView delete;
+ ImageButton delete;
View expandArea;
View summary;
TextView clickableLabel;
@@ -559,7 +542,6 @@
View hairLine;
View arrow;
View collapseExpandArea;
- View footerFiller;
// Other states
Alarm alarm;
@@ -595,8 +577,6 @@
Resources res = mContext.getResources();
mColorLit = res.getColor(R.color.clock_white);
mColorDim = res.getColor(R.color.clock_gray);
- mBackgroundColorExpanded = res.getColor(R.color.alarm_whiteish);
- mBackgroundColor = R.drawable.alarm_background_normal;
mRobotoNormal = Typeface.create("sans-serif", Typeface.NORMAL);
@@ -626,7 +606,7 @@
if (!getCursor().moveToPosition(position)) {
// May happen if the last alarm was deleted and the cursor refreshed while the
// list is updated.
- Log.v("couldn't move cursor to position " + position);
+ LogUtils.v("couldn't move cursor to position " + position);
return null;
}
View v;
@@ -636,13 +616,6 @@
v = convertView;
}
bindView(v, mContext, getCursor());
- ItemHolder holder = (ItemHolder) v.getTag();
-
- // We need the footer for the last element of the array to allow the user to scroll
- // the item beyond the bottom button bar, which obscures the view.
- final int footerVisible = (position < getCount() - 1 || getCount() == 1) ?
- View.GONE : View .VISIBLE;
- holder.footerFiller.setVisibility(footerVisible);
return v;
}
@@ -681,7 +654,7 @@
holder.onoff.setTypeface(mRobotoNormal);
holder.daysOfWeek = (TextView) view.findViewById(R.id.daysOfWeek);
holder.label = (TextView) view.findViewById(R.id.label);
- holder.delete = (ImageView) view.findViewById(R.id.delete);
+ holder.delete = (ImageButton) view.findViewById(R.id.delete);
holder.summary = view.findViewById(R.id.summary);
holder.expandArea = view.findViewById(R.id.expand_area);
holder.hairLine = view.findViewById(R.id.hairline);
@@ -690,14 +663,6 @@
holder.clickableLabel = (TextView) view.findViewById(R.id.edit_label);
holder.repeatDays = (LinearLayout) view.findViewById(R.id.repeat_days);
holder.collapseExpandArea = view.findViewById(R.id.collapse_expand);
- holder.footerFiller = view.findViewById(R.id.alarm_footer_filler);
- holder.footerFiller.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- // Do nothing.
- }
- });
// Build button for each day.
for (int i = 0; i < 7; i++) {
@@ -731,13 +696,13 @@
itemHolder.onoff.setChecked(alarm.enabled);
if (mSelectedAlarms.contains(itemHolder.alarm.id)) {
- itemHolder.alarmItem.setBackgroundColor(mBackgroundColorExpanded);
- setItemAlpha(itemHolder, true);
+ setAlarmItemBackgroundAndElevation(itemHolder.alarmItem, true /* expanded */);
+ setDigitalTimeAlpha(itemHolder, true);
itemHolder.onoff.setEnabled(false);
} else {
itemHolder.onoff.setEnabled(true);
- itemHolder.alarmItem.setBackgroundResource(mBackgroundColor);
- setItemAlpha(itemHolder, itemHolder.onoff.isChecked());
+ setAlarmItemBackgroundAndElevation(itemHolder.alarmItem, false /* expanded */);
+ setDigitalTimeAlpha(itemHolder, itemHolder.onoff.isChecked());
}
itemHolder.clock.setFormat(
(int)mContext.getResources().getDimension(R.dimen.alarm_label_size));
@@ -755,16 +720,18 @@
final CompoundButton.OnCheckedChangeListener onOffListener =
new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton compoundButton,
- boolean checked) {
- if (checked != alarm.enabled) {
- setItemAlpha(itemHolder, checked);
- alarm.enabled = checked;
- asyncUpdateAlarm(alarm, alarm.enabled);
- }
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ if (checked != alarm.enabled) {
+ if (!isAlarmExpanded(alarm)) {
+ // Only toggle this when alarm is collapsed
+ setDigitalTimeAlpha(itemHolder, checked);
}
- };
+ alarm.enabled = checked;
+ asyncUpdateAlarm(alarm, alarm.enabled);
+ }
+ }
+ };
if (mRepeatChecked.contains(alarm.id) || itemHolder.alarm.daysOfWeek.isRepeating()) {
itemHolder.tomorrowLabel.setVisibility(View.GONE);
@@ -786,6 +753,22 @@
itemHolder.delete.setVisibility(expanded ? View.VISIBLE : View.GONE);
itemHolder.summary.setVisibility(expanded? View.GONE : View.VISIBLE);
itemHolder.hairLine.setVisibility(expanded ? View.GONE : View.VISIBLE);
+ itemHolder.arrow.setRotation(expanded ? ROTATE_180_DEGREE : 0);
+
+ // Add listener on the arrow to enable proper talkback functionality.
+ // Avoid setting content description on the entire card.
+ itemHolder.arrow.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (isAlarmExpanded(alarm)) {
+ // Is expanded, make collapse call.
+ collapseAlarm(itemHolder, true);
+ } else {
+ // Is collapsed, make expand call.
+ expandAlarm(itemHolder, true);
+ }
+ }
+ });
// Set the repeat text or leave it blank if it does not repeat.
final String daysOfWeekStr =
@@ -828,6 +811,7 @@
@Override
public void onClick(View v) {
mDeletedAlarm = alarm;
+ mRepeatChecked.remove(alarm.id);
asyncDeleteAlarm(alarm);
}
});
@@ -848,12 +832,30 @@
});
}
+ private void setAlarmItemBackgroundAndElevation(LinearLayout layout, boolean expanded) {
+ if (expanded) {
+ layout.setBackgroundColor(getTintedBackgroundColor());
+ layout.setElevation(ALARM_ELEVATION);
+ } else {
+ layout.setBackgroundResource(R.drawable.alarm_background_normal);
+ layout.setElevation(0);
+ }
+ }
+
+ private int getTintedBackgroundColor() {
+ final int c = Utils.getCurrentHourColor();
+ final int red = Color.red(c) + (int) (TINTED_LEVEL * (255 - Color.red(c)));
+ final int green = Color.green(c) + (int) (TINTED_LEVEL * (255 - Color.green(c)));
+ final int blue = Color.blue(c) + (int) (TINTED_LEVEL * (255 - Color.blue(c)));
+ return Color.rgb(red, green, blue);
+ }
+
private boolean isTomorrow(Alarm alarm) {
final Calendar now = Calendar.getInstance();
final int alarmHour = alarm.hour;
final int currHour = now.get(Calendar.HOUR_OF_DAY);
return alarmHour < currHour ||
- (alarmHour == currHour && alarm.minutes < now.get(Calendar.MINUTE));
+ (alarmHour == currHour && alarm.minutes <= now.get(Calendar.MINUTE));
}
private void bindExpandArea(final ItemHolder itemHolder, final Alarm alarm) {
@@ -861,10 +863,8 @@
if (alarm.label != null && alarm.label.length() > 0) {
itemHolder.clickableLabel.setText(alarm.label);
- itemHolder.clickableLabel.setTextColor(mColorLit);
} else {
itemHolder.clickableLabel.setText(R.string.label);
- itemHolder.clickableLabel.setTextColor(mColorDim);
}
itemHolder.clickableLabel.setOnClickListener(new View.OnClickListener() {
@@ -876,11 +876,9 @@
if (mRepeatChecked.contains(alarm.id) || itemHolder.alarm.daysOfWeek.isRepeating()) {
itemHolder.repeat.setChecked(true);
- itemHolder.repeat.setTextColor(mColorLit);
itemHolder.repeatDays.setVisibility(View.VISIBLE);
} else {
itemHolder.repeat.setChecked(false);
- itemHolder.repeat.setTextColor(mColorDim);
itemHolder.repeatDays.setVisibility(View.GONE);
}
itemHolder.repeat.setOnClickListener(new View.OnClickListener() {
@@ -891,8 +889,6 @@
final boolean checked = ((CheckBox) view).isChecked();
if (checked) {
- itemHolder.repeat.setTextColor(mColorLit);
-
// Show days
itemHolder.repeatDays.setVisibility(View.VISIBLE);
mRepeatChecked.add(alarm.id);
@@ -907,8 +903,6 @@
}
updateDaysOfWeekButtons(itemHolder, alarm.daysOfWeek);
} else {
- itemHolder.repeat.setTextColor(mColorDim);
-
// Hide days
itemHolder.repeatDays.setVisibility(View.GONE);
mRepeatChecked.remove(alarm.id);
@@ -946,7 +940,6 @@
TransitionManager.beginDelayedTransition(mList, mRepeatTransition);
itemHolder.repeat.setChecked(false);
- itemHolder.repeat.setTextColor(mColorDim);
itemHolder.repeatDays.setVisibility(View.GONE);
mRepeatChecked.remove(alarm.id);
@@ -967,10 +960,8 @@
itemHolder.vibrate.setVisibility(View.VISIBLE);
if (!alarm.vibrate) {
itemHolder.vibrate.setChecked(false);
- itemHolder.vibrate.setTextColor(mColorDim);
} else {
itemHolder.vibrate.setChecked(true);
- itemHolder.vibrate.setTextColor(mColorLit);
}
}
@@ -978,11 +969,6 @@
@Override
public void onClick(View v) {
final boolean checked = ((CheckBox) v).isChecked();
- if (checked) {
- itemHolder.vibrate.setTextColor(mColorLit);
- } else {
- itemHolder.vibrate.setTextColor(mColorDim);
- }
alarm.vibrate = checked;
asyncUpdateAlarm(alarm, false);
}
@@ -1006,16 +992,12 @@
});
}
- // Sets the alpha of the item except the on/off switch. This gives a visual effect
- // for enabled/disabled alarm while leaving the on/off switch more visible
- private void setItemAlpha(ItemHolder holder, boolean enabled) {
- float alpha = enabled ? 1f : 0.5f;
+ // Sets the alpha of the digital time display. This gives a visual effect
+ // for enabled/disabled and expanded/collapsed alarm while leaving the
+ // on/off switch more visible
+ private void setDigitalTimeAlpha(ItemHolder holder, boolean enabled) {
+ float alpha = enabled ? 1f : 0.69f;
holder.clock.setAlpha(alpha);
- holder.summary.setAlpha(alpha);
- holder.expandArea.setAlpha(alpha);
- holder.delete.setAlpha(alpha);
- holder.daysOfWeek.setAlpha(alpha);
- holder.tomorrowLabel.setAlpha(alpha);
}
private void updateDaysOfWeekButtons(ItemHolder holder, DaysOfWeek daysOfWeek) {
@@ -1029,30 +1011,6 @@
}
}
- public void toggleSelectState(View v) {
- // long press could be on the parent view or one of its childs, so find the parent view
- v = getTopParent(v);
- if (v != null) {
- long id = ((ItemHolder)v.getTag()).alarm.id;
- if (mSelectedAlarms.contains(id)) {
- mSelectedAlarms.remove(id);
- } else {
- mSelectedAlarms.add(id);
- }
- }
- }
-
- private View getTopParent(View v) {
- while (v != null && v.getId() != R.id.alarm_item) {
- v = (View) v.getParent();
- }
- return v;
- }
-
- public int getSelectedItemsNum() {
- return mSelectedAlarms.size();
- }
-
private void turnOffDayOfWeek(ItemHolder holder, int dayIndex) {
final Button dayButton = holder.dayButtons[dayIndex];
dayButton.setActivated(false);
@@ -1096,17 +1054,21 @@
* @param itemHolder The item holder instance.
*/
private void expandAlarm(final ItemHolder itemHolder, boolean animate) {
- if (mExpandedItemHolder == itemHolder) {
- // Already expanded -> bail.
- return;
- } else if (mExpandedItemHolder != null) {
- // Only allow one alarm to expanded at a time.
+ // Skip animation later if item is already expanded
+ animate &= mExpandedId != itemHolder.alarm.id;
+
+ if (mExpandedItemHolder != null
+ && mExpandedItemHolder != itemHolder
+ && mExpandedId != itemHolder.alarm.id) {
+ // Only allow one alarm to expand at a time.
collapseAlarm(mExpandedItemHolder, animate);
}
+ bindExpandArea(itemHolder, itemHolder.alarm);
+
mExpandedId = itemHolder.alarm.id;
mExpandedItemHolder = itemHolder;
- bindExpandArea(itemHolder, itemHolder.alarm);
+
// Scroll the view to make sure it is fully viewed
mScrollAlarmId = itemHolder.alarm.id;
@@ -1114,13 +1076,17 @@
final int startingHeight = itemHolder.alarmItem.getHeight();
// Set the expand area to visible so we can measure the height to animate to.
- itemHolder.alarmItem.setBackgroundColor(mBackgroundColorExpanded);
+ setAlarmItemBackgroundAndElevation(itemHolder.alarmItem, true /* expanded */);
itemHolder.expandArea.setVisibility(View.VISIBLE);
itemHolder.delete.setVisibility(View.VISIBLE);
+ // Show digital time in full-opaque when expanded, even when alarm is disabled
+ setDigitalTimeAlpha(itemHolder, true /* enabled */);
+
+ itemHolder.arrow.setContentDescription(getString(R.string.collapse_alarm));
if (!animate) {
// Set the "end" layout and don't do the animation.
- itemHolder.arrow.setRotation(180);
+ itemHolder.arrow.setRotation(ROTATE_180_DEGREE);
return;
}
@@ -1176,7 +1142,7 @@
itemHolder.expandArea.getLayoutParams();
expandParams.setMargins(
0, (int) -((1 - value) * distance), 0, collapseHeight);
- itemHolder.arrow.setRotation(180 * value);
+ itemHolder.arrow.setRotation(ROTATE_180_DEGREE * value);
itemHolder.summary.setAlpha(1 - value);
itemHolder.hairLine.setAlpha(1 - value);
@@ -1190,7 +1156,7 @@
// Set it back to wrap content since we'd explicitly set the height.
itemHolder.alarmItem.getLayoutParams().height =
LayoutParams.WRAP_CONTENT;
- itemHolder.arrow.setRotation(180);
+ itemHolder.arrow.setRotation(ROTATE_180_DEGREE);
itemHolder.summary.setVisibility(View.GONE);
itemHolder.hairLine.setVisibility(View.GONE);
itemHolder.delete.setVisibility(View.VISIBLE);
@@ -1227,8 +1193,11 @@
final int startingHeight = itemHolder.alarmItem.getHeight();
// Set the expand area to gone so we can measure the height to animate to.
- itemHolder.alarmItem.setBackgroundResource(mBackgroundColor);
+ setAlarmItemBackgroundAndElevation(itemHolder.alarmItem, false /* expanded */);
itemHolder.expandArea.setVisibility(View.GONE);
+ setDigitalTimeAlpha(itemHolder, itemHolder.onoff.isChecked());
+
+ itemHolder.arrow.setContentDescription(getString(R.string.expand_alarm));
if (!animate) {
// Set the "end" layout and don't do the animation.
@@ -1281,7 +1250,7 @@
itemHolder.expandArea.getLayoutParams();
expandParams.setMargins(
0, (int) (value * distance), 0, mCollapseExpandHeight);
- itemHolder.arrow.setRotation(180 * (1 - value));
+ itemHolder.arrow.setRotation(ROTATE_180_DEGREE * (1 - value));
itemHolder.delete.setAlpha(value);
itemHolder.summary.setAlpha(value);
itemHolder.hairLine.setAlpha(value);
@@ -1473,14 +1442,30 @@
}
@Override
- public void respondClick(View view){
+ public void onFabClick(View view){
hideUndoBar(true, null);
startCreatingAlarm();
}
@Override
- public void setFabAppearance(ImageButton fab) {
- fab.setVisibility(View.VISIBLE);
- fab.setImageResource(R.drawable.ic_fab_plus);
+ public void setFabAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mFab == null || activity.getSelectedTab() != DeskClock.ALARM_TAB_INDEX) {
+ return;
+ }
+ mFab.setVisibility(View.VISIBLE);
+ mFab.setImageResource(R.drawable.ic_fab_plus);
+ mFab.setContentDescription(getString(R.string.button_alarms));
+ }
+
+ @Override
+ public void setLeftRightButtonAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mLeftButton == null || mRightButton == null ||
+ activity.getSelectedTab() != DeskClock.ALARM_TAB_INDEX) {
+ return;
+ }
+ mLeftButton.setVisibility(View.INVISIBLE);
+ mRightButton.setVisibility(View.INVISIBLE);
}
}
diff --git a/src/com/android/deskclock/AlarmInitReceiver.java b/src/com/android/deskclock/AlarmInitReceiver.java
index 421c474..23a0ec9 100644
--- a/src/com/android/deskclock/AlarmInitReceiver.java
+++ b/src/com/android/deskclock/AlarmInitReceiver.java
@@ -17,7 +17,6 @@
package com.android.deskclock;
import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -25,9 +24,7 @@
import android.preference.PreferenceManager;
import com.android.deskclock.alarms.AlarmStateManager;
-import com.android.deskclock.provider.Alarm;
-import com.android.deskclock.provider.AlarmInstance;
import com.android.deskclock.timer.TimerObj;
public class AlarmInitReceiver extends BroadcastReceiver {
@@ -42,7 +39,7 @@
@Override
public void onReceive(final Context context, Intent intent) {
final String action = intent.getAction();
- Log.v("AlarmInitReceiver " + action);
+ LogUtils.v("AlarmInitReceiver " + action);
final PendingResult result = goAsync();
final WakeLock wl = AlarmAlertWakeLock.createPartialWakeLock(context);
@@ -50,7 +47,7 @@
// We need to increment the global id out of the async task to prevent
// race conditions
- AlarmStateManager.updateGloablIntentId(context);
+ AlarmStateManager.updateGlobalIntentId(context);
AsyncHandler.post(new Runnable() {
@Override public void run() {
// Remove the snooze alarm after a boot.
@@ -58,13 +55,13 @@
// Clear stopwatch and timers data
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
- Log.v("AlarmInitReceiver - Reset timers and clear stopwatch data");
+ LogUtils.v("AlarmInitReceiver - Reset timers and clear stopwatch data");
TimerObj.resetTimersInSharedPrefs(prefs);
Utils.clearSwSharedPref(prefs);
if (!prefs.getBoolean(PREF_VOLUME_DEF_DONE, false)) {
// Fix the default
- Log.v("AlarmInitReceiver - resetting volume button default");
+ LogUtils.v("AlarmInitReceiver - resetting volume button default");
switchVolumeButtonDefault(prefs);
}
}
@@ -73,7 +70,7 @@
AlarmStateManager.fixAlarmInstances(context);
result.finish();
- Log.v("AlarmInitReceiver finished");
+ LogUtils.v("AlarmInitReceiver finished");
wl.release();
}
});
diff --git a/src/com/android/deskclock/AlarmUtils.java b/src/com/android/deskclock/AlarmUtils.java
index e767e38..da98f32 100644
--- a/src/com/android/deskclock/AlarmUtils.java
+++ b/src/com/android/deskclock/AlarmUtils.java
@@ -58,7 +58,6 @@
*/
public static void showTimeEditDialog(Fragment fragment, final Alarm alarm) {
final FragmentManager manager = fragment.getFragmentManager();
- manager.executePendingTransactions();
final FragmentTransaction ft = manager.beginTransaction();
final Fragment prev = manager.findFragmentByTag(FRAG_TAG_TIME_PICKER);
if (prev != null) {
diff --git a/src/com/android/deskclock/AnimatorUtil.java b/src/com/android/deskclock/AnimatorUtil.java
deleted file mode 100644
index 038c425..0000000
--- a/src/com/android/deskclock/AnimatorUtil.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2014 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;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
-import android.view.View;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.Interpolator;
-
-/**
- * Gets animators on view.
- */
-public class AnimatorUtil {
-
- public static final long ANIM_DURATION_SHORT = 266; // 8/30 frames long
-
- public static final float SCALE_ZERO = 0.0f;
- public static final float SCALE_FULL = 1.0f;
-
- private static final Interpolator ACCELERATE_DECELERATE_INTERPOLATOR =
- new AccelerateDecelerateInterpolator();
-
- /**
- * Switch to hardware layer type when animation starts.
- * And set it back when animation ends.
- */
- private static void setLayerTypeListener(final View view, ObjectAnimator animator) {
- animator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animation) {
- view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- view.setLayerType(View.LAYER_TYPE_NONE, null);
- }
- });
- }
-
- public static ObjectAnimator getScaleXAnimator(View view,
- float start, float end, long duration) {
- final ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.SCALE_X, start, end);
- animator.setDuration(duration);
- animator.setInterpolator(ACCELERATE_DECELERATE_INTERPOLATOR);
- setLayerTypeListener(view, animator);
- return animator;
- }
-
- public static ObjectAnimator getScaleYAnimator(View view,
- float start, float end, long duration) {
- final ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.SCALE_Y, start, end);
- animator.setDuration(duration);
- animator.setInterpolator(ACCELERATE_DECELERATE_INTERPOLATOR);
- setLayerTypeListener(view, animator);
- return animator;
- }
-}
diff --git a/src/com/android/deskclock/AnimatorUtils.java b/src/com/android/deskclock/AnimatorUtils.java
new file mode 100644
index 0000000..fe90a7d
--- /dev/null
+++ b/src/com/android/deskclock/AnimatorUtils.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2014 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;
+
+import android.animation.ArgbEvaluator;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.animation.TypeEvaluator;
+import android.animation.ValueAnimator;
+import android.util.Property;
+import android.view.View;
+import android.view.animation.Interpolator;
+import android.widget.ImageView;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class AnimatorUtils {
+
+ public static final long ANIM_DURATION_SHORT = 266L; // 8/30 frames long
+
+ public static final Interpolator DECELERATE_ACCELERATE_INTERPOLATOR = new Interpolator() {
+ @Override
+ public float getInterpolation(float x) {
+ return 0.5f + 4.0f * (x - 0.5f) * (x - 0.5f) * (x - 0.5f);
+ }
+ };
+
+ public static final Property<View, Integer> BACKGROUND_ALPHA =
+ new Property<View, Integer>(Integer.class, "background.alpha") {
+ @Override
+ public Integer get(View view) {
+ return view.getBackground().getAlpha();
+ }
+
+ @Override
+ public void set(View view, Integer value) {
+ view.getBackground().setAlpha(value);
+ }
+ };
+
+ public static final Property<ImageView, Integer> DRAWABLE_ALPHA =
+ new Property<ImageView, Integer>(Integer.class, "drawable.alpha") {
+ @Override
+ public Integer get(ImageView view) {
+ return view.getDrawable().getAlpha();
+ }
+
+ @Override
+ public void set(ImageView view, Integer value) {
+ view.getDrawable().setAlpha(value);
+ }
+ };
+
+ public static final Property<ImageView, Integer> DRAWABLE_TINT =
+ new Property<ImageView, Integer>(Integer.class, "drawable.tint") {
+ @Override
+ public Integer get(ImageView view) {
+ return null;
+ }
+
+ @Override
+ public void set(ImageView view, Integer value) {
+ view.getDrawable().setTint(value);
+ }
+ };
+
+ public static final TypeEvaluator ARGB_EVALUATOR = new ArgbEvaluator();
+
+ public static void start(ValueAnimator... animators) {
+ for (ValueAnimator animator : animators) {
+ final float fraction = animator.getAnimatedFraction();
+ if (fraction < 1.0f) {
+ animator.start();
+ }
+ }
+ }
+
+ public static void reverse(ValueAnimator... animators) {
+ for (ValueAnimator animator : animators) {
+ final float fraction = animator.getAnimatedFraction();
+ if (fraction > 0.0f) {
+ animator.reverse();
+ }
+ }
+ }
+
+ public static void cancel(ValueAnimator... animators) {
+ for (ValueAnimator animator : animators) {
+ animator.cancel();
+ }
+ }
+
+ public static ValueAnimator getScaleAnimator(View view, float... values) {
+ return ObjectAnimator.ofPropertyValuesHolder(view,
+ PropertyValuesHolder.ofFloat(View.SCALE_X, values),
+ PropertyValuesHolder.ofFloat(View.SCALE_Y, values));
+ }
+}
diff --git a/src/com/android/deskclock/CircleButtonsLayout.java b/src/com/android/deskclock/CircleButtonsLayout.java
index 6734937..08cc752 100644
--- a/src/com/android/deskclock/CircleButtonsLayout.java
+++ b/src/com/android/deskclock/CircleButtonsLayout.java
@@ -4,6 +4,7 @@
import android.util.AttributeSet;
import android.widget.FrameLayout;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.TextView;
/**
@@ -15,18 +16,13 @@
public class CircleButtonsLayout extends FrameLayout {
private Context mContext;
private int mCircleTimerViewId;
- private int mLeftButtonId;
- private int mRightButtonId;
- private int mStopButtonId;
+ private int mResetAddButtonId;
private int mLabelId;
private int mLabelTextId;
- private float mLeftButtonPadding;
- private float mRightButtonPadding;
private float mStrokeSize;
private float mDiamOffset;
private CircleTimerView mCtv;
- private ImageButton mLeft, mRight;
- private TextView mStop;
+ private ImageButton mResetAddButton;
private FrameLayout mLabel;
private TextView mLabelText;
@@ -41,17 +37,11 @@
mContext = context;
}
- public void setCircleTimerViewIds(int circleTimerViewId, int leftButtonId, int rightButtonId,
- int stopButtonId, int leftButtonPaddingDimenId, int rightButtonPaddingDimenId,
- int labelId, int labelTextId) {
+ public void setCircleTimerViewIds(int circleTimerViewId, int stopButtonId, int labelId, int labelTextId) {
mCircleTimerViewId = circleTimerViewId;
- mLeftButtonId = leftButtonId;
- mRightButtonId = rightButtonId;
- mStopButtonId = stopButtonId;
+ mResetAddButtonId = stopButtonId;
mLabelId = labelId;
mLabelTextId = labelTextId;
- mLeftButtonPadding = mContext.getResources().getDimension(leftButtonPaddingDimenId);
- mRightButtonPadding = mContext.getResources().getDimension(rightButtonPaddingDimenId);
float dotStrokeSize = mContext.getResources().getDimension(R.dimen.circletimer_dot_size);
float markerStrokeSize =
@@ -76,9 +66,7 @@
if (mCtv == null) {
return;
}
- mLeft = (ImageButton) findViewById(mLeftButtonId);
- mRight = (ImageButton) findViewById(mRightButtonId);
- mStop = (TextView) findViewById(mStopButtonId);
+ mResetAddButton = (ImageButton) findViewById(mResetAddButtonId);
mLabel = (FrameLayout) findViewById(mLabelId);
mLabelText = (TextView) findViewById(mLabelTextId);
}
@@ -88,10 +76,13 @@
int minBound = Math.min(frameWidth, frameHeight);
int circleDiam = (int) (minBound - mDiamOffset);
- MarginLayoutParams stopParams = (MarginLayoutParams) mStop.getLayoutParams();
- stopParams.bottomMargin = circleDiam/6;
- if (minBound == frameWidth) {
- stopParams.bottomMargin += (frameHeight-frameWidth)/2;
+ if (mResetAddButton != null) {
+ final MarginLayoutParams resetAddParams = (MarginLayoutParams) mResetAddButton
+ .getLayoutParams();
+ resetAddParams.bottomMargin = circleDiam / 6;
+ if (minBound == frameWidth) {
+ resetAddParams.bottomMargin += (frameHeight - frameWidth) / 2;
+ }
}
if (mLabel != null) {
@@ -161,17 +152,5 @@
mLabelText.setMaxWidth((int) w);
}
-
- int sideMarginOffset = (int) ((frameWidth - circleDiam - mStrokeSize) / 2)
- - (int) mContext.getResources().getDimension(R.dimen.timer_button_extra_offset);
- int leftMarginOffset = Math.max(0, sideMarginOffset - (int) mLeftButtonPadding);
- int rightMarginOffset = Math.max(0, sideMarginOffset - (int) mRightButtonPadding);
- int bottomMarginOffset = (frameHeight - minBound) / 2;
- MarginLayoutParams leftParams = (MarginLayoutParams) mLeft.getLayoutParams();
- leftParams.leftMargin = leftMarginOffset;
- leftParams.bottomMargin = bottomMarginOffset;
- MarginLayoutParams rightParams = (MarginLayoutParams) mRight.getLayoutParams();
- rightParams.rightMargin = rightMarginOffset;
- rightParams.bottomMargin = bottomMarginOffset;
}
}
diff --git a/src/com/android/deskclock/ClockFragment.java b/src/com/android/deskclock/ClockFragment.java
index 2ab9967..588ca3e 100644
--- a/src/com/android/deskclock/ClockFragment.java
+++ b/src/com/android/deskclock/ClockFragment.java
@@ -60,14 +60,14 @@
private String mClockStyle;
private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
- @Override
+ @Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
boolean changed = action.equals(Intent.ACTION_TIME_CHANGED)
|| action.equals(Intent.ACTION_TIMEZONE_CHANGED)
|| action.equals(Intent.ACTION_LOCALE_CHANGED);
if (changed) {
- Utils.updateDate(mDateFormat, mDateFormatForAccessibility,mClockFrame);
+ Utils.updateDate(mDateFormat, mDateFormatForAccessibility, mClockFrame);
if (mAdapter != null) {
// *CHANGED may modify the need for showing the Home City
if (mAdapter.hasHomeCity() != mAdapter.needHomeCity()) {
@@ -80,9 +80,10 @@
if (action.equals(Intent.ACTION_LOCALE_CHANGED)) {
if (mDigitalClock != null) {
Utils.setTimeFormat(
- (TextClock)(mDigitalClock.findViewById(R.id.digital_clock)),
- (int)context.getResources().
- getDimension(R.dimen.main_ampm_font_size));
+ (TextClock) (mDigitalClock.findViewById(R.id.digital_clock)),
+ (int) context.getResources().
+ getDimension(R.dimen.main_ampm_font_size)
+ );
}
mAdapter.loadCitiesDb(context);
mAdapter.notifyDataSetChanged();
@@ -116,19 +117,21 @@
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle icicle) {
+ Bundle icicle) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.clock_fragment, container, false);
if (icicle != null) {
mButtonsHidden = icicle.getBoolean(BUTTONS_HIDDEN_KEY, false);
}
- mList = (ListView)v.findViewById(R.id.cities);
+ mList = (ListView) v.findViewById(R.id.cities);
mList.setDivider(null);
OnTouchListener longPressNightMode = new OnTouchListener() {
private float mMaxMovementAllowed = -1;
private int mLongPressTimeout = -1;
- private float mLastTouchX, mLastTouchY;
+ private float mLastTouchX
+ ,
+ mLastTouchY;
@Override
public boolean onTouch(View v, MotionEvent event) {
@@ -150,8 +153,8 @@
mLastTouchY = event.getY();
return true;
case (MotionEvent.ACTION_MOVE):
- float xDiff = Math.abs(event.getX()-mLastTouchX);
- float yDiff = Math.abs(event.getY()-mLastTouchY);
+ float xDiff = Math.abs(event.getX() - mLastTouchX);
+ float yDiff = Math.abs(event.getY() - mLastTouchY);
if (xDiff >= mMaxMovementAllowed || yDiff >= mMaxMovementAllowed) {
mHandler.removeCallbacksAndMessages(null);
}
@@ -188,8 +191,8 @@
mDigitalClock = mClockFrame.findViewById(R.id.digital_clock);
mAnalogClock = mClockFrame.findViewById(R.id.analog_clock);
- Utils.setTimeFormat((TextClock)(mDigitalClock.findViewById(R.id.digital_clock)),
- (int)getResources().getDimension(R.dimen.main_ampm_font_size));
+ Utils.setTimeFormat((TextClock) (mDigitalClock.findViewById(R.id.digital_clock)),
+ (int) getResources().getDimension(R.dimen.main_ampm_font_size));
View footerView = inflater.inflate(R.layout.blank_footer_view, mList, false);
mList.addFooterView(footerView, null, false);
mAdapter = new WorldClockAdapter(getActivity());
@@ -204,13 +207,19 @@
}
@Override
- public void onResume () {
+ public void onResume() {
super.onResume();
+
+ final DeskClock activity = (DeskClock) getActivity();
+ if (activity.getSelectedTab() == DeskClock.CLOCK_TAB_INDEX) {
+ setFabAppearance();
+ setLeftRightButtonAppearance();
+ }
+
mPrefs.registerOnSharedPreferenceChangeListener(this);
mDateFormat = getString(R.string.abbrev_wday_month_day_no_year);
mDateFormatForAccessibility = getString(R.string.full_wday_month_day_no_year);
- Activity activity = getActivity();
Utils.setQuarterHourUpdater(mHandler, mQuarterHourUpdater);
// Besides monitoring when quarter-hour changes, monitor other actions that
// effect clock time
@@ -240,7 +249,7 @@
}
mAdapter.notifyDataSetChanged();
- Utils.updateDate(mDateFormat, mDateFormatForAccessibility,mClockFrame);
+ Utils.updateDate(mDateFormat, mDateFormatForAccessibility, mClockFrame);
Utils.refreshAlarm(activity, mClockFrame);
}
@@ -254,7 +263,7 @@
}
@Override
- public void onSaveInstanceState (Bundle outState) {
+ public void onSaveInstanceState(Bundle outState) {
outState.putBoolean(BUTTONS_HIDDEN_KEY, mButtonsHidden);
super.onSaveInstanceState(outState);
}
@@ -266,15 +275,32 @@
mAdapter.notifyDataSetChanged();
}
}
+
@Override
- public void respondClick(View view){
+ public void onFabClick(View view) {
final Activity activity = getActivity();
startActivity(new Intent(activity, CitiesActivity.class));
}
@Override
- public void setFabAppearance(ImageButton fab) {
- fab.setVisibility(View.VISIBLE);
- fab.setImageResource(R.drawable.ic_globe);
+ public void setFabAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mFab == null || activity.getSelectedTab() != DeskClock.CLOCK_TAB_INDEX) {
+ return;
+ }
+ mFab.setVisibility(View.VISIBLE);
+ mFab.setImageResource(R.drawable.ic_globe);
+ mFab.setContentDescription(getString(R.string.button_cities));
}
- }
+
+ @Override
+ public void setLeftRightButtonAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mLeftButton == null || mRightButton == null ||
+ activity.getSelectedTab() != DeskClock.CLOCK_TAB_INDEX) {
+ return;
+ }
+ mLeftButton.setVisibility(View.INVISIBLE);
+ mRightButton.setVisibility(View.INVISIBLE);
+ }
+}
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java
index 78cdf4d..0dd9c5c 100644
--- a/src/com/android/deskclock/DeskClock.java
+++ b/src/com/android/deskclock/DeskClock.java
@@ -30,6 +30,7 @@
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.graphics.Outline;
+import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
@@ -75,11 +76,9 @@
// Check whether to change background every minute
private static final long BACKGROUND_COLOR_CHECK_DELAY_MILLIS = DateUtils.MINUTE_IN_MILLIS;
private static final int BACKGROUND_COLOR_INITIAL_ANIMATION_DURATION_MILLIS = 3000;
- // The depth of fab, use it to create shadow
- private static final float FAB_DEPTH = 20f;
private static final int UNKNOWN_COLOR_ID = 0;
- private boolean mIsFirstLaunch;
+ private boolean mIsFirstLaunch = true;
private ActionBar mActionBar;
private Tab mAlarmTab;
private Tab mClockTab;
@@ -89,7 +88,9 @@
private ViewPager mViewPager;
private TabsAdapter mTabsAdapter;
private Handler mHander;
- public ImageButton mFab;
+ private ImageButton mFab;
+ private ImageButton mLeftButton;
+ private ImageButton mRightButton;
private int mSelectedTab;
private int mLastHourColor = UNKNOWN_COLOR_ID;
private final Runnable mBackgroundColorChanger = new Runnable() {
@@ -159,7 +160,8 @@
setContentView(R.layout.desk_clock);
mFab = (ImageButton) findViewById(R.id.fab);
mFab.setOutlineProvider(OVAL_OUTLINE_PROVIDER);
- mFab.setTranslationZ(FAB_DEPTH);
+ mLeftButton = (ImageButton) findViewById(R.id.left_button);
+ mRightButton = (ImageButton) findViewById(R.id.right_button);
if (mTabsAdapter == null) {
mViewPager = (ViewPager) findViewById(R.id.desk_clock_pager);
// Keep all four tabs to minimize jank.
@@ -171,15 +173,29 @@
mFab.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- DeskClockFragment fragment = (DeskClockFragment) mTabsAdapter.getItem(
- getRtlPosition(mSelectedTab));
- fragment.respondClick(view);
+ getSelectedFragment().onFabClick(view);
+ }
+ });
+ mLeftButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ getSelectedFragment().onLeftButtonClick(view);
+ }
+ });
+ mRightButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ getSelectedFragment().onRightButtonClick(view);
}
});
mActionBar.setSelectedNavigationItem(mSelectedTab);
}
+ private DeskClockFragment getSelectedFragment() {
+ return (DeskClockFragment) mTabsAdapter.getItem(getRtlPosition(mSelectedTab));
+ }
+
private void createTabs(int selectedIndex) {
mActionBar = getActionBar();
@@ -188,22 +204,22 @@
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mAlarmTab = mActionBar.newTab();
- mAlarmTab.setIcon(R.drawable.alarm_tab);
+ mAlarmTab.setIcon(R.drawable.ic_alarm_animation);
mAlarmTab.setContentDescription(R.string.menu_alarm);
mTabsAdapter.addTab(mAlarmTab, AlarmClockFragment.class, ALARM_TAB_INDEX);
mClockTab = mActionBar.newTab();
- mClockTab.setIcon(R.drawable.clock_tab);
+ mClockTab.setIcon(R.drawable.ic_clock_animation);
mClockTab.setContentDescription(R.string.menu_clock);
mTabsAdapter.addTab(mClockTab, ClockFragment.class, CLOCK_TAB_INDEX);
mTimerTab = mActionBar.newTab();
- mTimerTab.setIcon(R.drawable.timer_tab);
+ mTimerTab.setIcon(R.drawable.ic_timer_animation);
mTimerTab.setContentDescription(R.string.menu_timer);
mTabsAdapter.addTab(mTimerTab, TimerFragment.class, TIMER_TAB_INDEX);
mStopwatchTab = mActionBar.newTab();
- mStopwatchTab.setIcon(R.drawable.stopwatch_tab);
+ mStopwatchTab.setIcon(R.drawable.ic_stopwatch_animation);
mStopwatchTab.setContentDescription(R.string.menu_stopwatch);
mTabsAdapter.addTab(mStopwatchTab, StopwatchFragment.class, STOPWATCH_TAB_INDEX);
@@ -215,9 +231,12 @@
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ setVolumeControlStream(AudioManager.STREAM_ALARM);
+ mIsFirstLaunch = (icicle == null);
getWindow().setBackgroundDrawable(null);
+ mIsFirstLaunch = true;
mSelectedTab = CLOCK_TAB_INDEX;
if (icicle != null) {
mSelectedTab = icicle.getInt(KEY_SELECTED_TAB, CLOCK_TAB_INDEX);
@@ -411,7 +430,6 @@
/**
* Adapter for wrapping together the ActionBar's tab with the ViewPager
*/
-
private class TabsAdapter extends FragmentPagerAdapter
implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
@@ -457,10 +475,12 @@
if (fragment == null) {
TabInfo info = mTabs.get(getRtlPosition(position));
fragment = Fragment.instantiate(mContext, info.clss.getName(), info.args);
+ if (fragment instanceof TimerFragment) {
+ ((TimerFragment) fragment).setFabAppearance();
+ ((TimerFragment) fragment).setLeftRightButtonAppearance();
+ }
}
-
return fragment;
-
}
/**
@@ -515,24 +535,30 @@
}
@Override
- public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
+ public void onTabReselected(Tab tab, FragmentTransaction arg1) {
// Do nothing
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
- TabInfo info = (TabInfo) tab.getTag();
- int position = info.getPosition();
+ final TabInfo info = (TabInfo) tab.getTag();
+ final int position = info.getPosition();
+ final int rtlSafePosition = getRtlPosition(position);
mSelectedTab = position;
- if (mIsFirstLaunch && getRtlPosition(position) == CLOCK_TAB_INDEX) {
+
+ if (mIsFirstLaunch && isClockTab(rtlSafePosition)) {
+ mLeftButton.setVisibility(View.INVISIBLE);
+ mRightButton.setVisibility(View.INVISIBLE);
mFab.setVisibility(View.VISIBLE);
mFab.setImageResource(R.drawable.ic_globe);
+ mFab.setContentDescription(getString(R.string.button_cities));
mIsFirstLaunch = false;
} else {
- DeskClockFragment f = (DeskClockFragment) getItem(getRtlPosition(position));
- f.setFabAppearance(mFab);
+ DeskClockFragment f = (DeskClockFragment) getItem(rtlSafePosition);
+ f.setFabAppearance();
+ f.setLeftRightButtonAppearance();
}
- mPager.setCurrentItem(getRtlPosition(position));
+ mPager.setCurrentItem(rtlSafePosition);
}
@Override
@@ -540,6 +566,11 @@
// Do nothing
}
+ private boolean isClockTab(int rtlSafePosition) {
+ final int clockTabIndex = isRtl() ? RTL_CLOCK_TAB_INDEX : CLOCK_TAB_INDEX;
+ return rtlSafePosition == clockTabIndex;
+ }
+
public void notifySelectedPage(int page) {
notifyPageChanged(page);
}
@@ -686,4 +717,16 @@
}
return position;
}
+
+ public ImageButton getFab() {
+ return mFab;
+ }
+
+ public ImageButton getLeftButton() {
+ return mLeftButton;
+ }
+
+ public ImageButton getRightButton() {
+ return mRightButton;
+ }
}
diff --git a/src/com/android/deskclock/DeskClockFragment.java b/src/com/android/deskclock/DeskClockFragment.java
index fe163e3..358b649 100644
--- a/src/com/android/deskclock/DeskClockFragment.java
+++ b/src/com/android/deskclock/DeskClockFragment.java
@@ -16,6 +16,7 @@
package com.android.deskclock;
+import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.widget.PopupMenuCompat;
@@ -26,18 +27,45 @@
public class DeskClockFragment extends Fragment {
+ protected ImageButton mFab;
+ protected ImageButton mLeftButton;
+ protected ImageButton mRightButton;
+
public void onPageChanged(int page) {
// Do nothing here , only in derived classes
}
- public void respondClick(View view){
+ public void onFabClick(View view){
// Do nothing here , only in derived classes
}
- public void setFabAppearance(ImageButton fab) {
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ final Activity activity = getActivity();
+ if (activity instanceof DeskClock) {
+ final DeskClock deskClockActivity = (DeskClock) activity;
+ mFab = deskClockActivity.getFab();
+ mLeftButton = deskClockActivity.getLeftButton();
+ mRightButton = deskClockActivity.getRightButton();
+ }
+ }
+
+ public void setFabAppearance() {
// Do nothing here , only in derived classes
}
+ public void setLeftRightButtonAppearance() {
+ // Do nothing here , only in derived classes
+ }
+
+ public void onLeftButtonClick(View view) {
+ // Do nothing here , only in derived classes
+ }
+
+ public void onRightButtonClick(View view) {
+ // Do nothing here , only in derived classes
+ }
/**
* Installs click and touch listeners on a fake overflow menu button.
*
diff --git a/src/com/android/deskclock/HandleApiCalls.java b/src/com/android/deskclock/HandleApiCalls.java
index 72893cc..3bd5a7b 100644
--- a/src/com/android/deskclock/HandleApiCalls.java
+++ b/src/com/android/deskclock/HandleApiCalls.java
@@ -30,7 +30,7 @@
import com.android.deskclock.provider.Alarm;
import com.android.deskclock.provider.AlarmInstance;
import com.android.deskclock.provider.DaysOfWeek;
-import com.android.deskclock.timer.TimerFragment;
+import com.android.deskclock.timer.TimerFullScreenFragment;
import com.android.deskclock.timer.TimerObj;
import com.android.deskclock.timer.Timers;
@@ -98,6 +98,7 @@
createAlarm.putExtra(DeskClock.SELECT_TAB_INTENT_EXTRA, DeskClock.ALARM_TAB_INDEX);
startActivity(createAlarm);
finish();
+ LogUtils.i("HandleApiCalls no/invalid time; opening UI");
return;
}
@@ -120,6 +121,7 @@
// Delete all old instances and create a new one with updated values
AlarmStateManager.deleteAllInstances(this, alarm.id);
setupInstance(alarm.createInstanceAfter(Calendar.getInstance()), skipUi);
+ LogUtils.i("HandleApiCalls deleted old, created new alarm: %s", alarm);
finish();
return;
}
@@ -147,12 +149,14 @@
alarm = Alarm.addAlarm(cr, alarm);
setupInstance(alarm.createInstanceAfter(Calendar.getInstance()), skipUi);
+ LogUtils.i("HandleApiCalls set up alarm: %s", alarm);
finish();
}
private void handleShowAlarms() {
startActivity(new Intent(this, DeskClock.class)
.putExtra(DeskClock.SELECT_TAB_INTENT_EXTRA, DeskClock.ALARM_TAB_INDEX));
+ LogUtils.i("HandleApiCalls show alarms");
}
private void handleSetTimer(Intent intent) {
@@ -161,13 +165,14 @@
if (!intent.hasExtra(EXTRA_LENGTH)) {
startActivity(new Intent(this, DeskClock.class)
.putExtra(DeskClock.SELECT_TAB_INTENT_EXTRA, DeskClock.TIMER_TAB_INDEX)
- .putExtra(TimerFragment.GOTO_SETUP_VIEW, true));
+ .putExtra(TimerFullScreenFragment.GOTO_SETUP_VIEW, true));
+ LogUtils.i("HandleApiCalls showing timer setup");
return;
}
final long length = 1000l * intent.getIntExtra(EXTRA_LENGTH, 0);
if (length < TIMER_MIN_LENGTH || length > TIMER_MAX_LENGTH) {
- Log.i("Invalid timer length requested: " + length);
+ LogUtils.i("Invalid timer length requested: " + length);
return;
}
String label = getMessageFromIntent(intent);
@@ -187,7 +192,7 @@
boolean skipUi = intent.getBooleanExtra(EXTRA_SKIP_UI, false);
if (timer == null) {
// Use a new timer
- timer = new TimerObj(length, label);
+ timer = new TimerObj(length, label, this /* context */);
// Timers set without presenting UI to the user will be deleted after use
timer.mDeleteAfterUse = skipUi;
}
@@ -204,8 +209,10 @@
Utils.showInUseNotifications(this);
} else {
startActivity(new Intent(this, DeskClock.class)
- .putExtra(DeskClock.SELECT_TAB_INTENT_EXTRA, DeskClock.TIMER_TAB_INDEX));
+ .putExtra(DeskClock.SELECT_TAB_INTENT_EXTRA, DeskClock.TIMER_TAB_INDEX)
+ .putExtra(Timers.FIRST_LAUNCH_FROM_API_CALL, true));
}
+ LogUtils.i("HandleApiCalls timer created: %s", timer);
}
private void setupInstance(AlarmInstance instance, boolean skipUi) {
diff --git a/src/com/android/deskclock/LabelDialogFragment.java b/src/com/android/deskclock/LabelDialogFragment.java
index ae8d45b..9d61eb4 100644
--- a/src/com/android/deskclock/LabelDialogFragment.java
+++ b/src/com/android/deskclock/LabelDialogFragment.java
@@ -147,7 +147,7 @@
} else if (timer != null) {
set(timer, tag, label);
} else {
- Log.e("No alarm or timer available.");
+ LogUtils.e("No alarm or timer available.");
}
}
@@ -157,7 +157,7 @@
if (activity instanceof AlarmLabelDialogHandler) {
((DeskClock) getActivity()).onDialogLabelSet(alarm, label, tag);
} else {
- Log.e("Error! Activities that use LabelDialogFragment must implement "
+ LogUtils.e("Error! Activities that use LabelDialogFragment must implement "
+ "AlarmLabelDialogHandler");
}
dismiss();
@@ -169,7 +169,7 @@
if (activity instanceof TimerLabelDialogHandler){
((DeskClock) getActivity()).onDialogLabelSet(timer, label, tag);
} else {
- Log.e("Error! Activities that use LabelDialogFragment must implement "
+ LogUtils.e("Error! Activities that use LabelDialogFragment must implement "
+ "AlarmLabelDialogHandler or TimerLabelDialogHandler");
}
dismiss();
diff --git a/src/com/android/deskclock/Log.java b/src/com/android/deskclock/Log.java
deleted file mode 100644
index 331f14b..0000000
--- a/src/com/android/deskclock/Log.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 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-level logging flag
- */
-
-package com.android.deskclock;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class Log {
- public final static String LOGTAG = "AlarmClock";
-
- /** This must be false for production. If true, turns on logging,
- test code, etc. */
- public static final boolean LOGV = false;
-
- public static void d(String logMe) {
- android.util.Log.d(LOGTAG, logMe);
- }
-
- public static void v(String logMe) {
- android.util.Log.v(LOGTAG, /* SystemClock.uptimeMillis() + " " + */ logMe);
- }
-
- public static void i(String logMe) {
- android.util.Log.i(LOGTAG, logMe);
- }
-
- public static void e(String logMe) {
- android.util.Log.e(LOGTAG, logMe);
- }
-
- public static void e(String logMe, Exception ex) {
- android.util.Log.e(LOGTAG, logMe, ex);
- }
-
- public static void w(String logMe) {
- android.util.Log.w(LOGTAG, logMe);
- }
-
- public static void wtf(String logMe) {
- android.util.Log.wtf(LOGTAG, logMe);
- }
-
- public static String formatTime(long millis) {
- return new SimpleDateFormat("HH:mm:ss.SSS/E").format(new Date(millis));
- }
-}
diff --git a/src/com/android/deskclock/LogUtils.java b/src/com/android/deskclock/LogUtils.java
new file mode 100644
index 0000000..516e00b
--- /dev/null
+++ b/src/com/android/deskclock/LogUtils.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2008 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-level logging flag
+ */
+
+package com.android.deskclock;
+
+import android.os.Build;
+import android.util.Log;
+
+public class LogUtils {
+
+ public final static String LOGTAG = "AlarmClock";
+ public final static boolean DEBUG = "eng".equals(Build.TYPE) || "userdebug".equals(Build.TYPE);
+
+ public static void v(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.VERBOSE)) {
+ Log.v(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void v(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.VERBOSE)) {
+ Log.v(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void d(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.DEBUG)) {
+ Log.d(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void d(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.DEBUG)) {
+ Log.d(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void i(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.INFO)) {
+ Log.i(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void i(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.INFO)) {
+ Log.i(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void w(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.WARN)) {
+ Log.w(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void w(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.WARN)) {
+ Log.w(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void e(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ERROR)) {
+ Log.e(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void e(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ERROR)) {
+ Log.e(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void e(String message, Exception e) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ERROR)) {
+ Log.e(LOGTAG, message, e);
+ }
+ }
+
+ public static void e(String tag, String message, Exception e) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ERROR)) {
+ Log.e(LOGTAG + "/" + tag, message, e);
+ }
+ }
+
+ public static void wtf(String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ASSERT)) {
+ Log.wtf(LOGTAG, args == null ? message : String.format(message, args));
+ }
+ }
+
+ public static void wtf(String tag, String message, Object... args) {
+ if (DEBUG || Log.isLoggable(LOGTAG, Log.ASSERT)) {
+ Log.wtf(LOGTAG + "/" + tag, args == null ? message : String.format(message, args));
+ }
+ }
+}
diff --git a/src/com/android/deskclock/Screensaver.java b/src/com/android/deskclock/Screensaver.java
index 5c74e3d..042d839 100644
--- a/src/com/android/deskclock/Screensaver.java
+++ b/src/com/android/deskclock/Screensaver.java
@@ -32,8 +32,11 @@
import com.android.deskclock.Utils.ScreensaverMoveSaverRunnable;
public class Screensaver extends DreamService {
- static final boolean DEBUG = false;
- static final String TAG = "DeskClock/Screensaver";
+
+ public static final int ORIENTATION_CHANGE_DELAY_MS = 250;
+
+ private static final boolean DEBUG = false;
+ private static final String TAG = "DeskClock/Screensaver";
private View mContentView, mSaverView;
private View mAnalogClock, mDigitalClock;
@@ -99,7 +102,7 @@
super.onConfigurationChanged(newConfig);
mHandler.removeCallbacks(mMoveSaverRunnable);
layoutClockSaver();
- mHandler.post(mMoveSaverRunnable);
+ mHandler.postDelayed(mMoveSaverRunnable, ORIENTATION_CHANGE_DELAY_MS);
}
@Override
@@ -149,7 +152,7 @@
private void layoutClockSaver() {
setContentView(R.layout.desk_clock_saver);
mDigitalClock = findViewById(R.id.digital_clock);
- mAnalogClock =findViewById(R.id.analog_clock);
+ mAnalogClock = findViewById(R.id.analog_clock);
setClockStyle();
Utils.setTimeFormat((TextClock)mDigitalClock,
(int)getResources().getDimension(R.dimen.main_ampm_font_size));
diff --git a/src/com/android/deskclock/ScreensaverActivity.java b/src/com/android/deskclock/ScreensaverActivity.java
index 5a5b0d2..d5c8ff1 100644
--- a/src/com/android/deskclock/ScreensaverActivity.java
+++ b/src/com/android/deskclock/ScreensaverActivity.java
@@ -152,7 +152,7 @@
super.onConfigurationChanged(newConfig);
mHandler.removeCallbacks(mMoveSaverRunnable);
layoutClockSaver();
- mHandler.postDelayed(mMoveSaverRunnable, 250);
+ mHandler.postDelayed(mMoveSaverRunnable, Screensaver.ORIENTATION_CHANGE_DELAY_MS);
}
@Override
diff --git a/src/com/android/deskclock/SettingsActivity.java b/src/com/android/deskclock/SettingsActivity.java
index a6a07a4..51887ad 100644
--- a/src/com/android/deskclock/SettingsActivity.java
+++ b/src/com/android/deskclock/SettingsActivity.java
@@ -19,15 +19,12 @@
import android.app.ActionBar;
import android.content.Intent;
import android.content.res.Resources;
-import android.graphics.drawable.ColorDrawable;
import android.media.AudioManager;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
import android.text.format.DateUtils;
import android.view.Menu;
import android.view.MenuItem;
@@ -45,11 +42,6 @@
public class SettingsActivity extends PreferenceActivity
implements Preference.OnPreferenceChangeListener {
- private static final int ALARM_STREAM_TYPE_BIT =
- 1 << AudioManager.STREAM_ALARM;
-
- public static final String KEY_ALARM_IN_SILENT_MODE =
- "alarm_in_silent_mode";
public static final String KEY_ALARM_SNOOZE =
"snooze_duration";
public static final String KEY_VOLUME_BEHAVIOR =
@@ -66,6 +58,9 @@
"volume_button_setting";
public static final String DEFAULT_VOLUME_BEHAVIOR = "0";
+ public static final String VOLUME_BEHAVIOR_SNOOZE = "1";
+ public static final String VOLUME_BEHAVIOR_DISMISS = "2";
+
private static CharSequence[][] mTimezones;
private long mTime;
@@ -74,6 +69,8 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setVolumeControlStream(AudioManager.STREAM_ALARM);
+
addPreferencesFromResource(R.xml.settings);
ActionBar actionBar = getActionBar();
@@ -115,7 +112,6 @@
return super.onOptionsItemSelected(item);
}
-
@Override
public boolean onCreateOptionsMenu (Menu menu) {
getMenuInflater().inflate(R.menu.settings_menu, menu);
@@ -127,31 +123,6 @@
}
@Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
- if (KEY_ALARM_IN_SILENT_MODE.equals(preference.getKey())) {
- CheckBoxPreference pref = (CheckBoxPreference) preference;
- int ringerModeStreamTypes = Settings.System.getInt(
- getContentResolver(),
- Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0);
-
- if (pref.isChecked()) {
- ringerModeStreamTypes &= ~ALARM_STREAM_TYPE_BIT;
- } else {
- ringerModeStreamTypes |= ALARM_STREAM_TYPE_BIT;
- }
-
- Settings.System.putInt(getContentResolver(),
- Settings.System.MODE_RINGER_STREAMS_AFFECTED,
- ringerModeStreamTypes);
-
- return true;
- }
-
- return super.onPreferenceTreeClick(preferenceScreen, preference);
- }
-
- @Override
public boolean onPreferenceChange(Preference pref, Object newValue) {
if (KEY_AUTO_SILENCE.equals(pref.getKey())) {
final ListPreference listPref = (ListPreference) pref;
@@ -287,7 +258,7 @@
int minLength = ids.length;
if (ids.length != labels.length) {
minLength = Math.min(minLength, labels.length);
- Log.e("Timezone ids and labels have different length!");
+ LogUtils.e("Timezone ids and labels have different length!");
}
List<TimeZoneRow> timezones = new ArrayList<TimeZoneRow>();
for (int i = 0; i < minLength; i++) {
diff --git a/src/com/android/deskclock/TimerRingService.java b/src/com/android/deskclock/TimerRingService.java
index 0bc269b..b67d97d 100644
--- a/src/com/android/deskclock/TimerRingService.java
+++ b/src/com/android/deskclock/TimerRingService.java
@@ -24,8 +24,6 @@
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnErrorListener;
-import android.media.RingtoneManager;
-import android.net.Uri;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
@@ -103,9 +101,7 @@
return;
}
- if (Log.LOGV) {
- Log.v("TimerRingService.play()");
- }
+ LogUtils.v("TimerRingService.play()");
// TODO: Reuse mMediaPlayer instead of creating a new one and/or use
// RingtoneManager.
@@ -113,7 +109,7 @@
mMediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
- Log.e("Error occurred while playing audio.");
+ LogUtils.e("Error occurred while playing audio.");
mp.stop();
mp.release();
mMediaPlayer = null;
@@ -126,7 +122,7 @@
// resource at a low volume to not disrupt the call.
if (mTelephonyManager.getCallState()
!= TelephonyManager.CALL_STATE_IDLE) {
- Log.v("Using the in-call alarm");
+ LogUtils.v("Using the in-call alarm");
mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
setDataSourceFromResource(getResources(), mMediaPlayer,
R.raw.in_call_alarm);
@@ -137,7 +133,7 @@
}
startAlarm(mMediaPlayer);
} catch (Exception ex) {
- Log.v("Using the fallback ringtone");
+ LogUtils.v("Using the fallback ringtone");
// The alert may be on the sd card which could be busy right
// now. Use the fallback ringtone.
try {
@@ -148,7 +144,7 @@
startAlarm(mMediaPlayer);
} catch (Exception ex2) {
// At this point we just don't play anything.
- Log.e("Failed to play fallback ringtone", ex2);
+ LogUtils.e("Failed to play fallback ringtone", ex2);
}
}
@@ -186,7 +182,7 @@
* Stops timer audio
*/
public void stop() {
- if (Log.LOGV) Log.v("TimerRingService.stop()");
+ LogUtils.v("TimerRingService.stop()");
if (mPlaying) {
mPlaying = false;
diff --git a/src/com/android/deskclock/TimerSetupView.java b/src/com/android/deskclock/TimerSetupView.java
index e44a5e0..3d96470 100644
--- a/src/com/android/deskclock/TimerSetupView.java
+++ b/src/com/android/deskclock/TimerSetupView.java
@@ -18,10 +18,7 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
import android.content.Context;
-import android.content.res.Configuration;
import android.graphics.Color;
import android.os.Bundle;
import android.util.AttributeSet;
@@ -53,9 +50,9 @@
@Override
public void onAnimationEnd(Animator animation) {
if (mStart != null) {
+ mStart.setScaleX(1.0f);
+ mStart.setScaleY(1.0f);
mStart.setVisibility(View.INVISIBLE);
- mStart.setScaleX(AnimatorUtil.SCALE_FULL);
- mStart.setScaleY(AnimatorUtil.SCALE_FULL);
}
}
};
@@ -111,7 +108,9 @@
mLeft = (Button)v4.findViewById(R.id.key_left);
mNumbers[0] = (Button)v4.findViewById(R.id.key_middle);
mRight = (Button)v4.findViewById(R.id.key_right);
- setLeftRightEnabled(false);
+
+ mLeft.setVisibility(INVISIBLE);
+ mRight.setVisibility(INVISIBLE);
for (int i = 0; i < 10; i++) {
mNumbers[i].setOnClickListener(this);
@@ -122,28 +121,6 @@
updateTime();
}
- @Override
- public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
- setMarginsAfterMeasure();
- }
- }
-
- /**
- * To properly center the TimerView across from the dial pad, append a bottom margin that
- * matches the measured height of the fab button that is below the dial pad.
- */
- protected void setMarginsAfterMeasure() {
- View timerFooter = findViewById(R.id.timer_footer);
- View timerDisplay = findViewById(R.id.timer_time_display);
- if (timerFooter != null && timerDisplay != null) {
- MarginLayoutParams marginLayoutParams =
- (MarginLayoutParams) timerDisplay.getLayoutParams();
- marginLayoutParams.bottomMargin = timerFooter.getMeasuredHeight();
- }
- }
-
public void registerStartButton(ImageButton start) {
mStart = start;
initializeStartButtonVisibility();
@@ -178,22 +155,11 @@
return;
}
- final float startSizeRatio = show ? AnimatorUtil.SCALE_ZERO : AnimatorUtil.SCALE_FULL;
- final float endSizeRatio = show ? AnimatorUtil.SCALE_FULL : AnimatorUtil.SCALE_ZERO;
- final AnimatorListenerAdapter animatorListener = show ?
- mShowFabAnimatorListener : mHideFabAnimatorListener;
-
- final ObjectAnimator scaleX = AnimatorUtil.getScaleXAnimator(mStart, startSizeRatio,
- endSizeRatio, AnimatorUtil.ANIM_DURATION_SHORT);
- scaleX.addListener(animatorListener);
-
- final ObjectAnimator scaleY = AnimatorUtil.getScaleYAnimator(mStart, startSizeRatio,
- endSizeRatio, AnimatorUtil.ANIM_DURATION_SHORT);
- scaleY.addListener(animatorListener);
-
- final AnimatorSet animators = new AnimatorSet();
- animators.playTogether(scaleX, scaleY);
- animators.start();
+ final Animator scaleAnimator = AnimatorUtils.getScaleAnimator(
+ mStart, show ? 0.0f : 1.0f, show ? 1.0f : 0.0f);
+ scaleAnimator.setDuration(AnimatorUtils.ANIM_DURATION_SHORT);
+ scaleAnimator.addListener(show ? mShowFabAnimatorListener : mHideFabAnimatorListener);
+ scaleAnimator.start();
}
@Override
@@ -281,13 +247,4 @@
}
initializeStartButtonVisibility();
}
-
- protected void setLeftRightEnabled(boolean enabled) {
- mLeft.setEnabled(enabled);
- mRight.setEnabled(enabled);
- if (!enabled) {
- mLeft.setContentDescription(null);
- mRight.setContentDescription(null);
- }
- }
}
diff --git a/src/com/android/deskclock/Utils.java b/src/com/android/deskclock/Utils.java
index a2043b1..f1965a7 100644
--- a/src/com/android/deskclock/Utils.java
+++ b/src/com/android/deskclock/Utils.java
@@ -149,7 +149,7 @@
} catch (NameNotFoundException e) {
// Cannot find the package name, so don't add in the version parameter
// This shouldn't happen.
- Log.wtf("Invalid package name for context " + e);
+ LogUtils.wtf("Invalid package name for context " + e);
}
} else {
builder.appendQueryParameter(PARAM_VERSION, sCachedVersionCode);
@@ -568,7 +568,7 @@
int minLength = cities.length;
if (cities.length != timezones.length || ids.length != cities.length) {
minLength = Math.min(cities.length, Math.min(timezones.length, ids.length));
- Log.e("City lists sizes are not the same, trancating");
+ LogUtils.e("City lists sizes are not the same, truncating");
}
CityObj[] tempList = new CityObj[minLength];
for (int i = 0; i < cities.length; i++) {
@@ -612,6 +612,11 @@
return Color.parseColor(BACKGROUND_SPECTRUM[hourOfDay]);
}
+ public static int getNextHourColor() {
+ final int currHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
+ return Color.parseColor(BACKGROUND_SPECTRUM[currHour < 24 ? currHour + 1 : 1]);
+ }
+
/**
* To get an array of single-character day of week symbols {'S', 'M', 'T', 'W', 'T', 'F', 'S'}
* @return the array of symbols
diff --git a/src/com/android/deskclock/VerticalViewPager.java b/src/com/android/deskclock/VerticalViewPager.java
new file mode 100644
index 0000000..5aaa41e
--- /dev/null
+++ b/src/com/android/deskclock/VerticalViewPager.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2014 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;
+
+import android.content.Context;
+import android.support.v4.view.ViewConfigurationCompat;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewParent;
+
+public class VerticalViewPager extends ViewPager {
+ // TODO Remove the hack of using a parent view pager
+ private ViewPager mParentViewPager;
+ private float mLastMotionX;
+ private float mLastMotionY;
+ private float mTouchSlop;
+ private boolean mVerticalDrag;
+ private boolean mHorizontalDrag;
+
+ // Vertical transit page transformer
+ private final ViewPager.PageTransformer mPageTransformer = new ViewPager.PageTransformer() {
+ @Override
+ public void transformPage(View view, float position) {
+ final int pageWidth = view.getWidth();
+ final int pageHeight = view.getHeight();
+ if (position < -1) {
+ // This page is way off-screen to the left.
+ view.setAlpha(0);
+ } else if (position <= 1) {
+ view.setAlpha(1);
+ // Counteract the default slide transition
+ view.setTranslationX(pageWidth * -position);
+ // set Y position to swipe in from top
+ float yPosition = position * pageHeight;
+ view.setTranslationY(yPosition);
+ } else {
+ // This page is way off-screen to the right.
+ view.setAlpha(0);
+ }
+ }
+ };
+
+ public VerticalViewPager(Context context) {
+ super(context, null);
+ }
+
+ public VerticalViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ final ViewConfiguration configuration = ViewConfiguration.get(context);
+ mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(configuration);
+ init();
+ }
+
+ private void init() {
+ // Make page transit vertical
+ setPageTransformer(true, mPageTransformer);
+ // Get rid of the overscroll drawing that happens on the left and right (the ripple)
+ setOverScrollMode(View.OVER_SCROLL_NEVER);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ try {
+ initializeParent();
+ final float x = ev.getX();
+ final float y = ev.getY();
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN: {
+ mLastMotionX = x;
+ mLastMotionY = y;
+ if (!mParentViewPager.onTouchEvent(ev))
+ return false;
+ return verticalDrag(ev);
+ }
+ case MotionEvent.ACTION_MOVE: {
+ final float xDiff = Math.abs(x - mLastMotionX);
+ final float yDiff = Math.abs(y - mLastMotionY);
+ if (!mHorizontalDrag && !mVerticalDrag) {
+ if (xDiff > mTouchSlop && xDiff > yDiff) { // Swiping left and right
+ mHorizontalDrag = true;
+ } else if (yDiff > mTouchSlop && yDiff > xDiff) { //Swiping up and down
+ mVerticalDrag = true;
+ }
+ }
+ if (mHorizontalDrag) {
+ return mParentViewPager.onTouchEvent(ev);
+ } else if (mVerticalDrag) {
+ return verticalDrag(ev);
+ }
+ }
+ case MotionEvent.ACTION_UP: {
+ if (mHorizontalDrag) {
+ mHorizontalDrag = false;
+ return mParentViewPager.onTouchEvent(ev);
+ }
+ if (mVerticalDrag) {
+ mVerticalDrag = false;
+ return verticalDrag(ev);
+ }
+ }
+ }
+ // Set both flags to false in case user lifted finger in the parent view pager
+ mHorizontalDrag = false;
+ mVerticalDrag = false;
+ } catch (Exception e) {
+ // The mParentViewPager shouldn't be null, but just in case. If this happens,
+ // app should not crash, instead just ignore the user swipe input
+ // TODO: handle the exception gracefully
+ }
+ return false;
+ }
+
+ private void initializeParent() {
+ if (mParentViewPager == null) {
+ // This vertical view pager is nested in the frame layout inside the timer tab
+ // (fragment), which is nested inside the horizontal view pager. Therefore,
+ // it needs 3 layers to get all the way to the horizontal view pager.
+ final ViewParent parent = getParent().getParent().getParent();
+ if (parent instanceof ViewPager) {
+ mParentViewPager = (ViewPager) parent;
+ }
+ }
+ }
+
+ private boolean verticalDrag(MotionEvent ev) {
+ final float x = ev.getX();
+ final float y = ev.getY();
+ ev.setLocation(y, x);
+ return super.onTouchEvent(ev);
+ }
+}
diff --git a/src/com/android/deskclock/alarms/AlarmActivity.java b/src/com/android/deskclock/alarms/AlarmActivity.java
index fe61e25..4b19099 100644
--- a/src/com/android/deskclock/alarms/AlarmActivity.java
+++ b/src/com/android/deskclock/alarms/AlarmActivity.java
@@ -19,6 +19,7 @@
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.app.Activity;
import android.content.BroadcastReceiver;
@@ -26,128 +27,141 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Rect;
+import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
-import android.text.format.DateUtils;
-import android.view.DragEvent;
+import android.support.annotation.NonNull;
import android.view.KeyEvent;
-import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
-import android.view.View.DragShadowBuilder;
-import android.view.View.OnClickListener;
-import android.view.View.OnDragListener;
-import android.view.View.OnTouchListener;
import android.view.ViewAnimationUtils;
+import android.view.ViewGroup;
import android.view.ViewGroupOverlay;
-import android.view.Window;
import android.view.WindowManager;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.AccelerateInterpolator;
-import android.view.animation.DecelerateInterpolator;
+import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;
+import android.widget.ImageView;
import android.widget.TextClock;
import android.widget.TextView;
-import com.android.deskclock.Log;
+import com.android.deskclock.AnimatorUtils;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.SettingsActivity;
import com.android.deskclock.Utils;
import com.android.deskclock.provider.AlarmInstance;
-public class AlarmActivity extends Activity {
- // AlarmActivity listens for this broadcast intent, so that other applications
- // can snooze the alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION).
- public static final String ALARM_SNOOZE_ACTION = "com.android.deskclock.ALARM_SNOOZE";
+public class AlarmActivity extends Activity implements View.OnClickListener, View.OnTouchListener {
- // AlarmActivity listens for this broadcast intent, so that other applications
- // can dismiss the alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION).
+ /**
+ * AlarmActivity listens for this broadcast intent, so that other applications can snooze the
+ * alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION).
+ */
+ public static final String ALARM_SNOOZE_ACTION = "com.android.deskclock.ALARM_SNOOZE";
+ /**
+ * AlarmActivity listens for this broadcast intent, so that other applications can dismiss
+ * the alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION).
+ */
public static final String ALARM_DISMISS_ACTION = "com.android.deskclock.ALARM_DISMISS";
- private static final float DIM_ALPHA = 0.3f;
- private static final float NORMAL_ALPHA = 0.65f;
- private static final float HIGHLIGHT_ALPHA = 1.0f;
- private static final float SCALE_SLOPE = 0.3f;
+ private static final String LOGTAG = AlarmActivity.class.getSimpleName();
- private static final int RIPPLE_DELAY_MS = 500;
- private static final int FINISH_ACTIVITY_DELAY_MS = 2000;
+ private static final Interpolator PULSE_INTERPOLATOR =
+ new PathInterpolator(0.4f, 0.0f, 0.2f, 1.0f);
+ private static final Interpolator REVEAL_INTERPOLATOR =
+ new PathInterpolator(0.0f, 0.0f, 0.2f, 1.0f);
- private View mCenterButton;
- private View mContentView;
- private View mSnoozeButton;
- private View mDismissButton;
- private View mSnoozeCircle;
- private View mDismissCircle;
- private AlarmRipple mCenterRipple;
+ private static final int PULSE_DURATION_MILLIS = 1000;
+ private static final int ALARM_BOUNCE_DURATION_MILLIS = 500;
+ private static final int ALERT_SOURCE_DURATION_MILLIS = 250;
+ private static final int ALERT_REVEAL_DURATION_MILLIS = 500;
+ private static final int ALERT_FADE_DURATION_MILLIS = 500;
+ private static final int ALERT_DISMISS_DELAY_MILLIS = 2000;
- private boolean mShowingSnoozeCircle;
- private boolean mShowingDismissCircle;
+ private static final float BUTTON_SCALE_DEFAULT = 0.7f;
+ private static final int BUTTON_DRAWABLE_ALPHA_DEFAULT = 165;
- private AlarmInstance mInstance;
- private Resources mResource;
-
- private boolean mIsClickingCenterButton;
- private int mVolumeBehavior;
- private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ private final Handler mHandler = new Handler();
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- Log.v("AlarmActivity - Broadcast Receiver - " + action);
- if (action.equals(ALARM_SNOOZE_ACTION)) {
- snooze();
- } else if (action.equals(ALARM_DISMISS_ACTION)) {
- dismiss();
- } else if (action.equals(AlarmService.ALARM_DONE_ACTION)) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
+ final String action = intent.getAction();
+ LogUtils.v(LOGTAG, "Received broadcast: %s", action);
+
+ if (!mAlarmHandled) {
+ switch (action) {
+ case ALARM_SNOOZE_ACTION:
+ snooze();
+ break;
+ case ALARM_DISMISS_ACTION:
+ dismiss();
+ break;
+ case AlarmService.ALARM_DONE_ACTION:
finish();
- }
- }, FINISH_ACTIVITY_DELAY_MS /* Delay to make sure the animation is finished now */);
+ break;
+ default:
+ LogUtils.i(LOGTAG, "Unknown broadcast: %s", action);
+ break;
+ }
} else {
- Log.i("Unknown broadcast in AlarmActivity: " + action);
+ LogUtils.v(LOGTAG, "Ignored broadcast: %s", action);
}
}
};
- private void snooze() {
- AlarmStateManager.setSnoozeState(this, mInstance, false /* showToast */);
- }
+ private AlarmInstance mAlarmInstance;
+ private boolean mAlarmHandled;
+ private String mVolumeBehavior;
+ private int mCurrentHourColor;
+ private boolean mReceiverRegistered;
- private void dismiss() {
- AlarmStateManager.setDismissState(this, mInstance);
- }
+ private ViewGroup mContainerView;
+
+ private ViewGroup mAlertView;
+ private TextView mAlertTitleView;
+ private TextView mAlertInfoView;
+
+ private ViewGroup mContentView;
+ private ImageView mAlarmButton;
+ private ImageView mSnoozeButton;
+ private ImageView mDismissButton;
+ private TextView mHintView;
+
+ private ValueAnimator mAlarmAnimator;
+ private ValueAnimator mSnoozeAnimator;
+ private ValueAnimator mDismissAnimator;
+ private ValueAnimator mPulseAnimator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- long instanceId = AlarmInstance.getId(getIntent().getData());
- mInstance = AlarmInstance.getInstance(this.getContentResolver(), instanceId);
- if (mInstance != null) {
- Log.v("Displaying alarm for instance: " + mInstance);
- } else {
+
+ final long instanceId = AlarmInstance.getId(getIntent().getData());
+ mAlarmInstance = AlarmInstance.getInstance(getContentResolver(), instanceId);
+ if (mAlarmInstance == null) {
// The alarm got deleted before the activity got created, so just finish()
- Log.v("Error displaying alarm for intent: " + getIntent());
+ LogUtils.e(LOGTAG, "Error displaying alarm for intent: %s", getIntent());
+ finish();
+ return;
+ } else if (mAlarmInstance.mAlarmState != AlarmInstance.FIRED_STATE) {
+ LogUtils.i(LOGTAG, "Skip displaying alarm for instance: %s", mAlarmInstance);
finish();
return;
}
- // Get the volume/camera button behavior setting
- final String vol = PreferenceManager.getDefaultSharedPreferences(this).
- getString(SettingsActivity.KEY_VOLUME_BEHAVIOR,
- SettingsActivity.DEFAULT_VOLUME_BEHAVIOR);
- mVolumeBehavior = Integer.parseInt(vol);
+ LogUtils.i(LOGTAG, "Displaying alarm for instance: %s", mAlarmInstance);
- final Window win = getWindow();
- win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
- WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
- WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
- WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
- WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
+ // Get the volume/camera button behavior setting
+ mVolumeBehavior = PreferenceManager.getDefaultSharedPreferences(this)
+ .getString(SettingsActivity.KEY_VOLUME_BEHAVIOR,
+ SettingsActivity.DEFAULT_VOLUME_BEHAVIOR);
+
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+ | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
+ | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
// In order to allow tablets to freely rotate and phones to stick
// with "nosensor" (use default device orientation) we have to have
@@ -159,252 +173,97 @@
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}
- final LayoutInflater inflater = LayoutInflater.from(this);
- mContentView = inflater.inflate(R.layout.alarm_alert, null);
- mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
- setContentView(mContentView);
+ setContentView(R.layout.alarm_activity);
- mResource = getResources();
- mSnoozeButton = findViewById(R.id.snooze_button);
- mCenterButton = findViewById(R.id.center_button);
- mCenterButton.setContentDescription(
- mResource.getString(R.string.description_direction_right) +
- mResource.getString(R.string.description_direction_left));
- mDismissButton = findViewById(R.id.dismiss_button);
- mCenterRipple = (AlarmRipple) findViewById(R.id.center_ripple);
- mSnoozeCircle = findViewById(R.id.snooze_circle);
- mDismissCircle = findViewById(R.id.dismiss_circle);
+ mContainerView = (ViewGroup) findViewById(android.R.id.content);
- // Color the main view instead of content view, because this view is stacked on top of
- // the reveal view, which has a solid color. We don't want that solid color to show up here.
- final int currentHourColor = Utils.getCurrentHourColor();
- getWindow().getDecorView().setBackgroundColor(currentHourColor);
- initializeButtonListeners(currentHourColor);
- updateTimeAndTitle();
+ mAlertView = (ViewGroup) mContainerView.findViewById(R.id.alert);
+ mAlertTitleView = (TextView) mAlertView.findViewById(R.id.alert_title);
+ mAlertInfoView = (TextView) mAlertView.findViewById(R.id.alert_info);
+
+ mContentView = (ViewGroup) mContainerView.findViewById(R.id.content);
+ mAlarmButton = (ImageView) mContentView.findViewById(R.id.alarm);
+ mSnoozeButton = (ImageView) mContentView.findViewById(R.id.snooze);
+ mDismissButton = (ImageView) mContentView.findViewById(R.id.dismiss);
+ mHintView = (TextView) mContentView.findViewById(R.id.hint);
+
+ final TextView titleView = (TextView) mContentView.findViewById(R.id.title);
+ final TextClock digitalClock = (TextClock) mContentView.findViewById(R.id.digital_clock);
+ final View pulseView = mContentView.findViewById(R.id.pulse);
+
+ titleView.setText(mAlarmInstance.getLabelOrDefault(this));
+ Utils.setTimeFormat(digitalClock,
+ getResources().getDimensionPixelSize(R.dimen.main_ampm_font_size));
+
+ mCurrentHourColor = Utils.getCurrentHourColor();
+ mContainerView.setBackgroundColor(mCurrentHourColor);
+
+ mAlarmButton.setOnTouchListener(this);
+ mSnoozeButton.setOnClickListener(this);
+ mDismissButton.setOnClickListener(this);
+
+ mAlarmAnimator = AnimatorUtils.getScaleAnimator(mAlarmButton, 1.0f, 0.0f);
+ mSnoozeAnimator = getButtonAnimator(mSnoozeButton, Color.WHITE);
+ mDismissAnimator = getButtonAnimator(mDismissButton, mCurrentHourColor);
+ mPulseAnimator = ObjectAnimator.ofPropertyValuesHolder(pulseView,
+ PropertyValuesHolder.ofFloat(View.SCALE_X, 0.0f, 1.0f),
+ PropertyValuesHolder.ofFloat(View.SCALE_Y, 0.0f, 1.0f),
+ PropertyValuesHolder.ofFloat(View.ALPHA, 1.0f, 0.0f));
+ mPulseAnimator.setDuration(PULSE_DURATION_MILLIS);
+ mPulseAnimator.setInterpolator(PULSE_INTERPOLATOR);
+ mPulseAnimator.setRepeatCount(ValueAnimator.INFINITE);
+ mPulseAnimator.start();
+
+ // Set the animators to their initial values.
+ setAnimatedFractions(0.0f /* snoozeFraction */, 0.0f /* dismissFraction */);
// Register to get the alarm done/snooze/dismiss intent.
- IntentFilter filter = new IntentFilter(AlarmService.ALARM_DONE_ACTION);
+ final IntentFilter filter = new IntentFilter(AlarmService.ALARM_DONE_ACTION);
filter.addAction(ALARM_SNOOZE_ACTION);
filter.addAction(ALARM_DISMISS_ACTION);
registerReceiver(mReceiver, filter);
-
- // Delay to make sure view is initialized before playing the ripple animation
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- drawCenterRipple();
- }
- }, RIPPLE_DELAY_MS /* Delay to make sure view is rendered before drawing ripple */);
- }
-
- private void bounceAnimation(boolean towardsSnooze) {
- final float distance = mCenterButton.getWidth();
- ObjectAnimator push = ObjectAnimator.ofFloat(mCenterButton, View.TRANSLATION_X,
- towardsSnooze ? 0 - distance : distance);
- push.setInterpolator(new DecelerateInterpolator());
- ObjectAnimator pull = ObjectAnimator.ofFloat(mCenterButton, View.TRANSLATION_X,
- 0);
- pull.setInterpolator(new AccelerateInterpolator());
- AnimatorSet set = new AnimatorSet();
- set.play(push).before(pull);
- set.setDuration(mResource.getInteger(android.R.integer.config_shortAnimTime));
- set.start();
- }
-
- private void initializeButtonListeners(final int currentHourColor) {
- mSnoozeButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- bounceAnimation(true /* towardsSnooze */);
- }
- });
-
- mDismissButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- bounceAnimation(false /* towardsDismiss */);
- }
- });
-
- mCenterButton.setOnTouchListener(new OnTouchListener() {
- @Override
- public boolean onTouch(View view, MotionEvent motionEvent) {
- if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
- view.startDrag(null, new DragShadowBuilder(), null, 0);
- }
- return false;
- }
- });
-
- final View ripplePad = findViewById(R.id.ripple_pad);
- ripplePad.setOnDragListener(new OnDragListener() {
- @Override
- public boolean onDrag(View view, DragEvent dragEvent) {
- final int action = dragEvent.getAction();
- final float x = dragEvent.getX();
- final float centerX = ripplePad.getLeft() + ripplePad.getWidth() / 2;
- final float snoozeRightBoundary = mSnoozeButton.getRight() + mSnoozeButton
- .getWidth() / 2;
- final float dismissLeftBoundary = mDismissButton.getLeft() - mDismissButton
- .getWidth() / 2;
- switch (action) {
- case DragEvent.ACTION_DRAG_STARTED:
- mIsClickingCenterButton = true;
- // Once user click center button, stop ripple and highlight both button
- mCenterRipple.setVisibility(View.INVISIBLE);
- mCenterButton.setVisibility(View.INVISIBLE);
- mSnoozeButton.setAlpha(HIGHLIGHT_ALPHA);
- mDismissButton.setAlpha(HIGHLIGHT_ALPHA);
- return true;
- case DragEvent.ACTION_DRAG_LOCATION:
- mIsClickingCenterButton = false;
- // Make one button stand out and dim the other as long as user moves a
- // little bit to either direction
- mSnoozeButton.setAlpha(x < centerX ? HIGHLIGHT_ALPHA : DIM_ALPHA);
- mDismissButton.setAlpha(x < centerX ? DIM_ALPHA : HIGHLIGHT_ALPHA);
-
- // Scale icon in x-axis linear to finger location
- if (x < centerX && x > snoozeRightBoundary) {
- scaleButton(mSnoozeButton, centerX - x, centerX - snoozeRightBoundary);
- } else if (x > centerX && x < dismissLeftBoundary) {
- scaleButton(mDismissButton, x - centerX, dismissLeftBoundary - centerX);
- }
-
- // Expand background circle if finger enters certain boundary
- if (x < snoozeRightBoundary) {
- if (!mShowingSnoozeCircle) {
- expandCircle(mSnoozeCircle, mSnoozeButton);
- mShowingSnoozeCircle = true;
- }
- mShowingDismissCircle = false;
- mSnoozeCircle.setVisibility(View.VISIBLE);
- mDismissCircle.setVisibility(View.INVISIBLE);
- mDismissButton.setVisibility(View.VISIBLE);
- } else if (x > dismissLeftBoundary) {
- if (!mShowingDismissCircle) {
- // Fade out the icon to reduce jump when swapping to circle icon
- final Animator alphaAnim = ObjectAnimator.ofFloat(mDismissButton,
- "alpha", 1, 0);
- alphaAnim.setDuration(mResource.getInteger(
- android.R.integer.config_shortAnimTime));
- alphaAnim.start();
- alphaAnim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mDismissButton.setVisibility(View.INVISIBLE);
- }
- });
- expandCircle(mDismissCircle, mDismissButton);
- mShowingDismissCircle = true;
- }
- mShowingSnoozeCircle = false;
- mDismissCircle.setVisibility(View.VISIBLE);
- mSnoozeCircle.setVisibility(View.INVISIBLE);
- } else {
- // finger is pressed down but not entering any button zone yet
- mSnoozeCircle.setVisibility(View.INVISIBLE);
- mDismissCircle.setVisibility(View.INVISIBLE);
- mDismissButton.setVisibility(View.VISIBLE);
- mShowingSnoozeCircle = false;
- mShowingDismissCircle = false;
- mSnoozeButton.setAlpha(HIGHLIGHT_ALPHA);
- mDismissButton.setAlpha(HIGHLIGHT_ALPHA);
- }
- return true;
- case DragEvent.ACTION_DRAG_ENDED:
- scaleButton(mSnoozeButton, 0, 1);
- scaleButton(mDismissButton, 0, 1);
- if (mIsClickingCenterButton) {
- // If user just click the center button, make it bounce towards dismiss
- bounceAnimation(false /* towardsSnooze */);
- }
- if (mShowingSnoozeCircle) {
- final int accentColor = mResource.getColor(R.color.hot_pink);
- reveal(mSnoozeButton, accentColor, accentColor,
- R.string.alarm_alert_snoozed_text,
- AlarmStateManager.getSnoozedMinutes(AlarmActivity.this));
- snooze();
- } else if (mShowingDismissCircle) {
- reveal(mDismissButton, mResource.getColor(R.color.white),
- currentHourColor, R.string.alarm_alert_off_text, null);
- dismiss();
- } else {
- mSnoozeButton.setAlpha(NORMAL_ALPHA);
- mDismissButton.setAlpha(NORMAL_ALPHA);
- mDismissButton.setVisibility(View.VISIBLE);
- mCenterButton.setVisibility(View.VISIBLE);
- mCenterRipple.setVisibility(View.VISIBLE);
- }
- return true;
- }
- return false;
- }
- });
- }
-
- private void scaleButton(View button, float a, float b) {
- final float delta = SCALE_SLOPE * a / b + 1 - SCALE_SLOPE;
- button.setScaleX(delta);
- button.setScaleY(delta);
- }
-
- private void expandCircle(View circle, View button) {
- circle.setX(button.getLeft() + button.getWidth() / 2 - circle.getWidth() / 2);
- circle.setY(button.getTop() + button.getHeight() / 2 - circle.getHeight() / 2);
- final ObjectAnimator xAnim = ObjectAnimator.ofFloat(circle, "scaleX", 0, 1);
- final ObjectAnimator yAnim = ObjectAnimator.ofFloat(circle, "scaleY", 0, 1);
- final AnimatorSet set = new AnimatorSet();
- set.setDuration(mResource.getInteger(android.R.integer.config_shortAnimTime));
- set.play(xAnim).with(yAnim);
- set.start();
- }
-
- private void updateTimeAndTitle() {
- updateTitle();
- Utils.setTimeFormat((TextClock) (findViewById(R.id.digitalClock)),
- (int) getResources().getDimension(R.dimen.main_ampm_font_size));
- }
-
- private void drawCenterRipple() {
- final View parent = findViewById(R.id.ripple_pad);
- mCenterRipple.setCenterX(parent.getWidth() / 2);
- mCenterRipple.setCenterY(parent.getHeight() / 2);
- mCenterRipple.setAlphaFactor(1.0f);
- mCenterRipple.setRadiusGravity(0.0f);
- final ObjectAnimator radiusAnim = ObjectAnimator.ofFloat(mCenterRipple, "radiusGravity", 0,
- 1);
- final ObjectAnimator alphaAnim = ObjectAnimator.ofFloat(mCenterRipple, "alphaFactor", 1,
- 0);
- radiusAnim.setRepeatCount(ValueAnimator.INFINITE);
- alphaAnim.setRepeatCount(ValueAnimator.INFINITE);
-
- AnimatorSet set = new AnimatorSet();
- set.play(radiusAnim).with(alphaAnim);
- set.setInterpolator(new PathInterpolator(0.4f, 0, 0.2f, 1.0f));
- set.setDuration(DateUtils.SECOND_IN_MILLIS);
- set.start();
- }
-
- private void updateTitle() {
- final String titleText = mInstance.getLabelOrDefault(this);
- TextView tv = (TextView) findViewById(R.id.alertTitle);
- tv.setText(titleText);
- super.setTitle(titleText);
- }
-
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- updateTimeAndTitle();
+ mReceiverRegistered = true;
}
@Override
public void onDestroy() {
super.onDestroy();
- // onCreate may finish this activity before registering the Receiver
- try {
+
+ // Skip if register didn't happen to avoid IllegalArgumentException
+ if (mReceiverRegistered) {
unregisterReceiver(mReceiver);
- } catch (IllegalArgumentException e) {}
+ }
+ }
+
+ @Override
+ public boolean dispatchKeyEvent(@NonNull KeyEvent keyEvent) {
+ // Do this in dispatch to intercept a few of the system keys.
+ LogUtils.v(LOGTAG, "dispatchKeyEvent: %s", keyEvent);
+
+ switch (keyEvent.getKeyCode()) {
+ // Volume keys and camera keys dismiss the alarm.
+ case KeyEvent.KEYCODE_POWER:
+ case KeyEvent.KEYCODE_VOLUME_UP:
+ case KeyEvent.KEYCODE_VOLUME_DOWN:
+ case KeyEvent.KEYCODE_VOLUME_MUTE:
+ case KeyEvent.KEYCODE_CAMERA:
+ case KeyEvent.KEYCODE_FOCUS:
+ if (!mAlarmHandled && keyEvent.getAction() == KeyEvent.ACTION_UP) {
+ switch (mVolumeBehavior) {
+ case SettingsActivity.VOLUME_BEHAVIOR_SNOOZE:
+ snooze();
+ break;
+ case SettingsActivity.VOLUME_BEHAVIOR_DISMISS:
+ dismiss();
+ break;
+ default:
+ break;
+ }
+ }
+ return true;
+ default:
+ return super.dispatchKeyEvent(keyEvent);
+ }
}
@Override
@@ -413,105 +272,230 @@
}
@Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- // Do this on key down to handle a few of the system keys.
- Log.v("AlarmActivity - dispatchKeyEvent - " + event.getKeyCode());
- switch (event.getKeyCode()) {
- // Volume keys and camera keys dismiss the alarm
- case KeyEvent.KEYCODE_POWER:
- case KeyEvent.KEYCODE_VOLUME_UP:
- case KeyEvent.KEYCODE_VOLUME_DOWN:
- case KeyEvent.KEYCODE_VOLUME_MUTE:
- case KeyEvent.KEYCODE_CAMERA:
- case KeyEvent.KEYCODE_FOCUS:
- if (event.getAction() == KeyEvent.ACTION_UP) {
- switch (mVolumeBehavior) {
- case 1:
- snooze();
- break;
+ public void onClick(View view) {
+ if (mAlarmHandled) {
+ LogUtils.v(LOGTAG, "onClick ignored: %s", view);
+ return;
+ }
+ LogUtils.v(LOGTAG, "onClick: %s", view);
- case 2:
- dismiss();
- break;
+ final int alarmLeft = mAlarmButton.getLeft() + mAlarmButton.getPaddingLeft();
+ final int alarmRight = mAlarmButton.getRight() - mAlarmButton.getPaddingRight();
+ final float translationX = Math.max(view.getLeft() - alarmRight, 0)
+ + Math.min(view.getRight() - alarmLeft, 0);
+ getAlarmBounceAnimator(translationX, translationX < 0.0f ?
+ R.string.description_direction_left : R.string.description_direction_right).start();
+ }
- default:
- break;
+ @Override
+ public boolean onTouch(View view, MotionEvent motionEvent) {
+ if (mAlarmHandled) {
+ LogUtils.v(LOGTAG, "onTouch ignored: %s", motionEvent);
+ return false;
+ }
+
+ final int[] contentLocation = {0, 0};
+ mContentView.getLocationOnScreen(contentLocation);
+
+ final float x = motionEvent.getRawX() - contentLocation[0];
+ final float y = motionEvent.getRawY() - contentLocation[1];
+
+ final int alarmLeft = mAlarmButton.getLeft() + mAlarmButton.getPaddingLeft();
+ final int alarmRight = mAlarmButton.getRight() - mAlarmButton.getPaddingRight();
+
+ final float snoozeFraction, dismissFraction;
+ if (mContentView.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
+ snoozeFraction = getFraction(alarmRight, mSnoozeButton.getLeft(), x);
+ dismissFraction = getFraction(alarmLeft, mDismissButton.getRight(), x);
+ } else {
+ snoozeFraction = getFraction(alarmLeft, mSnoozeButton.getRight(), x);
+ dismissFraction = getFraction(alarmRight, mDismissButton.getLeft(), x);
+ }
+ setAnimatedFractions(snoozeFraction, dismissFraction);
+
+ switch (motionEvent.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ LogUtils.v(LOGTAG, "onTouch started: %s", motionEvent);
+
+ // Stop the pulse, allowing the last pulse to finish.
+ mPulseAnimator.setRepeatCount(0);
+ break;
+ case MotionEvent.ACTION_UP:
+ LogUtils.v(LOGTAG, "onTouch ended: %s", motionEvent);
+
+ if (snoozeFraction == 1.0f) {
+ snooze();
+ } else if (dismissFraction == 1.0f) {
+ dismiss();
+ } else {
+ if (snoozeFraction > 0.0f || dismissFraction > 0.0f) {
+ // Animate back to the initial state.
+ AnimatorUtils.reverse(mAlarmAnimator, mSnoozeAnimator, mDismissAnimator);
+ } else if (mAlarmButton.getTop() <= y && y <= mAlarmButton.getBottom()) {
+ // User touched the alarm button, hint the dismiss action.
+ mDismissButton.performClick();
+ }
+
+ // Restart the pulse.
+ mPulseAnimator.setRepeatCount(ValueAnimator.INFINITE);
+ if (!mPulseAnimator.isStarted()) {
+ mPulseAnimator.start();
}
}
- return true;
+ break;
default:
break;
}
- return super.dispatchKeyEvent(event);
+
+ return true;
}
- private void reveal(View centerView, int revealColor, int finalColor, int finalText,
- String additionalText) {
+ private void snooze() {
+ mAlarmHandled = true;
+ LogUtils.v(LOGTAG, "Snoozed: %s", mAlarmInstance);
- final Rect displayRect = new Rect();
- getWindow().getDecorView().getGlobalVisibleRect(displayRect);
+ final int alertColor = getResources().getColor(R.color.hot_pink);
+ setAnimatedFractions(1.0f /* snoozeFraction */, 0.0f /* dismissFraction */);
- final ViewGroupOverlay groupOverlay = (ViewGroupOverlay) mContentView.getOverlay();
+ final int snoozeMinutes = AlarmStateManager.getSnoozedMinutes(this);
+ final String infoText = getResources().getQuantityString(
+ R.plurals.alarm_alert_snooze_duration, snoozeMinutes, snoozeMinutes);
+ final String accessibilityText = getResources().getQuantityString(
+ R.plurals.alarm_alert_snooze_set, snoozeMinutes, snoozeMinutes);
+
+ getAlertAnimator(mSnoozeButton, R.string.alarm_alert_snoozed_text, infoText,
+ accessibilityText, alertColor, alertColor).start();
+ AlarmStateManager.setSnoozeState(this, mAlarmInstance, false /* showToast */);
+ }
+
+ private void dismiss() {
+ mAlarmHandled = true;
+ LogUtils.v(LOGTAG, "Dismissed: %s", mAlarmInstance);
+
+ setAnimatedFractions(0.0f /* snoozeFraction */, 1.0f /* dismissFraction */);
+ getAlertAnimator(mDismissButton, R.string.alarm_alert_off_text, null /* infoText */,
+ getString(R.string.alarm_alert_off_text) /* accessibilityText */,
+ Color.WHITE, mCurrentHourColor).start();
+ AlarmStateManager.setDismissState(this, mAlarmInstance);
+ }
+
+ private void setAnimatedFractions(float snoozeFraction, float dismissFraction) {
+ final float alarmFraction = Math.max(snoozeFraction, dismissFraction);
+ mAlarmAnimator.setCurrentFraction(alarmFraction);
+ mSnoozeAnimator.setCurrentFraction(snoozeFraction);
+ mDismissAnimator.setCurrentFraction(dismissFraction);
+ }
+
+ private float getFraction(float x0, float x1, float x) {
+ return Math.max(Math.min((x - x0) / (x1 - x0), 1.0f), 0.0f);
+ }
+
+ private ValueAnimator getButtonAnimator(ImageView button, int tintColor) {
+ return ObjectAnimator.ofPropertyValuesHolder(button,
+ PropertyValuesHolder.ofFloat(View.SCALE_X, BUTTON_SCALE_DEFAULT, 1.0f),
+ PropertyValuesHolder.ofFloat(View.SCALE_Y, BUTTON_SCALE_DEFAULT, 1.0f),
+ PropertyValuesHolder.ofInt(AnimatorUtils.BACKGROUND_ALPHA, 0, 255),
+ PropertyValuesHolder.ofInt(AnimatorUtils.DRAWABLE_ALPHA,
+ BUTTON_DRAWABLE_ALPHA_DEFAULT, 255),
+ PropertyValuesHolder.ofObject(AnimatorUtils.DRAWABLE_TINT,
+ AnimatorUtils.ARGB_EVALUATOR, Color.WHITE, tintColor));
+ }
+
+ private ValueAnimator getAlarmBounceAnimator(float translationX, final int hintResId) {
+ final ValueAnimator bounceAnimator = ObjectAnimator.ofFloat(mAlarmButton,
+ View.TRANSLATION_X, mAlarmButton.getTranslationX(), translationX, 0.0f);
+ bounceAnimator.setInterpolator(AnimatorUtils.DECELERATE_ACCELERATE_INTERPOLATOR);
+ bounceAnimator.setDuration(ALARM_BOUNCE_DURATION_MILLIS);
+ bounceAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animator) {
+ mHintView.setText(hintResId);
+ if (mHintView.getVisibility() != View.VISIBLE) {
+ mHintView.setVisibility(View.VISIBLE);
+ ObjectAnimator.ofFloat(mHintView, View.ALPHA, 0.0f, 1.0f).start();
+ }
+ }
+ });
+ return bounceAnimator;
+ }
+
+ private Animator getAlertAnimator(final View source, final int titleResId,
+ final String infoText, final String accessibilityText, final int revealColor,
+ final int backgroundColor) {
+ final ViewGroupOverlay overlay = mContainerView.getOverlay();
+
+ // Create a transient view for performing the reveal animation.
final View revealView = new View(this);
- groupOverlay.add(revealView);
- revealView.setBottom(displayRect.bottom);
- revealView.setLeft(displayRect.left);
- revealView.setRight(displayRect.right);
+ revealView.setRight(mContainerView.getWidth());
+ revealView.setBottom(mContainerView.getHeight());
revealView.setBackgroundColor(revealColor);
+ overlay.add(revealView);
- final int[] clearLocation = new int[2];
- centerView.getLocationInWindow(clearLocation);
- clearLocation[0] += centerView.getWidth() / 2;
+ // Add the source to the containerView's overlay so that the animation can occur under the
+ // status bar, the source view will be automatically positioned in the overlay so that
+ // it maintains the same relative position on screen.
+ overlay.add(source);
- final int revealCenterX = clearLocation[0] - revealView.getLeft();
- final int revealCenterY = clearLocation[1] - revealView.getTop();
+ final int centerX = Math.round((source.getLeft() + source.getRight()) / 2.0f);
+ final int centerY = Math.round((source.getTop() + source.getBottom()) / 2.0f);
+ final float startRadius = Math.max(source.getWidth(), source.getHeight()) / 2.0f;
- final double x1_2 = Math.pow(revealView.getLeft() - revealCenterX, 2);
- final double x2_2 = Math.pow(revealView.getRight() - revealCenterX, 2);
- final double y_2 = Math.pow(revealView.getTop() - revealCenterY, 2);
- final float revealRadius = (float) Math.max(Math.sqrt(x1_2 + y_2), Math.sqrt(x2_2 + y_2));
+ final int xMax = Math.max(centerX, mContainerView.getWidth() - centerX);
+ final int yMax = Math.max(centerY, mContainerView.getHeight() - centerY);
+ final float endRadius = (float) Math.sqrt(Math.pow(xMax, 2.0) + Math.pow(yMax, 2.0));
- final Animator revealAnimator = ViewAnimationUtils.createCircularReveal(revealView,
- revealCenterX, revealCenterY, 0.0f, revealRadius);
- revealAnimator.setDuration(DateUtils.SECOND_IN_MILLIS / 2);
+ final ValueAnimator sourceAnimator = ObjectAnimator.ofFloat(source, View.ALPHA, 0.0f);
+ sourceAnimator.setDuration(ALERT_SOURCE_DURATION_MILLIS);
+ sourceAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ overlay.remove(source);
+ }
+ });
+
+ final Animator revealAnimator = ViewAnimationUtils.createCircularReveal(
+ revealView, centerX, centerY, startRadius, endRadius);
+ revealAnimator.setDuration(ALERT_REVEAL_DURATION_MILLIS);
+ revealAnimator.setInterpolator(REVEAL_INTERPOLATOR);
revealAnimator.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationStart(Animator animator) {
- groupOverlay.add(revealView);
+ public void onAnimationEnd(Animator animator) {
+ mAlertView.setVisibility(View.VISIBLE);
+ mAlertTitleView.setText(titleResId);
+
+ if (infoText != null) {
+ mAlertInfoView.setText(infoText);
+ mAlertInfoView.setVisibility(View.VISIBLE);
+ }
+ mAlertView.announceForAccessibility(accessibilityText);
+ mContentView.setVisibility(View.GONE);
+ mContainerView.setBackgroundColor(backgroundColor);
}
});
- final View stayView = findViewById(R.id.final_reveal_screen);
- stayView.setBackgroundColor(finalColor);
- ((TextView) findViewById(R.id.final_text)).setText(finalText);
- if (additionalText != null) {
- ((TextView) findViewById(R.id.additional_text)).setText(additionalText);
- }
- final ValueAnimator fadeInAnimator = ObjectAnimator.ofFloat(stayView, View.ALPHA, 0.0f,
- 1.0f);
- fadeInAnimator.setDuration(mResource.getInteger(android.R.integer.config_longAnimTime));
- fadeInAnimator.addListener(new AnimatorListenerAdapter() {
+ final ValueAnimator fadeAnimator = ObjectAnimator.ofFloat(revealView, View.ALPHA, 0.0f);
+ fadeAnimator.setDuration(ALERT_FADE_DURATION_MILLIS);
+ fadeAnimator.addListener(new AnimatorListenerAdapter() {
@Override
- public void onAnimationStart(Animator animator) {
- groupOverlay.add(stayView);
+ public void onAnimationEnd(Animator animation) {
+ overlay.remove(revealView);
}
});
- final ValueAnimator stayAnimator = ObjectAnimator.ofFloat(stayView, View.ALPHA, 1.0f,
- 1.0f);
- stayAnimator.setDuration(2 * DateUtils.SECOND_IN_MILLIS);
- stayAnimator.addListener(new AnimatorListenerAdapter() {
+
+ final AnimatorSet alertAnimator = new AnimatorSet();
+ alertAnimator.play(revealAnimator).with(sourceAnimator).before(fadeAnimator);
+ alertAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animator) {
- groupOverlay.remove(stayView);
- groupOverlay.remove(revealView);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ finish();
+ }
+ }, ALERT_DISMISS_DELAY_MILLIS);
}
});
- final AnimatorSet animatorSet = new AnimatorSet();
- // First ripple cover the entire view, then fade in text, lastly make the view stay for a
- // short period of time
- animatorSet.playSequentially(revealAnimator, fadeInAnimator, stayAnimator);
- animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
- animatorSet.start();
+ return alertAnimator;
}
}
diff --git a/src/com/android/deskclock/alarms/AlarmKlaxon.java b/src/com/android/deskclock/alarms/AlarmKlaxon.java
index a04968e..715cdaf 100644
--- a/src/com/android/deskclock/alarms/AlarmKlaxon.java
+++ b/src/com/android/deskclock/alarms/AlarmKlaxon.java
@@ -26,7 +26,7 @@
import android.net.Uri;
import android.os.Vibrator;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.provider.AlarmInstance;
@@ -50,7 +50,7 @@
private static MediaPlayer sMediaPlayer = null;
public static void stop(Context context) {
- Log.v("AlarmKlaxon.stop()");
+ LogUtils.v("AlarmKlaxon.stop()");
if (sStarted) {
sStarted = false;
@@ -70,7 +70,7 @@
public static void start(final Context context, AlarmInstance instance,
boolean inTelephoneCall) {
- Log.v("AlarmKlaxon.start()");
+ LogUtils.v("AlarmKlaxon.start()");
// Make sure we are stop before starting
stop(context);
@@ -80,9 +80,7 @@
// alarm stored.
if (alarmNoise == null) {
alarmNoise = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
- if (Log.LOGV) {
- Log.v("Using default alarm: " + alarmNoise.toString());
- }
+ LogUtils.v("Using default alarm: " + alarmNoise.toString());
}
// TODO: Reuse mMediaPlayer instead of creating a new one and/or use RingtoneManager.
@@ -90,7 +88,7 @@
sMediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
- Log.e("Error occurred while playing audio. Stopping AlarmKlaxon.");
+ LogUtils.e("Error occurred while playing audio. Stopping AlarmKlaxon.");
AlarmKlaxon.stop(context);
return true;
}
@@ -100,7 +98,7 @@
// Check if we are in a call. If we are, use the in-call alarm
// resource at a low volume to not disrupt the call.
if (inTelephoneCall) {
- Log.v("Using the in-call alarm");
+ LogUtils.v("Using the in-call alarm");
sMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
setDataSourceFromResource(context, sMediaPlayer, R.raw.in_call_alarm);
} else {
@@ -108,7 +106,7 @@
}
startAlarm(context, sMediaPlayer);
} catch (Exception ex) {
- Log.v("Using the fallback ringtone");
+ LogUtils.v("Using the fallback ringtone");
// The alarmNoise may be on the sd card which could be busy right
// now. Use the fallback ringtone.
try {
@@ -118,7 +116,7 @@
startAlarm(context, sMediaPlayer);
} catch (Exception ex2) {
// At this point we just don't play anything.
- Log.e("Failed to play fallback ringtone", ex2);
+ LogUtils.e("Failed to play fallback ringtone", ex2);
}
}
}
diff --git a/src/com/android/deskclock/alarms/AlarmNotifications.java b/src/com/android/deskclock/alarms/AlarmNotifications.java
index d337c0d..84abada 100644
--- a/src/com/android/deskclock/alarms/AlarmNotifications.java
+++ b/src/com/android/deskclock/alarms/AlarmNotifications.java
@@ -26,7 +26,7 @@
import com.android.deskclock.AlarmClockFragment;
import com.android.deskclock.AlarmUtils;
import com.android.deskclock.DeskClock;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.provider.Alarm;
import com.android.deskclock.provider.AlarmInstance;
@@ -60,7 +60,7 @@
}
public static void showLowPriorityNotification(Context context, AlarmInstance instance) {
- Log.v("Displaying low priority notification for alarm instance: " + instance.mId);
+ LogUtils.v("Displaying low priority notification for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -72,17 +72,20 @@
.setOngoing(false)
.setAutoCancel(false)
.setPriority(Notification.PRIORITY_DEFAULT)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
// Setup up hide notification
- Intent hideIntent = AlarmStateManager.createStateChangeIntent(context, "DELETE_TAG",
- instance, AlarmInstance.HIDE_NOTIFICATION_STATE);
+ Intent hideIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DELETE_TAG, instance,
+ AlarmInstance.HIDE_NOTIFICATION_STATE);
notification.setDeleteIntent(PendingIntent.getBroadcast(context, instance.hashCode(),
hideIntent, PendingIntent.FLAG_UPDATE_CURRENT));
// Setup up dismiss action
- Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, "DISMISS_TAG",
- instance, AlarmInstance.DISMISSED_STATE);
+ Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DISMISS_TAG, instance, AlarmInstance.DISMISSED_STATE);
notification.addAction(R.drawable.ic_alarm_off_black,
resources.getString(R.string.alarm_alert_dismiss_now_text),
PendingIntent.getBroadcast(context, instance.hashCode(),
@@ -98,7 +101,7 @@
}
public static void showHighPriorityNotification(Context context, AlarmInstance instance) {
- Log.v("Displaying high priority notification for alarm instance: " + instance.mId);
+ LogUtils.v("Displaying high priority notification for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -110,11 +113,13 @@
.setOngoing(true)
.setAutoCancel(false)
.setPriority(Notification.PRIORITY_HIGH)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
// Setup up dismiss action
- Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, "DISMISS_TAG",
- instance, AlarmInstance.DISMISSED_STATE);
+ Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DISMISS_TAG, instance, AlarmInstance.DISMISSED_STATE);
notification.addAction(R.drawable.ic_alarm_off_black,
resources.getString(R.string.alarm_alert_dismiss_now_text),
PendingIntent.getBroadcast(context, instance.hashCode(),
@@ -130,7 +135,7 @@
}
public static void showSnoozeNotification(Context context, AlarmInstance instance) {
- Log.v("Displaying snoozed notification for alarm instance: " + instance.mId);
+ LogUtils.v("Displaying snoozed notification for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -143,11 +148,13 @@
.setOngoing(true)
.setAutoCancel(false)
.setPriority(Notification.PRIORITY_MAX)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
// Setup up dismiss action
- Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, "DISMISS_TAG",
- instance, AlarmInstance.DISMISSED_STATE);
+ Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DISMISS_TAG, instance, AlarmInstance.DISMISSED_STATE);
notification.addAction(R.drawable.ic_alarm_off_black,
resources.getString(R.string.alarm_alert_dismiss_text),
PendingIntent.getBroadcast(context, instance.hashCode(),
@@ -162,7 +169,7 @@
}
public static void showMissedNotification(Context context, AlarmInstance instance) {
- Log.v("Displaying missed notification for alarm instance: " + instance.mId);
+ LogUtils.v("Displaying missed notification for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -175,11 +182,13 @@
.setContentText(contextText)
.setSmallIcon(R.drawable.stat_notify_alarm)
.setPriority(Notification.PRIORITY_HIGH)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
// Setup dismiss intent
- Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, "DISMISS_TAG",
- instance, AlarmInstance.DISMISSED_STATE);
+ Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DISMISS_TAG, instance, AlarmInstance.DISMISSED_STATE);
notification.setDeleteIntent(PendingIntent.getBroadcast(context, instance.hashCode(),
dismissIntent, PendingIntent.FLAG_UPDATE_CURRENT));
@@ -195,7 +204,7 @@
}
public static void showAlarmNotification(Context context, AlarmInstance instance) {
- Log.v("Displaying alarm notification for alarm instance: " + instance.mId);
+ LogUtils.v("Displaying alarm notification for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -211,11 +220,13 @@
.setAutoCancel(false)
.setDefaults(Notification.DEFAULT_LIGHTS)
.setWhen(0)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
// Setup Snooze Action
- Intent snoozeIntent = AlarmStateManager.createStateChangeIntent(context, "SNOOZE_TAG",
- instance, AlarmInstance.SNOOZE_STATE);
+ Intent snoozeIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_SNOOZE_TAG, instance, AlarmInstance.SNOOZE_STATE);
PendingIntent snoozePendingIntent = PendingIntent.getBroadcast(context, instance.hashCode(),
snoozeIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
@@ -223,8 +234,8 @@
resources.getString(R.string.alarm_alert_snooze_text), snoozePendingIntent);
// Setup Dismiss Action
- Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, "DISMISS_TAG",
- instance, AlarmInstance.DISMISSED_STATE);
+ Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context,
+ AlarmStateManager.ALARM_DISMISS_TAG, instance, AlarmInstance.DISMISSED_STATE);
PendingIntent dismissPendingIntent = PendingIntent.getBroadcast(context,
instance.hashCode(), dismissIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.addAction(R.drawable.ic_alarm_off_black,
@@ -253,7 +264,7 @@
}
public static void clearNotification(Context context, AlarmInstance instance) {
- Log.v("Clearing notifications for alarm instance: " + instance.mId);
+ LogUtils.v("Clearing notifications for alarm instance: " + instance.mId);
NotificationManager nm = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(instance.hashCode());
diff --git a/src/com/android/deskclock/alarms/AlarmRipple.java b/src/com/android/deskclock/alarms/AlarmRipple.java
deleted file mode 100644
index af30eec..0000000
--- a/src/com/android/deskclock/alarms/AlarmRipple.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2014 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.alarms;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.util.AttributeSet;
-import android.view.View;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.Paint.Style;
-
-public class AlarmRipple extends View {
- private static final int ALPHA = 150;
- private static final float OUTER_RADIUS = 400;
-
- private Paint mRipplePaint;
- private float mAlphaFactor;
- private float mCenterX;
- private float mCenterY;
- private float mTweenRadius;
-
- public AlarmRipple(Context context) {
- super(context);
- }
-
- public AlarmRipple(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public AlarmRipple(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
-
- public AlarmRipple(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
-
- if (mRipplePaint == null) {
- mRipplePaint = new Paint();
- mRipplePaint.setAntiAlias(true);
- mRipplePaint.setColor(Color.WHITE);
- }
-
- final int alpha = (int) (ALPHA * mAlphaFactor + 0.5f);
- final float radius = lerp(0, OUTER_RADIUS, mTweenRadius);
- if (alpha > 0 && radius > 0) {
- mRipplePaint.setAlpha(alpha);
- mRipplePaint.setStyle(Style.FILL);
- canvas.drawCircle(mCenterX, mCenterY, radius, mRipplePaint);
- }
- }
-
- private float lerp(float start, float stop, float amount) {
- return start + (stop - start) * amount;
- }
-
- public void setCenterX(float x) {
- mCenterX = x;
- }
-
- public void setCenterY(float y) {
- mCenterY = y;
- }
-
- public void setAlphaFactor(float a) {
- mAlphaFactor = a;
- invalidate();
- }
-
- public void setRadiusGravity(float r) {
- mTweenRadius = r;
- invalidate();
- }
-}
\ No newline at end of file
diff --git a/src/com/android/deskclock/alarms/AlarmService.java b/src/com/android/deskclock/alarms/AlarmService.java
index 56a0eff..ad59ad7 100644
--- a/src/com/android/deskclock/alarms/AlarmService.java
+++ b/src/com/android/deskclock/alarms/AlarmService.java
@@ -24,7 +24,7 @@
import android.telephony.TelephonyManager;
import com.android.deskclock.AlarmAlertWakeLock;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.provider.AlarmInstance;
/**
@@ -94,7 +94,7 @@
};
private void startAlarm(AlarmInstance instance) {
- Log.v("AlarmService.start with instance: " + instance.mId);
+ LogUtils.v("AlarmService.start with instance: " + instance.mId);
if (mCurrentAlarm != null) {
AlarmStateManager.setMissedState(this, mCurrentAlarm);
stopCurrentAlarm();
@@ -112,11 +112,11 @@
private void stopCurrentAlarm() {
if (mCurrentAlarm == null) {
- Log.v("There is no current alarm to stop");
+ LogUtils.v("There is no current alarm to stop");
return;
}
- Log.v("AlarmService.stop with instance: " + mCurrentAlarm.mId);
+ LogUtils.v("AlarmService.stop with instance: " + mCurrentAlarm.mId);
AlarmKlaxon.stop(this);
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
sendBroadcast(new Intent(ALARM_DONE_ACTION));
@@ -132,28 +132,28 @@
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
- Log.v("AlarmService.onStartCommand() with intent: " + intent.toString());
+ LogUtils.v("AlarmService.onStartCommand() with intent: " + intent.toString());
long instanceId = AlarmInstance.getId(intent.getData());
if (START_ALARM_ACTION.equals(intent.getAction())) {
ContentResolver cr = this.getContentResolver();
AlarmInstance instance = AlarmInstance.getInstance(cr, instanceId);
if (instance == null) {
- Log.e("No instance found to start alarm: " + instanceId);
+ LogUtils.e("No instance found to start alarm: " + instanceId);
if (mCurrentAlarm != null) {
// Only release lock if we are not firing alarm
AlarmAlertWakeLock.releaseCpuLock();
}
return Service.START_NOT_STICKY;
} else if (mCurrentAlarm != null && mCurrentAlarm.mId == instanceId) {
- Log.e("Alarm already started for instance: " + instanceId);
+ LogUtils.e("Alarm already started for instance: " + instanceId);
return Service.START_NOT_STICKY;
}
startAlarm(instance);
} else if(STOP_ALARM_ACTION.equals(intent.getAction())) {
if (mCurrentAlarm != null && mCurrentAlarm.mId != instanceId) {
- Log.e("Can't stop alarm for instance: " + instanceId +
- " because current alarm is: " + mCurrentAlarm.mId);
+ LogUtils.e("Can't stop alarm for instance: " + instanceId +
+ " because current alarm is: " + mCurrentAlarm.mId);
return Service.START_NOT_STICKY;
}
stopSelf();
@@ -164,7 +164,7 @@
@Override
public void onDestroy() {
- Log.v("AlarmService.onDestroy() called");
+ LogUtils.v("AlarmService.onDestroy() called");
super.onDestroy();
stopCurrentAlarm();
}
diff --git a/src/com/android/deskclock/alarms/AlarmStateManager.java b/src/com/android/deskclock/alarms/AlarmStateManager.java
index a292f15..7b21ce4 100644
--- a/src/com/android/deskclock/alarms/AlarmStateManager.java
+++ b/src/com/android/deskclock/alarms/AlarmStateManager.java
@@ -32,7 +32,7 @@
import com.android.deskclock.AlarmUtils;
import com.android.deskclock.AsyncHandler;
import com.android.deskclock.DeskClock;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.SettingsActivity;
import com.android.deskclock.Utils;
@@ -111,8 +111,13 @@
// Extra key to set the global broadcast id.
private static final String ALARM_GLOBAL_ID_EXTRA = "intent.extra.alarm.global.id";
+ // Intent category tags used to dismiss, snooze or delete an alarm
+ public static final String ALARM_DISMISS_TAG = "DISMISS_TAG";
+ public static final String ALARM_SNOOZE_TAG = "SNOOZE_TAG";
+ public static final String ALARM_DELETE_TAG = "DELETE_TAG";
+
// Intent category tag used when schedule state change intents in alarm manager.
- public static final String ALARM_MANAGER_TAG = "ALARM_MANAGER";
+ private static final String ALARM_MANAGER_TAG = "ALARM_MANAGER";
// Buffer time in seconds to fire alarm instead of marking it missed.
public static final int ALARM_FIRE_BUFFER = 15;
@@ -122,7 +127,7 @@
return prefs.getInt(ALARM_GLOBAL_ID_EXTRA, -1);
}
- public static void updateGloablIntentId(Context context) {
+ public static void updateGlobalIntentId(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
int globalId = prefs.getInt(ALARM_GLOBAL_ID_EXTRA, -1) + 1;
prefs.edit().putInt(ALARM_GLOBAL_ID_EXTRA, globalId).commit();
@@ -157,16 +162,16 @@
ContentResolver cr = context.getContentResolver();
Alarm alarm = Alarm.getAlarm(cr, instance.mAlarmId);
if (alarm == null) {
- Log.e("Parent has been deleted with instance: " + instance.toString());
+ LogUtils.e("Parent has been deleted with instance: " + instance.toString());
return;
}
if (!alarm.daysOfWeek.isRepeating()) {
if (alarm.deleteAfterUse) {
- Log.i("Deleting parent alarm: " + alarm.id);
+ LogUtils.i("Deleting parent alarm: " + alarm.id);
Alarm.deleteAlarm(cr, alarm.id);
} else {
- Log.i("Disabling parent alarm: " + alarm.id);
+ LogUtils.i("Disabling parent alarm: " + alarm.id);
alarm.enabled = false;
Alarm.updateAlarm(cr, alarm);
}
@@ -179,7 +184,7 @@
alarmTime = currentTime;
}
AlarmInstance nextRepeatedInstance = alarm.createInstanceAfter(alarmTime);
- Log.i("Creating new instance for repeating alarm " + alarm.id + " at " +
+ LogUtils.i("Creating new instance for repeating alarm " + alarm.id + " at " +
AlarmUtils.getFormattedTime(context, nextRepeatedInstance.getAlarmTime()));
AlarmInstance.addInstance(cr, nextRepeatedInstance);
registerInstance(context, nextRepeatedInstance, true);
@@ -218,7 +223,7 @@
private static void scheduleInstanceStateChange(Context context, Calendar time,
AlarmInstance instance, int newState) {
long timeInMillis = time.getTimeInMillis();
- Log.v("Scheduling state change " + newState + " to instance " + instance.mId +
+ LogUtils.v("Scheduling state change " + newState + " to instance " + instance.mId +
" at " + AlarmUtils.getFormattedTime(context, time) + " (" + timeInMillis + ")");
Intent stateChangeIntent = createStateChangeIntent(context, ALARM_MANAGER_TAG, instance,
newState);
@@ -240,7 +245,7 @@
* @param instance to disable all {@link AlarmManager} timers
*/
private static void cancelScheduledInstance(Context context, AlarmInstance instance) {
- Log.v("Canceling instance " + instance.mId + " timers");
+ LogUtils.v("Canceling instance " + instance.mId + " timers");
// Create a PendingIntent that will match any one set for this instance
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, instance.hashCode(),
@@ -261,7 +266,7 @@
* @param instance to set state to
*/
public static void setSilentState(Context context, AlarmInstance instance) {
- Log.v("Setting silent state to instance " + instance.mId);
+ LogUtils.v("Setting silent state to instance " + instance.mId);
// Update alarm in db
ContentResolver contentResolver = context.getContentResolver();
@@ -283,7 +288,7 @@
* @param instance to set state to
*/
public static void setLowNotificationState(Context context, AlarmInstance instance) {
- Log.v("Setting low notification state to instance " + instance.mId);
+ LogUtils.v("Setting low notification state to instance " + instance.mId);
// Update alarm state in db
ContentResolver contentResolver = context.getContentResolver();
@@ -305,7 +310,7 @@
* @param instance to set state to
*/
public static void setHideNotificationState(Context context, AlarmInstance instance) {
- Log.v("Setting hide notification state to instance " + instance.mId);
+ LogUtils.v("Setting hide notification state to instance " + instance.mId);
// Update alarm state in db
ContentResolver contentResolver = context.getContentResolver();
@@ -327,7 +332,7 @@
* @param instance to set state to
*/
public static void setHighNotificationState(Context context, AlarmInstance instance) {
- Log.v("Setting high notification state to instance " + instance.mId);
+ LogUtils.v("Setting high notification state to instance " + instance.mId);
// Update alarm state in db
ContentResolver contentResolver = context.getContentResolver();
@@ -349,7 +354,7 @@
* @param instance to set state to
*/
public static void setFiredState(Context context, AlarmInstance instance) {
- Log.v("Setting fire state to instance " + instance.mId);
+ LogUtils.v("Setting fire state to instance " + instance.mId);
// Update alarm state in db
ContentResolver contentResolver = context.getContentResolver();
@@ -388,7 +393,7 @@
newAlarmTime.add(Calendar.MINUTE, snoozeMinutes);
// Update alarm state and new alarm time in db.
- Log.v("Setting snoozed state to instance " + instance.mId + " for "
+ LogUtils.v("Setting snoozed state to instance " + instance.mId + " for "
+ AlarmUtils.getFormattedTime(context, newAlarmTime));
instance.setAlarmTime(newAlarmTime);
instance.mAlarmState = AlarmInstance.SNOOZE_STATE;
@@ -411,12 +416,10 @@
}
- public static String getSnoozedMinutes(Context context) {
+ public static int getSnoozedMinutes(Context context) {
final String snoozeMinutesStr = PreferenceManager.getDefaultSharedPreferences(context)
.getString(SettingsActivity.KEY_ALARM_SNOOZE, DEFAULT_SNOOZE_MINUTES);
- final int snoozeMinutes = Integer.parseInt(snoozeMinutesStr);
- return context.getResources().getQuantityString(R.plurals.alarm_alert_snooze_duration,
- snoozeMinutes, snoozeMinutes);
+ return Integer.parseInt(snoozeMinutesStr);
}
/**
@@ -428,7 +431,7 @@
* @param instance to set state to
*/
public static void setMissedState(Context context, AlarmInstance instance) {
- Log.v("Setting missed state to instance " + instance.mId);
+ LogUtils.v("Setting missed state to instance " + instance.mId);
// Stop alarm if this instance is firing it
AlarmService.stopAlarm(context, instance);
@@ -461,7 +464,7 @@
* @param instance to set state to
*/
public static void setDismissState(Context context, AlarmInstance instance) {
- Log.v("Setting dismissed state to instance " + instance.mId);
+ LogUtils.v("Setting dismissed state to instance " + instance.mId);
// Remove all other timers and notifications associated to it
unregisterInstance(context, instance);
@@ -527,7 +530,7 @@
// Handle special use cases here
if (instance.mAlarmState == AlarmInstance.DISMISSED_STATE) {
// This should never happen, but add a quick check here
- Log.e("Alarm Instance is dismissed, but never deleted");
+ LogUtils.e("Alarm Instance is dismissed, but never deleted");
setDismissState(context, instance);
return;
} else if (instance.mAlarmState == AlarmInstance.FIRED_STATE) {
@@ -667,7 +670,7 @@
setDismissState(context, instance);
break;
default:
- Log.e("Trying to change to unknown alarm state: " + state);
+ LogUtils.e("Trying to change to unknown alarm state: " + state);
}
}
@@ -692,14 +695,14 @@
private void handleIntent(Context context, Intent intent) {
final String action = intent.getAction();
- Log.v("AlarmStateManager received intent " + intent);
+ LogUtils.v("AlarmStateManager received intent " + intent);
if (CHANGE_STATE_ACTION.equals(action)) {
Uri uri = intent.getData();
AlarmInstance instance = AlarmInstance.getInstance(context.getContentResolver(),
AlarmInstance.getId(uri));
if (instance == null) {
// Not a big deal, but it shouldn't happen
- Log.e("Can not change state for unknown instance: " + uri);
+ LogUtils.e("Can not change state for unknown instance: " + uri);
return;
}
@@ -707,9 +710,14 @@
int intentId = intent.getIntExtra(ALARM_GLOBAL_ID_EXTRA, -1);
int alarmState = intent.getIntExtra(ALARM_STATE_EXTRA, -1);
if (intentId != globalId) {
- Log.i("Ignoring old Intent. IntentId: " + intentId + " GlobalId: " + globalId +
- " AlarmState: " + alarmState);
- return;
+ LogUtils.i("IntentId: " + intentId + " GlobalId: " + globalId + " AlarmState: " +
+ alarmState);
+ // Allows dismiss/snooze requests to go through
+ if (!intent.hasCategory(ALARM_DISMISS_TAG) &&
+ !intent.hasCategory(ALARM_SNOOZE_TAG)) {
+ LogUtils.i("Ignoring old Intent");
+ return;
+ }
}
if (alarmState >= 0) {
diff --git a/src/com/android/deskclock/provider/AlarmInstance.java b/src/com/android/deskclock/provider/AlarmInstance.java
index 5f0ffcd..96eefe5 100644
--- a/src/com/android/deskclock/provider/AlarmInstance.java
+++ b/src/com/android/deskclock/provider/AlarmInstance.java
@@ -26,7 +26,7 @@
import android.net.Uri;
import android.preference.PreferenceManager;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.SettingsActivity;
@@ -213,7 +213,7 @@
String dupSelector = AlarmInstance.ALARM_ID + " = " + instance.mAlarmId;
for (AlarmInstance otherInstances : getInstances(contentResolver, dupSelector)) {
if (otherInstances.getAlarmTime().equals(instance.getAlarmTime())) {
- Log.i("Detected duplicate instance in DB. Updating " + otherInstances + " to "
+ LogUtils.i("Detected duplicate instance in DB. Updating " + otherInstances + " to "
+ instance);
// Copy over the new instance values and update the db
instance.mId = otherInstances.mId;
diff --git a/src/com/android/deskclock/provider/ClockDatabaseHelper.java b/src/com/android/deskclock/provider/ClockDatabaseHelper.java
index aecced5..9004471 100644
--- a/src/com/android/deskclock/provider/ClockDatabaseHelper.java
+++ b/src/com/android/deskclock/provider/ClockDatabaseHelper.java
@@ -16,19 +16,16 @@
package com.android.deskclock.provider;
-import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
-import android.media.RingtoneManager;
import android.net.Uri;
import android.text.TextUtils;
-import com.android.deskclock.Log;
-import com.android.deskclock.alarms.AlarmStateManager;
+import com.android.deskclock.LogUtils;
import java.util.Calendar;
@@ -79,7 +76,7 @@
ClockContract.AlarmsColumns.LABEL + " TEXT NOT NULL, " +
ClockContract.AlarmsColumns.RINGTONE + " TEXT, " +
ClockContract.AlarmsColumns.DELETE_AFTER_USE + " INTEGER NOT NULL DEFAULT 0);");
- Log.i("Alarms Table created");
+ LogUtils.i("Alarms Table created");
}
private static void createInstanceTable(SQLiteDatabase db) {
@@ -98,7 +95,7 @@
ALARMS_TABLE_NAME + "(" + ClockContract.AlarmsColumns._ID + ") " +
"ON UPDATE CASCADE ON DELETE CASCADE" +
");");
- Log.i("Instance table created");
+ LogUtils.i("Instance table created");
}
private static void createCitiesTable(SQLiteDatabase db) {
@@ -107,7 +104,7 @@
ClockContract.CitiesColumns.CITY_NAME + " TEXT NOT NULL, " +
ClockContract.CitiesColumns.TIMEZONE_NAME + " TEXT NOT NULL, " +
ClockContract.CitiesColumns.TIMEZONE_OFFSET + " INTEGER NOT NULL);");
- Log.i("Cities table created");
+ LogUtils.i("Cities table created");
}
private Context mContext;
@@ -124,7 +121,7 @@
createCitiesTable(db);
// insert default alarms
- Log.i("Inserting default alarms");
+ LogUtils.i("Inserting default alarms");
String cs = ", "; //comma and space
String insertMe = "INSERT INTO " + ALARMS_TABLE_NAME + " (" +
ClockContract.AlarmsColumns.HOUR + cs +
@@ -141,9 +138,8 @@
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
- if (Log.LOGV) {
- Log.v("Upgrading alarms database from version " + oldVersion + " to " + currentVersion);
- }
+ LogUtils.v("Upgrading alarms database from version "
+ + oldVersion + " to " + currentVersion);
if (oldVersion <= VERSION_6) {
// These were not used in DB_VERSION_6, so we can just drop them.
@@ -155,7 +151,7 @@
createInstanceTable(db);
createCitiesTable(db);
- Log.i("Copying old alarms to new table");
+ LogUtils.i("Copying old alarms to new table");
String[] OLD_TABLE_COLUMNS = {
"_id",
"hour",
@@ -196,7 +192,7 @@
}
cursor.close();
- Log.i("Dropping old alarm table");
+ LogUtils.i("Dropping old alarm table");
db.execSQL("DROP TABLE IF EXISTS " + OLD_ALARMS_TABLE_NAME + ";");
}
}
@@ -232,7 +228,7 @@
if (rowId < 0) {
throw new SQLException("Failed to insert row");
}
- if (Log.LOGV) Log.v("Added alarm rowId = " + rowId);
+ LogUtils.v("Added alarm rowId = " + rowId);
return rowId;
}
diff --git a/src/com/android/deskclock/provider/ClockProvider.java b/src/com/android/deskclock/provider/ClockProvider.java
index c83bb99..66777e0 100644
--- a/src/com/android/deskclock/provider/ClockProvider.java
+++ b/src/com/android/deskclock/provider/ClockProvider.java
@@ -26,7 +26,7 @@
import android.net.Uri;
import android.text.TextUtils;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
public class ClockProvider extends ContentProvider {
private ClockDatabaseHelper mOpenHelper;
@@ -98,7 +98,7 @@
null, null, sort);
if (ret == null) {
- Log.e("Alarms.query: failed");
+ LogUtils.e("Alarms.query: failed");
} else {
ret.setNotificationUri(getContext().getContentResolver(), uri);
}
@@ -156,7 +156,7 @@
"Cannot update URL: " + uri);
}
}
- if (Log.LOGV) Log.v("*** notifyChange() id: " + alarmId + " url " + uri);
+ LogUtils.v("*** notifyChange() id: " + alarmId + " url " + uri);
getContext().getContentResolver().notifyChange(uri, null);
return count;
}
diff --git a/src/com/android/deskclock/stopwatch/StopwatchFragment.java b/src/com/android/deskclock/stopwatch/StopwatchFragment.java
index d913d5c..e4f5e86 100644
--- a/src/com/android/deskclock/stopwatch/StopwatchFragment.java
+++ b/src/com/android/deskclock/stopwatch/StopwatchFragment.java
@@ -1,15 +1,12 @@
package com.android.deskclock.stopwatch;
import android.animation.LayoutTransition;
-import android.app.Activity;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
-import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
@@ -20,44 +17,34 @@
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
-import android.widget.ImageButton;
-import android.widget.ListPopupWindow;
import android.widget.ListView;
-import android.widget.PopupWindow.OnDismissListener;
import android.widget.TextView;
import com.android.deskclock.CircleButtonsLayout;
import com.android.deskclock.CircleTimerView;
import com.android.deskclock.DeskClock;
import com.android.deskclock.DeskClockFragment;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.Utils;
import com.android.deskclock.timer.CountingTimerView;
import java.util.ArrayList;
-import java.util.List;
public class StopwatchFragment extends DeskClockFragment
implements OnSharedPreferenceChangeListener {
private static final boolean DEBUG = false;
private static final String TAG = "StopwatchFragment";
+ private static final int STOPWATCH_REFRESH_INTERVAL_MILLIS = 25;
+
int mState = Stopwatches.STOPWATCH_RESET;
// Stopwatch views that are accessed by the activity
- private ImageButton mFab;
- private ImageButton mLeftButton;
- private TextView mCenterButton;
private CircleTimerView mTime;
private CountingTimerView mTimeText;
private ListView mLapsList;
- private ImageButton mShareButton;
- private ListPopupWindow mSharePopup;
private WakeLock mWakeLock;
private CircleButtonsLayout mCircleLayout;
@@ -66,6 +53,7 @@
private LayoutTransition mCircleLayoutTransition;
private View mStartSpace;
private View mEndSpace;
+ private View mBottomSpace;
private boolean mSpacersUsed;
// Used for calculating the time from the start taking into account the pause times
@@ -93,6 +81,10 @@
// Adapter for the ListView that shows the lap times.
class LapsListAdapter extends BaseAdapter {
+ private static final int VIEW_TYPE_LAP = 0;
+ private static final int VIEW_TYPE_SPACE = 1;
+ private static final int VIEW_TYPE_COUNT = 2;
+
ArrayList<Lap> mLaps = new ArrayList<Lap>();
private final LayoutInflater mInflater;
private final String[] mFormats;
@@ -122,19 +114,33 @@
}
@Override
+ public int getItemViewType(int position) {
+ return position < mLaps.size() ? VIEW_TYPE_LAP : VIEW_TYPE_SPACE;
+ }
+
+ @Override
+ public int getViewTypeCount() {
+ return VIEW_TYPE_COUNT;
+ }
+
+ @Override
public View getView(int position, View convertView, ViewGroup parent) {
- if (mLaps.size() == 0 || position >= mLaps.size()) {
+ if (getCount() == 0) {
return null;
}
- Lap lap = getItem(position);
- View lapInfo;
- if (convertView != null) {
- lapInfo = convertView;
- } else {
- lapInfo = mInflater.inflate(R.layout.lap_view, parent, false);
+
+ // Handle request for the Spacer at the end
+ if (getItemViewType(position) == VIEW_TYPE_SPACE) {
+ return convertView != null ? convertView
+ : mInflater.inflate(R.layout.stopwatch_spacer, parent, false);
}
+
+ final View lapInfo = convertView != null ? convertView
+ : mInflater.inflate(R.layout.lap_view, parent, false);
+ Lap lap = getItem(position);
lapInfo.setTag(lap);
- TextView count = (TextView)lapInfo.findViewById(R.id.lap_number);
+
+ TextView count = (TextView) lapInfo.findViewById(R.id.lap_number);
count.setText(String.format(mLapFormat, mLaps.size() - position).toUpperCase());
setTimeText(lapInfo, lap);
@@ -150,12 +156,13 @@
@Override
public int getCount() {
- return mLaps.size();
+ // Add 1 for the spacer if list is not empty
+ return mLaps.isEmpty() ? 0 : mLaps.size() + 1;
}
@Override
public Lap getItem(int position) {
- if (mLaps.size() == 0 || position >= mLaps.size()) {
+ if (position >= mLaps.size()) {
return null;
}
return mLaps.get(position);
@@ -246,7 +253,7 @@
public StopwatchFragment() {
}
- private void rightButtonAction() {
+ private void toggleStopwatchState() {
long time = Utils.getTimeNow();
Context context = getActivity().getApplicationContext();
Intent intent = new Intent(context, StopwatchService.class);
@@ -271,7 +278,7 @@
acquireWakeLock();
break;
default:
- Log.wtf("Illegal state " + mState
+ LogUtils.wtf("Illegal state " + mState
+ " while pressing the right stopwatch button");
break;
}
@@ -283,50 +290,6 @@
// Inflate the layout for this fragment
ViewGroup v = (ViewGroup)inflater.inflate(R.layout.stopwatch_fragment, container, false);
- mLeftButton = (ImageButton)v.findViewById(R.id.stopwatch_left_button);
- mLeftButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- long time = Utils.getTimeNow();
- Context context = getActivity().getApplicationContext();
- Intent intent = new Intent(context, StopwatchService.class);
- intent.putExtra(Stopwatches.MESSAGE_TIME, time);
- intent.putExtra(Stopwatches.SHOW_NOTIF, false);
- switch (mState) {
- case Stopwatches.STOPWATCH_RUNNING:
- // Save lap time
- addLapTime(time);
- doLap();
- intent.setAction(Stopwatches.LAP_STOPWATCH);
- context.startService(intent);
- break;
- case Stopwatches.STOPWATCH_STOPPED:
- // do reset
- doReset();
- intent.setAction(Stopwatches.RESET_STOPWATCH);
- context.startService(intent);
- releaseWakeLock();
- break;
- default:
- // Happens in monkey tests
- Log.i("Illegal state " + mState
- + " while pressing the left stopwatch button");
- break;
- }
- }
- });
-
-
- mCenterButton = (TextView)v.findViewById(R.id.stopwatch_stop);
- mShareButton = (ImageButton)v.findViewById(R.id.stopwatch_share_button);
-
- mShareButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showSharePopup();
- }
- });
-
mTime = (CircleTimerView)v.findViewById(R.id.stopwatch_time);
mTimeText = (CountingTimerView)v.findViewById(R.id.stopwatch_time_text);
mLapsList = (ListView)v.findViewById(R.id.laps_list);
@@ -334,14 +297,18 @@
mLapsAdapter = new LapsListAdapter(getActivity());
mLapsList.setAdapter(mLapsAdapter);
- mTimeText.registerStopTextView(mCenterButton);
+ // Timer text serves as a virtual start/stop button.
+ mTimeText.registerVirtualButtonAction(new Runnable() {
+ @Override
+ public void run() {
+ toggleStopwatchState();
+ }
+ });
mTimeText.setVirtualButtonEnabled(true);
mCircleLayout = (CircleButtonsLayout)v.findViewById(R.id.stopwatch_circle);
- mCircleLayout.setCircleTimerViewIds(R.id.stopwatch_time, R.id.stopwatch_left_button,
- R.id.stopwatch_share_button, R.id.stopwatch_stop,
- R.dimen.plusone_reset_button_padding, R.dimen.share_button_padding,
- 0, 0); /** No label for a stopwatch**/
+ mCircleLayout.setCircleTimerViewIds(R.id.stopwatch_time, 0 /* stopwatchId */ ,
+ 0 /* labelId */, 0 /* labeltextId */);
// Animation setup
mLayoutTransition = new LayoutTransition();
@@ -359,6 +326,10 @@
mStartSpace = v.findViewById(R.id.start_space);
mEndSpace = v.findViewById(R.id.end_space);
mSpacersUsed = mStartSpace != null || mEndSpace != null;
+
+ // Only applicable on portrait, only visible when there is no lap
+ mBottomSpace = v.findViewById(R.id.bottom_space);
+
// Listener to invoke extra animation within the laps-list
mLayoutTransition.addTransitionListener(new LayoutTransition.TransitionListener() {
@Override
@@ -366,7 +337,7 @@
View view, int transitionType) {
if (view == mLapsList) {
if (transitionType == LayoutTransition.DISAPPEARING) {
- if (DEBUG) Log.v("StopwatchFragment.start laps-list disappearing");
+ if (DEBUG) LogUtils.v("StopwatchFragment.start laps-list disappearing");
boolean shiftX = view.getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
int first = mLapsList.getFirstVisiblePosition();
@@ -400,7 +371,7 @@
public void endTransition(LayoutTransition transition, ViewGroup container,
View view, int transitionType) {
if (transitionType == LayoutTransition.DISAPPEARING) {
- if (DEBUG) Log.v("StopwatchFragment.end laps-list disappearing");
+ if (DEBUG) LogUtils.v("StopwatchFragment.end laps-list disappearing");
int last = mLapsList.getLastVisiblePosition();
for (int visibleIndex = mLapsList.getFirstVisiblePosition();
visibleIndex <= last; visibleIndex++) {
@@ -434,14 +405,10 @@
mLapsList.setVisibility(lapsVisible ? View.VISIBLE : View.GONE);
if (mSpacersUsed) {
- int spacersVisibility = lapsVisible ? View.GONE : View.VISIBLE;
- if (mStartSpace != null) {
- mStartSpace.setVisibility(spacersVisibility);
- }
- if (mEndSpace != null) {
- mEndSpace.setVisibility(spacersVisibility);
- }
+ showSpacerVisibility(lapsVisible);
}
+ showBottomSpacerVisibility(lapsVisible);
+
((ViewGroup)getView()).setLayoutTransition(mLayoutTransition);
mCircleLayout.setLayoutTransition(mCircleLayoutTransition);
}
@@ -454,7 +421,8 @@
mTime.readFromSharedPref(prefs, "sw");
mTime.postInvalidate();
- setButtons(mState);
+ setFabAppearance();
+ setLeftRightButtonAppearance();
mTimeText.setTime(mAccumulatedTime, true, true);
if (mState == Stopwatches.STOPWATCH_RUNNING) {
acquireWakeLock();
@@ -474,16 +442,16 @@
@Override
public void onPause() {
- // This is called because the lock screen was activated, the window stay
- // active under it and when we unlock the screen, we see the old time for
- // a fraction of a second.
- View v = getView();
- if (v != null) {
- v.setVisibility(View.INVISIBLE);
- }
-
if (mState == Stopwatches.STOPWATCH_RUNNING) {
stopUpdateThread();
+
+ // This is called because the lock screen was activated, the window stay
+ // active under it and when we unlock the screen, we see the old time for
+ // a fraction of a second.
+ View v = getView();
+ if (v != null) {
+ v.setVisibility(View.INVISIBLE);
+ }
}
// The stopwatch must keep running even if the user closes the app so save stopwatch state
// in shared prefs
@@ -492,10 +460,6 @@
writeToSharedPref(prefs);
mTime.writeToSharedPref(prefs, "sw");
mTimeText.blinkTimeStr(false);
- if (mSharePopup != null) {
- mSharePopup.dismiss();
- mSharePopup = null;
- }
((DeskClock)getActivity()).unregisterPageChangedListener(this);
releaseWakeLock();
super.onPause();
@@ -511,36 +475,39 @@
}
private void doStop() {
- if (DEBUG) Log.v("StopwatchFragment.doStop");
+ if (DEBUG) LogUtils.v("StopwatchFragment.doStop");
stopUpdateThread();
mTime.pauseIntervalAnimation();
mTimeText.setTime(mAccumulatedTime, true, true);
mTimeText.blinkTimeStr(true);
updateCurrentLap(mAccumulatedTime);
- setButtons(Stopwatches.STOPWATCH_STOPPED);
mState = Stopwatches.STOPWATCH_STOPPED;
+ setFabAppearance();
+ setLeftRightButtonAppearance();
}
private void doStart(long time) {
- if (DEBUG) Log.v("StopwatchFragment.doStart");
+ if (DEBUG) LogUtils.v("StopwatchFragment.doStart");
mStartTime = time;
startUpdateThread();
mTimeText.blinkTimeStr(false);
if (mTime.isAnimating()) {
mTime.startIntervalAnimation();
}
- setButtons(Stopwatches.STOPWATCH_RUNNING);
mState = Stopwatches.STOPWATCH_RUNNING;
+ setFabAppearance();
+ setLeftRightButtonAppearance();
}
private void doLap() {
- if (DEBUG) Log.v("StopwatchFragment.doLap");
+ if (DEBUG) LogUtils.v("StopwatchFragment.doLap");
showLaps();
- setButtons(Stopwatches.STOPWATCH_RUNNING);
+ setFabAppearance();
+ setLeftRightButtonAppearance();
}
private void doReset() {
- if (DEBUG) Log.v("StopwatchFragment.doReset");
+ if (DEBUG) LogUtils.v("StopwatchFragment.doReset");
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(getActivity());
Utils.clearSwSharedPref(prefs);
@@ -552,113 +519,29 @@
mTime.reset();
mTimeText.setTime(mAccumulatedTime, true, true);
mTimeText.blinkTimeStr(false);
- setButtons(Stopwatches.STOPWATCH_RESET);
mState = Stopwatches.STOPWATCH_RESET;
+ setFabAppearance();
+ setLeftRightButtonAppearance();
}
- private void showShareButton(boolean show) {
- if (mShareButton != null) {
- mShareButton.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
- mShareButton.setEnabled(show);
- }
- }
-
- private void showSharePopup() {
- Intent intent = getShareIntent();
-
- Activity parent = getActivity();
- PackageManager packageManager = parent.getPackageManager();
-
- // Get a list of sharable options.
- List<ResolveInfo> shareOptions = packageManager
- .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
-
- if (shareOptions.size() == 0) {
- return;
- }
- ArrayList<CharSequence> shareOptionTitles = new ArrayList<CharSequence>();
- ArrayList<Drawable> shareOptionIcons = new ArrayList<Drawable>();
- ArrayList<CharSequence> shareOptionThreeTitles = new ArrayList<CharSequence>();
- ArrayList<Drawable> shareOptionThreeIcons = new ArrayList<Drawable>();
- ArrayList<String> shareOptionPackageNames = new ArrayList<String>();
- ArrayList<String> shareOptionClassNames = new ArrayList<String>();
-
- for (int option_i = 0; option_i < shareOptions.size(); option_i++) {
- ResolveInfo option = shareOptions.get(option_i);
- CharSequence label = option.loadLabel(packageManager);
- Drawable icon = option.loadIcon(packageManager);
- shareOptionTitles.add(label);
- shareOptionIcons.add(icon);
- if (shareOptions.size() > 4 && option_i < 3) {
- shareOptionThreeTitles.add(label);
- shareOptionThreeIcons.add(icon);
- }
- shareOptionPackageNames.add(option.activityInfo.packageName);
- shareOptionClassNames.add(option.activityInfo.name);
- }
- if (shareOptionTitles.size() > 4) {
- shareOptionThreeTitles.add(getResources().getString(R.string.see_all));
- shareOptionThreeIcons.add(getResources().getDrawable(android.R.color.transparent));
- }
-
- if (mSharePopup != null) {
- mSharePopup.dismiss();
- mSharePopup = null;
- }
- mSharePopup = new ListPopupWindow(parent);
- mSharePopup.setAnchorView(mShareButton);
- mSharePopup.setModal(true);
- // This adapter to show the rest will be used to quickly repopulate if "See all..." is hit.
- ImageLabelAdapter showAllAdapter = new ImageLabelAdapter(parent,
- R.layout.popup_window_item, shareOptionTitles, shareOptionIcons,
- shareOptionPackageNames, shareOptionClassNames);
- if (shareOptionTitles.size() > 4) {
- mSharePopup.setAdapter(new ImageLabelAdapter(parent, R.layout.popup_window_item,
- shareOptionThreeTitles, shareOptionThreeIcons, shareOptionPackageNames,
- shareOptionClassNames, showAllAdapter));
- } else {
- mSharePopup.setAdapter(showAllAdapter);
- }
-
- mSharePopup.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- CharSequence label = ((TextView) view.findViewById(R.id.title)).getText();
- if (label.equals(getResources().getString(R.string.see_all))) {
- mSharePopup.setAdapter(
- ((ImageLabelAdapter) parent.getAdapter()).getShowAllAdapter());
- mSharePopup.show();
- return;
- }
-
- Intent intent = getShareIntent();
- ImageLabelAdapter adapter = (ImageLabelAdapter) parent.getAdapter();
- String packageName = adapter.getPackageName(position);
- String className = adapter.getClassName(position);
- intent.setClassName(packageName, className);
- startActivity(intent);
- }
- });
- mSharePopup.setOnDismissListener(new OnDismissListener() {
- @Override
- public void onDismiss() {
- mSharePopup = null;
- }
- });
- mSharePopup.setWidth((int) getResources().getDimension(R.dimen.popup_window_width));
- mSharePopup.show();
- }
-
- private Intent getShareIntent() {
- Intent intent = new Intent(android.content.Intent.ACTION_SEND);
- intent.setType("text/plain");
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
- intent.putExtra(Intent.EXTRA_SUBJECT,
- Stopwatches.getShareTitle(getActivity().getApplicationContext()));
- intent.putExtra(Intent.EXTRA_TEXT, Stopwatches.buildShareResults(
+ private void shareResults() {
+ final Context context = getActivity();
+ final Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
+ shareIntent.setType("text/plain");
+ shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ shareIntent.putExtra(Intent.EXTRA_SUBJECT,
+ Stopwatches.getShareTitle(context.getApplicationContext()));
+ shareIntent.putExtra(Intent.EXTRA_TEXT, Stopwatches.buildShareResults(
getActivity().getApplicationContext(), mTimeText.getTimeString(),
getLapShareTimes(mLapsAdapter.getLapTimes())));
- return intent;
+
+ final Intent launchIntent = Intent.createChooser(shareIntent,
+ context.getString(R.string.sw_share_button));
+ try {
+ context.startActivity(launchIntent);
+ } catch (ActivityNotFoundException e) {
+ LogUtils.e("No compatible receiver is found");
+ }
}
/** Turn laps as they would be saved in prefs into format for sharing. **/
@@ -672,71 +555,18 @@
long prevLapElapsedTime = 0;
for (int lap_i = numLaps - 1; lap_i >= 0; lap_i--) {
long lap = input[lap_i];
- Log.v("lap "+lap_i+": "+lap);
+ LogUtils.v("lap " + lap_i + ": " + lap);
output[lap_i] = lap - prevLapElapsedTime;
prevLapElapsedTime = lap;
}
return output;
}
- /***
- * Update the buttons on the stopwatch according to the watch's state
- */
- private void setButtons(int state) {
- switch (state) {
- case Stopwatches.STOPWATCH_RESET:
- setButton(mLeftButton, R.string.sw_lap_button, R.drawable.ic_lap, false,
- View.INVISIBLE);
- changeFab(R.drawable.ic_fab_play);
- showShareButton(false);
- break;
- case Stopwatches.STOPWATCH_RUNNING:
- setButton(mLeftButton, R.string.sw_lap_button, R.drawable.ic_lap,
- !reachedMaxLaps(), View.VISIBLE);
- changeFab(R.drawable.ic_fab_pause);
- showShareButton(false);
- break;
- case Stopwatches.STOPWATCH_STOPPED:
- setButton(mLeftButton, R.string.sw_reset_button, R.drawable.ic_reset, true,
- View.VISIBLE);
- changeFab(R.drawable.ic_fab_play);
- showShareButton(true);
- break;
- default:
- break;
- }
- }
-
- private void changeFab(int id) {
- final Activity activity = getActivity();
- if (activity != null && activity.getClass().equals(DeskClock.class)) {
- final DeskClock deskClockActivity = (DeskClock) activity;
- if (mFab != null && deskClockActivity.getSelectedTab() == DeskClock.STOPWATCH_TAB_INDEX) {
- mFab.setImageResource(id);
- mFab.setVisibility(View.VISIBLE);
- }
- }
- }
private boolean reachedMaxLaps() {
return mLapsAdapter.getCount() >= Stopwatches.MAX_LAPS;
}
/***
- * Set a single button with the string and states provided.
- * @param b - Button view to update
- * @param text - Text in button
- * @param enabled - enable/disables the button
- * @param visibility - Show/hide the button
- */
- private void setButton(
- ImageButton b, int text, int drawableId, boolean enabled, int visibility) {
- b.setContentDescription(getActivity().getResources().getString(text));
- b.setImageResource(drawableId);
- b.setVisibility(visibility);
- b.setEnabled(enabled);
- }
-
- /***
* Handle action when user presses the lap button
* @param time - in hundredth of a second
*/
@@ -795,7 +625,7 @@
* Show or hide the laps-list
*/
private void showLaps() {
- if (DEBUG) Log.v(String.format("StopwatchFragment.showLaps: count=%d",
+ if (DEBUG) LogUtils.v(String.format("StopwatchFragment.showLaps: count=%d",
mLapsAdapter.getCount()));
boolean lapsVisible = mLapsAdapter.getCount() > 0;
@@ -804,20 +634,18 @@
// the layout transition animation for the spacers, make the changes, then re-enable
// the animation for the add/hide laps-list
if (mSpacersUsed) {
- int spacersVisibility = lapsVisible ? View.GONE : View.VISIBLE;
ViewGroup rootView = (ViewGroup) getView();
if (rootView != null) {
rootView.setLayoutTransition(null);
- if (mStartSpace != null) {
- mStartSpace.setVisibility(spacersVisibility);
- }
- if (mEndSpace != null) {
- mEndSpace.setVisibility(spacersVisibility);
- }
+
+ showSpacerVisibility(lapsVisible);
+
rootView.setLayoutTransition(mLayoutTransition);
}
}
+ showBottomSpacerVisibility(lapsVisible);
+
if (lapsVisible) {
// There are laps - show the laps-list
// No delay for the CircleButtonsLayout changes - start immediately so that the
@@ -836,6 +664,22 @@
}
}
+ private void showSpacerVisibility(boolean lapsVisible) {
+ final int spacersVisibility = lapsVisible ? View.GONE : View.VISIBLE;
+ if (mStartSpace != null) {
+ mStartSpace.setVisibility(spacersVisibility);
+ }
+ if (mEndSpace != null) {
+ mEndSpace.setVisibility(spacersVisibility);
+ }
+ }
+
+ private void showBottomSpacerVisibility(boolean lapsVisible) {
+ if (mBottomSpace != null) {
+ mBottomSpace.setVisibility(lapsVisible ? View.GONE : View.VISIBLE);
+ }
+ }
+
private void startUpdateThread() {
mTime.post(mTimeUpdateThread);
}
@@ -855,7 +699,7 @@
if (mLapsAdapter.getCount() > 0) {
updateCurrentLap(totalTime);
}
- mTime.postDelayed(mTimeUpdateThread, 10);
+ mTime.postDelayed(mTimeUpdateThread, STOPWATCH_REFRESH_INTERVAL_MILLIS);
}
};
@@ -921,60 +765,6 @@
}
}
- public class ImageLabelAdapter extends ArrayAdapter<CharSequence> {
- private final ArrayList<CharSequence> mStrings;
- private final ArrayList<Drawable> mDrawables;
- private final ArrayList<String> mPackageNames;
- private final ArrayList<String> mClassNames;
- private ImageLabelAdapter mShowAllAdapter;
-
- public ImageLabelAdapter(Context context, int textViewResourceId,
- ArrayList<CharSequence> strings, ArrayList<Drawable> drawables,
- ArrayList<String> packageNames, ArrayList<String> classNames) {
- super(context, textViewResourceId, strings);
- mStrings = strings;
- mDrawables = drawables;
- mPackageNames = packageNames;
- mClassNames = classNames;
- }
-
- // Use this constructor if showing a "see all" option, to pass in the adapter
- // that will be needed to quickly show all the remaining options.
- public ImageLabelAdapter(Context context, int textViewResourceId,
- ArrayList<CharSequence> strings, ArrayList<Drawable> drawables,
- ArrayList<String> packageNames, ArrayList<String> classNames,
- ImageLabelAdapter showAllAdapter) {
- super(context, textViewResourceId, strings);
- mStrings = strings;
- mDrawables = drawables;
- mPackageNames = packageNames;
- mClassNames = classNames;
- mShowAllAdapter = showAllAdapter;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- LayoutInflater li = getActivity().getLayoutInflater();
- View row = li.inflate(R.layout.popup_window_item, parent, false);
- ((TextView) row.findViewById(R.id.title)).setText(
- mStrings.get(position));
- row.findViewById(R.id.icon).setBackground(mDrawables.get(position));
- return row;
- }
-
- public String getPackageName(int position) {
- return mPackageNames.get(position);
- }
-
- public String getClassName(int position) {
- return mClassNames.get(position);
- }
-
- public ImageLabelAdapter getShowAllAdapter() {
- return mShowAllAdapter;
- }
- }
-
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (prefs.equals(PreferenceManager.getDefaultSharedPreferences(getActivity()))) {
@@ -1008,14 +798,92 @@
}
@Override
- public void respondClick(View view){
- rightButtonAction();
+ public void onFabClick(View view){
+ toggleStopwatchState();
}
@Override
- public void setFabAppearance(ImageButton fab) {
- mFab = fab;
- changeFab(mState == Stopwatches.STOPWATCH_RUNNING ? R.drawable.ic_fab_pause :
- R.drawable.ic_fab_play);
+ public void onLeftButtonClick(View view) {
+ final long time = Utils.getTimeNow();
+ final Context context = getActivity().getApplicationContext();
+ final Intent intent = new Intent(context, StopwatchService.class);
+ intent.putExtra(Stopwatches.MESSAGE_TIME, time);
+ intent.putExtra(Stopwatches.SHOW_NOTIF, false);
+ switch (mState) {
+ case Stopwatches.STOPWATCH_RUNNING:
+ // Save lap time
+ addLapTime(time);
+ doLap();
+ intent.setAction(Stopwatches.LAP_STOPWATCH);
+ context.startService(intent);
+ break;
+ case Stopwatches.STOPWATCH_STOPPED:
+ // do reset
+ doReset();
+ intent.setAction(Stopwatches.RESET_STOPWATCH);
+ context.startService(intent);
+ releaseWakeLock();
+ break;
+ default:
+ // Happens in monkey tests
+ LogUtils.i("Illegal state " + mState + " while pressing the left stopwatch button");
+ break;
+ }
+ }
+
+ @Override
+ public void onRightButtonClick(View view) {
+ shareResults();
+ }
+
+ @Override
+ public void setFabAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mFab == null || activity.getSelectedTab() != DeskClock.STOPWATCH_TAB_INDEX) {
+ return;
+ }
+ if (mState == Stopwatches.STOPWATCH_RUNNING) {
+ mFab.setImageResource(R.drawable.ic_fab_pause);
+ mFab.setContentDescription(getString(R.string.sw_stop_button));
+ } else {
+ mFab.setImageResource(R.drawable.ic_fab_play);
+ mFab.setContentDescription(getString(R.string.sw_start_button));
+ }
+ mFab.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void setLeftRightButtonAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mLeftButton == null || mRightButton == null ||
+ activity.getSelectedTab() != DeskClock.STOPWATCH_TAB_INDEX) {
+ return;
+ }
+ mRightButton.setImageResource(R.drawable.ic_share);
+ mRightButton.setContentDescription(getString(R.string.sw_share_button));
+
+ switch (mState) {
+ case Stopwatches.STOPWATCH_RESET:
+ mLeftButton.setImageResource(R.drawable.ic_lap);
+ mLeftButton.setContentDescription(getString(R.string.sw_lap_button));
+ mLeftButton.setEnabled(false);
+ mLeftButton.setVisibility(View.INVISIBLE);
+ mRightButton.setVisibility(View.INVISIBLE);
+ break;
+ case Stopwatches.STOPWATCH_RUNNING:
+ mLeftButton.setImageResource(R.drawable.ic_lap);
+ mLeftButton.setContentDescription(getString(R.string.sw_lap_button));
+ mLeftButton.setEnabled(!reachedMaxLaps());
+ mLeftButton.setVisibility(View.VISIBLE);
+ mRightButton.setVisibility(View.INVISIBLE);
+ break;
+ case Stopwatches.STOPWATCH_STOPPED:
+ mLeftButton.setImageResource(R.drawable.ic_reset);
+ mLeftButton.setContentDescription(getString(R.string.sw_reset_button));
+ mLeftButton.setEnabled(true);
+ mLeftButton.setVisibility(View.VISIBLE);
+ mRightButton.setVisibility(View.VISIBLE);
+ break;
+ }
}
}
diff --git a/src/com/android/deskclock/stopwatch/StopwatchService.java b/src/com/android/deskclock/stopwatch/StopwatchService.java
index a76b7ce..1efecff 100644
--- a/src/com/android/deskclock/stopwatch/StopwatchService.java
+++ b/src/com/android/deskclock/stopwatch/StopwatchService.java
@@ -245,7 +245,9 @@
.setOngoing(clockRunning)
.setDeleteIntent(PendingIntent.getService(context, 0, dismissIntent, 0))
.setSmallIcon(R.drawable.ic_tab_stopwatch_activated)
- .setPriority(Notification.PRIORITY_MAX).build();
+ .setPriority(Notification.PRIORITY_MAX)
+ .setLocalOnly(true)
+ .build();
notification.bigContentView = remoteViewsExpanded;
mNotificationManager.notify(NOTIFICATION_ID, notification);
}
diff --git a/src/com/android/deskclock/timer/CountingTimerView.java b/src/com/android/deskclock/timer/CountingTimerView.java
index 55c0b68..adcbc84 100644
--- a/src/com/android/deskclock/timer/CountingTimerView.java
+++ b/src/com/android/deskclock/timer/CountingTimerView.java
@@ -28,7 +28,7 @@
import android.view.accessibility.AccessibilityManager;
import android.widget.TextView;
-import com.android.deskclock.Log;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.R;
import com.android.deskclock.Utils;
@@ -74,7 +74,6 @@
private final int mPressedColor;
private final int mWhiteColor;
private final int mAccentColor;
- private TextView mStopStartTextView;
private final AccessibilityManager mAccessibilityManager;
// Fields for the text serving as a virtual button.
@@ -110,7 +109,7 @@
mSpacingRatio = spacingRatio;
if (TextUtils.isEmpty(allDigits)) {
- Log.wtf("Locale digits missing - using English");
+ LogUtils.wtf("Locale digits missing - using English");
allDigits = "0123456789";
}
@@ -548,7 +547,6 @@
private void virtualButtonPressed(boolean pressedOn) {
mVirtualButtonPressedOn = pressedOn;
- mStopStartTextView.setTextColor(pressedOn ? mPressedColor : mWhiteColor);
invalidate();
}
@@ -627,13 +625,7 @@
float yTextStart = yCenter + mTextHeight/2 - (mTextHeight * FONT_VERTICAL_OFFSET);
// Text color differs based on pressed state.
- int textColor;
- if (mVirtualButtonPressedOn) {
- textColor = mPressedColor;
- mStopStartTextView.setTextColor(mPressedColor);
- } else {
- textColor = mDefaultColor;
- }
+ final int textColor = mVirtualButtonPressedOn ? mPressedColor : mDefaultColor;
mPaintBigThin.setColor(textColor);
mPaintMed.setColor(textColor);
@@ -657,8 +649,4 @@
mRemeasureText = true;
resetTextSize();
}
-
- public void registerStopTextView(TextView stopStartTextView) {
- mStopStartTextView = stopStartTextView;
- }
}
diff --git a/src/com/android/deskclock/timer/FragmentStatePagerAdapter2.java b/src/com/android/deskclock/timer/FragmentStatePagerAdapter2.java
new file mode 100644
index 0000000..0d6a8ff
--- /dev/null
+++ b/src/com/android/deskclock/timer/FragmentStatePagerAdapter2.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2014 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.timer;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.support.v13.app.FragmentCompat;
+import android.support.v13.app.FragmentStatePagerAdapter;
+import android.support.v4.util.SparseArrayCompat;
+import android.support.v4.view.PagerAdapter;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Forked from support lib's {@link FragmentStatePagerAdapter}, with some minor
+ * changes that couldn't be accomplished through subclassing: we need to override the
+ * onDataSetChanged method using the private member mFragments which cannot be accessed outside.
+ *
+ * This class is used for TimerFragment's vertical view pager only. It removed the save/restore
+ * functionality, because all the fragments needs to be destroyed whenever TimerFragment's
+ * onPause, in order to bind the newly created timer view with the new pager fragment.
+ */
+public abstract class FragmentStatePagerAdapter2 extends PagerAdapter {
+
+ private final FragmentManager mFragmentManager;
+ private FragmentTransaction mCurTransaction = null;
+
+ private SparseArrayCompat<Fragment> mFragments = new SparseArrayCompat<Fragment>();
+ private Fragment mCurrentPrimaryItem = null;
+
+
+ public FragmentStatePagerAdapter2(FragmentManager fm) {
+ mFragmentManager = fm;
+ }
+
+ /**
+ * Return the Fragment associated with a specified position.
+ */
+ public abstract Fragment getItem(int position);
+
+ @Override
+ public void startUpdate(ViewGroup container) {
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int position) {
+ // If we already have this item instantiated, there is nothing
+ // to do. This can happen when we are restoring the entire pager
+ // from its saved state, where the fragment manager has already
+ // taken care of restoring the fragments we previously had instantiated.
+ final Fragment existing = mFragments.get(position);
+ if (existing != null) {
+ return existing;
+ }
+
+ if (mCurTransaction == null) {
+ mCurTransaction = mFragmentManager.beginTransaction();
+ }
+
+ Fragment fragment = getItem(position);
+ if (fragment != mCurrentPrimaryItem) {
+ setItemVisible(fragment, false);
+ }
+ mFragments.put(position, fragment);
+ mCurTransaction.add(container.getId(), fragment);
+
+ return fragment;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, Object object) {
+ Fragment fragment = (Fragment) object;
+
+ if (mCurTransaction == null) {
+ mCurTransaction = mFragmentManager.beginTransaction();
+ }
+ mFragments.delete(position);
+
+ mCurTransaction.remove(fragment);
+ }
+
+ @Override
+ public void setPrimaryItem(ViewGroup container, int position, Object object) {
+ Fragment fragment = (Fragment) object;
+ if (fragment != mCurrentPrimaryItem) {
+ if (mCurrentPrimaryItem != null) {
+ setItemVisible(mCurrentPrimaryItem, false);
+ }
+ if (fragment != null) {
+ setItemVisible(fragment, true);
+ }
+ mCurrentPrimaryItem = fragment;
+ }
+ }
+
+ @Override
+ public void finishUpdate(ViewGroup container) {
+ if (mCurTransaction != null) {
+ mCurTransaction.commitAllowingStateLoss();
+ mCurTransaction = null;
+ mFragmentManager.executePendingTransactions();
+ }
+ }
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {
+ return ((Fragment) object).getView() == view;
+ }
+
+ public void setItemVisible(Fragment item, boolean visible) {
+ FragmentCompat.setMenuVisibility(item, visible);
+ FragmentCompat.setUserVisibleHint(item, visible);
+ }
+
+ @Override
+ public void notifyDataSetChanged() {
+ // update positions in mFragments
+ SparseArrayCompat<Fragment> newFragments =
+ new SparseArrayCompat<Fragment>(mFragments.size());
+ for (int i = 0; i < mFragments.size(); i++) {
+ final int oldPos = mFragments.keyAt(i);
+ final Fragment f = mFragments.valueAt(i);
+ final int newPos = getItemPosition(f);
+
+ if (newPos != POSITION_NONE) {
+ final int pos = (newPos >= 0) ? newPos : oldPos;
+ newFragments.put(pos, f);
+ }
+ }
+ mFragments = newFragments;
+
+ super.notifyDataSetChanged();
+ }
+
+ public Fragment getFragmentAt(int position) {
+ return mFragments.valueAt(position);
+ }
+
+}
diff --git a/src/com/android/deskclock/timer/TimerAlertFullScreen.java b/src/com/android/deskclock/timer/TimerAlertFullScreen.java
index 2d2c274..27e18a9 100644
--- a/src/com/android/deskclock/timer/TimerAlertFullScreen.java
+++ b/src/com/android/deskclock/timer/TimerAlertFullScreen.java
@@ -27,12 +27,12 @@
import com.android.deskclock.R;
import com.android.deskclock.Utils;
-import com.android.deskclock.timer.TimerFragment.OnEmptyListListener;
+import com.android.deskclock.timer.TimerFullScreenFragment.OnEmptyListListener;
/**
* Timer alarm alert: pops visible indicator. This activity is the version which
* shows over the lock screen.
- * This activity re-uses TimerFragment GUI
+ * This activity re-uses TimerFullScreenFragment GUI
*/
public class TimerAlertFullScreen extends Activity implements OnEmptyListListener {
@@ -58,7 +58,7 @@
// Don't create overlapping fragments.
if (getFragment() == null) {
- TimerFragment timerFragment = new TimerFragment();
+ TimerFullScreenFragment timerFragment = new TimerFullScreenFragment();
// Create fragment and give it an argument to only show
// timers in STATE_TIMESUP state
@@ -118,7 +118,7 @@
*/
@Override
protected void onNewIntent(Intent intent) {
- TimerFragment timerFragment = getFragment();
+ TimerFullScreenFragment timerFragment = getFragment();
if (timerFragment != null) {
timerFragment.restartAdapter();
}
@@ -132,15 +132,10 @@
super.onConfigurationChanged(newConfig);
}
- @Override
- protected void onStop() {
- super.onStop();
- }
-
protected void stopAllTimesUpTimers() {
- TimerFragment timerFragment = getFragment();
+ TimerFullScreenFragment timerFragment = getFragment();
if (timerFragment != null) {
- timerFragment.stopAllTimesUpTimers();
+ timerFragment.updateAllTimesUpTimers(true /* stop */);
}
}
@@ -158,7 +153,7 @@
Utils.showInUseNotifications(this);
}
- private TimerFragment getFragment() {
- return (TimerFragment) getFragmentManager().findFragmentByTag(FRAGMENT);
+ private TimerFullScreenFragment getFragment() {
+ return (TimerFullScreenFragment) getFragmentManager().findFragmentByTag(FRAGMENT);
}
}
diff --git a/src/com/android/deskclock/timer/TimerFragment.java b/src/com/android/deskclock/timer/TimerFragment.java
index e9cb193..33108ea 100644
--- a/src/com/android/deskclock/timer/TimerFragment.java
+++ b/src/com/android/deskclock/timer/TimerFragment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2014 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.
@@ -18,943 +18,333 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
+import android.animation.TimeInterpolator;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.content.res.Configuration;
import android.content.res.Resources;
-import android.media.Image;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.v4.view.ViewPager;
import android.text.format.DateUtils;
-import android.util.Log;
-import android.view.Gravity;
+import android.transition.AutoTransition;
+import android.transition.Transition;
+import android.transition.TransitionManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.view.ViewGroup.LayoutParams;
+import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
-import android.widget.FrameLayout;
import android.widget.ImageButton;
-import android.widget.TextView;
+import android.widget.ImageView;
-import com.android.deskclock.CircleButtonsLayout;
+import com.android.deskclock.AnimatorUtils;
import com.android.deskclock.DeskClock;
-import com.android.deskclock.DeskClock.OnTapListener;
import com.android.deskclock.DeskClockFragment;
-import com.android.deskclock.LabelDialogFragment;
import com.android.deskclock.R;
import com.android.deskclock.TimerSetupView;
import com.android.deskclock.Utils;
+import com.android.deskclock.VerticalViewPager;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.Timer;
+public class TimerFragment extends DeskClockFragment implements OnSharedPreferenceChangeListener {
+ public static final long ANIMATION_TIME_MILLIS = DateUtils.SECOND_IN_MILLIS / 3;
-import com.android.deskclock.widget.sgv.SgvAnimationHelper.AnimationIn;
-import com.android.deskclock.widget.sgv.SgvAnimationHelper.AnimationOut;
-import com.android.deskclock.widget.sgv.StaggeredGridView;
-import com.android.deskclock.widget.sgv.GridAdapter;
-
-public class TimerFragment extends DeskClockFragment
- implements OnClickListener, OnSharedPreferenceChangeListener {
-
- private static final String TAG = "TimerFragment";
private static final String KEY_SETUP_SELECTED = "_setup_selected";
private static final String KEY_ENTRY_STATE = "entry_state";
- public static final String GOTO_SETUP_VIEW = "deskclock.timers.gotosetup";
+ private static final int PAGINATION_DOTS_COUNT = 4;
+ private static final String CURR_PAGE = "_currPage";
+ private static final TimeInterpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator();
+ private static final TimeInterpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator();
+ private static final long ROTATE_ANIM_DURATION_MILIS = 150;
- private Bundle mViewState = null;
- private StaggeredGridView mTimersList;
- private View mTimersListPage;
- private int mColumnCount;
- private ImageButton mCancel;
- private ImageButton mFab;
- private View mTimerFooter;
- private TimerSetupView mTimerSetup;
- private TimersListAdapter mAdapter;
private boolean mTicking = false;
+ private TimerSetupView mSetupView;
+ private VerticalViewPager mViewPager;
+ private TimerFragmentAdapter mAdapter;
+ private ImageButton mCancel;
+ private ViewGroup mContentView;
+ private View mTimerView;
+ private View mLastView;
+ private ImageView[] mPageIndicators = new ImageView[PAGINATION_DOTS_COUNT];
+ private Transition mDeleteTransition;
private SharedPreferences mPrefs;
+ private Bundle mViewState = null;
private NotificationManager mNotificationManager;
- private OnEmptyListListener mOnEmptyListListener;
- private View mLastVisibleView = null; // used to decide if to set the view or animate to it.
- public TimerFragment() {
- }
-
- class ClickAction {
- public static final int ACTION_STOP = 1;
- public static final int ACTION_PLUS_ONE = 2;
- public static final int ACTION_DELETE = 3;
-
- public int mAction;
- public TimerObj mTimer;
-
- public ClickAction(int action, TimerObj t) {
- mAction = action;
- mTimer = t;
- }
- }
-
- // Container Activity that requests TIMESUP_MODE must implement this interface
- public interface OnEmptyListListener {
- public void onEmptyList();
- public void onListChanged();
- }
-
- TimersListAdapter createAdapter(Context context, SharedPreferences prefs) {
- if (mOnEmptyListListener == null) {
- return new TimersListAdapter(context, prefs);
- } else {
- return new TimesUpListAdapter(context, prefs);
- }
- }
-
- class TimersListAdapter extends GridAdapter {
-
- ArrayList<TimerObj> mTimers = new ArrayList<TimerObj> ();
- Context mContext;
- SharedPreferences mmPrefs;
-
- public TimersListAdapter(Context context, SharedPreferences prefs) {
- mContext = context;
- mmPrefs = prefs;
- }
-
- @Override
- public int getCount() {
- return mTimers.size();
- }
-
- @Override
- public boolean hasStableIds() {
- return true;
- }
-
- @Override
- public TimerObj getItem(int p) {
- return mTimers.get(p);
- }
-
- @Override
- public long getItemId(int p) {
- if (p >= 0 && p < mTimers.size()) {
- return mTimers.get(p).mTimerId;
- }
- return 0;
- }
-
- public void deleteTimer(int id) {
- for (int i = 0; i < mTimers.size(); i++) {
- TimerObj t = mTimers.get(i);
-
- if (t.mTimerId == id) {
- if (t.mView != null) {
- ((TimerListItem) t.mView).stop();
- }
- t.deleteFromSharedPref(mmPrefs);
- mTimers.remove(i);
- if (mTimers.size() == 1 && mColumnCount > 1) {
- // If we're going from two timers to one (in the same row), we don't want to
- // animate the translation because we're changing the layout params span
- // from 1 to 2, and the animation doesn't handle that very well. So instead,
- // just fade out and in.
- mTimersList.setAnimationMode(AnimationIn.FADE, AnimationOut.FADE);
- } else {
- mTimersList.setAnimationMode(
- AnimationIn.FLY_IN_NEW_VIEWS, AnimationOut.FADE);
- }
- notifyDataSetChanged();
- return;
- }
- }
- }
-
- protected int findTimerPositionById(int id) {
- for (int i = 0; i < mTimers.size(); i++) {
- TimerObj t = mTimers.get(i);
- if (t.mTimerId == id) {
- return i;
- }
- }
- return -1;
- }
-
- public void removeTimer(TimerObj timerObj) {
- int position = findTimerPositionById(timerObj.mTimerId);
- if (position >= 0) {
- mTimers.remove(position);
- notifyDataSetChanged();
- }
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- TimerListItem v = new TimerListItem (mContext); // TODO: Need to recycle convertView.
-
- final TimerObj o = (TimerObj)getItem(position);
- o.mView = v;
- long timeLeft = o.updateTimeLeft(false);
- boolean drawRed = o.mState != TimerObj.STATE_RESTART;
- v.set(o.mOriginalLength, timeLeft, drawRed);
- v.setTime(timeLeft, true);
- switch (o.mState) {
- case TimerObj.STATE_RUNNING:
- v.start();
- break;
- case TimerObj.STATE_TIMESUP:
- v.timesUp();
- break;
- case TimerObj.STATE_DONE:
- v.done();
- break;
- default:
- break;
- }
-
- // Timer text serves as a virtual start/stop button.
- final CountingTimerView countingTimerView = (CountingTimerView)
- v.findViewById(R.id.timer_time_text);
- countingTimerView.registerVirtualButtonAction(new Runnable() {
+ private final ViewPager.OnPageChangeListener mOnPageChangeListener =
+ new ViewPager.SimpleOnPageChangeListener() {
@Override
- public void run() {
- TimerFragment.this.onClickHelper(
- new ClickAction(ClickAction.ACTION_STOP, o));
+ public void onPageSelected(int position) {
+ highlightPageIndicator(position);
+ TimerFragment.this.setTimerViewFabIcon(getCurrentTimer());
}
- });
-
- ImageButton delete = (ImageButton)v.findViewById(R.id.timer_delete);
- delete.setOnClickListener(TimerFragment.this);
- delete.setTag(new ClickAction(ClickAction.ACTION_DELETE, o));
- ImageButton leftButton = (ImageButton)v. findViewById(R.id.timer_plus_one);
- leftButton.setOnClickListener(TimerFragment.this);
- leftButton.setTag(new ClickAction(ClickAction.ACTION_PLUS_ONE, o));
- TextView stop = (TextView)v. findViewById(R.id.timer_stop);
- stop.setTag(new ClickAction(ClickAction.ACTION_STOP, o));
- TimerFragment.this.setTimerButtons(o);
-
- countingTimerView.registerStopTextView(stop);
- CircleButtonsLayout circleLayout =
- (CircleButtonsLayout)v.findViewById(R.id.timer_circle);
- circleLayout.setCircleTimerViewIds(
- R.id.timer_time, R.id.timer_plus_one, R.id.timer_delete, R.id.timer_stop,
- R.dimen.plusone_reset_button_padding, R.dimen.delete_button_padding,
- R.id.timer_label, R.id.timer_label_text);
-
- FrameLayout label = (FrameLayout)v. findViewById(R.id.timer_label);
- ImageButton labelIcon = (ImageButton)v. findViewById(R.id.timer_label_icon);
- TextView labelText = (TextView)v. findViewById(R.id.timer_label_text);
- if (o.mLabel.equals("")) {
- labelText.setVisibility(View.GONE);
- labelIcon.setVisibility(View.VISIBLE);
- } else {
- labelText.setText(o.mLabel);
- labelText.setVisibility(View.VISIBLE);
- labelIcon.setVisibility(View.GONE);
- }
- if (getActivity() instanceof DeskClock) {
- label.setOnTouchListener(new OnTapListener(getActivity(), labelText) {
- @Override
- protected void processClick(View v) {
- onLabelPressed(o);
- }
- });
- } else {
- labelIcon.setVisibility(View.INVISIBLE);
- }
- return v;
- }
-
- @Override
- public int getItemColumnSpan(Object item, int position) {
- // This returns the width for a specified position. If we only have one item, have it
- // span all columns so that it's centered. Otherwise, all timers should just span one.
- if (getCount() == 1) {
- return mColumnCount;
- } else {
- return 1;
- }
- }
-
- public void addTimer(TimerObj t) {
- mTimers.add(0, t);
- sort();
- }
-
- public void onSaveInstanceState(Bundle outState) {
- TimerObj.putTimersInSharedPrefs(mmPrefs, mTimers);
- }
-
- public void onRestoreInstanceState(Bundle outState) {
- TimerObj.getTimersFromSharedPrefs(mmPrefs, mTimers);
- sort();
- }
-
- public void saveGlobalState() {
- TimerObj.putTimersInSharedPrefs(mmPrefs, mTimers);
- }
-
- public void sort() {
- if (getCount() > 0) {
- Collections.sort(mTimers, mTimersCompare);
- notifyDataSetChanged();
- }
- }
-
- private final Comparator<TimerObj> mTimersCompare = new Comparator<TimerObj>() {
- static final int BUZZING = 0;
- static final int IN_USE = 1;
- static final int NOT_USED = 2;
-
- protected int getSection(TimerObj timerObj) {
- switch (timerObj.mState) {
- case TimerObj.STATE_TIMESUP:
- return BUZZING;
- case TimerObj.STATE_RUNNING:
- case TimerObj.STATE_STOPPED:
- return IN_USE;
- default:
- return NOT_USED;
- }
- }
-
- @Override
- public int compare(TimerObj o1, TimerObj o2) {
- int section1 = getSection(o1);
- int section2 = getSection(o2);
- if (section1 != section2) {
- return (section1 < section2) ? -1 : 1;
- } else if (section1 == BUZZING || section1 == IN_USE) {
- return (o1.mTimeLeft < o2.mTimeLeft) ? -1 : 1;
- } else {
- return (o1.mSetupLength < o2.mSetupLength) ? -1 : 1;
- }
- }
- };
- }
-
- class TimesUpListAdapter extends TimersListAdapter {
-
- public TimesUpListAdapter(Context context, SharedPreferences prefs) {
- super(context, prefs);
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- // This adapter has a data subset and never updates entire database
- // Individual timers are updated in button handlers.
- }
-
- @Override
- public void saveGlobalState() {
- // This adapter has a data subset and never updates entire database
- // Individual timers are updated in button handlers.
- }
-
- @Override
- public void onRestoreInstanceState(Bundle outState) {
- // This adapter loads a subset
- TimerObj.getTimersFromSharedPrefs(mmPrefs, mTimers, TimerObj.STATE_TIMESUP);
-
- if (getCount() == 0) {
- mOnEmptyListListener.onEmptyList();
- } else {
- Collections.sort(mTimers, new Comparator<TimerObj>() {
- @Override
- public int compare(TimerObj o1, TimerObj o2) {
- return (o1.mTimeLeft < o2.mTimeLeft) ? -1 : 1;
- }
- });
- }
- }
- }
+ };
private final Runnable mClockTick = new Runnable() {
boolean mVisible = true;
final static int TIME_PERIOD_MS = 1000;
+ final static int TIME_DELAY_MS = 20;
final static int SPLIT = TIME_PERIOD_MS / 2;
@Override
public void run() {
// Setup for blinking
- boolean visible = Utils.getTimeNow() % TIME_PERIOD_MS < SPLIT;
- boolean toggle = mVisible != visible;
+ final boolean visible = Utils.getTimeNow() % TIME_PERIOD_MS < SPLIT;
+ final boolean toggle = mVisible != visible;
mVisible = visible;
- for (int i = 0; i < mAdapter.getCount(); i ++) {
- TimerObj t = mAdapter.getItem(i);
+ for (int i = 0; i < mAdapter.getCount(); i++) {
+ final TimerObj t = mAdapter.getTimerAt(i);
if (t.mState == TimerObj.STATE_RUNNING || t.mState == TimerObj.STATE_TIMESUP) {
- long timeLeft = t.updateTimeLeft(false);
+ final long timeLeft = t.updateTimeLeft(false);
if (t.mView != null) {
- ((TimerListItem)(t.mView)).setTime(timeLeft, false);
+ t.mView.setTime(timeLeft, false);
// Update button every 1/2 second
if (toggle) {
- ImageButton leftButton = (ImageButton)
- t.mView.findViewById(R.id.timer_plus_one);
- leftButton.setEnabled(canAddMinute(t));
+ final ImageButton addMinuteButton = (ImageButton)
+ t.mView.findViewById(R.id.reset_add);
+ final boolean canAddMinute = TimerObj.MAX_TIMER_LENGTH - t.mTimeLeft
+ > TimerObj.MINUTE_IN_MILLIS;
+ addMinuteButton.setEnabled(canAddMinute);
}
}
}
if (t.mTimeLeft <= 0 && t.mState != TimerObj.STATE_DONE
&& t.mState != TimerObj.STATE_RESTART) {
t.mState = TimerObj.STATE_TIMESUP;
- TimerFragment.this.setTimerButtons(t);
if (t.mView != null) {
- ((TimerListItem)(t.mView)).timesUp();
+ t.mView.timesUp();
}
}
-
// The blinking
if (toggle && t.mView != null) {
if (t.mState == TimerObj.STATE_TIMESUP) {
- ((TimerListItem)(t.mView)).setCircleBlink(mVisible);
+ t.mView.setCircleBlink(mVisible);
}
if (t.mState == TimerObj.STATE_STOPPED) {
- ((TimerListItem)(t.mView)).setTextBlink(mVisible);
+ t.mView.setTextBlink(mVisible);
}
}
}
- mTimersList.postDelayed(mClockTick, 20);
+ mTimerView.postDelayed(mClockTick, TIME_DELAY_MS);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
- // Cache instance data and consume in first call to setupPage()
- if (savedInstanceState != null) {
- mViewState = savedInstanceState;
- }
-
super.onCreate(savedInstanceState);
+ mViewState = savedInstanceState;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- View v = inflater.inflate(R.layout.timer_fragment, container, false);
-
- // Handle arguments from parent
- Bundle bundle = getArguments();
- if (bundle != null && bundle.containsKey(Timers.TIMESUP_MODE)) {
- if (bundle.getBoolean(Timers.TIMESUP_MODE, false)) {
- try {
- mOnEmptyListListener = (OnEmptyListListener) getActivity();
- } catch (ClassCastException e) {
- Log.wtf(TAG, getActivity().toString() + " must implement OnEmptyListListener");
- }
- }
- }
-
- mTimersList = (StaggeredGridView) v.findViewById(R.id.timers_list);
- // For tablets in landscape, the count will be 2. All else will be 1.
- mColumnCount = getResources().getInteger(R.integer.timer_column_count);
- mTimersList.setColumnCount(mColumnCount);
- // Set this to true; otherwise adding new views to the end of the list won't cause
- // everything above it to be filled in correctly.
- mTimersList.setGuardAgainstJaggedEdges(true);
-
- mTimersListPage = v.findViewById(R.id.timers_list_page);
- mTimerSetup = (TimerSetupView)v.findViewById(R.id.timer_setup);
- mCancel = (ImageButton)v.findViewById(R.id.timer_cancel);
+ Bundle savedInstanceState) {
+ final View view = inflater.inflate(R.layout.timer_fragment, container, false);
+ mContentView = (ViewGroup) view;
+ mTimerView = view.findViewById(R.id.timer_view);
+ mSetupView = (TimerSetupView) view.findViewById(R.id.timer_setup);
+ mViewPager = (VerticalViewPager) view.findViewById(R.id.vertical_view_pager);
+ mPageIndicators[0] = (ImageView) view.findViewById(R.id.page_indicator0);
+ mPageIndicators[1] = (ImageView) view.findViewById(R.id.page_indicator1);
+ mPageIndicators[2] = (ImageView) view.findViewById(R.id.page_indicator2);
+ mPageIndicators[3] = (ImageView) view.findViewById(R.id.page_indicator3);
+ mCancel = (ImageButton) view.findViewById(R.id.timer_cancel);
mCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mAdapter.getCount() != 0) {
- gotoTimersView();
+ final AnimatorListenerAdapter adapter = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mSetupView.reset(); // Make sure the setup is cleared for next time
+ mSetupView.setScaleX(1.0f); // Reset the scale for setup view
+ goToPagerView();
+ }
+ };
+ createRotateAnimator(adapter, false).start();
}
}
});
+ mDeleteTransition = new AutoTransition();
+ mDeleteTransition.setDuration(ANIMATION_TIME_MILLIS / 2);
+ mDeleteTransition.setInterpolator(new AccelerateDecelerateInterpolator());
- mTimerFooter = v.findViewById(R.id.timer_footer);
- mTimerFooter.setVisibility(mOnEmptyListListener == null ? View.VISIBLE : View.GONE);
- mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- mNotificationManager = (NotificationManager)
- getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
-
- return v;
+ return view;
}
@Override
- public void onDestroyView() {
- mViewState = new Bundle();
- saveViewState(mViewState);
- super.onDestroyView();
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ final Context context = getActivity();
+ mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ mNotificationManager = (NotificationManager) context.getSystemService(Context
+ .NOTIFICATION_SERVICE);
}
@Override
public void onResume() {
- Intent newIntent = null;
-
+ super.onResume();
if (getActivity() instanceof DeskClock) {
DeskClock activity = (DeskClock) getActivity();
activity.registerPageChangedListener(this);
- newIntent = activity.getIntent();
}
- super.onResume();
+
+ if (mAdapter == null) {
+ mAdapter = new TimerFragmentAdapter(getChildFragmentManager(), mPrefs);
+ }
+ mAdapter.populateTimersFromPref();
+ mViewPager.setAdapter(mAdapter);
+ mViewPager.setOnPageChangeListener(mOnPageChangeListener);
mPrefs.registerOnSharedPreferenceChangeListener(this);
- mAdapter = createAdapter(getActivity(), mPrefs);
- mAdapter.onRestoreInstanceState(null);
-
- LayoutParams params;
- float dividerHeight = getResources().getDimension(R.dimen.timer_divider_height);
- if (getActivity() instanceof DeskClock) {
- // If this is a DeskClock fragment (i.e. not a FullScreenTimerAlert), add a footer to
- // the bottom of the list so that it can scroll underneath the bottom button bar.
- // StaggeredGridView doesn't support a footer view, but GridAdapter does, so this
- // can't happen until the Adapter itself is instantiated.
- View footerView = getActivity().getLayoutInflater().inflate(
- R.layout.blank_footer_view, mTimersList, false);
- params = footerView.getLayoutParams();
- params.height -= dividerHeight;
- footerView.setLayoutParams(params);
- mAdapter.setFooterView(footerView);
- }
-
+ // Clear the flag set in the notification and alert because the adapter was just
+ // created and is thus in sync with the database
+ final SharedPreferences.Editor editor = mPrefs.edit();
if (mPrefs.getBoolean(Timers.FROM_NOTIFICATION, false)) {
- // Clear the flag set in the notification because the adapter was just
- // created and is thus in sync with the database
- SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(Timers.FROM_NOTIFICATION, false);
- editor.apply();
}
if (mPrefs.getBoolean(Timers.FROM_ALERT, false)) {
- // Clear the flag set in the alert because the adapter was just
- // created and is thus in sync with the database
- SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(Timers.FROM_ALERT, false);
- editor.apply();
}
+ editor.apply();
- mTimersList.setAdapter(mAdapter);
- if (mAdapter.isEmpty()) {
- mCancel.setVisibility(View.GONE);
- }
- mLastVisibleView = null; // Force a non animation setting of the view
- setPage();
- // View was hidden in onPause, make sure it is visible now.
- View v = getView();
- if (v != null) {
- getView().setVisibility(View.VISIBLE);
- }
+ mCancel.setVisibility(mAdapter.getCount() == 0 ? View.INVISIBLE : View.VISIBLE);
- if (newIntent != null) {
- processIntent(newIntent);
+ boolean goToSetUpView;
+ // Process extras that were sent to the app and were intended for the timer fragment
+ final Intent newIntent = getActivity().getIntent();
+ if (newIntent != null
+ && newIntent.getBooleanExtra(TimerFullScreenFragment.GOTO_SETUP_VIEW, false)) {
+ goToSetUpView = true;
+ } else if (newIntent != null
+ && newIntent.getBooleanExtra(Timers.FIRST_LAUNCH_FROM_API_CALL, false)) {
+ // We use this extra to identify if a. this activity is launched from api call,
+ // and b. this fragment is resumed for the first time. If both are true,
+ // we should show the timer view instead of setup view.
+ goToSetUpView = false;
+ // Show the first timer because that's the newly created one
+ highlightPageIndicator(0);
+ mViewPager.setCurrentItem(0);
+
+ // Reset the extra to false to ensure when next time the fragment resume,
+ // we no longer care if it's from api call or not.
+ newIntent.putExtra(Timers.FIRST_LAUNCH_FROM_API_CALL, false);
+ } else {
+ if (mViewState != null) {
+ final int currPage = mViewState.getInt(CURR_PAGE);
+ mViewPager.setCurrentItem(currPage);
+ highlightPageIndicator(currPage);
+ final boolean hasPreviousInput = mViewState.getBoolean(KEY_SETUP_SELECTED, false);
+ goToSetUpView = hasPreviousInput || mAdapter.getCount() == 0;
+ mSetupView.restoreEntryState(mViewState, KEY_ENTRY_STATE);
+ } else {
+ highlightPageIndicator(0);
+ // If user was not previously using the setup, determine which view to go by count
+ goToSetUpView = mAdapter.getCount() == 0;
+ }
+ }
+ if (goToSetUpView) {
+ goToSetUpView();
+ } else {
+ goToPagerView();
}
}
@Override
public void onPause() {
- if (getActivity() instanceof DeskClock) {
- ((DeskClock)getActivity()).unregisterPageChangedListener(this);
- }
super.onPause();
- stopClockTicks();
- if (mAdapter != null) {
- mAdapter.saveGlobalState ();
+ if (getActivity() instanceof DeskClock) {
+ ((DeskClock) getActivity()).unregisterPageChangedListener(this);
}
mPrefs.unregisterOnSharedPreferenceChangeListener(this);
- // This is called because the lock screen was activated, the window stay
- // active under it and when we unlock the screen, we see the old time for
- // a fraction of a second.
- View v = getView();
- if (v != null) {
- v.setVisibility(View.INVISIBLE);
+ if (mAdapter != null) {
+ mAdapter.saveTimersToSharedPrefs();
}
+ stopClockTicks();
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ if (mAdapter != null) {
+ mAdapter.saveTimersToSharedPrefs();
+ }
+ if (mSetupView != null) {
+ outState.putBoolean(KEY_SETUP_SELECTED, mSetupView.getVisibility() == View.VISIBLE);
+ mSetupView.saveEntryState(outState, KEY_ENTRY_STATE);
+ }
+ outState.putInt(CURR_PAGE, mViewPager.getCurrentItem());
+ mViewState = outState;
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ mViewState = null;
}
@Override
public void onPageChanged(int page) {
if (page == DeskClock.TIMER_TAB_INDEX && mAdapter != null) {
- mAdapter.sort();
- }
- }
-
- @Override
- public void onSaveInstanceState (Bundle outState) {
- super.onSaveInstanceState(outState);
- if (mAdapter != null) {
- mAdapter.onSaveInstanceState (outState);
- }
- if (mTimerSetup != null) {
- saveViewState(outState);
- } else if (mViewState != null) {
- outState.putAll(mViewState);
- }
- }
-
- private void saveViewState(Bundle outState) {
- outState.putBoolean(KEY_SETUP_SELECTED, mTimerSetup.getVisibility() == View.VISIBLE);
- mTimerSetup.saveEntryState(outState, KEY_ENTRY_STATE);
- }
-
- public void setPage() {
- boolean switchToSetupView = mAdapter.isEmpty();
- if (mViewState != null) {
- switchToSetupView |= mViewState.getBoolean(KEY_SETUP_SELECTED, false);
- mTimerSetup.restoreEntryState(mViewState, KEY_ENTRY_STATE);
- mViewState = null;
- }
- if (switchToSetupView) {
- gotoSetupView();
- } else {
- gotoTimersView();
- }
- }
-
- public void stopAllTimesUpTimers() {
- boolean notifyChange = false;
- // To avoid race conditions where a timer was dismissed and it is still in the timers list
- // and can be picked again, create a temporary list of timers to be removed first and
- // then removed them one by one
- LinkedList<TimerObj> timesupTimers = new LinkedList<TimerObj>();
- for (int i = 0; i < mAdapter.getCount(); i ++) {
- TimerObj timerObj = mAdapter.getItem(i);
- if (timerObj.mState == TimerObj.STATE_TIMESUP) {
- timesupTimers.addFirst(timerObj);
- notifyChange = true;
- }
- }
-
- while (timesupTimers.size() > 0) {
- onStopButtonPressed(timesupTimers.remove());
- }
-
- if (notifyChange) {
- SharedPreferences.Editor editor = mPrefs.edit();
- editor.putBoolean(Timers.FROM_ALERT, true);
- editor.apply();
- }
- }
-
- private void gotoSetupView() {
- if (mLastVisibleView == null || mLastVisibleView.getId() == R.id.timer_setup) {
- mTimerSetup.setVisibility(View.VISIBLE);
- mTimerSetup.setScaleX(1f);
- mTimersListPage.setVisibility(View.GONE);
- } else {
- // Animate
- ObjectAnimator a = ObjectAnimator.ofFloat(mTimersListPage, View.SCALE_X, 1f, 0f);
- a.setInterpolator(new AccelerateInterpolator());
- a.setDuration(125);
- a.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mTimersListPage.setVisibility(View.GONE);
- mTimerSetup.setScaleX(0);
- mTimerSetup.setVisibility(View.VISIBLE);
- ObjectAnimator b = ObjectAnimator.ofFloat(mTimerSetup, View.SCALE_X, 0f, 1f);
- b.setInterpolator(new DecelerateInterpolator());
- b.setDuration(225);
- b.start();
- }
- });
- a.start();
-
- }
- stopClockTicks();
- if (mAdapter.isEmpty()) {
- mCancel.setVisibility(View.GONE);
- } else {
- mCancel.setVisibility(View.VISIBLE);
- }
- mTimerSetup.updateDeleteButtonAndDivider();
- mLastVisibleView = mTimerSetup;
- changeFab();
- }
- private void gotoTimersView() {
- if (mLastVisibleView == null || mLastVisibleView.getId() == R.id.timers_list_page) {
- mTimerSetup.setVisibility(View.GONE);
- mTimersListPage.setVisibility(View.VISIBLE);
- mTimersListPage.setScaleX(1f);
- } else {
- // Animate
- ObjectAnimator a = ObjectAnimator.ofFloat(mTimerSetup, View.SCALE_X, 1f, 0f);
- a.setInterpolator(new AccelerateInterpolator());
- a.setDuration(125);
- a.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mTimerSetup.setVisibility(View.GONE);
- mTimersListPage.setScaleX(0);
- mTimersListPage.setVisibility(View.VISIBLE);
- ObjectAnimator b =
- ObjectAnimator.ofFloat(mTimersListPage, View.SCALE_X, 0f, 1f);
- b.setInterpolator(new DecelerateInterpolator());
- b.setDuration(225);
- b.start();
- }
- });
- a.start();
- }
- startClockTicks();
- mLastVisibleView = mTimersListPage;
- changeFab();
- }
-
- @Override
- public void onClick(View v) {
- ClickAction tag = (ClickAction) v.getTag();
- onClickHelper(tag);
- }
-
- private void onClickHelper(ClickAction clickAction) {
- switch (clickAction.mAction) {
- case ClickAction.ACTION_DELETE:
- final TimerObj t = clickAction.mTimer;
- if (t.mState == TimerObj.STATE_TIMESUP) {
- cancelTimerNotification(t.mTimerId);
- }
- // Tell receiver the timer was deleted.
- // It will stop all activity related to the
- // timer
- t.mState = TimerObj.STATE_DELETED;
- updateTimersState(t, Timers.DELETE_TIMER);
- break;
- case ClickAction.ACTION_PLUS_ONE:
- onPlusOneButtonPressed(clickAction.mTimer);
- setTimerButtons(clickAction.mTimer);
- break;
- case ClickAction.ACTION_STOP:
- onStopButtonPressed(clickAction.mTimer);
- setTimerButtons(clickAction.mTimer);
- break;
- default:
- break;
- }
- }
-
- private void onPlusOneButtonPressed(TimerObj t) {
- switch(t.mState) {
- case TimerObj.STATE_RUNNING:
- t.addTime(TimerObj.MINUTE_IN_MILLIS);
- long timeLeft = t.updateTimeLeft(false);
- ((TimerListItem)(t.mView)).setTime(timeLeft, false);
- ((TimerListItem)(t.mView)).setLength(timeLeft);
- mAdapter.notifyDataSetChanged();
- updateTimersState(t, Timers.TIMER_UPDATE);
- break;
- case TimerObj.STATE_TIMESUP:
- // +1 min when the time is up will restart the timer with 1 minute left.
- t.mState = TimerObj.STATE_RUNNING;
- t.mStartTime = Utils.getTimeNow();
- t.mTimeLeft = t. mOriginalLength = TimerObj.MINUTE_IN_MILLIS;
- ((TimerListItem)t.mView).setTime(t.mTimeLeft, false);
- ((TimerListItem)t.mView).set(t.mOriginalLength, t.mTimeLeft, true);
- ((TimerListItem) t.mView).start();
- updateTimersState(t, Timers.TIMER_RESET);
- updateTimersState(t, Timers.START_TIMER);
- updateTimesUpMode(t);
- cancelTimerNotification(t.mTimerId);
- break;
- case TimerObj.STATE_STOPPED:
- case TimerObj.STATE_DONE:
- t.mState = TimerObj.STATE_RESTART;
- t.mTimeLeft = t. mOriginalLength = t.mSetupLength;
- ((TimerListItem)t.mView).stop();
- ((TimerListItem)t.mView).setTime(t.mTimeLeft, false);
- ((TimerListItem)t.mView).set(t.mOriginalLength, t.mTimeLeft, false);
- updateTimersState(t, Timers.TIMER_RESET);
- break;
- default:
- break;
- }
- }
-
- private void onStopButtonPressed(TimerObj t) {
- switch(t.mState) {
- case TimerObj.STATE_RUNNING:
- // Stop timer and save the remaining time of the timer
- t.mState = TimerObj.STATE_STOPPED;
- ((TimerListItem) t.mView).pause();
- t.updateTimeLeft(true);
- updateTimersState(t, Timers.TIMER_STOP);
- break;
- case TimerObj.STATE_STOPPED:
- // Reset the remaining time and continue timer
- t.mState = TimerObj.STATE_RUNNING;
- t.mStartTime = Utils.getTimeNow() - (t.mOriginalLength - t.mTimeLeft);
- ((TimerListItem) t.mView).start();
- updateTimersState(t, Timers.START_TIMER);
- break;
- case TimerObj.STATE_TIMESUP:
- if (t.mDeleteAfterUse) {
- cancelTimerNotification(t.mTimerId);
- // Tell receiver the timer was deleted.
- // It will stop all activity related to the
- // timer
- t.mState = TimerObj.STATE_DELETED;
- updateTimersState(t, Timers.DELETE_TIMER);
- } else {
- t.mState = TimerObj.STATE_DONE;
- // Used in a context where the timer could be off-screen and without a view
- if (t.mView != null) {
- ((TimerListItem) t.mView).done();
- }
- updateTimersState(t, Timers.TIMER_DONE);
- cancelTimerNotification(t.mTimerId);
- updateTimesUpMode(t);
- }
- break;
- case TimerObj.STATE_DONE:
- break;
- case TimerObj.STATE_RESTART:
- t.mState = TimerObj.STATE_RUNNING;
- t.mStartTime = Utils.getTimeNow() - (t.mOriginalLength - t.mTimeLeft);
- ((TimerListItem) t.mView).start();
- updateTimersState(t, Timers.START_TIMER);
- break;
- default:
- break;
- }
- }
-
- private void deleteTimer(TimerObj t) {
- mAdapter.deleteTimer(t.mTimerId);
- mTimersList.setSelectionToTop();
- if (mAdapter.isEmpty()) {
- if (mOnEmptyListListener == null) {
- mTimerSetup.reset();
- gotoSetupView();
- } else {
- mOnEmptyListListener.onEmptyList();
- }
- }
- }
-
- private void onLabelPressed(TimerObj t) {
- final FragmentTransaction ft = getFragmentManager().beginTransaction();
- final Fragment prev = getFragmentManager().findFragmentByTag("label_dialog");
- if (prev != null) {
- ft.remove(prev);
- }
- ft.addToBackStack(null);
-
- // Create and show the dialog.
- final LabelDialogFragment newFragment =
- LabelDialogFragment.newInstance(t, t.mLabel, getTag());
- newFragment.show(ft, "label_dialog");
- }
-
- public void setLabel(TimerObj timer, String label) {
- mAdapter.getItem(mAdapter.findTimerPositionById(timer.mTimerId)).mLabel = label;
- updateTimersState(timer, Timers.TIMER_UPDATE);
- // Make sure the new label is visible.
- mAdapter.notifyDataSetChanged();
- }
-
- private void setTimerButtons(TimerObj t) {
- Context a = getActivity();
- if (a == null || t == null || t.mView == null) {
- return;
- }
- ImageButton leftButton = (ImageButton) t.mView.findViewById(R.id.timer_plus_one);
- CountingTimerView countingTimerView = (CountingTimerView)
- t.mView.findViewById(R.id.timer_time_text);
- TextView stop = (TextView) t.mView.findViewById(R.id.timer_stop);
- ImageButton delete = (ImageButton) t.mView.findViewById(R.id.timer_delete);
- // Make sure the delete button is visible in case the view is recycled.
- delete.setVisibility(View.VISIBLE);
-
- Resources r = a.getResources();
- switch (t.mState) {
- case TimerObj.STATE_RUNNING:
- // left button is +1m
- leftButton.setVisibility(View.VISIBLE);
- leftButton.setContentDescription(r.getString(R.string.timer_plus_one));
- leftButton.setImageResource(R.drawable.ic_plusone);
- leftButton.setEnabled(canAddMinute(t));
- stop.setVisibility(View.VISIBLE);
- stop.setContentDescription(r.getString(R.string.timer_stop));
- stop.setText(R.string.timer_stop);
- stop.setTextColor(getResources().getColor(R.color.clock_white));
- countingTimerView.setVirtualButtonEnabled(true);
- break;
- case TimerObj.STATE_STOPPED:
- // left button is reset
- leftButton.setVisibility(View.VISIBLE);
- leftButton.setContentDescription(r.getString(R.string.timer_reset));
- leftButton.setImageResource(R.drawable.ic_reset);
- leftButton.setEnabled(true);
- stop.setVisibility(View.VISIBLE);
- stop.setContentDescription(r.getString(R.string.timer_start));
- stop.setText(R.string.timer_start);
- stop.setTextColor(getResources().getColor(R.color.clock_white));
- countingTimerView.setVirtualButtonEnabled(true);
- break;
- case TimerObj.STATE_TIMESUP:
- // left button is +1m
- leftButton.setVisibility(View.VISIBLE);
- leftButton.setContentDescription(r.getString(R.string.timer_plus_one));
- leftButton.setImageResource(R.drawable.ic_plusone);
- leftButton.setEnabled(true);
- stop.setVisibility(View.VISIBLE);
- stop.setContentDescription(r.getString(R.string.timer_stop));
- // If the timer is deleted after use , show "done" instead of "stop" on the button
- // and hide the delete button since pressing done will delete the timer
- stop.setText(t.mDeleteAfterUse ? R.string.timer_done : R.string.timer_stop);
- stop.setTextColor(getResources().getColor(R.color.clock_white));
- delete.setVisibility(t.mDeleteAfterUse ? View.INVISIBLE : View.VISIBLE);
- countingTimerView.setVirtualButtonEnabled(true);
- break;
- case TimerObj.STATE_DONE:
- // left button is reset
- leftButton.setVisibility(View.VISIBLE);
- leftButton.setContentDescription(r.getString(R.string.timer_reset));
- leftButton.setImageResource(R.drawable.ic_reset);
- leftButton.setEnabled(true);
- stop.setVisibility(View.INVISIBLE);
- countingTimerView.setVirtualButtonEnabled(false);
- break;
- case TimerObj.STATE_RESTART:
- leftButton.setVisibility(View.INVISIBLE);
- leftButton.setEnabled(true);
- stop.setVisibility(View.VISIBLE);
- stop.setContentDescription(r.getString(R.string.timer_start));
- stop.setText(R.string.timer_start);
- stop.setTextColor(getResources().getColor(R.color.clock_white));
- countingTimerView.setVirtualButtonEnabled(true);
- break;
- default:
- break;
+ mAdapter.notifyDataSetChanged();
}
}
// Starts the ticks that animate the timers.
private void startClockTicks() {
- mTimersList.postDelayed(mClockTick, 20);
+ mTimerView.postDelayed(mClockTick, 20);
mTicking = true;
}
// Stops the ticks that animate the timers.
private void stopClockTicks() {
if (mTicking) {
- mTimersList.removeCallbacks(mClockTick);
+ mViewPager.removeCallbacks(mClockTick);
mTicking = false;
}
}
- private boolean canAddMinute(TimerObj t) {
- return TimerObj.MAX_TIMER_LENGTH - t.mTimeLeft > TimerObj.MINUTE_IN_MILLIS ? true : false;
+ private void goToPagerView() {
+ mTimerView.setVisibility(View.VISIBLE);
+ mSetupView.setVisibility(View.GONE);
+ mLastView = mTimerView;
+ setLeftRightButtonAppearance();
+ setFabAppearance();
+ startClockTicks();
}
- private void updateTimersState(TimerObj t, String action) {
+ private void goToSetUpView() {
+ if (mAdapter.getCount() == 0) {
+ mCancel.setVisibility(View.INVISIBLE);
+ } else {
+ mCancel.setVisibility(View.VISIBLE);
+ }
+ mTimerView.setVisibility(View.GONE);
+ mSetupView.setVisibility(View.VISIBLE);
+ mSetupView.updateDeleteButtonAndDivider();
+ mSetupView.registerStartButton(mFab);
+ mLastView = mSetupView;
+ setLeftRightButtonAppearance();
+ setFabAppearance();
+ stopClockTicks();
+ }
+
+ private void updateTimerState(TimerObj t, String action) {
if (Timers.DELETE_TIMER.equals(action)) {
- deleteTimer(t);
+ mAdapter.deleteTimer(t.mTimerId);
+ if (mAdapter.getCount() == 0) {
+ mSetupView.reset();
+ goToSetUpView();
+ }
} else {
t.writeToSharedPref(mPrefs);
}
- Intent i = new Intent();
+ final Intent i = new Intent();
i.setAction(action);
i.putExtra(Timers.TIMER_INTENT_EXTRA, t.mTimerId);
// Make sure the receiver is getting the intent ASAP.
@@ -962,33 +352,322 @@
getActivity().sendBroadcast(i);
}
- private void cancelTimerNotification(int timerId) {
- mNotificationManager.cancel(timerId);
+ private void setTimerViewFabIcon(TimerObj timer) {
+ final Context context = getActivity();
+ if (context == null || timer == null || mFab == null) {
+ return;
+ }
+ final Resources r = context.getResources();
+ switch (timer.mState) {
+ case TimerObj.STATE_RUNNING:
+ mFab.setVisibility(View.VISIBLE);
+ mFab.setContentDescription(r.getString(R.string.timer_stop));
+ mFab.setImageResource(R.drawable.ic_fab_pause);
+ break;
+ case TimerObj.STATE_STOPPED:
+ case TimerObj.STATE_RESTART:
+ mFab.setVisibility(View.VISIBLE);
+ mFab.setContentDescription(r.getString(R.string.timer_start));
+ mFab.setImageResource(R.drawable.ic_fab_play);
+ break;
+ case TimerObj.STATE_DONE: // time-up then stopped
+ mFab.setVisibility(View.INVISIBLE);
+ break;
+ case TimerObj.STATE_TIMESUP: // time-up but didn't stopped, continue negative ticking
+ mFab.setVisibility(View.VISIBLE);
+ mFab.setContentDescription(r.getString(R.string.timer_stop));
+ mFab.setImageResource(R.drawable.ic_fab_stop);
+ break;
+ default:
+ }
}
- private void updateTimesUpMode(TimerObj timerObj) {
- if (mOnEmptyListListener != null && timerObj.mState != TimerObj.STATE_TIMESUP) {
- mAdapter.removeTimer(timerObj);
- if (mAdapter.isEmpty()) {
- mOnEmptyListListener.onEmptyList();
+ private Animator getRotateFromAnimator(View view) {
+ final Animator animator = new ObjectAnimator().ofFloat(view, View.SCALE_X, 1.0f, 0.0f);
+ animator.setDuration(ROTATE_ANIM_DURATION_MILIS);
+ animator.setInterpolator(DECELERATE_INTERPOLATOR);
+ return animator;
+ }
+
+ private Animator getRotateToAnimator(View view) {
+ final Animator animator = new ObjectAnimator().ofFloat(view, View.SCALE_X, 0.0f, 1.0f);
+ animator.setDuration(ROTATE_ANIM_DURATION_MILIS);
+ animator.setInterpolator(ACCELERATE_INTERPOLATOR);
+ return animator;
+ }
+
+ private Animator getScaleFooterButtonsAnimator(final boolean show) {
+ final AnimatorSet animatorSet = new AnimatorSet();
+ final Animator leftButtonAnimator = AnimatorUtils.getScaleAnimator(
+ mLeftButton, show ? 0.0f : 1.0f, show ? 1.0f : 0.0f);
+ final Animator rightButtonAnimator = AnimatorUtils.getScaleAnimator(
+ mRightButton, show ? 0.0f : 1.0f, show ? 1.0f : 0.0f);
+ final float fabStartScale = (show && mFab.getVisibility() == View.INVISIBLE) ? 0.0f : 1.0f;
+ final Animator fabAnimator = AnimatorUtils.getScaleAnimator(
+ mFab, fabStartScale, show ? 1.0f : 0.0f);
+ animatorSet.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mLeftButton.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
+ mRightButton.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
+ restoreScale(mLeftButton);
+ restoreScale(mRightButton);
+ restoreScale(mFab);
+ }
+ });
+ // If not show, means transiting from timer view to setup view,
+ // when the setup view starts to rotate, the footer buttons are already invisible,
+ // so the scaling has to finish before the setup view starts rotating
+ animatorSet.setDuration(show ? ROTATE_ANIM_DURATION_MILIS * 2 : ROTATE_ANIM_DURATION_MILIS);
+ animatorSet.play(leftButtonAnimator).with(rightButtonAnimator).with(fabAnimator);
+ return animatorSet;
+ }
+
+ private void restoreScale(View view) {
+ view.setScaleX(1.0f);
+ view.setScaleY(1.0f);
+ }
+
+ private Animator createRotateAnimator(AnimatorListenerAdapter adapter, boolean toSetup) {
+ final AnimatorSet animatorSet = new AnimatorSet();
+ final Animator rotateFrom = getRotateFromAnimator(toSetup ? mTimerView : mSetupView);
+ rotateFrom.addListener(adapter);
+ final Animator rotateTo = getRotateToAnimator(toSetup ? mSetupView : mTimerView);
+ final Animator expandFooterButton = getScaleFooterButtonsAnimator(!toSetup);
+ animatorSet.play(rotateFrom).before(rotateTo).with(expandFooterButton);
+ return animatorSet;
+ }
+
+ @Override
+ public void onFabClick(View view) {
+ if (mLastView != mTimerView) {
+ // Timer is at Setup View, so fab is "play", rotate from setup view to timer view
+ final AnimatorListenerAdapter adapter = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ final int timerLength = mSetupView.getTime();
+ final TimerObj timerObj = new TimerObj(timerLength * DateUtils.SECOND_IN_MILLIS,
+ getActivity());
+ timerObj.mState = TimerObj.STATE_RUNNING;
+ updateTimerState(timerObj, Timers.START_TIMER);
+
+ // Go to the newly created timer view
+ mAdapter.addTimer(timerObj);
+ mViewPager.setCurrentItem(0);
+ highlightPageIndicator(0);
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mSetupView.reset(); // Make sure the setup is cleared for next time
+ mSetupView.setScaleX(1.0f); // Reset the scale for setup view
+ goToPagerView();
+ }
+ };
+ createRotateAnimator(adapter, false).start();
+ } else {
+ // Timer is at view pager, so fab is "play" or "pause" or "square that means reset"
+ final TimerObj t = getCurrentTimer();
+ switch (t.mState) {
+ case TimerObj.STATE_RUNNING:
+ // Stop timer and save the remaining time of the timer
+ t.mState = TimerObj.STATE_STOPPED;
+ t.mView.pause();
+ t.updateTimeLeft(true);
+ updateTimerState(t, Timers.TIMER_STOP);
+ break;
+ case TimerObj.STATE_STOPPED:
+ case TimerObj.STATE_RESTART:
+ // Reset the remaining time and continue timer
+ t.mState = TimerObj.STATE_RUNNING;
+ t.mStartTime = Utils.getTimeNow() - (t.mOriginalLength - t.mTimeLeft);
+ t.mView.start();
+ updateTimerState(t, Timers.START_TIMER);
+ break;
+ case TimerObj.STATE_TIMESUP:
+ if (t.mDeleteAfterUse) {
+ cancelTimerNotification(t.mTimerId);
+ // Tell receiver the timer was deleted.
+ // It will stop all activity related to the
+ // timer
+ t.mState = TimerObj.STATE_DELETED;
+ updateTimerState(t, Timers.DELETE_TIMER);
+ } else {
+ t.mState = TimerObj.STATE_RESTART;
+ t.mOriginalLength = t.mSetupLength;
+ t.mTimeLeft = t.mSetupLength;
+ t.mView.stop();
+ t.mView.setTime(t.mTimeLeft, false);
+ t.mView.set(t.mOriginalLength, t.mTimeLeft, false);
+ updateTimerState(t, Timers.TIMER_RESET);
+ cancelTimerNotification(t.mTimerId);
+ }
+ break;
+ }
+ setTimerViewFabIcon(t);
+ }
+ }
+
+
+ private TimerObj getCurrentTimer() {
+ if (mViewPager == null) {
+ return null;
+ }
+ final int currPage = mViewPager.getCurrentItem();
+ if (currPage < mAdapter.getCount()) {
+ TimerObj o = mAdapter.getTimerAt(currPage);
+ return o;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public void setFabAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mFab == null) {
+ return;
+ }
+
+ if (activity.getSelectedTab() != DeskClock.TIMER_TAB_INDEX) {
+ mFab.setVisibility(View.VISIBLE);
+ return;
+ }
+
+ if (mLastView == mTimerView) {
+ setTimerViewFabIcon(getCurrentTimer());
+ } else if (mSetupView != null) {
+ mSetupView.registerStartButton(mFab);
+ mFab.setImageResource(R.drawable.ic_fab_play);
+ mFab.setContentDescription(getString(R.string.timer_start));
+ }
+ }
+
+ @Override
+ public void setLeftRightButtonAppearance() {
+ final DeskClock activity = (DeskClock) getActivity();
+ if (mLeftButton == null || mRightButton == null ||
+ activity.getSelectedTab() != DeskClock.TIMER_TAB_INDEX) {
+ return;
+ }
+
+ mLeftButton.setEnabled(true);
+ mRightButton.setEnabled(true);
+ mLeftButton.setVisibility(mLastView != mTimerView ? View.GONE : View.VISIBLE);
+ mRightButton.setVisibility(mLastView != mTimerView ? View.GONE : View.VISIBLE);
+ mLeftButton.setImageResource(R.drawable.ic_delete);
+ mLeftButton.setContentDescription(getString(R.string.timer_delete));
+ mRightButton.setImageResource(R.drawable.ic_add_timer);
+ mRightButton.setContentDescription(getString(R.string.timer_add_timer));
+ }
+
+ @Override
+ public void onRightButtonClick(View view) {
+ // Respond to add another timer
+ final AnimatorListenerAdapter adapter = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mSetupView.reset();
+ mTimerView.setScaleX(1.0f); // Reset the scale for timer view
+ goToSetUpView();
+ }
+ };
+ createRotateAnimator(adapter, true).start();
+ }
+
+ @Override
+ public void onLeftButtonClick(View view) {
+ // Respond to delete timer
+ final TimerObj timer = getCurrentTimer();
+ if (timer == null) {
+ return; // Prevent NPE if user click delete faster than the fade animation
+ }
+ if (timer.mState == TimerObj.STATE_TIMESUP) {
+ mNotificationManager.cancel(timer.mTimerId);
+ }
+ if (mAdapter.getCount() == 1) {
+ final AnimatorListenerAdapter adapter = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mTimerView.setScaleX(1.0f); // Reset the scale for timer view
+ deleteTimer(timer);
+ }
+ };
+ createRotateAnimator(adapter, true).start();
+ } else {
+ TransitionManager.beginDelayedTransition(mContentView, mDeleteTransition);
+ deleteTimer(timer);
+ }
+ }
+
+ private void deleteTimer(TimerObj timer) {
+ // Tell receiver the timer was deleted, it will stop all activity related to the
+ // timer
+ timer.mState = TimerObj.STATE_DELETED;
+ updateTimerState(timer, Timers.DELETE_TIMER);
+ highlightPageIndicator(mViewPager.getCurrentItem());
+ // When deleting a negative timer (hidden fab), since deleting will not trigger
+ // onResume(), in order to ensure the fab showing correctly, we need to manually
+ // set fab appearance here.
+ setFabAppearance();
+ }
+
+ private void highlightPageIndicator(int position) {
+ final int count = mAdapter.getCount();
+ if (count <= PAGINATION_DOTS_COUNT) {
+ for (int i = 0; i < PAGINATION_DOTS_COUNT; i++) {
+ if (count < 2 || i >= count) {
+ mPageIndicators[i].setVisibility(View.GONE);
+ } else {
+ paintIndicator(i, position == i ? R.drawable.ic_swipe_circle_light :
+ R.drawable.ic_swipe_circle_dark);
+ }
+ }
+ } else {
+ /**
+ * If there are more than 4 timers, the top and/or bottom dot might need to show a
+ * half fade, to indicate there are more timers in that direction.
+ */
+ final int aboveCount = position; // How many timers are above the current timer
+ final int belowCount = count - position - 1; // How many timers are below
+ if (aboveCount < PAGINATION_DOTS_COUNT - 1) {
+ // There's enough room for the above timers, so top dot need not to fade
+ for (int i = 0; i < aboveCount; i++) {
+ paintIndicator(i, R.drawable.ic_swipe_circle_dark);
+ }
+ paintIndicator(position, R.drawable.ic_swipe_circle_light);
+ for (int i = position + 1; i < PAGINATION_DOTS_COUNT - 1 ; i++) {
+ paintIndicator(i, R.drawable.ic_swipe_circle_dark);
+ }
+ paintIndicator(PAGINATION_DOTS_COUNT - 1, R.drawable.ic_swipe_circle_bottom);
} else {
- mOnEmptyListListener.onListChanged();
+ // There's not enough room for the above timers, top dot needs to fade
+ paintIndicator(0, R.drawable.ic_swipe_circle_top);
+ for (int i = 1; i < PAGINATION_DOTS_COUNT - 2; i++) {
+ paintIndicator(i, R.drawable.ic_swipe_circle_dark);
+ }
+ // Determine which resource to use for the "second indicator" from the bottom.
+ paintIndicator(PAGINATION_DOTS_COUNT - 2, belowCount == 0 ?
+ R.drawable.ic_swipe_circle_dark : R.drawable.ic_swipe_circle_light);
+ final int lastDotRes;
+ if (belowCount == 0) {
+ // The current timer is the last one
+ lastDotRes = R.drawable.ic_swipe_circle_light;
+ } else if (belowCount == 1) {
+ // There's only one timer below the current
+ lastDotRes = R.drawable.ic_swipe_circle_dark;
+ } else {
+ // There are more than one timer below, bottom dot needs to fade
+ lastDotRes = R.drawable.ic_swipe_circle_bottom;
+ }
+ paintIndicator(PAGINATION_DOTS_COUNT - 1, lastDotRes);
}
}
}
- public void restartAdapter() {
- mAdapter = createAdapter(getActivity(), mPrefs);
- mAdapter.onRestoreInstanceState(null);
- }
-
- // Process extras that were sent to the app and were intended for the timer
- // fragment
- public void processIntent(Intent intent) {
- // switch to timer setup view
- if (intent.getBooleanExtra(GOTO_SETUP_VIEW, false)) {
- gotoSetupView();
- }
+ private void paintIndicator(int position, int res) {
+ mPageIndicators[position].setVisibility(View.VISIBLE);
+ mPageIndicators[position].setImageResource(res);
}
@Override
@@ -1002,56 +681,66 @@
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(key, false);
editor.apply();
- mAdapter = createAdapter(getActivity(), mPrefs);
- mAdapter.onRestoreInstanceState(null);
- mTimersList.setAdapter(mAdapter);
- }
- }
- }
- @Override
- public void respondClick(View view){
- if (mLastVisibleView != mTimersListPage) {
- // New timer create if timer length is not zero
- // Create a new timer object to track the timer and
- // switch to the timers view.
- int timerLength = mTimerSetup.getTime();
- if (timerLength == 0) {
+ mAdapter.populateTimersFromPref();
+ mViewPager.setAdapter(mAdapter);
+ if (mViewState != null) {
+ final int currPage = mViewState.getInt(CURR_PAGE);
+ mViewPager.setCurrentItem(currPage);
+ highlightPageIndicator(currPage);
+ } else {
+ highlightPageIndicator(0);
+ }
+ setFabAppearance();
return;
}
- TimerObj t = new TimerObj(timerLength * DateUtils.SECOND_IN_MILLIS);
- t.mState = TimerObj.STATE_RUNNING;
- mAdapter.addTimer(t);
- updateTimersState(t, Timers.START_TIMER);
- gotoTimersView();
- mTimerSetup.reset(); // Make sure the setup is cleared for next time
-
- mTimersList.setFirstPositionAndOffsets(
- mAdapter.findTimerPositionById(t.mTimerId), 0);
- } else {
- mTimerSetup.reset();
- gotoSetupView();
}
}
- private void changeFab() {
- final Activity activity = getActivity();
- if (activity != null && activity.getClass().equals(DeskClock.class)) {
- final DeskClock deskClockActivity = (DeskClock) activity;
- if (mFab != null && deskClockActivity.getSelectedTab() == DeskClock.TIMER_TAB_INDEX) {
- mFab.setImageResource(mLastVisibleView != mTimersListPage ? R.drawable.ic_fab_play :
- R.drawable.ic_fab_plus);
- if (mLastVisibleView == mTimersListPage) {
- mFab.setVisibility(View.VISIBLE);
- } else if (mTimerSetup != null) {
- mTimerSetup.registerStartButton(mFab);
- }
- }
- }
+ public void setLabel(TimerObj timer, String label) {
+ timer.mLabel = label;
+ updateTimerState(timer, Timers.TIMER_UPDATE);
+ // Make sure the new label is visible.
+ mAdapter.notifyDataSetChanged();
}
- @Override
- public void setFabAppearance(ImageButton fab) {
- mFab = fab;
- changeFab();
+ public void onPlusOneButtonPressed(TimerObj t) {
+ switch (t.mState) {
+ case TimerObj.STATE_RUNNING:
+ t.addTime(TimerObj.MINUTE_IN_MILLIS);
+ long timeLeft = t.updateTimeLeft(false);
+ t.mView.setTime(timeLeft, false);
+ t.mView.setLength(timeLeft);
+ mAdapter.notifyDataSetChanged();
+ updateTimerState(t, Timers.TIMER_UPDATE);
+ break;
+ case TimerObj.STATE_STOPPED:
+ case TimerObj.STATE_DONE:
+ t.mState = TimerObj.STATE_RESTART;
+ t.mTimeLeft = t.mSetupLength;
+ t.mOriginalLength = t.mSetupLength;
+ t.mView.stop();
+ t.mView.setTime(t.mTimeLeft, false);
+ t.mView.set(t.mOriginalLength, t.mTimeLeft, false);
+ updateTimerState(t, Timers.TIMER_RESET);
+ break;
+ case TimerObj.STATE_TIMESUP:
+ // +1 min when the time is up will restart the timer with 1 minute left.
+ t.mState = TimerObj.STATE_RUNNING;
+ t.mStartTime = Utils.getTimeNow();
+ t.mTimeLeft = t.mOriginalLength = TimerObj.MINUTE_IN_MILLIS;
+ t.mView.setTime(t.mTimeLeft, false);
+ t.mView.set(t.mOriginalLength, t.mTimeLeft, true);
+ t.mView.start();
+ updateTimerState(t, Timers.TIMER_RESET);
+ updateTimerState(t, Timers.START_TIMER);
+ cancelTimerNotification(t.mTimerId);
+ break;
+ }
+ // This will change status of the timer, so update fab
+ setFabAppearance();
+ }
+
+ private void cancelTimerNotification(int timerId) {
+ mNotificationManager.cancel(timerId);
}
}
diff --git a/src/com/android/deskclock/timer/TimerFragmentAdapter.java b/src/com/android/deskclock/timer/TimerFragmentAdapter.java
new file mode 100644
index 0000000..1ce1fde
--- /dev/null
+++ b/src/com/android/deskclock/timer/TimerFragmentAdapter.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2014 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.timer;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.content.SharedPreferences;
+import android.support.v4.view.PagerAdapter;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+public class TimerFragmentAdapter extends FragmentStatePagerAdapter2 {
+
+ private final ArrayList<TimerObj> mTimerList = new ArrayList<TimerObj>();
+ private final SharedPreferences mSharedPrefs;
+
+ public TimerFragmentAdapter(FragmentManager fm, SharedPreferences sharedPreferences) {
+ super(fm);
+ mSharedPrefs = sharedPreferences;
+ }
+
+ @Override
+ public int getItemPosition(Object object) {
+ // Force return NONE so that the adapter always assumes the item position has changed
+ return PagerAdapter.POSITION_NONE;
+ }
+
+ @Override
+ public int getCount() {
+ return mTimerList.size();
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ return TimerItemFragment.newInstance(mTimerList.get(position));
+ }
+
+ public void addTimer(TimerObj timer) {
+ // Newly created timer should always show on the top of the list
+ mTimerList.add(0, timer);
+ notifyDataSetChanged();
+ }
+
+ public TimerObj getTimerAt(int position) {
+ return mTimerList.get(position);
+ }
+
+ public void saveTimersToSharedPrefs() {
+ TimerObj.putTimersInSharedPrefs(mSharedPrefs, mTimerList);
+ }
+
+ public void populateTimersFromPref() {
+ mTimerList.clear();
+ TimerObj.getTimersFromSharedPrefs(mSharedPrefs, mTimerList);
+ Collections.sort(mTimerList, new Comparator<TimerObj>() {
+ @Override
+ public int compare(TimerObj o1, TimerObj o2) {
+ return (o2.mTimerId < o1.mTimerId) ? -1 : 1;
+ }
+ });
+
+ notifyDataSetChanged();
+ }
+
+ public void deleteTimer(int id) {
+ for (int i = 0; i < mTimerList.size(); i++) {
+ TimerObj timer = mTimerList.get(i);
+ if (timer.mTimerId == id) {
+ if (timer.mView != null) {
+ timer.mView.stop();
+ }
+ timer.deleteFromSharedPref(mSharedPrefs);
+ mTimerList.remove(i);
+ break;
+ }
+ }
+
+ notifyDataSetChanged();
+ return;
+ }
+}
diff --git a/src/com/android/deskclock/timer/TimerFullScreenFragment.java b/src/com/android/deskclock/timer/TimerFullScreenFragment.java
new file mode 100644
index 0000000..298272a
--- /dev/null
+++ b/src/com/android/deskclock/timer/TimerFullScreenFragment.java
@@ -0,0 +1,977 @@
+/*
+ * Copyright (C) 2012 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.timer;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.os.Bundle;
+import android.os.Handler;
+import android.preference.PreferenceManager;
+import android.text.format.DateUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewAnimationUtils;
+import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
+import android.view.ViewGroupOverlay;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.DecelerateInterpolator;
+import android.view.animation.Interpolator;
+import android.view.animation.PathInterpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+import com.android.deskclock.CircleButtonsLayout;
+import com.android.deskclock.DeskClock;
+import com.android.deskclock.DeskClock.OnTapListener;
+import com.android.deskclock.DeskClockFragment;
+import com.android.deskclock.LabelDialogFragment;
+import com.android.deskclock.LogUtils;
+import com.android.deskclock.R;
+import com.android.deskclock.TimerSetupView;
+import com.android.deskclock.Utils;
+import com.android.deskclock.widget.sgv.GridAdapter;
+import com.android.deskclock.widget.sgv.SgvAnimationHelper.AnimationIn;
+import com.android.deskclock.widget.sgv.SgvAnimationHelper.AnimationOut;
+import com.android.deskclock.widget.sgv.StaggeredGridView;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+
+// TODO: This class is renamed from TimerFragment to TimerFullScreenFragment with no change. It
+// is responsible for the timer list in full screen timer alert and should be deprecated shortly.
+public class TimerFullScreenFragment extends DeskClockFragment
+ implements OnClickListener, OnSharedPreferenceChangeListener {
+
+ private static final String TAG = "TimerFragment1";
+ private static final String KEY_ENTRY_STATE = "entry_state";
+ private static final Interpolator REVEAL_INTERPOLATOR =
+ new PathInterpolator(0.0f, 0.0f, 0.2f, 1.0f);
+ public static final String GOTO_SETUP_VIEW = "deskclock.timers.gotosetup";
+
+ private Bundle mViewState;
+ private StaggeredGridView mTimersList;
+ private View mTimersListPage;
+ private int mColumnCount;
+ private ImageButton mFab;
+ private TimerSetupView mTimerSetup;
+ private TimersListAdapter mAdapter;
+ private boolean mTicking = false;
+ private SharedPreferences mPrefs;
+ private NotificationManager mNotificationManager;
+ private OnEmptyListListener mOnEmptyListListener;
+ private View mLastVisibleView = null; // used to decide if to set the view or animate to it.
+
+ class ClickAction {
+ public static final int ACTION_STOP = 1;
+ public static final int ACTION_PLUS_ONE = 2;
+ public static final int ACTION_DELETE = 3;
+
+ public int mAction;
+ public TimerObj mTimer;
+
+ public ClickAction(int action, TimerObj t) {
+ mAction = action;
+ mTimer = t;
+ }
+ }
+
+ // Container Activity that requests TIMESUP_MODE must implement this interface
+ public interface OnEmptyListListener {
+ public void onEmptyList();
+
+ public void onListChanged();
+ }
+
+ TimersListAdapter createAdapter(Context context, SharedPreferences prefs) {
+ if (mOnEmptyListListener == null) {
+ return new TimersListAdapter(context, prefs);
+ } else {
+ return new TimesUpListAdapter(context, prefs);
+ }
+ }
+
+ private class TimersListAdapter extends GridAdapter {
+
+ ArrayList<TimerObj> mTimers = new ArrayList<TimerObj>();
+ Context mContext;
+ SharedPreferences mmPrefs;
+
+ private void clear() {
+ mTimers.clear();
+ notifyDataSetChanged();
+ }
+
+ public TimersListAdapter(Context context, SharedPreferences prefs) {
+ mContext = context;
+ mmPrefs = prefs;
+ }
+
+ @Override
+ public int getCount() {
+ return mTimers.size();
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return true;
+ }
+
+ @Override
+ public TimerObj getItem(int p) {
+ return mTimers.get(p);
+ }
+
+ @Override
+ public long getItemId(int p) {
+ if (p >= 0 && p < mTimers.size()) {
+ return mTimers.get(p).mTimerId;
+ }
+ return 0;
+ }
+
+ public void deleteTimer(int id) {
+ for (int i = 0; i < mTimers.size(); i++) {
+ TimerObj t = mTimers.get(i);
+
+ if (t.mTimerId == id) {
+ if (t.mView != null) {
+ ((TimerListItem) t.mView).stop();
+ }
+ t.deleteFromSharedPref(mmPrefs);
+ mTimers.remove(i);
+ if (mTimers.size() == 1 && mColumnCount > 1) {
+ // If we're going from two timers to one (in the same row), we don't want to
+ // animate the translation because we're changing the layout params span
+ // from 1 to 2, and the animation doesn't handle that very well. So instead,
+ // just fade out and in.
+ mTimersList.setAnimationMode(AnimationIn.FADE, AnimationOut.FADE);
+ } else {
+ mTimersList.setAnimationMode(
+ AnimationIn.FLY_IN_NEW_VIEWS, AnimationOut.FADE);
+ }
+ notifyDataSetChanged();
+ return;
+ }
+ }
+ }
+
+ protected int findTimerPositionById(int id) {
+ for (int i = 0; i < mTimers.size(); i++) {
+ TimerObj t = mTimers.get(i);
+ if (t.mTimerId == id) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public void removeTimer(TimerObj timerObj) {
+ int position = findTimerPositionById(timerObj.mTimerId);
+ if (position >= 0) {
+ mTimers.remove(position);
+ notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ final TimerListItem v = (TimerListItem) inflater.inflate(R.layout.timer_list_item,
+ null);
+ final TimerObj o = (TimerObj) getItem(position);
+ o.mView = v;
+ long timeLeft = o.updateTimeLeft(false);
+ boolean drawRed = o.mState != TimerObj.STATE_RESTART;
+ v.set(o.mOriginalLength, timeLeft, drawRed);
+ v.setTime(timeLeft, true);
+ switch (o.mState) {
+ case TimerObj.STATE_RUNNING:
+ v.start();
+ break;
+ case TimerObj.STATE_TIMESUP:
+ v.timesUp();
+ break;
+ case TimerObj.STATE_DONE:
+ v.done();
+ break;
+ default:
+ break;
+ }
+
+ // Timer text serves as a virtual start/stop button.
+ final CountingTimerView countingTimerView = (CountingTimerView)
+ v.findViewById(R.id.timer_time_text);
+ countingTimerView.registerVirtualButtonAction(new Runnable() {
+ @Override
+ public void run() {
+ TimerFullScreenFragment.this.onClickHelper(
+ new ClickAction(ClickAction.ACTION_STOP, o));
+ }
+ });
+
+ CircleButtonsLayout circleLayout =
+ (CircleButtonsLayout) v.findViewById(R.id.timer_circle);
+ circleLayout.setCircleTimerViewIds(R.id.timer_time, R.id.reset_add, R.id.timer_label,
+ R.id.timer_label_text);
+
+ ImageButton resetAddButton = (ImageButton) v.findViewById(R.id.reset_add);
+ resetAddButton.setTag(new ClickAction(ClickAction.ACTION_PLUS_ONE, o));
+ v.setResetAddButton(true, TimerFullScreenFragment.this);
+ FrameLayout label = (FrameLayout) v.findViewById(R.id.timer_label);
+ TextView labelIcon = (TextView) v.findViewById(R.id.timer_label_placeholder);
+ TextView labelText = (TextView) v.findViewById(R.id.timer_label_text);
+ if (o.mLabel.equals("")) {
+ labelText.setVisibility(View.GONE);
+ labelIcon.setVisibility(View.VISIBLE);
+ } else {
+ labelText.setText(o.mLabel);
+ labelText.setVisibility(View.VISIBLE);
+ labelIcon.setVisibility(View.GONE);
+ }
+ if (getActivity() instanceof DeskClock) {
+ label.setOnTouchListener(new OnTapListener(getActivity(), labelText) {
+ @Override
+ protected void processClick(View v) {
+ onLabelPressed(o);
+ }
+ });
+ } else {
+ labelIcon.setVisibility(View.INVISIBLE);
+ }
+ return v;
+ }
+
+ @Override
+ public int getItemColumnSpan(Object item, int position) {
+ // This returns the width for a specified position. If we only have one item, have it
+ // span all columns so that it's centered. Otherwise, all timers should just span one.
+ if (getCount() == 1) {
+ return mColumnCount;
+ } else {
+ return 1;
+ }
+ }
+
+ public void addTimer(TimerObj t) {
+ mTimers.add(0, t);
+ sort();
+ }
+
+ public void onSaveInstanceState(Bundle outState) {
+ TimerObj.putTimersInSharedPrefs(mmPrefs, mTimers);
+ }
+
+ public void onRestoreInstanceState(Bundle outState) {
+ TimerObj.getTimersFromSharedPrefs(mmPrefs, mTimers);
+ sort();
+ }
+
+ public void saveGlobalState() {
+ TimerObj.putTimersInSharedPrefs(mmPrefs, mTimers);
+ }
+
+ public void sort() {
+ if (getCount() > 0) {
+ Collections.sort(mTimers, mTimersCompare);
+ notifyDataSetChanged();
+ }
+ }
+
+ private final Comparator<TimerObj> mTimersCompare = new Comparator<TimerObj>() {
+ static final int BUZZING = 0;
+ static final int IN_USE = 1;
+ static final int NOT_USED = 2;
+
+ protected int getSection(TimerObj timerObj) {
+ switch (timerObj.mState) {
+ case TimerObj.STATE_TIMESUP:
+ return BUZZING;
+ case TimerObj.STATE_RUNNING:
+ case TimerObj.STATE_STOPPED:
+ return IN_USE;
+ default:
+ return NOT_USED;
+ }
+ }
+
+ @Override
+ public int compare(TimerObj o1, TimerObj o2) {
+ int section1 = getSection(o1);
+ int section2 = getSection(o2);
+ if (section1 != section2) {
+ return (section1 < section2) ? -1 : 1;
+ } else if (section1 == BUZZING || section1 == IN_USE) {
+ return (o1.mTimeLeft < o2.mTimeLeft) ? -1 : 1;
+ } else {
+ return (o1.mSetupLength < o2.mSetupLength) ? -1 : 1;
+ }
+ }
+ };
+ }
+
+ private class TimesUpListAdapter extends TimersListAdapter {
+
+ public TimesUpListAdapter(Context context, SharedPreferences prefs) {
+ super(context, prefs);
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ // This adapter has a data subset and never updates entire database
+ // Individual timers are updated in button handlers.
+ }
+
+ @Override
+ public void saveGlobalState() {
+ // This adapter has a data subset and never updates entire database
+ // Individual timers are updated in button handlers.
+ }
+
+ @Override
+ public void onRestoreInstanceState(Bundle outState) {
+ // This adapter loads a subset
+ TimerObj.getTimersFromSharedPrefs(mmPrefs, mTimers, TimerObj.STATE_TIMESUP);
+
+ if (getCount() == 0) {
+ mOnEmptyListListener.onEmptyList();
+ } else {
+ Collections.sort(mTimers, new Comparator<TimerObj>() {
+ @Override
+ public int compare(TimerObj o1, TimerObj o2) {
+ return (o1.mTimeLeft < o2.mTimeLeft) ? -1 : 1;
+ }
+ });
+ }
+ }
+ }
+
+ private final Runnable mClockTick = new Runnable() {
+ boolean mVisible = true;
+ final static int TIME_PERIOD_MS = 1000;
+ final static int SPLIT = TIME_PERIOD_MS / 2;
+
+ @Override
+ public void run() {
+ // Setup for blinking
+ boolean visible = Utils.getTimeNow() % TIME_PERIOD_MS < SPLIT;
+ boolean toggle = mVisible != visible;
+ mVisible = visible;
+ for (int i = 0; i < mAdapter.getCount(); i++) {
+ TimerObj t = mAdapter.getItem(i);
+ if (t.mState == TimerObj.STATE_RUNNING || t.mState == TimerObj.STATE_TIMESUP) {
+ long timeLeft = t.updateTimeLeft(false);
+ if (t.mView != null) {
+ ((TimerListItem) (t.mView)).setTime(timeLeft, false);
+ }
+ }
+ if (t.mTimeLeft <= 0 && t.mState != TimerObj.STATE_DONE
+ && t.mState != TimerObj.STATE_RESTART) {
+ t.mState = TimerObj.STATE_TIMESUP;
+ if (t.mView != null) {
+ ((TimerListItem) (t.mView)).timesUp();
+ }
+ }
+
+ // The blinking
+ if (toggle && t.mView != null) {
+ if (t.mState == TimerObj.STATE_TIMESUP) {
+ ((TimerListItem) (t.mView)).setCircleBlink(mVisible);
+ }
+ if (t.mState == TimerObj.STATE_STOPPED) {
+ ((TimerListItem) (t.mView)).setTextBlink(mVisible);
+ }
+ }
+ }
+ mTimersList.postDelayed(mClockTick, 20);
+ }
+ };
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // Cache instance data and consume in first call to setupPage()
+ if (savedInstanceState != null) {
+ mViewState = savedInstanceState;
+ }
+
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View v = inflater.inflate(R.layout.timer_full_screen_fragment, container, false);
+
+ // Handle arguments from parent
+ Bundle bundle = getArguments();
+ if (bundle != null && bundle.containsKey(Timers.TIMESUP_MODE)) {
+ if (bundle.getBoolean(Timers.TIMESUP_MODE, false)) {
+ try {
+ mOnEmptyListListener = (OnEmptyListListener) getActivity();
+ } catch (ClassCastException e) {
+ Log.wtf(TAG, getActivity().toString() + " must implement OnEmptyListListener");
+ }
+ }
+ }
+
+ mFab = (ImageButton) v.findViewById(R.id.fab);
+ mTimersList = (StaggeredGridView) v.findViewById(R.id.timers_list);
+ // For tablets in landscape, the count will be 2. All else will be 1.
+ mColumnCount = getResources().getInteger(R.integer.timer_column_count);
+ mTimersList.setColumnCount(mColumnCount);
+ // Set this to true; otherwise adding new views to the end of the list won't cause
+ // everything above it to be filled in correctly.
+ mTimersList.setGuardAgainstJaggedEdges(true);
+
+ mTimersListPage = v.findViewById(R.id.timers_list_page);
+ mTimerSetup = (TimerSetupView) v.findViewById(R.id.timer_setup);
+
+ mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+ mNotificationManager = (NotificationManager)
+ getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
+
+ return v;
+ }
+
+ @Override
+ public void onDestroyView() {
+ mViewState = new Bundle();
+ saveViewState(mViewState);
+ super.onDestroyView();
+ }
+
+ @Override
+ public void onResume() {
+ Intent newIntent = null;
+
+ if (getActivity() instanceof DeskClock) {
+ DeskClock activity = (DeskClock) getActivity();
+ activity.registerPageChangedListener(this);
+ newIntent = activity.getIntent();
+ }
+ super.onResume();
+ mPrefs.registerOnSharedPreferenceChangeListener(this);
+
+ mAdapter = createAdapter(getActivity(), mPrefs);
+ mAdapter.onRestoreInstanceState(null);
+
+ LayoutParams params;
+ float dividerHeight = getResources().getDimension(R.dimen.timer_divider_height);
+ if (getActivity() instanceof DeskClock) {
+ // If this is a DeskClock fragment (i.e. not a FullScreenTimerAlert), add a footer to
+ // the bottom of the list so that it can scroll underneath the bottom button bar.
+ // StaggeredGridView doesn't support a footer view, but GridAdapter does, so this
+ // can't happen until the Adapter itself is instantiated.
+ View footerView = getActivity().getLayoutInflater().inflate(
+ R.layout.blank_footer_view, mTimersList, false);
+ params = footerView.getLayoutParams();
+ params.height -= dividerHeight;
+ footerView.setLayoutParams(params);
+ mAdapter.setFooterView(footerView);
+ }
+
+ if (mPrefs.getBoolean(Timers.FROM_NOTIFICATION, false)) {
+ // Clear the flag set in the notification because the adapter was just
+ // created and is thus in sync with the database
+ SharedPreferences.Editor editor = mPrefs.edit();
+ editor.putBoolean(Timers.FROM_NOTIFICATION, false);
+ editor.apply();
+ }
+ if (mPrefs.getBoolean(Timers.FROM_ALERT, false)) {
+ // Clear the flag set in the alert because the adapter was just
+ // created and is thus in sync with the database
+ SharedPreferences.Editor editor = mPrefs.edit();
+ editor.putBoolean(Timers.FROM_ALERT, false);
+ editor.apply();
+ }
+
+ mTimersList.setAdapter(mAdapter);
+ mLastVisibleView = null; // Force a non animation setting of the view
+ setPage();
+ // View was hidden in onPause, make sure it is visible now.
+ View v = getView();
+ if (v != null) {
+ getView().setVisibility(View.VISIBLE);
+ }
+
+ if (newIntent != null) {
+ processIntent(newIntent);
+ }
+
+ mFab.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ revealAnimation(mFab, getActivity().getResources().getColor(R.color.clock_white));
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ updateAllTimesUpTimers(false /* stop */);
+ }
+ }, TimerFragment.ANIMATION_TIME_MILLIS);
+ }
+ });
+ }
+
+ private void revealAnimation(final View centerView, int color) {
+ final Activity activity = getActivity();
+ final View decorView = activity.getWindow().getDecorView();
+ final ViewGroupOverlay overlay = (ViewGroupOverlay) decorView.getOverlay();
+
+ // Create a transient view for performing the reveal animation.
+ final View revealView = new View(activity);
+ revealView.setRight(decorView.getWidth());
+ revealView.setBottom(decorView.getHeight());
+ revealView.setBackgroundColor(color);
+ overlay.add(revealView);
+
+ final int[] clearLocation = new int[2];
+ centerView.getLocationInWindow(clearLocation);
+ clearLocation[0] += centerView.getWidth() / 2;
+ clearLocation[1] += centerView.getHeight() / 2;
+ final int revealCenterX = clearLocation[0] - revealView.getLeft();
+ final int revealCenterY = clearLocation[1] - revealView.getTop();
+
+ final int xMax = Math.max(revealCenterX, decorView.getWidth() - revealCenterX);
+ final int yMax = Math.max(revealCenterY, decorView.getHeight() - revealCenterY);
+ final float revealRadius = (float) Math.sqrt(Math.pow(xMax, 2.0) + Math.pow(yMax, 2.0));
+
+ final Animator revealAnimator = ViewAnimationUtils.createCircularReveal(
+ revealView, revealCenterX, revealCenterY, 0.0f, revealRadius);
+ revealAnimator.setInterpolator(REVEAL_INTERPOLATOR);
+
+ final ValueAnimator fadeAnimator = ObjectAnimator.ofFloat(revealView, View.ALPHA, 1.0f);
+ fadeAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ overlay.remove(revealView);
+ }
+ });
+
+ final AnimatorSet alertAnimator = new AnimatorSet();
+ alertAnimator.setDuration(TimerFragment.ANIMATION_TIME_MILLIS);
+ alertAnimator.play(revealAnimator).before(fadeAnimator);
+ alertAnimator.start();
+ }
+
+ @Override
+ public void onPause() {
+ if (getActivity() instanceof DeskClock) {
+ ((DeskClock) getActivity()).unregisterPageChangedListener(this);
+ }
+ super.onPause();
+ stopClockTicks();
+ if (mAdapter != null) {
+ mAdapter.saveGlobalState();
+ }
+ mPrefs.unregisterOnSharedPreferenceChangeListener(this);
+ // This is called because the lock screen was activated, the window stay
+ // active under it and when we unlock the screen, we see the old time for
+ // a fraction of a second.
+ View v = getView();
+ if (v != null) {
+ v.setVisibility(View.INVISIBLE);
+ }
+ }
+
+ @Override
+ public void onPageChanged(int page) {
+ if (page == DeskClock.TIMER_TAB_INDEX && mAdapter != null) {
+ mAdapter.sort();
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ if (mAdapter != null) {
+ mAdapter.onSaveInstanceState(outState);
+ }
+ if (mTimerSetup != null) {
+ saveViewState(outState);
+ } else if (mViewState != null) {
+ outState.putAll(mViewState);
+ }
+ }
+
+ private void saveViewState(Bundle outState) {
+ mTimerSetup.saveEntryState(outState, KEY_ENTRY_STATE);
+ }
+
+ public void setPage() {
+ boolean switchToSetupView;
+ if (mViewState != null) {
+ switchToSetupView = false;
+ mTimerSetup.restoreEntryState(mViewState, KEY_ENTRY_STATE);
+ mViewState = null;
+ } else {
+ switchToSetupView = mAdapter.getCount() == 0;
+ }
+ if (switchToSetupView) {
+ gotoSetupView();
+ } else {
+ gotoTimersView();
+ }
+ }
+
+ private void resetTimer(TimerObj t) {
+ t.mState = TimerObj.STATE_RESTART;
+ t.mTimeLeft = t.mOriginalLength = t.mSetupLength;
+
+ // when multiple timers are firing, some timers will be off-screen and they will not
+ // have Fragment instances unless user scrolls down further. t.mView is null in this case.
+ if (t.mView != null) {
+ t.mView.stop();
+ t.mView.setTime(t.mTimeLeft, false);
+ t.mView.set(t.mOriginalLength, t.mTimeLeft, false);
+ }
+ updateTimersState(t, Timers.TIMER_RESET);
+ }
+
+ public void updateAllTimesUpTimers(boolean stop) {
+ boolean notifyChange = false;
+ // To avoid race conditions where a timer was dismissed and it is still in the timers list
+ // and can be picked again, create a temporary list of timers to be removed first and
+ // then removed them one by one
+ LinkedList<TimerObj> timesupTimers = new LinkedList<TimerObj>();
+ for (int i = 0; i < mAdapter.getCount(); i++) {
+ TimerObj timerObj = mAdapter.getItem(i);
+ if (timerObj.mState == TimerObj.STATE_TIMESUP) {
+ timesupTimers.addFirst(timerObj);
+ notifyChange = true;
+ }
+ }
+
+ while (timesupTimers.size() > 0) {
+ final TimerObj t = timesupTimers.remove();
+ if (stop) {
+ onStopButtonPressed(t);
+ } else {
+ resetTimer(t);
+ }
+ }
+
+ if (notifyChange) {
+ SharedPreferences.Editor editor = mPrefs.edit();
+ editor.putBoolean(Timers.FROM_ALERT, true);
+ editor.apply();
+ }
+ }
+
+ private void gotoSetupView() {
+ if (mLastVisibleView == null || mLastVisibleView.getId() == R.id.timer_setup) {
+ mTimerSetup.setVisibility(View.VISIBLE);
+ mTimerSetup.setScaleX(1f);
+ mTimersListPage.setVisibility(View.GONE);
+ } else {
+ // Animate
+ ObjectAnimator a = ObjectAnimator.ofFloat(mTimersListPage, View.SCALE_X, 1f, 0f);
+ a.setInterpolator(new AccelerateInterpolator());
+ a.setDuration(125);
+ a.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mTimersListPage.setVisibility(View.GONE);
+ mTimerSetup.setScaleX(0);
+ mTimerSetup.setVisibility(View.VISIBLE);
+ ObjectAnimator b = ObjectAnimator.ofFloat(mTimerSetup, View.SCALE_X, 0f, 1f);
+ b.setInterpolator(new DecelerateInterpolator());
+ b.setDuration(225);
+ b.start();
+ }
+ });
+ a.start();
+
+ }
+ stopClockTicks();
+ mTimerSetup.updateDeleteButtonAndDivider();
+ mLastVisibleView = mTimerSetup;
+ }
+
+ private void gotoTimersView() {
+ if (mLastVisibleView == null || mLastVisibleView.getId() == R.id.timers_list_page) {
+ mTimerSetup.setVisibility(View.GONE);
+ mTimersListPage.setVisibility(View.VISIBLE);
+ mTimersListPage.setScaleX(1f);
+ } else {
+ // Animate
+ ObjectAnimator a = ObjectAnimator.ofFloat(mTimerSetup, View.SCALE_X, 1f, 0f);
+ a.setInterpolator(new AccelerateInterpolator());
+ a.setDuration(125);
+ a.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mTimerSetup.setVisibility(View.GONE);
+ mTimersListPage.setScaleX(0);
+ mTimersListPage.setVisibility(View.VISIBLE);
+ ObjectAnimator b =
+ ObjectAnimator.ofFloat(mTimersListPage, View.SCALE_X, 0f, 1f);
+ b.setInterpolator(new DecelerateInterpolator());
+ b.setDuration(225);
+ b.start();
+ }
+ });
+ a.start();
+ }
+ startClockTicks();
+ mLastVisibleView = mTimersListPage;
+ }
+
+ @Override
+ public void onClick(View v) {
+ ClickAction tag = (ClickAction) v.getTag();
+ onClickHelper(tag);
+ }
+
+ private void onClickHelper(ClickAction clickAction) {
+ switch (clickAction.mAction) {
+ case ClickAction.ACTION_DELETE:
+ final TimerObj t = clickAction.mTimer;
+ if (t.mState == TimerObj.STATE_TIMESUP) {
+ cancelTimerNotification(t.mTimerId);
+ }
+ // Tell receiver the timer was deleted.
+ // It will stop all activity related to the
+ // timer
+ t.mState = TimerObj.STATE_DELETED;
+ updateTimersState(t, Timers.DELETE_TIMER);
+ break;
+ case ClickAction.ACTION_PLUS_ONE:
+ onPlusOneButtonPressed(clickAction.mTimer);
+ break;
+ case ClickAction.ACTION_STOP:
+ onStopButtonPressed(clickAction.mTimer);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void onPlusOneButtonPressed(TimerObj t) {
+ switch (t.mState) {
+ case TimerObj.STATE_RUNNING:
+ t.addTime(TimerObj.MINUTE_IN_MILLIS);
+ long timeLeft = t.updateTimeLeft(false);
+ ((TimerListItem) (t.mView)).setTime(timeLeft, false);
+ ((TimerListItem) (t.mView)).setLength(timeLeft);
+ mAdapter.notifyDataSetChanged();
+ updateTimersState(t, Timers.TIMER_UPDATE);
+ break;
+ case TimerObj.STATE_TIMESUP:
+ // +1 min when the time is up will restart the timer with 1 minute left.
+ t.mState = TimerObj.STATE_RUNNING;
+ t.mStartTime = Utils.getTimeNow();
+ t.mTimeLeft = t.mOriginalLength = TimerObj.MINUTE_IN_MILLIS;
+ updateTimersState(t, Timers.TIMER_RESET);
+ updateTimersState(t, Timers.START_TIMER);
+ updateTimesUpMode(t);
+ cancelTimerNotification(t.mTimerId);
+ break;
+ case TimerObj.STATE_STOPPED:
+ case TimerObj.STATE_DONE:
+ t.mState = TimerObj.STATE_RESTART;
+ t.mTimeLeft = t.mOriginalLength = t.mSetupLength;
+ ((TimerListItem) t.mView).stop();
+ ((TimerListItem) t.mView).setTime(t.mTimeLeft, false);
+ ((TimerListItem) t.mView).set(t.mOriginalLength, t.mTimeLeft, false);
+ updateTimersState(t, Timers.TIMER_RESET);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void onStopButtonPressed(TimerObj t) {
+ switch (t.mState) {
+ case TimerObj.STATE_RUNNING:
+ // Stop timer and save the remaining time of the timer
+ t.mState = TimerObj.STATE_STOPPED;
+ ((TimerListItem) t.mView).pause();
+ t.updateTimeLeft(true);
+ updateTimersState(t, Timers.TIMER_STOP);
+ break;
+ case TimerObj.STATE_STOPPED:
+ // Reset the remaining time and continue timer
+ t.mState = TimerObj.STATE_RUNNING;
+ t.mStartTime = Utils.getTimeNow() - (t.mOriginalLength - t.mTimeLeft);
+ ((TimerListItem) t.mView).start();
+ updateTimersState(t, Timers.START_TIMER);
+ break;
+ case TimerObj.STATE_TIMESUP:
+ if (t.mDeleteAfterUse) {
+ cancelTimerNotification(t.mTimerId);
+ // Tell receiver the timer was deleted.
+ // It will stop all activity related to the
+ // timer
+ t.mState = TimerObj.STATE_DELETED;
+ updateTimersState(t, Timers.DELETE_TIMER);
+ } else {
+ t.mState = TimerObj.STATE_DONE;
+ // Used in a context where the timer could be off-screen and without a view
+ if (t.mView != null) {
+ ((TimerListItem) t.mView).done();
+ }
+ updateTimersState(t, Timers.TIMER_DONE);
+ cancelTimerNotification(t.mTimerId);
+ updateTimesUpMode(t);
+ }
+ break;
+ case TimerObj.STATE_DONE:
+ break;
+ case TimerObj.STATE_RESTART:
+ t.mState = TimerObj.STATE_RUNNING;
+ t.mStartTime = Utils.getTimeNow() - (t.mOriginalLength - t.mTimeLeft);
+ ((TimerListItem) t.mView).start();
+ updateTimersState(t, Timers.START_TIMER);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void onLabelPressed(TimerObj t) {
+ final FragmentTransaction ft = getFragmentManager().beginTransaction();
+ final Fragment prev = getFragmentManager().findFragmentByTag("label_dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ // Create and show the dialog.
+ final LabelDialogFragment newFragment =
+ LabelDialogFragment.newInstance(t, t.mLabel, getTag());
+ newFragment.show(ft, "label_dialog");
+ }
+
+ // Starts the ticks that animate the timers.
+ private void startClockTicks() {
+ mTimersList.postDelayed(mClockTick, 20);
+ mTicking = true;
+ }
+
+ // Stops the ticks that animate the timers.
+ private void stopClockTicks() {
+ if (mTicking) {
+ mTimersList.removeCallbacks(mClockTick);
+ mTicking = false;
+ }
+ }
+
+ private void updateTimersState(TimerObj t, String action) {
+ if (Timers.DELETE_TIMER.equals(action)) {
+ LogUtils.e("~~ update timer state");
+ t.deleteFromSharedPref(mPrefs);
+ } else {
+ t.writeToSharedPref(mPrefs);
+ }
+ Intent i = new Intent();
+ i.setAction(action);
+ i.putExtra(Timers.TIMER_INTENT_EXTRA, t.mTimerId);
+ // Make sure the receiver is getting the intent ASAP.
+ i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ getActivity().sendBroadcast(i);
+ }
+
+ private void cancelTimerNotification(int timerId) {
+ mNotificationManager.cancel(timerId);
+ }
+
+ private void updateTimesUpMode(TimerObj timerObj) {
+ if (mOnEmptyListListener != null && timerObj.mState != TimerObj.STATE_TIMESUP) {
+ mAdapter.removeTimer(timerObj);
+ if (mAdapter.getCount() == 0) {
+ mOnEmptyListListener.onEmptyList();
+ } else {
+ mOnEmptyListListener.onListChanged();
+ }
+ }
+ }
+
+ public void restartAdapter() {
+ mAdapter = createAdapter(getActivity(), mPrefs);
+ mAdapter.onRestoreInstanceState(null);
+ }
+
+ // Process extras that were sent to the app and were intended for the timer
+ // fragment
+ public void processIntent(Intent intent) {
+ // switch to timer setup view
+ if (intent.getBooleanExtra(GOTO_SETUP_VIEW, false)) {
+ gotoSetupView();
+ }
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
+ if (prefs.equals(mPrefs)) {
+ if ((key.equals(Timers.FROM_ALERT) && prefs.getBoolean(Timers.FROM_ALERT, false))
+ || (key.equals(Timers.FROM_NOTIFICATION)
+ && prefs.getBoolean(Timers.FROM_NOTIFICATION, false))) {
+ // The data-changed flag was set in the alert or notification so the adapter needs
+ // to re-sync with the database
+ SharedPreferences.Editor editor = mPrefs.edit();
+ editor.putBoolean(key, false);
+ editor.apply();
+ mAdapter = createAdapter(getActivity(), mPrefs);
+ mAdapter.onRestoreInstanceState(null);
+ mTimersList.setAdapter(mAdapter);
+ }
+ }
+ }
+
+ @Override
+ public void onFabClick(View view) {
+ if (mLastVisibleView != mTimersListPage) {
+ // New timer create if timer length is not zero
+ // Create a new timer object to track the timer and
+ // switch to the timers view.
+ int timerLength = mTimerSetup.getTime();
+ if (timerLength == 0) {
+ return;
+ }
+ TimerObj t = new TimerObj(timerLength * DateUtils.SECOND_IN_MILLIS, getActivity());
+ t.mState = TimerObj.STATE_RUNNING;
+ mAdapter.addTimer(t);
+ updateTimersState(t, Timers.START_TIMER);
+ gotoTimersView();
+ mTimerSetup.reset(); // Make sure the setup is cleared for next time
+
+ mTimersList.setFirstPositionAndOffsets(
+ mAdapter.findTimerPositionById(t.mTimerId), 0);
+ } else {
+ mTimerSetup.reset();
+ gotoSetupView();
+ }
+ }
+}
diff --git a/src/com/android/deskclock/timer/TimerItemFragment.java b/src/com/android/deskclock/timer/TimerItemFragment.java
new file mode 100644
index 0000000..7e23d68
--- /dev/null
+++ b/src/com/android/deskclock/timer/TimerItemFragment.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2014 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.timer;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import com.android.deskclock.CircleButtonsLayout;
+import com.android.deskclock.DeskClock;
+import com.android.deskclock.DeskClock.OnTapListener;
+import com.android.deskclock.LabelDialogFragment;
+import com.android.deskclock.R;
+
+public class TimerItemFragment extends Fragment {
+ private static final String TAG = "TimerItemFragment_tag";
+ private TimerObj mTimerObj;
+
+ public TimerItemFragment() {
+ }
+
+ public static TimerItemFragment newInstance(TimerObj timerObj) {
+ final TimerItemFragment fragment = new TimerItemFragment();
+ final Bundle args = new Bundle();
+ args.putParcelable(TAG, timerObj);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ final Bundle bundle = getArguments();
+ if (bundle != null) {
+ mTimerObj = (TimerObj) bundle.getParcelable(TAG);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ final TimerListItem v = (TimerListItem) inflater.inflate(R.layout.timer_list_item,
+ null);
+ mTimerObj.mView = v;
+ final long timeLeft = mTimerObj.updateTimeLeft(false);
+ final boolean drawWithColor = mTimerObj.mState != TimerObj.STATE_RESTART;
+ v.set(mTimerObj.mOriginalLength, timeLeft, drawWithColor);
+ v.setTime(timeLeft, true);
+ v.setResetAddButton(mTimerObj.mState == TimerObj.STATE_RUNNING ||
+ mTimerObj.mState == TimerObj.STATE_TIMESUP, new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ final Fragment parent = getParentFragment();
+ if (parent instanceof TimerFragment) {
+ ((TimerFragment) parent).onPlusOneButtonPressed(mTimerObj);
+ }
+ }
+ });
+ switch (mTimerObj.mState) {
+ case TimerObj.STATE_RUNNING:
+ v.start();
+ break;
+ case TimerObj.STATE_TIMESUP:
+ v.timesUp();
+ break;
+ case TimerObj.STATE_DONE:
+ v.done();
+ break;
+ default:
+ break;
+ }
+
+ final CircleButtonsLayout circleLayout =
+ (CircleButtonsLayout) v.findViewById(R.id.timer_circle);
+ circleLayout.setCircleTimerViewIds(R.id.timer_time, R.id.reset_add, R.id.timer_label,
+ R.id.timer_label_text);
+
+ return v;
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ final View v = mTimerObj.mView;
+ if (v == null) {
+ return;
+ }
+ final FrameLayout labelLayout = (FrameLayout) v.findViewById(R.id.timer_label);
+ final TextView labelPlaceholder = (TextView) v.findViewById(R.id.timer_label_placeholder);
+ final TextView labelText = (TextView) v.findViewById(R.id.timer_label_text);
+ if (TextUtils.isEmpty(mTimerObj.mLabel)) {
+ labelText.setVisibility(View.GONE);
+ labelPlaceholder.setVisibility(View.VISIBLE);
+ } else {
+ labelText.setText(mTimerObj.mLabel);
+ labelText.setVisibility(View.VISIBLE);
+ labelPlaceholder.setVisibility(View.GONE);
+ }
+ final Activity activity = getActivity();
+ if (activity instanceof DeskClock) {
+ labelLayout.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onLabelPressed(mTimerObj);
+ }
+ });
+ } else {
+ labelPlaceholder.setVisibility(View.INVISIBLE);
+ }
+ }
+
+ private void onLabelPressed(TimerObj t) {
+ final String dialogTag = "label_dialog";
+ final FragmentTransaction ft = getFragmentManager().beginTransaction();
+ final Fragment prev = getFragmentManager().findFragmentByTag(dialogTag);
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+ final LabelDialogFragment newFragment =
+ LabelDialogFragment.newInstance(t, t.mLabel, getParentFragment().getTag());
+ newFragment.show(ft, dialogTag);
+ }
+}
diff --git a/src/com/android/deskclock/timer/TimerListItem.java b/src/com/android/deskclock/timer/TimerListItem.java
index a5f8149..b9cce22 100644
--- a/src/com/android/deskclock/timer/TimerListItem.java
+++ b/src/com/android/deskclock/timer/TimerListItem.java
@@ -20,6 +20,7 @@
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import com.android.deskclock.CircleTimerView;
@@ -30,6 +31,7 @@
CountingTimerView mTimerText;
CircleTimerView mCircleView;
+ ImageView mResetAddButton;
long mTimerLength;
@@ -37,24 +39,28 @@
this(context, null);
}
+// public void TimerListItem newInstance(Context context) {
+// final LayoutInflater layoutInflater =
+// (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+// layoutInflater.inflate(R.layout.timer_list_item, this);
+// }
+
public TimerListItem(Context context, AttributeSet attrs) {
super(context, attrs);
- LayoutInflater layoutInflater =
- (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- layoutInflater.inflate(R.layout.timer_list_item, this);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
- mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text);
- mCircleView = (CircleTimerView)findViewById(R.id.timer_time);
+ mTimerText = (CountingTimerView) findViewById(R.id.timer_time_text);
+ mCircleView = (CircleTimerView) findViewById(R.id.timer_time);
+ mResetAddButton = (ImageView) findViewById(R.id.reset_add);
mCircleView.setTimerMode(true);
}
public void set(long timerLength, long timeLeft, boolean drawRed) {
if (mCircleView == null) {
- mCircleView = (CircleTimerView)findViewById(R.id.timer_time);
+ mCircleView = (CircleTimerView) findViewById(R.id.timer_time);
mCircleView.setTimerMode(true);
}
mTimerLength = timerLength;
@@ -64,6 +70,8 @@
}
public void start() {
+ mResetAddButton.setImageResource(R.drawable.ic_plusone);
+ mResetAddButton.setContentDescription(getResources().getString(R.string.timer_plus_one));
mCircleView.startIntervalAnimation();
mTimerText.setTimeStrTextColor(false, true);
mTimerText.showTime(true);
@@ -71,6 +79,8 @@
}
public void pause() {
+ mResetAddButton.setImageResource(R.drawable.ic_reset);
+ mResetAddButton.setContentDescription(getResources().getString(R.string.timer_reset));
mCircleView.pauseIntervalAnimation();
mTimerText.setTimeStrTextColor(false, true);
mTimerText.showTime(true);
@@ -110,9 +120,20 @@
mCircleView.setVisibility(blink ? INVISIBLE : VISIBLE);
}
+ public void setResetAddButton(boolean isRunning, OnClickListener listener) {
+ if (mResetAddButton == null) {
+ mResetAddButton = (ImageView) findViewById(R.id.reset_add);
+ }
+ mResetAddButton.setImageResource(isRunning ? R.drawable.ic_plusone :
+ R.drawable.ic_reset);
+ mResetAddButton.setContentDescription(getResources().getString(
+ isRunning ? R.string.timer_plus_one : R.string.timer_reset));
+ mResetAddButton.setOnClickListener(listener);
+ }
+
public void setTime(long time, boolean forceUpdate) {
if (mTimerText == null) {
- mTimerText = (CountingTimerView)findViewById(R.id.timer_time_text);
+ mTimerText = (CountingTimerView) findViewById(R.id.timer_time_text);
}
mTimerText.setTime(time, false, forceUpdate);
}
diff --git a/src/com/android/deskclock/timer/TimerObj.java b/src/com/android/deskclock/timer/TimerObj.java
index 66aee59..64639d9 100644
--- a/src/com/android/deskclock/timer/TimerObj.java
+++ b/src/com/android/deskclock/timer/TimerObj.java
@@ -20,8 +20,8 @@
import android.content.SharedPreferences;
import android.os.Parcel;
import android.os.Parcelable;
+import android.preference.PreferenceManager;
import android.util.Log;
-import android.view.View;
import com.android.deskclock.R;
import com.android.deskclock.Utils;
@@ -35,6 +35,8 @@
public class TimerObj implements Parcelable {
+ public static final String KEY_NEXT_TIMER_ID = "next_timer_id";
+
private static final String TAG = "TimerObj";
// Max timer length is 9 hours + 99 minutes + 9 seconds
public static final long MAX_TIMER_LENGTH = (9 * 3600 + 99 * 60 + 99) * 1000;
@@ -45,7 +47,7 @@
public long mTimeLeft; // in the timer.
public long mOriginalLength; // length set at start of timer and by +1 min after times up
public long mSetupLength; // length set at start of timer
- public View mView;
+ public TimerListItem mView;
public int mState;
public String mLabel;
public boolean mDeleteAfterUse;
@@ -81,31 +83,22 @@
};
public void writeToSharedPref(SharedPreferences prefs) {
- SharedPreferences.Editor editor = prefs.edit();
- String key = PREF_TIMER_ID + Integer.toString(mTimerId);
- String id = Integer.toString(mTimerId);
- editor.putInt (key, mTimerId);
- key = PREF_START_TIME + id;
- editor.putLong (key, mStartTime);
- key = PREF_TIME_LEFT + id;
- editor.putLong (key, mTimeLeft);
- key = PREF_ORIGINAL_TIME + id;
- editor.putLong (key, mOriginalLength);
- key = PREF_SETUP_TIME + id;
- editor.putLong (key, mSetupLength);
- key = PREF_STATE + id;
- editor.putInt (key, mState);
- Set <String> timersList = prefs.getStringSet(PREF_TIMERS_LIST, new HashSet<String>());
+ final SharedPreferences.Editor editor = prefs.edit();
+ final String id = Integer.toString(mTimerId);
+ editor.putInt(PREF_TIMER_ID + id, mTimerId);
+ editor.putLong(PREF_START_TIME + id, mStartTime);
+ editor.putLong (PREF_TIME_LEFT + id, mTimeLeft);
+ editor.putLong (PREF_ORIGINAL_TIME + id, mOriginalLength);
+ editor.putLong (PREF_SETUP_TIME + id, mSetupLength);
+ editor.putInt(PREF_STATE + id, mState);
+ final Set <String> timersList = prefs.getStringSet(PREF_TIMERS_LIST, new HashSet<String>());
timersList.add(id);
editor.putStringSet(PREF_TIMERS_LIST, timersList);
- key = PREF_LABEL + id;
- editor.putString(key, mLabel);
- key = PREF_DELETE_AFTER_USE + id;
- editor.putBoolean(key, mDeleteAfterUse);
+ editor.putString(PREF_LABEL + id, mLabel);
+ editor.putBoolean(PREF_DELETE_AFTER_USE + id, mDeleteAfterUse);
editor.apply();
}
-
public void readFromSharedPref(SharedPreferences prefs) {
String id = Integer.toString(mTimerId);
String key = PREF_START_TIME + id;
@@ -146,11 +139,13 @@
editor.remove(key);
key = PREF_DELETE_AFTER_USE + id;
editor.remove(key);
+ if (timersList.isEmpty()) {
+ editor.remove(KEY_NEXT_TIMER_ID);
+ }
editor.commit();
//dumpTimersFromSharedPrefs(prefs);
}
-
@Override
public int describeContents() {
return 0;
@@ -177,29 +172,43 @@
mLabel = p.readString();
}
- public TimerObj() {
- this(0);
+ private TimerObj() {
+ this(0 /* timerLength */, 0 /* timerId */);
}
- public TimerObj(long timerLength) {
- init(timerLength);
+ public TimerObj(long timerLength, int timerId) {
+ init(timerLength, timerId);
}
- public TimerObj(long length, String label) {
- this(length);
+ public TimerObj(long timerLength, Context context) {
+ init(timerLength, getNextTimerId(context));
+ }
+
+ public TimerObj(long length, String label, Context context) {
+ this(length, context);
mLabel = label != null ? label : "";
}
- private void init (long length) {
+ private void init (long length, int timerId) {
/* TODO: mTimerId must avoid StopwatchService.NOTIFICATION_ID,
* TimerReceiver.IN_USE_NOTIFICATION_ID, and alarm ID's (which seem to be 1, 2, ..)
*/
- mTimerId = (int) Utils.getTimeNow();
+ mTimerId = timerId;
mStartTime = Utils.getTimeNow();
mTimeLeft = mOriginalLength = mSetupLength = length;
mLabel = "";
}
+ private int getNextTimerId(Context context) {
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ final int nextTimerId;
+ synchronized (TimerObj.class) {
+ nextTimerId = prefs.getInt(KEY_NEXT_TIMER_ID, 0);
+ prefs.edit().putInt(KEY_NEXT_TIMER_ID, nextTimerId + 1).apply();
+ }
+ return nextTimerId;
+ }
+
public long updateTimeLeft(boolean forceUpdate) {
if (isTicking() || forceUpdate) {
long millis = Utils.getTimeNow();
@@ -252,7 +261,7 @@
Collections.sort(timers, new Comparator<TimerObj>() {
@Override
public int compare(TimerObj timerObj1, TimerObj timerObj2) {
- return timerObj2.mTimerId - timerObj1.mTimerId;
+ return timerObj1.mTimerId - timerObj2.mTimerId;
}
});
}
@@ -278,7 +287,6 @@
SharedPreferences prefs, ArrayList<TimerObj> timers) {
if (timers.size() > 0) {
for (int i = 0; i < timers.size(); i++) {
- TimerObj t = timers.get(i);
timers.get(i).writeToSharedPref(prefs);
}
}
diff --git a/src/com/android/deskclock/timer/TimerReceiver.java b/src/com/android/deskclock/timer/TimerReceiver.java
index d5a912c..4c29148 100644
--- a/src/com/android/deskclock/timer/TimerReceiver.java
+++ b/src/com/android/deskclock/timer/TimerReceiver.java
@@ -134,8 +134,8 @@
}
// Update timer state
- t.mState = t.getDeleteAfterUse() ? TimerObj.STATE_DELETED : TimerObj.STATE_DONE;
- t.mTimeLeft = t.mOriginalLength - (Utils.getTimeNow() - t.mStartTime);
+ t.mState = t.getDeleteAfterUse() ? TimerObj.STATE_DELETED : TimerObj.STATE_RESTART;
+ t.mTimeLeft = t.mOriginalLength = t.mSetupLength;
t.writeToSharedPref(prefs);
// Flag to tell DeskClock to re-sync with the database
@@ -179,6 +179,12 @@
// Stop Ringtone if no timers are in times-up status
stopRingtoneIfNoTimesup(context);
} else if (Timers.TIMER_UPDATE.equals(actionType)) {
+ // Find the timer (if it doesn't exists, it was probably deleted).
+ if (t == null) {
+ Log.d(TAG, " timer to update not found in list - do nothing");
+ return;
+ }
+
// Refresh buzzing notification
if (t.mState == TimerObj.STATE_TIMESUP) {
// Must cancel the previous notification to get all updates displayed correctly
@@ -211,6 +217,8 @@
Intent intent = new Intent();
intent.setAction(Timers.TIMES_UP);
intent.setClass(context, TimerReceiver.class);
+ // Time-critical, should be foreground
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
if (!mTimers.isEmpty()) {
intent.putExtra(Timers.TIMER_INTENT_EXTRA, timerId);
}
@@ -330,7 +338,9 @@
.setPriority(priority)
.setShowWhen(false)
.setSmallIcon(R.drawable.stat_notify_timer)
- .setCategory(Notification.CATEGORY_ALARM);
+ .setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
if (showTicker) {
builder.setTicker(text);
}
@@ -424,7 +434,7 @@
PendingIntent.FLAG_UPDATE_CURRENT);
// Add stop/done action button
- PendingIntent stopAction = PendingIntent.getBroadcast(context, timerObj.mTimerId,
+ PendingIntent stopIntent = PendingIntent.getBroadcast(context, timerObj.mTimerId,
new Intent(Timers.NOTIF_TIMES_UP_STOP)
.putExtra(Timers.TIMER_INTENT_EXTRA, timerObj.mTimerId),
PendingIntent.FLAG_UPDATE_CURRENT);
@@ -438,11 +448,11 @@
.addAction(
timerObj.getDeleteAfterUse()
? android.R.drawable.ic_menu_close_clear_cancel
- : R.drawable.ic_stop_normal,
+ : R.drawable.ic_notify_stop,
timerObj.getDeleteAfterUse()
? context.getResources().getString(R.string.timer_done)
: context.getResources().getString(R.string.timer_stop),
- stopAction)
+ stopIntent)
.setContentTitle(timerObj.getLabelOrDefault(context))
.setContentText(context.getResources().getString(R.string.timer_times_up))
.setSmallIcon(R.drawable.stat_notify_timer)
@@ -452,6 +462,8 @@
.setDefaults(Notification.DEFAULT_LIGHTS)
.setWhen(0)
.setCategory(Notification.CATEGORY_ALARM)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true)
.build();
// Send the notification using the timer's id to identify the
diff --git a/src/com/android/deskclock/timer/Timers.java b/src/com/android/deskclock/timer/Timers.java
index 756a6a5..1c5fbad 100644
--- a/src/com/android/deskclock/timer/Timers.java
+++ b/src/com/android/deskclock/timer/Timers.java
@@ -43,6 +43,7 @@
public static final String NOTIF_TIMES_UP_SHOW = "notif_times_up_show";
public static final String NOTIF_TIMES_UP_CANCEL = "notif_times_up_cancel";
public static final String FROM_ALERT = "from_alert";
+ public static final String FIRST_LAUNCH_FROM_API_CALL = "first_launch_from_api_call";
public static final String TIMESUP_MODE = "times_up";
diff --git a/src/com/android/deskclock/worldclock/CitiesActivity.java b/src/com/android/deskclock/worldclock/CitiesActivity.java
index 3a2f597..a50a429 100644
--- a/src/com/android/deskclock/worldclock/CitiesActivity.java
+++ b/src/com/android/deskclock/worldclock/CitiesActivity.java
@@ -22,7 +22,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.graphics.drawable.ColorDrawable;
+import android.media.AudioManager;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.TextUtils;
@@ -41,30 +41,24 @@
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Filter;
import android.widget.Filterable;
-import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.SectionIndexer;
import android.widget.TextView;
-import com.android.deskclock.DeskClock;
-import com.android.deskclock.Log;
import com.android.deskclock.R;
import com.android.deskclock.SettingsActivity;
import com.android.deskclock.Utils;
-import com.android.deskclock.provider.City;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
-import java.util.Set;
import java.util.TimeZone;
/**
@@ -459,6 +453,8 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setVolumeControlStream(AudioManager.STREAM_ALARM);
+
mFactory = LayoutInflater.from(this);
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
mSortType = mPrefs.getInt(PREF_SORT, SORT_BY_NAME);
diff --git a/src/com/android/deskclock/worldclock/WorldClockAdapter.java b/src/com/android/deskclock/worldclock/WorldClockAdapter.java
index a4d2447..bbf74d2 100644
--- a/src/com/android/deskclock/worldclock/WorldClockAdapter.java
+++ b/src/com/android/deskclock/worldclock/WorldClockAdapter.java
@@ -47,7 +47,7 @@
private String mClockStyle;
private final Collator mCollator = Collator.getInstance();
protected HashMap<String, CityObj> mCitiesDb = new HashMap<String, CityObj>();
- private int mClocksPerRow;
+ protected int mClocksPerRow;
public WorldClockAdapter(Context context) {
super();