diff options
Diffstat (limited to 'packages/SystemUI')
214 files changed, 7580 insertions, 2075 deletions
diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk index 47ef42a..51fea2a 100644 --- a/packages/SystemUI/Android.mk +++ b/packages/SystemUI/Android.mk @@ -20,6 +20,11 @@ LOCAL_RESOURCE_DIR := \ $(LOCAL_PATH)/res LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard +ifneq ($(SYSTEM_UI_INCREMENTAL_BUILDS),) + LOCAL_PROGUARD_ENABLED := disabled + LOCAL_JACK_ENABLED := incremental +endif + include frameworks/base/packages/SettingsLib/common.mk include $(BUILD_PACKAGE) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 7a58c87..012c84c 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -120,6 +120,9 @@ <!-- Screen Capturing --> <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" /> + <!-- Assist --> + <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" /> + <application android:name=".SystemUIApplication" android:persistent="true" @@ -178,15 +181,6 @@ android:excludeFromRecents="true"> </activity> - <receiver - android:name=".recent.RecentsPreloadReceiver" - android:exported="false"> - <intent-filter> - <action android:name="com.android.systemui.recent.action.PRELOAD" /> - <action android:name="com.android.systemui.recent.action.CANCEL_PRELOAD" /> - </intent-filter> - </receiver> - <!-- Alternate Recents --> <activity android:name=".recents.RecentsActivity" android:label="@string/accessibility_desc_recent_apps" @@ -195,6 +189,7 @@ android:excludeFromRecents="true" android:stateNotNeeded="true" android:resumeWhilePausing="true" + android:screenOrientation="behind" android:theme="@style/config_recents_activity_theme"> <intent-filter> <action android:name="com.android.systemui.recents.TOGGLE_RECENTS" /> diff --git a/packages/SystemUI/res/anim/ic_volume_collapse_chevron_02_animation.xml b/packages/SystemUI/res/anim/ic_volume_collapse_chevron_02_animation.xml new file mode 100644 index 0000000..443f2a6 --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_collapse_chevron_02_animation.xml @@ -0,0 +1,25 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="250" + android:interpolator="@android:interpolator/fast_out_slow_in" + android:pathData="M 12.0,9.0 c 0.0,0.66667 0.0,5.0 0.0,6.0" + android:propertyXName="translateX" + android:propertyYName="translateY" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_1_animation.xml b/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_1_animation.xml new file mode 100644 index 0000000..d82f670 --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_1_animation.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="200" + android:interpolator="@interpolator/ic_volume_collapse_animation_interpolator_0" + android:propertyName="rotation" + android:valueFrom="45.0" + android:valueTo="-45.0" + android:valueType="floatType" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_2_animation.xml b/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_2_animation.xml new file mode 100644 index 0000000..0bc66bd --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_collapse_rectangle_2_animation.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="200" + android:interpolator="@interpolator/ic_volume_collapse_animation_interpolator_0" + android:propertyName="rotation" + android:valueFrom="-45.0" + android:valueTo="45.0" + android:valueType="floatType" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/anim/ic_volume_expand_chevron_01_animation.xml b/packages/SystemUI/res/anim/ic_volume_expand_chevron_01_animation.xml new file mode 100644 index 0000000..e43e645 --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_expand_chevron_01_animation.xml @@ -0,0 +1,25 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="250" + android:interpolator="@android:interpolator/fast_out_slow_in" + android:pathData="M 12.0,15.0 c 0.0,-1.0 0.0,-5.33333 0.0,-6.0" + android:propertyXName="translateX" + android:propertyYName="translateY" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/anim/ic_volume_expand_rectangle_3_animation.xml b/packages/SystemUI/res/anim/ic_volume_expand_rectangle_3_animation.xml new file mode 100644 index 0000000..9b575d8 --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_expand_rectangle_3_animation.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="200" + android:interpolator="@interpolator/ic_volume_expand_animation_interpolator_0" + android:propertyName="rotation" + android:valueFrom="45.0" + android:valueTo="-45.0" + android:valueType="floatType" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/anim/ic_volume_expand_rectangle_4_animation.xml b/packages/SystemUI/res/anim/ic_volume_expand_rectangle_4_animation.xml new file mode 100644 index 0000000..6ae0fef --- /dev/null +++ b/packages/SystemUI/res/anim/ic_volume_expand_rectangle_4_animation.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set xmlns:android="http://schemas.android.com/apk/res/android" > + + <objectAnimator + android:duration="200" + android:interpolator="@interpolator/ic_volume_expand_animation_interpolator_0" + android:propertyName="rotation" + android:valueFrom="-45.0" + android:valueTo="45.0" + android:valueType="floatType" /> + +</set>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/assist_orb_navbar_scrim.xml b/packages/SystemUI/res/drawable/assist_orb_navbar_scrim.xml new file mode 100644 index 0000000..52ed76d --- /dev/null +++ b/packages/SystemUI/res/drawable/assist_orb_navbar_scrim.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 + --> + +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <gradient + android:type="linear" + android:angle="90" + android:startColor="#33000000" + android:endColor="#00000000" /> +</shape>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/search_panel_scrim.xml b/packages/SystemUI/res/drawable/assist_orb_scrim.xml index bbb2617..bbb2617 100644 --- a/packages/SystemUI/res/drawable/search_panel_scrim.xml +++ b/packages/SystemUI/res/drawable/assist_orb_scrim.xml diff --git a/packages/SystemUI/res/drawable/btn_borderless_rect.xml b/packages/SystemUI/res/drawable/btn_borderless_rect.xml index d640141..c0a89f9 100644 --- a/packages/SystemUI/res/drawable/btn_borderless_rect.xml +++ b/packages/SystemUI/res/drawable/btn_borderless_rect.xml @@ -1,5 +1,5 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014 The Android Open Source Project +<!-- + Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -13,13 +13,15 @@ See the License for the specific language governing permissions and limitations under the License. --> - <ripple xmlns:android="http://schemas.android.com/apk/res/android" - android:color="?android:attr/colorControlHighlight"> + android:color="?android:attr/colorControlHighlight" > + <item android:id="@android:id/mask"> <shape> <corners android:radius="@dimen/borderless_button_radius" /> + <solid android:color="@android:color/white" /> </shape> </item> + </ripple>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_dnd.xml b/packages/SystemUI/res/drawable/ic_dnd.xml new file mode 100644 index 0000000..17ecf21 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_dnd.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24dp" > + + <path + android:fillColor="#FFFFFFFF" + android:pathData="M24.0,4.0C12.95,4.0 4.0,12.95 4.0,24.0s8.95,20.0 20.0,20.0 20.0,-8.95 20.0,-20.0S35.05,4.0 24.0,4.0zm10.0,22.0L14.0,26.0l0.0,-4.0l20.0,0.0l0.0,4.0z" /> + +</vector> diff --git a/packages/SystemUI/res/drawable/ic_fingerprint.xml b/packages/SystemUI/res/drawable/ic_fingerprint.xml new file mode 100644 index 0000000..ee2cf03 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_fingerprint.xml @@ -0,0 +1,36 @@ +<!-- + ~ Copyright (C) 2015 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32.0dp" + android:height="32.0dp" + android:viewportWidth="32.0" + android:viewportHeight="32.0"> + <path + android:fillColor="#80ffffff" + android:pathData="M23.7,5.9c-0.1,0.0 -0.2,0.0 -0.3,-0.1C21.0,4.5 18.6,3.9 16.0,3.9c-2.5,0.0 -4.6,0.6 -6.9,1.9C8.8,6.0 8.3,5.9 8.1,5.5C7.9,5.2 8.0,4.7 8.4,4.5c2.5,-1.4 4.9,-2.1 7.7,-2.1c2.8,0.0 5.4,0.7 8.0,2.1c0.4,0.2 0.5,0.6 0.3,1.0C24.2,5.7 24.0,5.9 23.7,5.9z"/> + <path + android:fillColor="#80ffffff" + android:pathData="M5.3,13.2c-0.1,0.0 -0.3,0.0 -0.4,-0.1c-0.3,-0.2 -0.4,-0.7 -0.2,-1.0c1.3,-1.9 2.9,-3.4 4.9,-4.5c4.1,-2.2 9.3,-2.2 13.4,0.0c1.9,1.1 3.6,2.5 4.9,4.4c0.2,0.3 0.1,0.8 -0.2,1.0c-0.3,0.2 -0.8,0.1 -1.0,-0.2c-1.2,-1.7 -2.6,-3.0 -4.3,-4.0c-3.7,-2.0 -8.3,-2.0 -12.0,0.0c-1.7,0.9 -3.2,2.3 -4.3,4.0C5.7,13.1 5.5,13.2 5.3,13.2z"/> + <path + android:fillColor="#80ffffff" + android:pathData="M13.3,29.6c-0.2,0.0 -0.4,-0.1 -0.5,-0.2c-1.1,-1.2 -1.7,-2.0 -2.6,-3.6c-0.9,-1.7 -1.4,-3.7 -1.4,-5.9c0.0,-4.1 3.3,-7.4 7.4,-7.4c4.1,0.0 7.4,3.3 7.4,7.4c0.0,0.4 -0.3,0.7 -0.7,0.7s-0.7,-0.3 -0.7,-0.7c0.0,-3.3 -2.7,-5.9 -5.9,-5.9c-3.3,0.0 -5.9,2.7 -5.9,5.9c0.0,2.0 0.4,3.8 1.2,5.2c0.8,1.6 1.4,2.2 2.4,3.3c0.3,0.3 0.3,0.8 0.0,1.0C13.7,29.5 13.5,29.6 13.3,29.6z"/> + <path + android:fillColor="#80ffffff" + android:pathData="M22.6,27.1c-1.6,0.0 -2.9,-0.4 -4.1,-1.2c-1.9,-1.4 -3.1,-3.6 -3.1,-6.0c0.0,-0.4 0.3,-0.7 0.7,-0.7s0.7,0.3 0.7,0.7c0.0,1.9 0.9,3.7 2.5,4.8c0.9,0.6 1.9,1.0 3.2,1.0c0.3,0.0 0.8,0.0 1.3,-0.1c0.4,-0.1 0.8,0.2 0.8,0.6c0.1,0.4 -0.2,0.8 -0.6,0.8C23.4,27.1 22.8,27.1 22.6,27.1z"/> + <path + android:fillColor="#80ffffff" + android:pathData="M20.0,29.9c-0.1,0.0 -0.1,0.0 -0.2,0.0c-2.1,-0.6 -3.4,-1.4 -4.8,-2.9c-1.8,-1.9 -2.8,-4.4 -2.8,-7.1c0.0,-2.2 1.8,-4.1 4.1,-4.1c2.2,0.0 4.1,1.8 4.1,4.1c0.0,1.4 1.2,2.6 2.6,2.6c1.4,0.0 2.6,-1.2 2.6,-2.6c0.0,-5.1 -4.2,-9.3 -9.3,-9.3c-3.6,0.0 -6.9,2.1 -8.4,5.4C7.3,17.1 7.0,18.4 7.0,19.8c0.0,1.1 0.1,2.7 0.9,4.9c0.1,0.4 -0.1,0.8 -0.4,0.9c-0.4,0.1 -0.8,-0.1 -0.9,-0.4c-0.6,-1.8 -0.9,-3.6 -0.9,-5.4c0.0,-1.6 0.3,-3.1 0.9,-4.4c1.7,-3.8 5.6,-6.3 9.8,-6.3c5.9,0.0 10.7,4.8 10.7,10.7c0.0,2.2 -1.8,4.1 -4.1,4.1s-4.0,-1.8 -4.0,-4.1c0.0,-1.4 -1.2,-2.6 -2.6,-2.6c-1.4,0.0 -2.6,1.2 -2.6,2.6c0.0,2.3 0.9,4.5 2.4,6.1c1.2,1.3 2.4,2.0 4.2,2.5c0.4,0.1 0.6,0.5 0.5,0.9C20.6,29.7 20.3,29.9 20.0,29.9z"/> +</vector> diff --git a/packages/SystemUI/res/drawable/ic_fingerprint_error.xml b/packages/SystemUI/res/drawable/ic_fingerprint_error.xml new file mode 100644 index 0000000..11e83a1 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_fingerprint_error.xml @@ -0,0 +1,30 @@ +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32.0dp" + android:height="32.0dp" + android:viewportWidth="32.0" + android:viewportHeight="32.0"> + <path + android:fillColor="@color/system_warning_color" + android:pathData="M15.99,2.5C8.53,2.5 2.5,8.54 2.5,16.0s6.03,13.5 13.49,13.5S29.5,23.46 29.5,16.0S23.45,2.5 15.99,2.5zM16.0,26.8c-5.97,0.0 -10.8,-4.83 -10.8,-10.8S10.03,5.2 16.0,5.2S26.8,10.03 26.8,16.0S21.97,26.8 16.0,26.8z"/> + <path + android:fillColor="@color/system_warning_color" + android:pathData="M14.65,20.05l2.7,0.0l0.0,2.7l-2.7,0.0z"/> + <path + android:fillColor="@color/system_warning_color" + android:pathData="M14.65,9.25l2.7,0.0l0.0,8.1l-2.7,0.0z"/> +</vector> diff --git a/packages/SystemUI/res/drawable/ic_qs_minus.xml b/packages/SystemUI/res/drawable/ic_qs_minus.xml index 4722c9e..6a3410a 100644 --- a/packages/SystemUI/res/drawable/ic_qs_minus.xml +++ b/packages/SystemUI/res/drawable/ic_qs_minus.xml @@ -1,25 +1,26 @@ <!-- -Copyright (C) 2014 The Android Open Source Project + Copyright (C) 2015 The Android Open Source Project - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + 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 + 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. + 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:width="24dp" - android:height="24dp" - android:viewportWidth="48.0" - android:viewportHeight="48.0"> + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > <path android:fillColor="#FFFFFFFF" - android:pathData="M24.0,4.0C13.0,4.0 4.0,13.0 4.0,24.0s9.0,20.0 20.0,20.0c11.0,0.0 20.0,-9.0 20.0,-20.0S35.0,4.0 24.0,4.0zM34.0,26.0L14.0,26.0l0.0,-4.0l20.0,0.0L34.0,26.0z"/> -</vector> + android:pathData="M38.0,26.0L10.0,26.0l0.0,-4.0l28.0,0.0l0.0,4.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_qs_plus.xml b/packages/SystemUI/res/drawable/ic_qs_plus.xml index 17d74cf..393f51c 100644 --- a/packages/SystemUI/res/drawable/ic_qs_plus.xml +++ b/packages/SystemUI/res/drawable/ic_qs_plus.xml @@ -1,25 +1,26 @@ <!-- -Copyright (C) 2014 The Android Open Source Project + Copyright (C) 2015 The Android Open Source Project - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + 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 + 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. + 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:width="24dp" - android:height="24dp" - android:viewportWidth="48.0" - android:viewportHeight="48.0"> + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > <path android:fillColor="#FFFFFFFF" - android:pathData="M24.0,4.0C13.0,4.0 4.0,13.0 4.0,24.0s9.0,20.0 20.0,20.0c11.0,0.0 20.0,-9.0 20.0,-20.0S35.0,4.0 24.0,4.0zM34.0,26.0l-8.0,0.0l0.0,8.0l-4.0,0.0l0.0,-8.0l-8.0,0.0l0.0,-4.0l8.0,0.0l0.0,-8.0l4.0,0.0l0.0,8.0l8.0,0.0L34.0,26.0z"/> -</vector> + android:pathData="M38.0,26.0L26.0,26.0l0.0,12.0l-4.0,0.0L22.0,26.0L10.0,26.0l0.0,-4.0l12.0,0.0L22.0,10.0l4.0,0.0l0.0,12.0l12.0,0.0l0.0,4.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_alarm.xml b/packages/SystemUI/res/drawable/ic_volume_alarm.xml new file mode 100644 index 0000000..a8ca0d6 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_alarm.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M44.0,11.44l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-28.24,-4.66l-2.57,-3.06 -9.19,7.71 2.57,3.06 9.19,-7.71zm9.24,9.22l-3.0,0.0l0.0,12.0l9.49,5.71 1.51,-2.47 -8.0,-4.74l0.0,-10.5zm-1.01,-8.0c-9.95,0.0 -17.99,8.06 -17.99,18.0s8.04,18.0 17.99,18.0 18.01,-8.06 18.01,-18.0 -8.06,-18.0 -18.01,-18.0zm0.01,32.0c-7.73,0.0 -14.0,-6.27 -14.0,-14.0s6.27,-14.0 14.0,-14.0 14.0,6.27 14.0,14.0 -6.26,14.0 -14.0,14.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_alarm_mute.xml b/packages/SystemUI/res/drawable/ic_volume_alarm_mute.xml new file mode 100644 index 0000000..8e2f083 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_alarm_mute.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M24.0,12.0c7.73,0.0 14.0,6.27 14.0,14.0 0.0,1.69 -0.31,3.3 -0.86,4.8l3.04,3.04c1.16,-2.37 1.82,-5.03 1.82,-7.84 0.0,-9.94 -8.06,-18.0 -18.01,-18.0 -2.81,0.0 -5.46,0.66 -7.84,1.81l3.05,3.05c1.5,-0.55 3.11,-0.86 4.8,-0.86zm20.0,-0.56l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-38.16,-6.85l-2.55,2.54 2.66,2.66 -2.22,1.86 2.84,2.84 2.22,-1.86 1.6,1.6c-2.73,3.16 -4.39,7.27 -4.39,11.77 0.0,9.94 8.04,18.0 17.99,18.0 4.51,0.0 8.62,-1.67 11.77,-4.4l4.4,4.4 2.54,-2.55 -34.91,-34.91 -1.95,-1.95zm27.1,32.19c-2.43,2.01 -5.54,3.22 -8.94,3.22 -7.73,0.0 -14.0,-6.27 -14.0,-14.0 0.0,-3.4 1.21,-6.51 3.22,-8.94l19.72,19.72zm-16.91,-30.23l-2.84,-2.84 -1.7,1.43 2.84,2.84 1.7,-1.43z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_bt_sco.xml b/packages/SystemUI/res/drawable/ic_volume_bt_sco.xml new file mode 100644 index 0000000..71df4d3 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_bt_sco.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M29.41,19.0L34.0,14.41L34.0,22.0l1.0,0.0l5.71,-5.71 -4.3,-4.29 4.29,-4.29L35.0,2.0l-1.0,0.0l0.0,7.59L29.41,5.0 28.0,6.41 33.59,12.0 28.0,17.59 29.41,19.0zM36.0,5.83l1.88,1.88L36.0,9.59L36.0,5.83zm0.0,8.58l1.88,1.88L36.0,18.17l0.0,-3.76zM40.0,31.0c-2.49,0.0 -4.89,-0.4 -7.14,-1.14 -0.69,-0.22 -1.48,-0.06 -2.0,0.49l-4.4,4.41c-5.67,-2.88 -10.29,-7.51 -13.18,-13.17l4.4,-4.41c0.55,-0.5 0.71,-1.3 0.49,-2.03C17.4,12.9 17.0,10.49 17.0,8.0c0.0,-1.11 -0.89,-2.0 -2.0,-2.0L8.0,6.0c-1.11,0.0 -2.0,0.89 -2.0,2.0 0.0,18.78 15.22,34.0 34.0,34.0 1.11,0.0 2.0,-0.89 2.0,-2.0l0.0,-7.0c0.0,-1.11 -0.89,-2.0 -2.0,-2.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_collapse.xml b/packages/SystemUI/res/drawable/ic_volume_collapse.xml new file mode 100644 index 0000000..dc6d301 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_collapse.xml @@ -0,0 +1,62 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:name="ic_volume_collapse" + android:height="24dp" + android:viewportHeight="24" + android:viewportWidth="24" + android:width="24dp" > + + <group + android:name="chevron_02" + android:rotation="90" + android:translateX="12" + android:translateY="9" > + <group + android:name="rectangle_2" + android:rotation="-45" > + <group + android:name="rectangle_2_pivot" + android:translateY="4" > + <group + android:name="rectangle_path_2_position" + android:translateY="-1" > + <path + android:name="rectangle_path_2" + android:fillColor="#FFFFFFFF" + android:pathData="M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> + </group> + <group + android:name="rectangle_1" + android:rotation="45" > + <group + android:name="rectangle_1_pivot" + android:translateY="-4" > + <group + android:name="rectangle_path_1_position" + android:translateY="1" > + <path + android:name="rectangle_path_1" + android:fillColor="#FFFFFFFF" + android:pathData="M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> + </group> + </group> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_collapse_animation.xml b/packages/SystemUI/res/drawable/ic_volume_collapse_animation.xml new file mode 100644 index 0000000..5c482bc --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_collapse_animation.xml @@ -0,0 +1,29 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/ic_volume_collapse" > + + <target + android:name="chevron_02" + android:animation="@anim/ic_volume_collapse_chevron_02_animation" /> + <target + android:name="rectangle_2" + android:animation="@anim/ic_volume_collapse_rectangle_2_animation" /> + <target + android:name="rectangle_1" + android:animation="@anim/ic_volume_collapse_rectangle_1_animation" /> + +</animated-vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_expand.xml b/packages/SystemUI/res/drawable/ic_volume_expand.xml new file mode 100644 index 0000000..a60623f --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_expand.xml @@ -0,0 +1,62 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:name="ic_volume_expand" + android:height="24dp" + android:viewportHeight="24" + android:viewportWidth="24" + android:width="24dp" > + + <group + android:name="chevron_01" + android:rotation="90" + android:translateX="12" + android:translateY="15" > + <group + android:name="rectangle_3" + android:rotation="45" > + <group + android:name="rectangle_2_pivot_0" + android:translateY="4" > + <group + android:name="rectangle_path_3_position" + android:translateY="-1" > + <path + android:name="rectangle_path_3" + android:fillColor="#FFFFFFFF" + android:pathData="M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> + </group> + <group + android:name="rectangle_4" + android:rotation="-45" > + <group + android:name="rectangle_1_pivot_0" + android:translateY="-4" > + <group + android:name="rectangle_path_4_position" + android:translateY="1" > + <path + android:name="rectangle_path_4" + android:fillColor="#FFFFFFFF" + android:pathData="M -1.0,-4.0 l 2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-8.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> + </group> + </group> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_expand_animation.xml b/packages/SystemUI/res/drawable/ic_volume_expand_animation.xml new file mode 100644 index 0000000..ae2d7e4 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_expand_animation.xml @@ -0,0 +1,29 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/ic_volume_expand" > + + <target + android:name="chevron_01" + android:animation="@anim/ic_volume_expand_chevron_01_animation" /> + <target + android:name="rectangle_3" + android:animation="@anim/ic_volume_expand_rectangle_3_animation" /> + <target + android:name="rectangle_4" + android:animation="@anim/ic_volume_expand_rectangle_4_animation" /> + +</animated-vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_media.xml b/packages/SystemUI/res/drawable/ic_volume_media.xml new file mode 100644 index 0000000..97089f1 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_media.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M12.0,3.0l0.0,9.28c-0.47,-0.17 -0.97,-0.28 -1.5,-0.28C8.01,12.0 6.0,14.01 6.0,16.5S8.01,21.0 10.5,21.0c2.31,0.0 4.2,-1.75 4.45,-4.0L15.0,17.0L15.0,6.0l4.0,0.0L19.0,3.0l-7.0,0.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_media_bt.xml b/packages/SystemUI/res/drawable/ic_volume_media_bt.xml new file mode 100644 index 0000000..3364d9c --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_media_bt.xml @@ -0,0 +1,29 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24.0dp" + android:height="24.0dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M17.0,3.0l-7.0,0.0l0.0,9.3C9.5,12.1 9.0,12.0 8.5,12.0C6.0,12.0 4.0,14.0 4.0,16.5S6.0,21.0 8.5,21.0s4.5,-2.3 4.5,-4.5C13.0,14.7 13.0,6.0 13.0,6.0l4.0,0.0L17.0,3.0z"/> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M23.4,9.9L20.5,7.0L20.0,7.0l0.0,3.8l-2.3,-2.3L17.0,9.2l2.8,2.8L17.0,14.8l0.7,0.7l2.3,-2.3L20.0,17.0l0.5,0.0l2.8,-2.8L21.2,12.0L23.4,9.9zM21.0,8.9l0.9,0.9l-0.9,1.0L21.0,8.9zM21.9,14.2L21.0,15.1l0.0,-1.9L21.9,14.2z"/> + +</vector> diff --git a/packages/SystemUI/res/drawable/ic_volume_media_bt_mute.xml b/packages/SystemUI/res/drawable/ic_volume_media_bt_mute.xml new file mode 100644 index 0000000..39f54f1 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_media_bt_mute.xml @@ -0,0 +1,32 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M13.0,6.0l4.0,0.0L17.0,3.0l-7.0,0.0l0.0,5.6l3.0,3.0C13.0,8.8 13.0,6.0 13.0,6.0z"/> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M2.1,5.7L8.4,12.0C6.0,12.1 4.0,14.0 4.0,16.5S6.0,21.0 8.5,21.0c2.7,0.0 4.5,-2.3 4.5,-4.3l0.0,-0.1l3.9,3.9l1.3,-1.3L3.4,4.5L2.1,5.7z"/> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M23.4,9.9L20.5,7.0L20.0,7.0l0.0,3.8l-2.3,-2.3L17.0,9.2l2.8,2.8L17.0,14.8l0.7,0.7l2.3,-2.3L20.0,17.0l0.5,0.0l2.8,-2.8L21.2,12.0L23.4,9.9zM21.0,8.9l0.9,0.9l-0.9,1.0L21.0,8.9zM21.9,14.2L21.0,15.1l0.0,-1.9L21.9,14.2z"/> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_media_mute.xml b/packages/SystemUI/res/drawable/ic_volume_media_mute.xml new file mode 100644 index 0000000..beb806c --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_media_mute.xml @@ -0,0 +1,29 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M15.0,6.0l4.0,0.0L19.0,3.0l-7.0,0.0l0.0,5.6l3.0,3.0C15.0,8.8 15.0,6.0 15.0,6.0z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M4.8,3.9L3.5,5.1l6.9,6.9C8.0,12.1 6.0,14.0 6.0,16.5C6.0,19.0 8.0,21.0 10.5,21.0c2.7,0.0 4.5,-2.3 4.5,-4.3c0.0,0.0 0.0,-0.1 0.0,-0.1l4.0,4.0l1.3,-1.3L4.8,3.9z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_remote.xml b/packages/SystemUI/res/drawable/ic_volume_remote.xml new file mode 100644 index 0000000..b363178 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_remote.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M2.0,36.0l0.0,6.0l6.0,0.0C8.0,38.7 5.3,36.0 2.0,36.0zM2.0,28.0l0.0,4.0c5.5,0.0 10.0,4.5 10.0,10.0l4.0,0.0C16.0,34.3 9.7,28.0 2.0,28.0zM38.0,14.0L10.0,14.0l0.0,3.3c7.9,2.6 14.2,8.8 16.7,16.7L38.0,34.0L38.0,14.0zM2.0,20.0l0.0,4.0c9.9,0.0 18.0,8.1 18.0,18.0l4.0,0.0C24.0,29.8 14.1,20.0 2.0,20.0zM42.0,6.0L6.0,6.0c-2.2,0.0 -4.0,1.8 -4.0,4.0l0.0,6.0l4.0,0.0l0.0,-6.0l36.0,0.0l0.0,28.0L28.0,38.0l0.0,4.0l14.0,0.0c2.2,0.0 4.0,-1.8 4.0,-4.0L46.0,10.0C46.0,7.8 44.2,6.0 42.0,6.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_remote_mute.xml b/packages/SystemUI/res/drawable/ic_volume_remote_mute.xml new file mode 100644 index 0000000..5f39ad7 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_remote_mute.xml @@ -0,0 +1,38 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M23.7,21.3l-1.1,-1.0c0.0,0.0 0.0,0.0 0.0,0.0L21.0,18.8l0.0,0.0L5.8,5.0l0.0,0.0L3.6,3.0l0.0,0.0L1.7,1.3L0.3,2.7l1.1,1.0C1.2,4.1 1.0,4.5 1.0,5.0l0.0,3.0l2.0,0.0L3.0,5.2L18.2,19.0L14.0,19.0l0.0,2.0l6.4,0.0l1.9,1.7L23.7,21.3z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M21.0,5.0l0.0,11.1l2.0,1.8L23.0,5.0c0.0,-1.1 -0.9,-2.0 -2.0,-2.0L6.6,3.0l2.2,2.0L21.0,5.0z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M1.0,18.0l0.0,3.0l3.0,0.0C4.0,19.3 2.7,18.0 1.0,18.0z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M1.0,14.0l0.0,2.0c2.8,0.0 5.0,2.2 5.0,5.0l2.0,0.0C8.0,17.1 4.9,14.0 1.0,14.0z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M1.0,10.0l0.0,2.0c5.0,0.0 9.0,4.0 9.0,9.0l2.0,0.0C12.0,14.9 7.1,10.0 1.0,10.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_ringer.xml b/packages/SystemUI/res/drawable/ic_volume_ringer.xml new file mode 100644 index 0000000..c566d5a --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_ringer.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M11.5,22.0c1.1,0.0 2.0,-0.9 2.0,-2.0l-4.0,0.0C9.5,21.1 10.4,22.0 11.5,22.0zM18.0,16.0l0.0,-5.5c0.0,-3.1 -2.1,-5.6 -5.0,-6.3L13.0,3.5C13.0,2.7 12.3,2.0 11.5,2.0C10.7,2.0 10.0,2.7 10.0,3.5l0.0,0.7c-2.9,0.7 -5.0,3.2 -5.0,6.3L5.0,16.0l-2.0,2.0l0.0,1.0l17.0,0.0l0.0,-1.0L18.0,16.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_ringer_mute.xml b/packages/SystemUI/res/drawable/ic_volume_ringer_mute.xml new file mode 100644 index 0000000..0c20361 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_ringer_mute.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M23.000000,44.000000c2.200000,0.000000 4.000000,-1.800000 4.000000,-4.000000l-8.000000,0.000000C19.000000,42.200001 20.799999,44.000000 23.000000,44.000000zM36.000000,21.000000c0.000000,-6.100000 -4.300000,-11.300000 -10.000000,-12.600000L26.000000,7.000000c0.000000,-1.700000 -1.300000,-3.000000 -3.000000,-3.000000c-1.700000,0.000000 -3.000000,1.300000 -3.000000,3.000000l0.000000,1.400000c-1.000000,0.200000 -2.000000,0.600000 -2.900000,1.100000L36.000000,28.400000L36.000000,21.000000zM35.500000,38.000000l4.000000,4.000000l2.500000,-2.500000L8.500000,6.000000L6.000000,8.500000l5.800000,5.800000C10.700000,16.299999 10.000000,18.600000 10.000000,21.000000l0.000000,11.000000l-4.000000,4.000000l0.000000,2.000000L35.500000,38.000000z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml b/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml new file mode 100644 index 0000000..38b3234 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M0.0,15.0l2.0,0.0L2.0,9.0L0.0,9.0L0.0,15.0zM3.0,17.0l2.0,0.0L5.0,7.0L3.0,7.0L3.0,17.0zM22.0,9.0l0.0,6.0l2.0,0.0L24.0,9.0L22.0,9.0zM19.0,17.0l2.0,0.0L21.0,7.0l-2.0,0.0L19.0,17.0zM16.5,3.0l-9.0,0.0C6.7,3.0 6.0,3.7 6.0,4.5l0.0,15.0C6.0,20.3 6.7,21.0 7.5,21.0l9.0,0.0c0.8,0.0 1.5,-0.7 1.5,-1.5l0.0,-15.0C18.0,3.7 17.3,3.0 16.5,3.0zM16.0,19.0L8.0,19.0L8.0,5.0l8.0,0.0L16.0,19.0z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_settings.xml b/packages/SystemUI/res/drawable/ic_volume_settings.xml new file mode 100644 index 0000000..9f79b5a --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_settings.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="20dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="20dp" > + + <path + android:fillColor="@color/volume_settings_icon_color" + android:pathData="M19.4,13.0c0.0,-0.3 0.1,-0.6 0.1,-1.0s0.0,-0.7 -0.1,-1.0l2.1,-1.7c0.2,-0.2 0.2,-0.4 0.1,-0.6l-2.0,-3.5C19.5,5.1 19.3,5.0 19.0,5.1l-2.5,1.0c-0.5,-0.4 -1.1,-0.7 -1.7,-1.0l-0.4,-2.6C14.5,2.2 14.2,2.0 14.0,2.0l-4.0,0.0C9.8,2.0 9.5,2.2 9.5,2.4L9.1,5.1C8.5,5.3 8.0,5.7 7.4,6.1L5.0,5.1C4.7,5.0 4.5,5.1 4.3,5.3l-2.0,3.5C2.2,8.9 2.3,9.2 2.5,9.4L4.6,11.0c0.0,0.3 -0.1,0.6 -0.1,1.0s0.0,0.7 0.1,1.0l-2.1,1.7c-0.2,0.2 -0.2,0.4 -0.1,0.6l2.0,3.5C4.5,18.9 4.7,19.0 5.0,18.9l2.5,-1.0c0.5,0.4 1.1,0.7 1.7,1.0l0.4,2.6c0.0,0.2 0.2,0.4 0.5,0.4l4.0,0.0c0.2,0.0 0.5,-0.2 0.5,-0.4l0.4,-2.6c0.6,-0.3 1.2,-0.6 1.7,-1.0l2.5,1.0c0.2,0.1 0.5,0.0 0.6,-0.2l2.0,-3.5c0.1,-0.2 0.1,-0.5 -0.1,-0.6L19.4,13.0zM12.0,15.5c-1.9,0.0 -3.5,-1.6 -3.5,-3.5s1.6,-3.5 3.5,-3.5s3.5,1.6 3.5,3.5S13.9,15.5 12.0,15.5z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_system.xml b/packages/SystemUI/res/drawable/ic_volume_system.xml new file mode 100644 index 0000000..ccd8e18 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_system.xml @@ -0,0 +1,32 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M17.7,14.8l-4.5,-2.3c-0.2,-0.1 -0.4,-0.1 -0.5,-0.1l-0.8,0.0l0.0,-6.0c0.0,-0.8 -0.7,-1.5 -1.5,-1.5S8.9,5.6 8.9,6.4l0.0,10.7l-3.4,-0.7c-0.1,0.0 -0.2,0.0 -0.2,0.0c-0.3,0.0 -0.6,0.1 -0.8,0.3l-0.8,0.8l4.9,4.9c0.3,0.3 0.6,0.4 1.1,0.4l6.8,0.0c0.8,0.0 1.3,-0.6 1.4,-1.3l0.8,-5.3c0.0,-0.1 0.0,-0.1 0.0,-0.2C18.6,15.5 18.2,15.0 17.7,14.8z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M14.3,8.8l1.8,0.9c1.5,-2.0 1.4,-4.8 -0.4,-6.6l-1.4,1.4C15.5,5.7 15.5,7.6 14.3,8.8z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M17.9,10.6l1.8,0.9C22.0,8.0 21.6,3.3 18.5,0.3l-1.4,1.4C19.5,4.1 19.8,7.9 17.9,10.6z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_system_mute.xml b/packages/SystemUI/res/drawable/ic_volume_system_mute.xml new file mode 100644 index 0000000..dfcb655 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_system_mute.xml @@ -0,0 +1,35 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M14.3,8.8l1.8,0.9c1.5,-2.0 1.4,-4.8 -0.4,-6.6l-1.4,1.4C15.5,5.7 15.5,7.6 14.3,8.8z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M17.9,10.6l1.8,0.9C22.0,8.0 21.6,3.3 18.5,0.3l-1.4,1.4C19.5,4.1 19.8,7.9 17.9,10.6z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M22.0,20.6l-3.5,-2.8l0.0,0.0l-9.6,-7.6l0.0,0.0L3.2,5.7L2.0,7.3l6.9,5.4L8.9,17.0l-3.4,-0.7c-0.1,0.0 -0.2,0.0 -0.2,0.0c-0.3,0.0 -0.6,0.1 -0.8,0.3l-0.8,0.8l4.9,4.9c0.3,0.3 0.6,0.4 1.1,0.4l6.8,0.0c0.8,0.0 1.3,-0.6 1.4,-1.3l0.2,-1.5l2.6,2.1L22.0,20.6z" /> + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M11.9,6.4c0.0,-0.8 -0.7,-1.5 -1.5,-1.5S8.9,5.6 8.9,6.4l0.0,1.5l3.0,2.4L11.9,6.4z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/ic_volume_voice.xml b/packages/SystemUI/res/drawable/ic_volume_voice.xml new file mode 100644 index 0000000..133253e --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_volume_voice.xml @@ -0,0 +1,26 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24.0dp" + android:viewportHeight="48.0" + android:viewportWidth="48.0" + android:width="24.0dp" > + + <path + android:fillColor="@color/volume_icon_color" + android:pathData="M13.25,21.59c2.88,5.66 7.51,10.29 13.18,13.17l4.4,-4.41c0.55,-0.55 1.34,-0.71 2.03,-0.49C35.1,30.6 37.51,31.0 40.0,31.0c1.11,0.0 2.0,0.89 2.0,2.0l0.0,7.0c0.0,1.11 -0.89,2.0 -2.0,2.0C21.22,42.0 6.0,26.78 6.0,8.0c0.0,-1.1 0.9,-2.0 2.0,-2.0l7.0,0.0c1.11,0.0 2.0,0.89 2.0,2.0 0.0,2.4 0.4,4.9 1.14,7.1 0.2,0.6 0.06,1.48 -0.49,2.03l-4.4,4.42z" /> + +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/stat_sys_no_sims.xml b/packages/SystemUI/res/drawable/stat_sys_no_sims.xml index 8bad226..2229c99 100644 --- a/packages/SystemUI/res/drawable/stat_sys_no_sims.xml +++ b/packages/SystemUI/res/drawable/stat_sys_no_sims.xml @@ -20,6 +20,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M19.0,5.0c0.0,-1.1 -0.9,-2.0 -2.0,-2.0l-7.0,0.0L7.7,5.3L19.0,16.7L19.0,5.0zM3.7,3.9L2.4,5.2L5.0,7.8L5.0,19.0c0.0,1.1 0.9,2.0 2.0,2.0l10.0,0.0c0.4,0.0 0.7,-0.1 1.0,-0.3l1.9,1.9l1.3,-1.3L3.7,3.9z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml index e1e81fd..643c4f9 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml @@ -20,12 +20,12 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> <path android:pathData="M17.700001,8.000000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" - android:fillColor="#4DFFFFFF"/> + android:fillColor="?attr/backgroundColor"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_0_fully.xml b/packages/SystemUI/res/drawable/stat_sys_signal_0_fully.xml index c0dfcf4..e267d25 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_0_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_0_fully.xml @@ -20,6 +20,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M2.000000,22.000000l20.000000,0.000000 0.000000,-20.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml index d1124ee..64781c3 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml @@ -20,15 +20,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.7,20.0l2.0,0.0l0.0,2.0l-2.0,0.0z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.7,10.0l2.0,0.0l0.0,8.1l-2.0,0.0z"/> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M17.7,8.0l4.299999,0.0 0.0,-6.0 -20.0,20.0 15.700001,0.0z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M10.1,13.9l-8.1,8.1 8.1,0.0z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_1_fully.xml b/packages/SystemUI/res/drawable/stat_sys_signal_1_fully.xml index 29eda94..60822f4 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_1_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_1_fully.xml @@ -20,9 +20,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M2.0,22.0l20.0,0.0 0.0,-20.0z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M10.1,13.9l-8.1,8.1 8.1,0.0z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml index 537c788..eb2be08 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml @@ -20,15 +20,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M13.900000,10.000000l-11.900000,12.000000 11.900000,0.000000z"/> <path android:pathData="M17.700001,8.000000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" - android:fillColor="#4DFFFFFF"/> + android:fillColor="?attr/backgroundColor"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_2_fully.xml b/packages/SystemUI/res/drawable/stat_sys_signal_2_fully.xml index 7d9376e..5e68eed 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_2_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_2_fully.xml @@ -20,9 +20,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M2.000000,22.000000l20.000000,0.000000 0.000000,-20.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M14.000000,10.000000l-12.000000,12.000000 12.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml index 09fe33a..22afad0 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml @@ -20,15 +20,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,19.900000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,9.900000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M16.700001,7.200000l-14.700001,14.700000 14.700001,0.000000z"/> <path android:pathData="M17.700001,7.900000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" - android:fillColor="#4DFFFFFF"/> + android:fillColor="?attr/backgroundColor"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_3_fully.xml b/packages/SystemUI/res/drawable/stat_sys_signal_3_fully.xml index 8ec5500..599b34a 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_3_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_3_fully.xml @@ -20,9 +20,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M2.000000,22.000000l20.000000,0.000000 0.000000,-20.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M16.700001,7.300000l-14.700001,14.700000 14.700001,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml index bb98541..d1e866d 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml @@ -19,13 +19,14 @@ Copyright (C) 2014 The Android Open Source Project android:height="17dp" android:viewportWidth="24.0" android:viewportHeight="24.0"> + <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M2.000000,22.000000l15.700001,0.000000 0.000000,-14.000000 4.299999,0.000000 0.000000,-6.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_4_fully.xml b/packages/SystemUI/res/drawable/stat_sys_signal_4_fully.xml index a468410..b66d89a 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_4_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_4_fully.xml @@ -20,6 +20,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M2.000000,22.000000l20.000000,0.000000 0.000000,-20.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_null.xml b/packages/SystemUI/res/drawable/stat_sys_signal_null.xml index d25fc1c..2b487f9 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_null.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_null.xml @@ -20,6 +20,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M2.000000,22.000000l20.000000,0.000000L22.000000,2.000000L2.000000,22.000000zM20.000000,20.000000L6.800000,20.000000L20.000000,6.800000L20.000000,20.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml index be930e8..7f1b715 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml @@ -19,12 +19,12 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M19.000000,8.000000l5.300000,0.000000l1.200000,-1.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0_fully.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0_fully.xml index b2691f6..60f7eb6 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0_fully.xml @@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml index dde781d..acd89be 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml @@ -19,15 +19,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M13.000000,22.000000l5.500000,-6.800000c-0.200000,-0.200000 -2.300000,-1.900000 -5.500000,-1.900000s-5.300000,1.800000 -5.500000,1.900000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1_fully.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1_fully.xml index 65931f4..554350d 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1_fully.xml @@ -19,9 +19,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M13.100000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.500000,6.500000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M13.100000,22.000000l5.500000,-6.800000c-0.200000,-0.200000 -2.300000,-1.900000 -5.500000,-1.900000s-5.300000,1.800000 -5.500000,1.900000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000L13.100000,22.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml index 63d9dca..f33b25c 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml @@ -19,15 +19,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M19.000000,11.600000c-1.300000,-0.700000 -3.400000,-1.600000 -6.000000,-1.600000c-4.400000,0.000000 -7.300000,2.400000 -7.600000,2.700000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,11.600000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2_fully.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2_fully.xml index 7ba4895..2c2465a 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2_fully.xml @@ -19,9 +19,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M13.000000,22.000000l7.600000,-9.400000C20.299999,12.400000 17.400000,10.000000 13.000000,10.000000s-7.300000,2.400000 -7.600000,2.700000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml index 7d393b4..09d2e50 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml @@ -19,15 +19,15 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M19.000000,8.600000c-1.600000,-0.700000 -3.600000,-1.300000 -6.000000,-1.300000c-5.300000,0.000000 -8.900000,3.000000 -9.200000,3.200000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.600000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M21.000000,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3_fully.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3_fully.xml index e2cde53..7d0f756 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3_fully.xml @@ -19,9 +19,9 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/fillColor" android:pathData="M13.000000,22.000000l9.200000,-11.400000c-0.400000,-0.300000 -3.900000,-3.200000 -9.200000,-3.200000s-8.900000,3.000000 -9.200000,3.200000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml index ec8137f..fb1f584 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml @@ -19,12 +19,12 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M21.000000,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4_fully.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4_fully.xml index 9d02980..a7e213f 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4_fully.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4_fully.xml @@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#FFFFFFFF" + android:fillColor="?attr/singleToneColor" android:pathData="M13.000000,22.000000L25.600000,6.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_null.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_null.xml index 95c6531..5169de4 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_null.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_null.xml @@ -19,6 +19,6 @@ Copyright (C) 2014 The Android Open Source Project android:viewportWidth="26.0" android:viewportHeight="24.0"> <path - android:fillColor="#4DFFFFFF" + android:fillColor="?attr/backgroundColor" android:pathData="M13.000000,2.000000C7.700000,2.000000 3.700000,3.900000 0.400000,6.400000L13.000000,22.000000L25.600000,6.500000C22.299999,4.000000 18.299999,2.000000 13.000000,2.000000zM13.000000,18.600000L3.300000,7.000000l0.000000,0.000000l0.000000,0.000000C6.000000,5.300000 8.700000,4.000000 13.000000,4.000000s7.000000,1.400000 9.700000,3.000000l0.000000,0.000000l0.000000,0.000000L13.000000,18.600000z"/> </vector> diff --git a/packages/SystemUI/res/drawable/volume_dialog_background.xml b/packages/SystemUI/res/drawable/volume_dialog_background.xml new file mode 100644 index 0000000..f09c01b --- /dev/null +++ b/packages/SystemUI/res/drawable/volume_dialog_background.xml @@ -0,0 +1,22 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<shape xmlns:android="http://schemas.android.com/apk/res/android" > + + <solid android:color="@color/system_primary_color" /> + + <corners android:radius="@dimen/notification_material_rounded_rect_radius" /> + +</shape>
\ No newline at end of file diff --git a/packages/SystemUI/res/interpolator/ic_volume_collapse_animation_interpolator_0.xml b/packages/SystemUI/res/interpolator/ic_volume_collapse_animation_interpolator_0.xml new file mode 100644 index 0000000..c3930e4 --- /dev/null +++ b/packages/SystemUI/res/interpolator/ic_volume_collapse_animation_interpolator_0.xml @@ -0,0 +1,17 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.0001,0.0 0.0,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/ic_volume_expand_animation_interpolator_0.xml b/packages/SystemUI/res/interpolator/ic_volume_expand_animation_interpolator_0.xml new file mode 100644 index 0000000..c3930e4 --- /dev/null +++ b/packages/SystemUI/res/interpolator/ic_volume_expand_animation_interpolator_0.xml @@ -0,0 +1,17 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.0001,0.0 0.0,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/layout/assist_orb.xml b/packages/SystemUI/res/layout/assist_orb.xml new file mode 100644 index 0000000..ab0a0a5 --- /dev/null +++ b/packages/SystemUI/res/layout/assist_orb.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* apps/common/assets/default/default/skins/StatusBar.xml +** +** Copyright 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. +*/ +--> + +<!-- Extends FrameLayout --> +<com.android.systemui.assist.AssistOrbContainer + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <com.android.systemui.statusbar.AlphaOptimizedView + android:layout_width="match_parent" + android:layout_height="@dimen/assist_orb_scrim_height" + android:layout_gravity="bottom" + android:id="@+id/assist_orb_scrim" + android:background="@drawable/assist_orb_scrim"/> + + <com.android.systemui.assist.AssistOrbView + android:id="@+id/assist_orb" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/search_logo"/> + </com.android.systemui.assist.AssistOrbView> + + <com.android.systemui.statusbar.AlphaOptimizedView + android:id="@+id/assist_orb_navbar_scrim" + android:layout_height="@dimen/assist_orb_navbar_scrim_height" + android:layout_width="match_parent" + android:layout_gravity="bottom" + android:elevation="50dp" + android:outlineProvider="none" + android:background="@drawable/assist_orb_navbar_scrim"/> + +</com.android.systemui.assist.AssistOrbContainer>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/keyguard_bottom_area.xml b/packages/SystemUI/res/layout/keyguard_bottom_area.xml index 01b2713..fca8231 100644 --- a/packages/SystemUI/res/layout/keyguard_bottom_area.xml +++ b/packages/SystemUI/res/layout/keyguard_bottom_area.xml @@ -68,7 +68,6 @@ android:layout_gravity="bottom|center_horizontal" android:src="@drawable/ic_lock_24dp" android:scaleType="center" - android:tint="#ffffffff" android:contentDescription="@string/accessibility_unlock_button" /> </com.android.systemui.statusbar.phone.KeyguardBottomAreaView> diff --git a/packages/SystemUI/res/layout/mobile_signal_group.xml b/packages/SystemUI/res/layout/mobile_signal_group.xml index 97697189..6a4ac2c 100644 --- a/packages/SystemUI/res/layout/mobile_signal_group.xml +++ b/packages/SystemUI/res/layout/mobile_signal_group.xml @@ -23,11 +23,19 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" > - <ImageView + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneLightTheme" android:id="@+id/mobile_signal" android:layout_height="wrap_content" android:layout_width="wrap_content" /> + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneDarkTheme" + android:id="@+id/mobile_signal_dark" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:alpha="0.0" + /> <ImageView android:id="@+id/mobile_type" android:layout_height="wrap_content" diff --git a/packages/SystemUI/res/layout/segmented_button.xml b/packages/SystemUI/res/layout/segmented_button.xml index e92f310..ead735f 100644 --- a/packages/SystemUI/res/layout/segmented_button.xml +++ b/packages/SystemUI/res/layout/segmented_button.xml @@ -19,10 +19,10 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/segmented_button_spacing" android:layout_weight="1" - android:gravity="center_horizontal|top" + android:paddingStart="8dp" + android:gravity="start|center_vertical" + android:maxLines="2" android:textColor="@color/segmented_button_text_selector" android:background="@drawable/btn_borderless_rect" - android:textAppearance="@style/TextAppearance.QS.SegmentedButton" - android:minHeight="64dp" - android:paddingTop="11dp" - android:drawablePadding="6dp" /> + android:textAppearance="@style/TextAppearance.Volume.ZenSwitchSummary" + android:minHeight="48dp" /> diff --git a/packages/SystemUI/res/layout/signal_cluster_view.xml b/packages/SystemUI/res/layout/signal_cluster_view.xml index 8fbd8f7..c9edef8 100644 --- a/packages/SystemUI/res/layout/signal_cluster_view.xml +++ b/packages/SystemUI/res/layout/signal_cluster_view.xml @@ -38,11 +38,19 @@ android:layout_height="wrap_content" android:layout_width="wrap_content" > - <ImageView + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneLightTheme" android:id="@+id/wifi_signal" android:layout_height="wrap_content" android:layout_width="wrap_content" /> + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneDarkTheme" + android:id="@+id/wifi_signal_dark" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:alpha="0.0" + /> </FrameLayout> <View android:id="@+id/wifi_signal_spacer" @@ -56,12 +64,25 @@ android:layout_width="wrap_content" > </LinearLayout> - <ImageView - android:id="@+id/no_sims" + <FrameLayout android:layout_height="wrap_content" - android:layout_width="wrap_content" - android:src="@drawable/stat_sys_no_sims" - /> + android:layout_width="wrap_content"> + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneLightTheme" + android:id="@+id/no_sims" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:src="@drawable/stat_sys_no_sims" + /> + <com.android.systemui.statusbar.AlphaOptimizedImageView + android:theme="@style/DualToneDarkTheme" + android:id="@+id/no_sims_dark" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:src="@drawable/stat_sys_no_sims" + android:alpha="0.0" + /> + </FrameLayout> <View android:id="@+id/wifi_airplane_spacer" android:layout_width="4dp" diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml index f717ac7..0e1517f 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml @@ -128,7 +128,7 @@ android:id="@+id/clock" /> - <Button android:id="@+id/alarm_status" + <com.android.systemui.statusbar.AlphaOptimizedButton android:id="@+id/alarm_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" diff --git a/packages/SystemUI/res/layout/status_bar_search_panel.xml b/packages/SystemUI/res/layout/status_bar_search_panel.xml deleted file mode 100644 index e0520ef..0000000 --- a/packages/SystemUI/res/layout/status_bar_search_panel.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* apps/common/assets/default/default/skins/StatusBar.xml -** -** Copyright 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. -*/ ---> - -<!-- Extends FrameLayout --> -<com.android.systemui.SearchPanelView - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/search_panel_container" - android:layout_height="match_parent" - android:layout_width="match_parent"> - - <com.android.systemui.statusbar.AlphaOptimizedView - style="@style/SearchPanelScrim" - android:id="@+id/search_panel_scrim" - android:background="@drawable/search_panel_scrim" /> - - <com.android.systemui.SearchPanelCircleView - style="@style/SearchPanelCircle" - android:id="@+id/search_panel_circle"> - - <ImageView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/search_logo" /> - </com.android.systemui.SearchPanelCircleView> - -</com.android.systemui.SearchPanelView> diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index 3765fe8..7586227 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -1,6 +1,5 @@ -<?xml version="1.0" encoding="utf-8"?> <!-- - Copyright (C) 2014 The Android Open Source Project + Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,15 +13,50 @@ See the License for the specific language governing permissions and limitations under the License. --> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/volume_dialog" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="4dp" android:layout_marginLeft="@dimen/notification_side_padding" android:layout_marginRight="@dimen/notification_side_padding" - android:background="@drawable/qs_background_primary" - android:translationZ="@dimen/volume_panel_z" - android:layout_marginBottom="@dimen/volume_panel_z"> + android:layout_marginTop="4dp" + android:background="@drawable/volume_dialog_background" + android:translationZ="4dp" > - <include layout="@layout/volume_panel" /> + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/volume_expand_button" + style="@style/VolumeButtons" + android:layout_alignParentLeft="true" + android:layout_width="@dimen/volume_button_size" + android:layout_height="@dimen/volume_button_size" + android:clickable="true" + android:soundEffectsEnabled="false" + android:src="@drawable/ic_volume_collapse_animation" /> -</FrameLayout>
\ No newline at end of file + <LinearLayout + android:id="@+id/volume_dialog_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="4dp" + android:paddingEnd="4dp" + android:paddingStart="4dp" + android:paddingTop="6dp" > + + <!-- volume rows added and removed here! :-) --> + + <FrameLayout + android:id="@+id/volume_footer" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:ignore="UselessParent" > + + <include layout="@layout/volume_text_footer" /> + + <include layout="@layout/volume_zen_footer" /> + </FrameLayout> + </LinearLayout> + +</RelativeLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_dialog_row.xml b/packages/SystemUI/res/layout/volume_dialog_row.xml new file mode 100644 index 0000000..af27cc4 --- /dev/null +++ b/packages/SystemUI/res/layout/volume_dialog_row.xml @@ -0,0 +1,64 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clipChildren="false" > + + <TextView + android:id="@+id/volume_row_header" + style="?android:attr/textAppearanceButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:alpha="@dimen/volume_secondary_alpha" + android:ellipsize="end" + android:maxLines="1" + android:paddingBottom="0dp" + android:paddingEnd="12dp" + android:paddingStart="13dp" + android:paddingTop="8dp" /> + + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/volume_row_icon" + style="@style/VolumeButtons" + android:layout_width="@dimen/volume_button_size" + android:layout_height="@dimen/volume_button_size" + android:layout_below="@id/volume_row_header" + android:soundEffectsEnabled="false" /> + + <SeekBar + android:id="@+id/volume_row_slider" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/volume_row_icon" + android:layout_alignWithParentIfMissing="true" + android:layout_below="@id/volume_row_header" + android:layout_toEndOf="@id/volume_row_icon" + android:layout_toStartOf="@+id/volume_settings_button" + android:paddingEnd="4dp" + android:paddingStart="4dp" + android:progressTint="@android:color/white" + android:thumbTint="@android:color/white" /> + + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/volume_settings_button" + style="@style/VolumeButtons" + android:layout_width="@dimen/volume_button_size" + android:layout_height="@dimen/volume_button_size" + android:layout_alignParentEnd="true" + android:layout_below="@id/volume_row_header" /> + +</RelativeLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_panel_dialog.xml b/packages/SystemUI/res/layout/volume_panel_dialog.xml new file mode 100644 index 0000000..700102f --- /dev/null +++ b/packages/SystemUI/res/layout/volume_panel_dialog.xml @@ -0,0 +1,27 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/volume_panel_z" + android:layout_marginLeft="@dimen/notification_side_padding" + android:layout_marginRight="@dimen/notification_side_padding" + android:background="@drawable/qs_background_primary" + android:translationZ="@dimen/volume_panel_z" > + + <include layout="@layout/volume_panel" /> + +</FrameLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_text_footer.xml b/packages/SystemUI/res/layout/volume_text_footer.xml new file mode 100644 index 0000000..7436488 --- /dev/null +++ b/packages/SystemUI/res/layout/volume_text_footer.xml @@ -0,0 +1,54 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/volume_text_footer" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + tools:ignore="UselessParent" > + + <TextView + android:id="@+id/volume_footline_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBaseline="@+id/volume_footline_action_button" + android:alpha="@dimen/volume_secondary_alpha" + android:fontFamily="sans-serif" + android:paddingEnd="8dp" + android:paddingStart="13dp" + android:textColor="?android:attr/textColorPrimary" /> + + <Button + android:id="@+id/volume_footline_action_button" + style="@android:style/Widget.Material.Button.Borderless" + android:layout_width="wrap_content" + android:layout_height="@dimen/volume_button_size" + android:layout_toEndOf="@id/volume_footline_text" + android:layout_toStartOf="@+id/volume_settings_button" + android:alpha="@dimen/volume_secondary_alpha" + android:paddingEnd="0dp" + android:paddingStart="0dp" /> + + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/volume_settings_button" + style="@style/VolumeButtons" + android:layout_width="@dimen/volume_button_size" + android:layout_height="@dimen/volume_button_size" + android:layout_alignParentEnd="true" + android:src="@drawable/ic_volume_settings" /> + +</RelativeLayout>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_zen_footer.xml b/packages/SystemUI/res/layout/volume_zen_footer.xml new file mode 100644 index 0000000..c491e9c --- /dev/null +++ b/packages/SystemUI/res/layout/volume_zen_footer.xml @@ -0,0 +1,108 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<com.android.systemui.volume.ZenFooter xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/volume_zen_footer" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > <!-- extends LinearLayout --> + + <LinearLayout + android:id="@+id/volume_zen_switch_bar" + android:layout_width="match_parent" + android:layout_height="@dimen/volume_button_size" + android:clickable="true" + android:orientation="horizontal" > + + <ImageView + android:id="@+id/volume_zen_switch_bar_icon" + android:layout_width="@dimen/volume_button_size" + android:layout_height="@dimen/volume_button_size" + android:scaleType="center" + android:src="@drawable/ic_dnd" /> + + <TextView + android:layout_width="0dp" + android:layout_height="fill_parent" + android:layout_weight="1" + android:gravity="center_vertical" + android:textDirection="locale" + android:padding="3dp" + android:text="@string/volume_zen_switch_text" + android:textAppearance="@style/TextAppearance.Volume.ZenSwitch" /> + + <Switch + android:id="@+id/volume_zen_switch" + android:layout_width="wrap_content" + android:layout_height="fill_parent" + android:layout_marginEnd="11dp" /> + </LinearLayout> + + <RelativeLayout + android:id="@+id/volume_zen_panel_summary" + android:layout_width="match_parent" + android:layout_height="@dimen/volume_button_size" + android:layout_marginStart="@dimen/volume_button_size" + android:paddingEnd="3dp" + android:paddingStart="3dp" > + + <TextView + android:id="@+id/volume_zen_panel_summary_line_1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.Volume.ZenSwitchSummary" /> + + <TextView + android:id="@+id/volume_zen_panel_summary_line_2" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/volume_zen_panel_summary_line_1" + android:textAppearance="@style/TextAppearance.Volume.ZenSwitchDetail" /> + </RelativeLayout> + + <include layout="@layout/zen_mode_panel" /> + + <LinearLayout + android:id="@+id/volume_zen_mode_panel_buttons" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="end" > + + <TextView + android:id="@+id/volume_zen_mode_panel_more" + style="@style/QSBorderlessButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="8dp" + android:clickable="true" + android:focusable="true" + android:minWidth="132dp" + android:text="@string/quick_settings_more_settings" + android:textAppearance="@style/TextAppearance.QS.DetailButton" /> + + <TextView + android:id="@+id/volume_zen_mode_panel_done" + style="@style/QSBorderlessButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:clickable="true" + android:focusable="true" + android:minWidth="66dp" + android:text="@string/quick_settings_done" + android:textAppearance="@style/TextAppearance.QS.DetailButton" /> + </LinearLayout> + +</com.android.systemui.volume.ZenFooter>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/zen_mode_condition.xml b/packages/SystemUI/res/layout/zen_mode_condition.xml index 0b91913..a169d1a 100644 --- a/packages/SystemUI/res/layout/zen_mode_condition.xml +++ b/packages/SystemUI/res/layout/zen_mode_condition.xml @@ -18,8 +18,8 @@ android:layout_width="match_parent" android:layout_height="@dimen/qs_detail_item_height" android:layout_marginBottom="@dimen/zen_mode_condition_detail_item_spacing" - android:layout_marginStart="@dimen/zen_mode_condition_detail_button_padding" - android:layout_marginEnd="@dimen/zen_mode_condition_detail_button_padding" > + android:layout_marginStart="1dp" + android:layout_marginEnd="0dp" > <RadioButton android:id="@android:id/checkbox" diff --git a/packages/SystemUI/res/layout/zen_mode_panel.xml b/packages/SystemUI/res/layout/zen_mode_panel.xml index 33c1899..3d73ff7 100644 --- a/packages/SystemUI/res/layout/zen_mode_panel.xml +++ b/packages/SystemUI/res/layout/zen_mode_panel.xml @@ -19,6 +19,7 @@ android:id="@+id/zen_mode_panel" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginStart="35dp" android:clipChildren="false" android:orientation="vertical" > diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index a74e120..5a85177 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Skakel batterybespaarder aan"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Instellings"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegtuigmodus"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Outodraai skerm"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMP"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Vliegtuigmodus aangeskakel."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Moenie steur nie aan, net prioriteit."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Moenie steur nie aan, geen onderbrekings nie."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'Moenie steur nie\' is aan, net wekkers."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Moenie steur nie af."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Moenie steur nie is afgeskakel."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Moenie steur nie is aangeskakel."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Nageregkas"</string> <string name="start_dreams" msgid="7219575858348719790">"Sluimer"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Vliegtuigmodus"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Moenie steur nie"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Net prioriteit"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Net wekkers"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Geen onderbrekings nie"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> toestelle)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekings nie. Nie eens wekkers nie."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekings nie"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Net prioriteitonderbrekings"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Net wekkers"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Jou volgende wekker is om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Jou volgende wekker is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Jy sal nie jou wekker om <xliff:g id="ALARM_TIME">%s</xliff:g> hoor nie"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Sleep op om te ontsluit"</string> <string name="phone_hint" msgid="3101468054914424646">"Sleep regs vir foon"</string> <string name="camera_hint" msgid="5241441720959174226">"Sleep links vir kamera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Geen"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteit"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Net wekkers"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alles"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Geen\nonderbrekings nie"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Net\nprioriteit"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Net\nwekkers"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laai tans (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tot vol)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Wissel gebruiker"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Wissel gebruiker, huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Weier"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is die volumedialoog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Raak om die oorspronklike terug te stel."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 0c9aa53..cc78112 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ባትሪ ቆጣቢን አብራ"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ቅንብሮች"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"የአውሮፕላን ሁነታ"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"ማያ በራስ ሰር አሽከርክር"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ድምጽ አጥፋ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ራስ ሰር"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"የአውሮፕላን ሁነታ በርቷል።"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"አትረብሽ በርቷል፣ ቅድሚያ የሚሰጠው ብቻ።"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"አትረብሽ በርቷል፣ ምንም ማቋረጦች የሉም።"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"አትረብሽ በርቷል፣ ማንቂያዎች ብቻ።"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"አትረብሽ ጠፍቷል።"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"አትረብሽ ጠፍቷል።"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"አትረብሽ በርቷል።"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"የማወራረጃ ምግቦች መያዣ"</string> <string name="start_dreams" msgid="7219575858348719790">"የቀን ህልም"</string> <string name="ethernet_label" msgid="7967563676324087464">"ኤተርኔት"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"የአውሮፕላን ሁነታ"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"አትረብሽ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ቅድሚያ የሚሰጠው ብቻ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ማንቂያዎች ብቻ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ምንም ማቋረጦች የሉም"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ብሉቱዝ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ብሉቱዝ (<xliff:g id="NUMBER">%d</xliff:g> መሣሪያዎች)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ምንም ማቋረጦች የሉም። ማንቂያዎችም እንኳ።"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ምንም ማቋረጦች የሉም"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ቅድሚያ የሚሰጣቸው ማቋረጦች ብቻ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ማንቂያዎች ብቻ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ቀጣዩ ማንቂያ ደውልዎ በ<xliff:g id="ALARM_TIME">%s</xliff:g> ነው"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ቀጣዩ ማንቂያ ደውልዎ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ነው"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"በ<xliff:g id="ALARM_TIME">%s</xliff:g> ያለውን ማንቂያ ደውልዎን አይሰሙትም"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"ለማስከፈት ወደ ላይ ያንሸራትቱ"</string> <string name="phone_hint" msgid="3101468054914424646">"ለስልክ ወደቀኝ ያንሸራትቱ"</string> <string name="camera_hint" msgid="5241441720959174226">"ለካሜራ ወደግራ ያንሸራትቱ"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ምንም"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ቅድሚያ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ምንም ማቋረጦች የሉም"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ቅድሚያ የሚሰጠው ብቻ"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"ማንቂያዎች ብቻ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ሁሉም"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ምንም\nመቆራረጦች የሉም"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ቅድሚያ ተሰጪ\nብቻ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ማንቂያዎች\nብቻ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ሃይል በመሙላት ላይ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> እስከሚሞላ ድረስ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ተጠቃሚ ቀይር"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ተጠቃሚ ይለውጡ፣ የአሁን ተጠቃሚ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ከልክል"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> የድምጽ መጠን መገናኛው ነው"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"የመጀመሪያውን ወደነበረበት ለመመለስ ይንኩ።"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"መቆራረጦችን አግድ"</string> </resources> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index de7250d..0b8b0bf 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -48,7 +48,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"تشغيل توفير شحن البطارية"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"الإعدادات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"وضع الطائرة"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"التدوير التلقائي للشاشة"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"كتم"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"تلقائي"</string> @@ -184,6 +183,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"تم تشغيل وضع الطائرة."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"تم تشغيل الرجاء عدم الإزعاج، الأولوية فقط."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"تم تشغيل \"الرجاء عدم الإزعاج\"، ممنوع الإزعاج."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"تم تشغيل الرجاء عدم الإزعاج، التنبيهات فقط."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"تم تعطيل \"الرجاء عدم الإزعاج\"."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"تم تعطيل \"الرجاء عدم الإزعاج\"."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"تم تشغيل \"الرجاء عدم الإزعاج\"."</string> @@ -234,9 +234,9 @@ <string name="dessert_case" msgid="1295161776223959221">"حالة الحلويات"</string> <string name="start_dreams" msgid="7219575858348719790">"حلم اليقظة"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"وضع الطائرة"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"الرجاء عدم الإزعاج"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"الأولوية فقط"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"التنبيهات فقط"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"عدم الإزعاج"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوتوث (<xliff:g id="NUMBER">%d</xliff:g> من الأجهزة)"</string> @@ -307,6 +307,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"عدم المقاطعة، ولا بالتنبيهات كذلك."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"بدون مقاطعات"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"المقاطعات ذات الأولوية فقط"</string> + <string name="zen_alarms" msgid="5055668280767657759">"التنبيهات فقط"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"التنبيه المقبل في <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"التنبيه المقبل في <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"لن تسمع المنبهات في <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -316,9 +317,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"مرر سريعًا لأعلى لإلغاء القفل"</string> <string name="phone_hint" msgid="3101468054914424646">"مرر سريعًا إلى اليسار لفتح الهاتف"</string> <string name="camera_hint" msgid="5241441720959174226">"مرر سريعًا إلى اليمين لفتح الكاميرا"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"بدون"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"الأولوية"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"عدم الإزعاج"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"الأولوية فقط"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"التنبيهات فقط"</string> <string name="interruption_level_all" msgid="1330581184930945764">"الكل"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"عدم\nالإزعاج"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"الأولوية \nفقط"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"التنبيهات\nفقط"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"جارٍ الشحن (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> حتى الامتلاء)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"تبديل المستخدم"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"تبديل المستخدم، المستخدم الحالي <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -386,4 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"رفض"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> هو مربع حوار مستوى الصوت"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"المس لاستعادة الإعداد الأصلي."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"حظر المقاطعات"</string> </resources> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 1f69b11..845c7c2 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Включване на режима за запазване на батерията"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Настройки"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Самолетен режим"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Авт. завъртане на екрана"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"БЕЗ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТ."</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Самолетният режим се включи."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Настройката „Не безпокойте“ е включена – само с приоритет."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Настройката „Не безпокойте“ е включена – без прекъсвания."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Настройката „Не безпокойте“ е включена в режим само с будилници."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Настройката „Не безпокойте“ е изключена."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Настройката „Не безпокойте“ е изключена."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Настройката „Не безпокойте“ е включена."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Витрина с десерти"</string> <string name="start_dreams" msgid="7219575858348719790">"Мечта"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Самолетен режим"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не безпокойте"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само с приоритет"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само будилници"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекъсвания"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> устройства)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекъсвания. Дори без будилници."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекъсвания"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекъсвания"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само будилници"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следващият ви будилник е в <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следващият ви будилник е в/ъв <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Няма да чуете будилника си в <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Прекарайте пръст нагоре, за да отключите"</string> <string name="phone_hint" msgid="3101468054914424646">"Прекарайте пръст надясно, за да използвате телефона"</string> <string name="camera_hint" msgid="5241441720959174226">"Прекарайте пръст наляво, за да включите камерата"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Няма"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Само будилници"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Всички"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nпрекъсвания"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nс приоритет"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nбудилници"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарежда се (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до пълно зареждане)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Превключване между потребителите"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Превключване на потребителя – текущият е <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Отказване"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> изпълнява ролята на диалоговия прозорец за силата на звука"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Докоснете, за да възстановите оригинала."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index 26fd0f4..62cb021 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ব্যাটারি সঞ্চয়কারী চালু"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"সেটিংস"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"বিমান মোড"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"স্বতঃ-ঘূর্ণায়মান স্ক্রীণ"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"নিঃশব্দ করুন"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"স্বতঃ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"বিমান মোড চালু হয়েছে।"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"“বিরক্ত করবেন না” চালু করবেন, শুধুমাত্র অগ্রাধিকার৷"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"“বিরক্ত করবেন না” চালু করবেন, কোন বাধা নয়"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"“বিরক্ত করবেন না” চালু করবেন, শুধুমাত্র অ্যালার্মগুলি৷"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"“বিরক্ত করবেন না” বন্ধ৷"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"বিরক্ত করবেন না বন্ধ রয়েছে৷"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"বিরক্ত করবেন না চালু রয়েছে৷"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ডেজার্ট কেস"</string> <string name="start_dreams" msgid="7219575858348719790">"স্ক্রিনসেভার"</string> <string name="ethernet_label" msgid="7967563676324087464">"ইথারনেট"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"বিমান মোড"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"বিরক্ত করবেন না"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"শুধুমাত্র অগ্রাধিকার"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"শুধুমাত্র অ্যালার্মগুলি"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"কোনো বাধা নয়"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> টি ডিভাইস)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"কোনো ব্যাঘাত ছাড়াই। এমনকি অ্যালার্মও নয়।"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"কোনো বাধা নয়"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"শুধুমাত্র প্রাধান্য বাধাগুলি"</string> + <string name="zen_alarms" msgid="5055668280767657759">"শুধুমাত্র অ্যালার্মগুলি"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"আপনার পরবর্তী অ্যালার্মের সময় <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"আপনার পরবর্তী অ্যালার্মের সময় <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> বাজলে আপনি অ্যালার্ম শুনতে পাবেন না"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"আনলক করতে উপরের দিকে সোয়াইপ করুন"</string> <string name="phone_hint" msgid="3101468054914424646">"ফোনের জন্য ডানদিকে সোয়াইপ করুন"</string> <string name="camera_hint" msgid="5241441720959174226">"ক্যামেরার জন্য ডানদিকে সোয়াইপ করুন"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"কোনো কিছুই নয়"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"অগ্রাধিকার"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"কোনো বাধা নেই"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"শুধুমাত্র অগ্রাধিকার"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"শুধুমাত্র অ্যালার্মগুলি"</string> <string name="interruption_level_all" msgid="1330581184930945764">"সমস্ত"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"কোনো\nবাঁধাদান নেই"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"শুধুমাত্র\nঅগ্রাধিকার"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"শুধুমাত্র\nঅ্যালার্মগুলি"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"চার্জ হচ্ছে (পূর্ণ হতে <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> সময় বাকি)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ব্যবহারকারী পাল্টে দিন"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ব্যবহারকারী পাল্টান, বর্তমান ব্যবহারকারী <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"প্রত্যাখ্যান করুন"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> হল ভলিউম ডায়লগ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"আসলটি পুনঃস্থাপন করতে স্পর্শ করুন৷"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"বাধাগুলিকে অবরুদ্ধ করুন"</string> </resources> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 2454adb..3a35589 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activa l\'estalvi de bateria"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuració"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode d\'avió"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Gira pantalla automàticament"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Silen."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"S\'ha activat el Mode d\'avió."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"El mode No molesteu està activat (només amb prioritat)."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"El mode No molesteu està activat (cap interrupció)."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"El mode No molesteu està activat (només alarmes)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"El mode No molesteu està desactivat."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"S\'ha desactivat el mode No molesteu."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"S\'ha activat el mode No molesteu."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Capsa de postres"</string> <string name="start_dreams" msgid="7219575858348719790">"Estalvi de pantalla"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode d\'avió"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molesteu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Només amb prioritat"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Només alarmes"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Cap interrupció"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositius)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sense interrupcions (ni tan sols alarmes)"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Cap interrupció"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Només interrupcions amb prioritat"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Només alarmes"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"La propera alarma és a les <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Propera alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"No sentiràs l\'alarma a les <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Fes lliscar el dit cap amunt per desbloquejar el teclat."</string> <string name="phone_hint" msgid="3101468054914424646">"Fes lliscar el dit cap a la dreta per obrir el telèfon."</string> <string name="camera_hint" msgid="5241441720959174226">"Fes lliscar el dit cap a l\'esquerra per obrir la càmera."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Cap"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritat"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Només alarmes"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Totes"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sense\ninterrupcions"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Només\ninterr. prior."</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Només\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregant (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> per completar la càrrega)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Canvia d\'usuari"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Canvia l\'usuari. Usuari actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denega"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> és el diàleg de volum"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca per restaurar l\'original."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index a3ba579..fb2789a 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Zapnout úsporu baterie"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavení"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim Letadlo"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Autom. otočení obrazovky"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ZTLUM."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -184,6 +183,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Režim Letadlo je zapnutý."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stav Nerušit je zapnutý – pouze prioritní vyrušení."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stav Nerušit je zapnutý – žádná vyrušení."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Nerušit, pouze budíky"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stav Nerušit je vypnutý."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stav Nerušit je vypnutý"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Stav Nerušit je zapnutý."</string> @@ -234,9 +234,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Pult se sladkostmi"</string> <string name="start_dreams" msgid="7219575858348719790">"Spořič obrazovky"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Režim Letadlo"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nerušit"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Pouze prioritní"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Pouze budíky"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Žádná vyrušení"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> zařízení)"</string> @@ -307,6 +307,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žádná vyrušení, dokonce ani budíky."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Žádná vyrušení"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Pouze prioritní vyrušení"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Pouze budíky"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Další budík je nastaven na: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Další budík: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Neuslyšíte budík v <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> @@ -316,9 +317,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Zařízení odemknete přejetím prstem nahoru"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefon otevřete přejetím prstem vpravo."</string> <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otevřete přejetím prstem vlevo."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Žádné"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritní"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Pouze budíky"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Vše"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nerušit\n"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Pouze\nprioritní"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Pouze\nbudíky"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíjení (plně nabito za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Přepnout uživatele"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Přepnout uživatele, aktuální uživatel: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -386,4 +393,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmítnout"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialog hlasitosti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 2d4fa0f..0abbbb1 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktivér batterisparefunktion"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Indstillinger"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flytilstand"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatisk skærmrotation"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"LYDLØS"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flytilstand er slået til."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Vil ikke forstyrres\" er slået til, kun prioritet."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Vil ikke forstyrres\" er slået til, ingen afbrydelser."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Vil ikke forstyrres\" er slået til, kun alarmer."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Vil ikke forstyrres\" er slået fra."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Vil ikke forstyrres\" er slået fra."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Vil ikke forstyrres\" er slået til."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertcase"</string> <string name="start_dreams" msgid="7219575858348719790">"Dagdrøm"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flytilstand"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Vil ikke forstyrres"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Kun prioritet"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Kun Alarmer"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ingen afbrydelser"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheder)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen afbrydelser. Ikke engang alarmer."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen afbrydelser"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Kun prioriterede afbrydelser"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Kun Alarmer"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Dit næste alarm er indstillet til kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Din næste alarm er indstillet til <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Du vil ikke kunne høre din alarm kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Stryg for at låse op"</string> <string name="phone_hint" msgid="3101468054914424646">"Stryg til højre for at bruge telefonen"</string> <string name="camera_hint" msgid="5241441720959174226">"Stryg til venstre for at åbne kameraet"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ingen"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Kun Alarmer"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ingen\nafbrydelser"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Kun\nprioritet"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Kun\nalarmer"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Oplader (fuldt opladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Skift bruger"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Skift bruger. Nuværende bruger er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afvis"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er dialogboksen for lydstyrke"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tryk for at gendanne originalen."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index d97a063..db43dfc 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Energiesparmodus aktivieren"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Einstellungen"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WLAN"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugmodus"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Bildschirm automatisch drehen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STUMM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Der Flugmodus ist aktiviert."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Nicht stören\" an, nur wichtige Unterbrechungen"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Nicht stören\" an, keine Unterbrechungen"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Nicht stören\" an, nur Wecker"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Nicht stören\" aus"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Nicht stören\" deaktiviert"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Nicht stören\" aktiviert"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertbehälter"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugmodus"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nicht stören"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Nur wichtige Unterbrechungen"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Nur Wecker"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Keine Unterbrechungen"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Geräte)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Keine Unterbrechungen. Auch keine Weckrufe."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Keine Unterbrechungen"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Nur wichtige Unterbrechungen"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Nur Wecker"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nächster Weckruf: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nächster Weckruf: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Lautloser Weckruf um <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Zum Entsperren nach oben wischen"</string> <string name="phone_hint" msgid="3101468054914424646">"Zum Öffnen des Telefons nach rechts wischen"</string> <string name="camera_hint" msgid="5241441720959174226">"Zum Öffnen der Kamera nach links wischen"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Keine"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Wichtig"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Nur Wecker"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Keine\nUnterbrechungen"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Nur\nwichtige"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Nur\nWecker"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Wird aufgeladen (voll in <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Nutzer wechseln"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Nutzer wechseln. Aktueller Nutzer: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -372,8 +379,8 @@ <string name="notification_collapse_button_text" msgid="6883253262134328057">"Alle ausblenden"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Bildschirm ist fixiert"</string> - <string name="screen_pinning_description" msgid="1346522416878235405">"Hiermit wird sie angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Zurück\" und \"Übersicht\" gleichzeitig, um die Fixierung aufzuheben."</string> - <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Hiermit wird sie angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Übersicht\", um die Fixierung aufzuheben."</string> + <string name="screen_pinning_description" msgid="1346522416878235405">"Der Bildschirm wird solange angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Zurück\" und \"Übersicht\" gleichzeitig, um die Fixierung aufzuheben."</string> + <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Der Bildschirm wird solange angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Übersicht\", wenn Sie die Fixierung aufheben möchten."</string> <string name="screen_pinning_positive" msgid="3783985798366751226">"OK"</string> <string name="screen_pinning_negative" msgid="3741602308343880268">"Nein danke"</string> <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"<xliff:g id="TILE_LABEL">%1$s</xliff:g> ausblenden?"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ablehnen"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> regelt die Lautstärke."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Zum Wiederherstellen des Originals hier tippen"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index 5ccd669..9450cb8 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ενεργοποίηση της εξοικονόμησης μπαταρίας"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ρυθμίσεις"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Λειτουργία πτήσης"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Αυτόματη περιστροφή οθόνης"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ΣΙΓΑΣΗ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ΑΥΤΟΜ."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ενεργή λειτουργία πτήσης."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε, μόνο προτεραιότητας."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε, χωρίς διακοπές."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Μην ενοχλείτε, μόνο ειδοποιήσεις."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Η λειτουργία \"Μην ενοχλείτε\" απενεργοποιήθηκε."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Η λειτουργία \"Μην ενοχλείτε\" απενεργοποιήθηκε."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Επιδόρπιο"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Λειτουργία πτήσης"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Μην ενοχλείτε"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Μόνο προτεραιότητας"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Μόνο ειδοποιήσεις"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Χωρίς διακοπές"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> συσκευές)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Χωρίς διακοπές. Ούτε ειδοποιήσεις,"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Χωρίς διακοπές"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Μόνο διακοπές προτεραιότητας"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Μόνο ειδοποιήσεις"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Το επόμενο ξυπνητήρι είναι στις <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Το επόμενο ξυπνητήρι είναι στις <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Δεν θα ακούτε το ξυπνητήρι σας στις <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Σύρετε για να ξεκλειδώσετε"</string> <string name="phone_hint" msgid="3101468054914424646">"Σύρετε προς τα δεξιά για το τηλέφωνο"</string> <string name="camera_hint" msgid="5241441720959174226">"Σύρετε αριστερά για τη φωτογραφική μηχανή"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Κανένα"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Προτεραιότητα"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Μόνο ειδοποιήσεις"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Όλα"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Χωρίς\nδιακοπές"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Μόνο\nπροτεραιότητας"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Μόνο\nειδοποιήσεις"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Φόρτιση (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> για πλήρη φόρτιση)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Εναλλαγή χρήστη"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Εναλλαγή χρήστη, τρέχων χρήστης <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Απόρριψη"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> αποτελεί το παράθυρο διαλόγου ελέγχου έντασης"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Αγγίξτε για επαναφορά αρχικού."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index dffe8ce..2f5c937 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Turn on battery saver"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Settings"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Aeroplane mode"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Auto-rotate screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\'Do not disturb\' turned on."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Aeroplane mode"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"None"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priority"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Block interruptions"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index dffe8ce..2f5c937 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Turn on battery saver"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Settings"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Aeroplane mode"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Auto-rotate screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\'Do not disturb\' turned on."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Aeroplane mode"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"None"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priority"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Block interruptions"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index dffe8ce..2f5c937 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Turn on battery saver"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Settings"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Aeroplane mode"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Auto-rotate screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\'Do not disturb\' turned on."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Aeroplane mode"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"None"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priority"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Block interruptions"</string> </resources> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index af28b22..4c8ef14 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar ahorro de batería"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuración"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar la pantalla automáticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo de avión activado"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"No molestar activado (solo prioridad)"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"No molestar activado (sin interrupciones)"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"No molestar activado (solo alarmas)"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"No molestar desactivado"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"No molestar desactivado"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"No molestar activado"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Caja para postres"</string> <string name="start_dreams" msgid="7219575858348719790">"Activar protector"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avión"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo prioridad"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo alarmas"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sin interrupciones"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones (ni siquiera alarmas)"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Próxima alarma a la(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Próxima alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás la alarma a la(s) <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar el dedo hacia arriba para desbloquear"</string> <string name="phone_hint" msgid="3101468054914424646">"Desliza hacia la derecha para abrir el teléfono."</string> <string name="camera_hint" msgid="5241441720959174226">"Desliza hacia la izquierda para acceder a la cámara."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ninguno"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridad"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo alarmas"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sin\ninterrupciones"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo\nprioridad"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (faltan <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para completar)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar de usuario (usuario actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar el original."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 989691a..a13c5ef 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar ahorro de energía"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ajustes"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar pantalla automáticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo avión activado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"No molestar activado (solo prioritarias)."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"No molestar activado (sin interrupciones)."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"No molestar activado, solo alarmas."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"No molestar desactivado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"No molestar desactivado."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"No molestar activado."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Caja para postres"</string> <string name="start_dreams" msgid="7219575858348719790">"Salvapantallas"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avión"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo prioritarias"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo alarmas"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sin interrupciones"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones, ni siquiera alarmas."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Siguiente alarma: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Siguiente alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás tu alarma a las <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Desliza el dedo hacia arriba para desbloquear"</string> <string name="phone_hint" msgid="3101468054914424646">"Desliza el dedo hacia la derecha para acceder al teléfono"</string> <string name="camera_hint" msgid="5241441720959174226">"Desliza el dedo hacia la izquierda para acceder a la cámara"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nada"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridad"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo alarmas"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sin\ninterrupciones"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo\ncon prioridad"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para completar)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar de usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar de usuario (usuario actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar la versión original."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 110ee53..1611638 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Akusäästja sisselülitamine"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Seaded"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WiFi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lennurežiim"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Pööra ekraani automaatselt"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SUMMUTA"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lennukirežiim on sisse lülitatud."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Funktsioon Mitte segada on sisse lülitatud (ainult prioriteetsed)."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Funktsioon Mitte segada on sisse lülitatud (mitte ühtegi katkestust)."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Funktsioon Mitte segada on sisse lülitatud (ainult alarmid)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Funktsioon Mitte segada on välja lülitatud."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Funktsioon Mitte segada on välja lülitatud."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Funktsioon Mitte segada on sisse lülitatud."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Maiustusekorv"</string> <string name="start_dreams" msgid="7219575858348719790">"Unistus"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lennurežiim"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Mitte segada"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Ainult prioriteetsed"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ainult alarmid"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Mitte ühtegi katkestust"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> seadet)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Katkestusi pole. Pole isegi hoiatusi."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Mitte ühtegi katkestust"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Ainult prioriteetsed katkestused"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ainult alarmid"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Teie järgmine äratus on <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Teie järgmine äratus on <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Te ei kuule äratust <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Lukustuse tühistamiseks pühkige üles"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefoni kasutamiseks pühkige paremale"</string> <string name="camera_hint" msgid="5241441720959174226">"Kaamera kasutamiseks pühkige vasakule"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Puudub"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteet"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Ainult alarmid"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Kõik"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Katkestusi\npole"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Ainult\nprioriteetsed"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ainult\nalarmid"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laadimine (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>, kuni seade on täis)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Kasutaja vahetamine"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Kasutaja vahetamine, praegune kasutaja: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Keela"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on helitugevuse dialoog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Originaali taastamiseks puudutage."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index 220a5f0..9318c11 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktibatu bateria aurrezteko aukera"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ezarpenak"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Hegaldi modua"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Biratu pantaila automatikoki"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DESAKTIBATU AUDIOA"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Hegaldi modua aktibatu egin da."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Ez molestatu\" aukera aktibatuta dago, lehentasunezkoak soilik."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Ez molestatu\" aukera aktibatuta dago, etenaldirik gabe."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Ez molestatu\" aukera aktibatuta dago, alarmak soilik."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Ez molestatu\" aukera desaktibatuta dago."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Ez molestatu\" aukera desaktibatuta dago."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Ez molestatu\" aukera aktibatuta dago."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Postreen kutxa"</string> <string name="start_dreams" msgid="7219575858348719790">"Pantaila-babeslea"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Hegaldi modua"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ez molestatu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Lehentasunezkoak soilik"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmak soilik"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Etenaldirik gabe"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetootha (<xliff:g id="NUMBER">%d</xliff:g> gailu)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Etenaldirik ez, ezta alarmaren bat bada ere."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Etenaldirik gabe"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Lehentasun-etenaldiak soilik"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmak soilik"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Hurrengo alarma: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Hurrengo alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Ez duzu entzungo alarma ordu honetan: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Desblokeatzeko, pasatu hatza gorantz"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefonoa irekitzeko, pasatu hatza eskuinera."</string> <string name="camera_hint" msgid="5241441720959174226">"Kamera irekitzeko, pasatu hatza ezkerrera."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Bat ere ez"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Lehentas."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Etenaldirik gabe"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Lehentasunezkoak"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmak soilik"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Guztiak"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Etenaldirik\ngabe"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Lehentasunezkoak\nsoilik"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmak\nsoilik"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kargatzen (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> guztiz kargatu arte)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Aldatu erabiltzailea"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Aldatu erabiltzailez. <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> da saioa hasita duena."</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ukatu"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> da bolumenaren leihoa"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Ukitu jatorrizkora leheneratzeko"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Blokeatu etenaldiak"</string> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index b6a6ecb..915e470 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ذخیرهکننده باتری را روشن کنید"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"تنظیمات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"حالت هواپیما"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"چرخش خودکار صفحه"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"بیصدا"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"خودکار"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"حالت هواپیما روشن شد."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"«مزاحم نشوید» روشن است، فقط اولویتدار."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"«مزاحم نشوید» روشن است، وقفه ایجاد نشود."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"حالت «مزاحم نشوید» روشن است، فقط هشدارها."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"«مزاحم نشوید» خاموش است."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"«مزاحم نشوید» خاموش شد."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"«مزاحم نشوید» روشن شد."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ویترین دسر"</string> <string name="start_dreams" msgid="7219575858348719790">"رویاپردازی"</string> <string name="ethernet_label" msgid="7967563676324087464">"اترنت"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"حالت هواپیما"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"مزاحم نشوید"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"فقط اولویتدار"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"فقط هشدارها"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"وقفه ایجاد نشود"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوتوث ( <xliff:g id="NUMBER">%d</xliff:g> دستگاه)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"بدون قطعی. حتی هشدارها قطع نمیشوند."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"بدون وقفه"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"فقط وقفههای اولویتدار"</string> + <string name="zen_alarms" msgid="5055668280767657759">"فقط هشدارها"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"هشدار بعدی شما در ساعت <xliff:g id="ALARM_TIME">%s</xliff:g> است"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"هشدار بعدی شما <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> است"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"هشدارتان را در ساعت <xliff:g id="ALARM_TIME">%s</xliff:g> نخواهید شنید"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"برای باز کردن قفل سریع به بالا بکشید"</string> <string name="phone_hint" msgid="3101468054914424646">"برای تلفن انگشت را تند به سمت چپ بکشید"</string> <string name="camera_hint" msgid="5241441720959174226">"برای دوربین انگشت را تند به سمت راست بکشید"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"هیچکدام"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"اولویت"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"بدون وقفه"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"فقط اولویتدار"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"فقط هشدارها"</string> <string name="interruption_level_all" msgid="1330581184930945764">"همه"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"بدون\nوقفه"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"فقط\nاولویتدار"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"فقط\nهشدارها"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"در حال شارژ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> تا شارژ کامل)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"تغییر کاربر"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"تعویض کاربر، کاربر کنونی <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"رد کردن"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> کنترلکننده صدا است"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"برای بازیابی کنترلکننده اصلی، لمس کنید."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"مسدود کردن وقفهها"</string> </resources> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 4edd4c2..680356d 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ota virransäästö käyttöön"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Asetukset"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lentokonetila"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Kierrä näyttöä automaattisesti"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ÄÄNET."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lentokonetila otettiin käyttöön."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Älä häiritse -tila on päällä, vain tärkeät."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Älä häiritse -tila on päällä, ei keskeytyksiä."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Älä häiritse -tila on päällä, vain herätykset toistetaan."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Älä häiritse -tila on pois päältä."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Älä häiritse -tila on pois päältä."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Älä häiritse -tila on päällä."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Jälkiruokavitriini"</string> <string name="start_dreams" msgid="7219575858348719790">"Unelmat"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lentokonetila"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Älä häiritse"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Vain tärkeät"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Vain herätykset"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ei häiriöitä"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> laitetta)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ei keskeytyksiä, ei edes herätyksiä."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Ei häiriöitä"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Vain tärkeät häiriöt"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Vain herätykset"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Seuraava hälytysaika on <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Seuraava hälytysaika on <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Et kuule hälytystä klo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Avaa lukitus pyyhkäisemällä ylös"</string> <string name="phone_hint" msgid="3101468054914424646">"Avaa puhelin pyyhkäisemällä oikealle"</string> <string name="camera_hint" msgid="5241441720959174226">"Avaa kamera pyyhkäisemällä oikealle"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ei mitään"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Tärkeät"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Vain herätykset"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Kaikki"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ei\nkeskeytyksiä"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Vain\ntärkeät"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Vain\nherätykset"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ladataan (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kunnes täynnä)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Vaihda käyttäjää"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Vaihda käyttäjä (nyt <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Estä"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on äänenvoimakkuusvalinta."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Palauta alkuperäinen koskettamalla."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index a369dfd..89eed3e3 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activer l\'économiseur d\'énergie"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Paramètres"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotation auto de l\'écran"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOMATIQUE"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Le mode Avion est activé."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Mode « Ne pas déranger » activé, interruptions prioritaires uniquement."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Mode « Ne pas déranger » activé, sans interruption."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Mode « Ne pas déranger » activé, alarmes uniquement."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Mode « Ne pas déranger » désactivé."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Le mode « Ne pas déranger » a bien été désactivé."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Le mode « Ne pas déranger » a bien été activé."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vitrine des desserts"</string> <string name="start_dreams" msgid="7219575858348719790">"Écran de veille"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode Avion"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne pas déranger"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priorités seulement"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmes uniquement"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Aucune interruption"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> appareils)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune interruption. Même pas pour les alarmes."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune interruption"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Interruptions prioritaires seulement"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Prochaine alarme : <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Prochaine alarme : <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Glissez vers le haut pour déverrouiller"</string> <string name="phone_hint" msgid="3101468054914424646">"Balayez l\'écran vers la droite pour accéder au téléphone"</string> <string name="camera_hint" msgid="5241441720959174226">"Balayez l\'écran vers la gauche pour accéder à l\'appareil photo"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Aucun"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priorité"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmes uniquement"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tous"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Aucune\ninterruption"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priorités\nuniquement"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmes\nuniquement"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours... (chargée à 100 %% dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Changer d\'utilisateur"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Changer d\'utilisateur (utilisateur actuel <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touchez pour restaurer l\'original."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 18dac4c..ef67f67 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activer l\'économiseur de batterie"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Paramètres"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotation automatique de l\'écran"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Le mode Avion est activé."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Mode \"Ne pas déranger\" activé, interruptions prioritaires uniquement"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Mode \"Ne pas déranger\" activé, sans interruption"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Mode \"Ne pas déranger\" activé, alarmes uniquement"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Mode \"Ne pas déranger\" désactivé"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Le mode \"Ne pas déranger\" a bien été désactivé."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Le mode \"Ne pas déranger\" a bien été activé."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vitrine des desserts"</string> <string name="start_dreams" msgid="7219575858348719790">"Écran de veille interactif"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode avion"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne pas déranger"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Prioritaires uniquement"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmes uniquement"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Aucune interruption"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> appareils)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune sonnerie, pas même pour les alarmes"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune sonnerie"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Sonneries prioritaires uniquement"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Prochaine alarme : <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Prochaine alarme : <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Faire glisser pour déverrouiller"</string> <string name="phone_hint" msgid="3101468054914424646">"Balayer l\'écran vers la droite pour accéder au téléphone"</string> <string name="camera_hint" msgid="5241441720959174226">"Balayer l\'écran vers la gauche pour accéder à l\'appareil photo"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Aucune"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritaire"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmes uniquement"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Toujours"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Aucune\ninterruption"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priorité\nuniquement"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmes\nuniquement"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours… (chargé à 100 %% dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Changer d\'utilisateur"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Changer d\'utilisateur (utilisateur actuel : <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Appuyez pour restaurer l\'interface d\'origine."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index 75c0cb9..d379247 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar o aforro de batería"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuración"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Xirar pantalla automaticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"APAGAR"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Activouse o modo avión."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Non molestar activado, só prioridade."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Non molestar activado, sen interrupcións."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Non molestar activado, só alarmas."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"A opción Non molestar está desactivada."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Desactivouse a opción Non molestar."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Activouse a opción Non molestar."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Caixa de sobremesa"</string> <string name="start_dreams" msgid="7219575858348719790">"Protector pantalla"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avión"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Non molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Só prioridade"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Só alarmas"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sen interrupcións"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Non hai interrupcións nin alarmas."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Sen interrupcións"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Só interrupcións prioritarias"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Só alarmas"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"A túa próxima alarma ten lugar ás <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"A túa próxima alarma ten lugar o <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Non escoitarás a túa alarma ás <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Pasa o dedo cara arriba para desbloquear"</string> <string name="phone_hint" msgid="3101468054914424646">"Pasa o dedo cara á dereita para acceder ao teléfono"</string> <string name="camera_hint" msgid="5241441720959174226">"Pasa o dedo cara á esquerda para abrir a cámara"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ningún"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sen interrupcións"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Só prioridade"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Só alarmas"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Todas"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ningunha\ninterrupción"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Só\nprioridade"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Só\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para finalizar a carga)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar usuario, usuario actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +389,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denegar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é o cadro de diálogo de volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar o orixinal."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Bloquear interrupcións"</string> </resources> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 5c45c8b..76bfb66 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"बैटरी बचतकर्ता को चालू करें"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"सेटिंग"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"वाई-फ़ाई"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"हवाई जहाज मोड"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"स्क्रीन अपनेआप घुमाएं"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"म्यूट करें"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"स्वत:"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"हवाई जहाज़ मोड को चालू किया गया."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"परेशान ना करें चालू, केवल प्राथमिकता."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"परेशान ना करें चालू है, कोई बाधा नहीं."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"परेशान ना करें चालू, केवल अलार्म."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"परेशान ना करें बंद."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"परेशान ना करें बंद किया गया."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"परेशान ना करें चालू किया गया."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"मिठाई का डिब्बा"</string> <string name="start_dreams" msgid="7219575858348719790">"स्क्रीनसेवर"</string> <string name="ethernet_label" msgid="7967563676324087464">"ईथरनेट"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"हवाई जहाज़ मोड"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"परेशान ना करें"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"केवल प्राथमिकता"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"केवल अलार्म"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कोई मेसज और कॉल को नहीं रोका गया"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लूटूथ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लूटूथ (<xliff:g id="NUMBER">%d</xliff:g> डिवाइस)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ऐसा सेट करें की कोई कि अलार्म भी ना हो."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"कोई अवरोध नहीं"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"केवल प्राथमिकता वाले कल और मैसेज को रोकें"</string> + <string name="zen_alarms" msgid="5055668280767657759">"केवल अलार्म"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"आपका अगला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> पर है"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"आपका अगला अलार्म <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> पर है"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"आपको <xliff:g id="ALARM_TIME">%s</xliff:g> पर अपना अलार्म सुनाई नहीं देगा"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करने के लिए ऊपर स्वाइप करें"</string> <string name="phone_hint" msgid="3101468054914424646">"फ़ोन के लिए दाएं स्वाइप करें"</string> <string name="camera_hint" msgid="5241441720959174226">"कैमरे के लिए बाएं स्वाइप करें"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"कोई नहीं"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"प्राथमिकता"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कोई बाधा नहीं"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"केवल प्राथमिकता"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"केवल अलार्म"</string> <string name="interruption_level_all" msgid="1330581184930945764">"सभी"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"कोई बाधा\nनहीं"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"केवल\nप्राथमिकता"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"केवल\nअलार्म"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हो रहा है (पूरा होने में <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> बाकी)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"उपयोगकर्ता स्विच करें"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"उपयोगकर्ता स्विच करें, वर्तमान उपयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"अस्वीकार करें"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> वॉल्यूम संवाद है"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूल वॉल्यूम को फिर से लाने के लिए स्पर्श करें."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"बाधाओं को रोकें"</string> </resources> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index 4210738..f4a8974 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -45,7 +45,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Uključi uštedu baterije"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Postavke"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način rada u zrakoplovu"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatski zakreni zaslon"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Bez zv."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -181,6 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Način rada u zrakoplovu uključen."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Ne ometaj\" uključeno, samo prioritetno."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Ne ometaj\" uključeno, bez prekida."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Ne ometaj\" uključeno, samo za alarme."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Ne ometaj\" isključeno."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Ne ometaj\" isključeno."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Ne ometaj\" uključeno."</string> @@ -231,9 +231,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Izlog za slastice"</string> <string name="start_dreams" msgid="7219575858348719790">"Sanjarenje"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način rada u zrakoplovu"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne ometaj"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Samo prioritetno"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Samo alarmi"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez prekida"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (broj uređaja: <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -304,6 +304,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez prekida, čak ni za alarme."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Bez prekida"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prioritetni prekidi"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Vaš sljedeći alarm bit će u <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Vaš sljedeći alarm bit će u <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Nećete čuti alarm u <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -313,9 +314,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Prijeđite prstom prema gore za otključavanje"</string> <string name="phone_hint" msgid="3101468054914424646">"Prijeđite prstom udesno za telefon"</string> <string name="camera_hint" msgid="5241441720959174226">"Prijeđite prstom ulijevo za fotoaparat"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ništa"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Samo alarmi"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Sve"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Bez\nprekida"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Samo\nprioritetno"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Samo\nalarmi"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Punjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napunjenosti)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Promjena korisnika"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Promjena korisnika, trenutačni korisnik <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -383,4 +390,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odbij"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> predstavlja dijaloški okvir za upravljanje glasnoćom"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dodirnite da biste vratili izvorno."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 2e8c4f3..4e0a7ab 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Akkumulátorkímélő mód bekapcsolása"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Beállítások"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Repülőgép üzemmód"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Képernyő automatikus forgatása"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NÉMÍT"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Repülős üzemmód bekapcsolva."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"A „Ne zavarjanak” mód bekapcsolva. Csak prioritásos."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"A „Ne zavarjanak” mód bekapcsolva. Nincsenek értesítések."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"A „Ne zavarjanak” mód bekapcsolva. Csak riasztások."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"A „Ne zavarjanak” mód kikapcsolva."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"A „Ne zavarjanak” mód kikapcsolva."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"A „Ne zavarjanak” mód bekapcsolva."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Álmodozás"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Repülőgép üzemmód"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne zavarjanak"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Csak prioritásos"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Csak riasztások"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ne zavarjon"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> eszköz)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Semmi sem zavarja meg, még a riasztások sem."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Ne zavarjon"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Csak prioritást élvező zavaró üzenetek"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Csak riasztások"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"A következő ébresztés ideje: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"A következő ébresztés napja és ideje: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Nem fogja hallani az ébresztést ekkor: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Húzza felfelé az ujját a feloldáshoz"</string> <string name="phone_hint" msgid="3101468054914424646">"A telefon eléréséhez csúsztassa ujját jobbra"</string> <string name="camera_hint" msgid="5241441720959174226">"A fényképezőgép eléréséhez csúsztassa ujját balra"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nincs"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritást élvező"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Csak riasztások"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Összes"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nincs\nmegszakítás"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Csak\nprioritás"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Csak\nriasztások"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Töltés (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> a teljes töltöttségig)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Felhasználóváltás"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Felhasználóváltás (a jelenlegi felhasználó: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Elutasítás"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás kezeli a hangerőt"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Érintse meg az eredeti érték visszaállításához."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 91d36da..5d24727 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Միացնել մարտկոցի տնտեսումը"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Կարգավորումներ"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Ինքնաթիռային ռեժիմ"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ինքնապտտվող էկրան"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Համրեցնել"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"Ինքնաշխատ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ինքնաթիռային ռեժիմը միացավ:"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Չխանգարելու ընտրանքը միացված է: Ընդհատել միայն կարևոր ծանուցումների դեպքում:"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Չխանգարելու ընտրանքը միացված է: Չընդհատել:"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Չանհանգստացնել նախընտրանքը միացրած է միայն ազդանշաններում:"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Չխանգարելու ընտրանքն անջատված է:"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Չխանգարելու ընտրանքն անջատվեց:"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Չխանգարելու ընտրանքը միացվեց:"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Ցերեկային ռեժիմ"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Ինքնաթիռային ռեժիմ"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Չխանգարել"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Միայն կարևոր ծանուցումների դեպքում"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Միայն ազդանշաններ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Չընդհատել"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> սարք)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Առանց ընդհատումների՝ ներառյալ զարթուցիչները:"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Առանց ընդհատումների"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Միայն կարևոր ընդհատումներ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Միայն ազդանշաններ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ձեր հաջորդ զարթուցիչի ժամն է՝ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ձեր հաջորդ զարթուցիչի օրն է՝ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Դուք չեք լսի ձեր զարթուցիչը <xliff:g id="ALARM_TIME">%s</xliff:g>-ին:"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Սահեցրեք վերև` ապակողպելու համար"</string> <string name="phone_hint" msgid="3101468054914424646">"Հեռախոսի համար սահեցրեք աջ"</string> <string name="camera_hint" msgid="5241441720959174226">"Խցիկի համար սահեցրեք ձախ"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"-"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Կարևորություն"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Միայն ազդանշաններ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Բոլորը"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Առանց\nմիջամտության"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Միայն\nկարևորները"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Միայն\nազդանշաններ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Լիցքավորում (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> մինչև լրիվ լիցքավորումը)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Անջատել օգտվողին"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Փոխել օգտվողին. ներկայիս օգտվողն է՝ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Մերժել"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ը ձայնի ուժգնության երկխոսության հավելված է"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Դիպչեք՝ սկզբնօրինակը վերականգնելու համար:"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index bacca07..f138d15 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktifkan penghemat baterai"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setelan"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode pesawat"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotasi layar otomatis"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"BUNGKAM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Mode pesawat diaktifkan."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Status \"Jangan ganggu\" aktif, hanya untuk prioritas."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Status \"Jangan ganggu\" aktif, tanpa gangguan."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Jangan ganggu aktif, hanya alarm."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Status \"Jangan ganggu\" nonaktif."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Status \"Jangan ganggu\" dinonaktifkan."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Status \"Jangan ganggu\" diaktifkan."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Etalase Hidangan Penutup"</string> <string name="start_dreams" msgid="7219575858348719790">"Lamunan"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode pesawat"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Jangan ganggu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Hanya untuk prioritas"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Hanya alarm"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tanpa gangguan"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Perangkat)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tanpa gangguan, termasuk alarm."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Tidak ada interupsi"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Hanya interupsi prioritas"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Hanya alarm"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Alarm Anda berikutnya pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Alarm Anda berikutnya hari <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tidak akan mendengar alarm pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Gesek ke atas untuk membuka kunci"</string> <string name="phone_hint" msgid="3101468054914424646">"Gesek ke kanan untuk menelepon"</string> <string name="camera_hint" msgid="5241441720959174226">"Gesek ke kiri untuk kamera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Tidak ada"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritas"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Tanpa gangguan"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Hanya untuk prioritas"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Hanya alarm"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Tidak ada\ngangguan"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Hanya\nprioritas"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Hanya\nalarm"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengisi daya (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hingga penuh)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Beralih pengguna"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Ganti pengguna, pengguna saat ini <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tolak"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> adalah dialog volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Sentuh untuk memulihkan aslinya."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Blokir gangguan"</string> </resources> diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index ffd3361..25ed032 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Kveikja á rafhlöðusparnaði"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Stillingar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugstilling"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Snúa skjá sjálfkrafa"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ÞAGGA"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"SJÁLFV"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Kveikt á flugstillingu."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Kveikt á „Ónáðið ekki“, aðeins forgangur."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Kveikt á „Ónáðið ekki“, engar truflanir."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Kveikt á „Ónáðið ekki“, aðeins vekjarar."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Slökkt á „Ónáðið ekki“."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Slökkt á „Ónáðið ekki“."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Kveikt á „Ónáðið ekki“."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Eftirréttaborð"</string> <string name="start_dreams" msgid="7219575858348719790">"Skjávari"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugstilling"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ónáðið ekki"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Aðeins forgangur"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Aðeins vekjarar"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Engar truflanir"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> tæki)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Engar truflanir. Ekki einu sinni vekjarar."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Engin truflun"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Aðeins forgangstruflanir"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Aðeins vekjarar"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Næsti vekjari er kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Næsti vekjari er <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Ekki mun heyrast í vekjaranum kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Strjúktu upp til að opna"</string> <string name="phone_hint" msgid="3101468054914424646">"Strjúktu til hægri fyrir síma"</string> <string name="camera_hint" msgid="5241441720959174226">"Strjúktu til vinstri fyrir myndavél"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Engar"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Forgangur"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Aðeins vekjarar"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Allar"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Engar\ntruflanir"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Aðeins\nforgangur"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Aðeins\nvekjarar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Í hleðslu (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> fram að fullri hleðslu)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Skipta um notanda"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Skipta um notanda; núverandi notandi er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Hafna"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er hljóðstyrksvalmyndin"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Snertu til að færa í upprunalegt horf."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index 37cf79c..674849b 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Attiva risparmio energetico"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Impostazioni"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modalità aereo"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotazione automatica schermo"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modalità aereo attivata."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Non disturbare\" attivo, solo con priorità."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Non disturbare\" attivo, nessuna interruzione."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Non disturbare\" attivo, solo sveglie."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Non disturbare\" non attivo."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Non disturbare\" non attivo."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Non disturbare\" attivo."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vetrina di dolci"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modalità aereo"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Non disturbare"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo con priorità"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo sveglie"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Nessuna interruzione"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivi)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Senza interruzioni. Neanche sveglie."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Nessuna interruzione"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interruzioni con priorità"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo sveglie"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Il tuo prossimo allarme è alle ore <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Il tuo prossimo allarme è il giorno <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Il tuo allarme non suonerà alle <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Scorri verso l\'alto per sbloccare"</string> <string name="phone_hint" msgid="3101468054914424646">"Scorri verso destra per accedere al telefono"</string> <string name="camera_hint" msgid="5241441720959174226">"Scorri verso sinistra per accedere alla fotocamera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nessuna"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priorità"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo sveglie"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tutte"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nessuna\ninterruzione"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo con\npriorità"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nsveglie"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"In carica (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> al termine)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambio utente"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambia utente, utente corrente <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Nega"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> rappresenta la finestra di dialogo relativa al volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tocca per ripristinare l\'originale."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index f7c66f7..4043ac0 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"הפעל חיסכון בסוללה"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"הגדרות"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"מצב טיסה"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"סיבוב אוטומטי של המסך"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"השתק"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"אוטומטי"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"מצב טיסה הופעל."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'נא לא להפריע\' פועל. הודעות בעדיפות בלבד."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'נא לא להפריע\' פועל. ללא הפרעות."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'נא לא להפריע\' הופעל. התראות בלבד."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'נא לא להפריע\' כבוי."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'נא לא להפריע\' כבוי."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\'נא לא להפריע\' פועל."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"מזנון קינוחים"</string> <string name="start_dreams" msgid="7219575858348719790">"חלום בהקיץ"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"מצב טיסה"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"נא לא להפריע"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"עדיפות בלבד"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"התראות בלבד"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ללא הפרעות"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> מכשירים)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ללא הפרעות. גם לא התראות."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ללא הפרעות"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"רק הפרעות בעדיפות גבוהה"</string> + <string name="zen_alarms" msgid="5055668280767657759">"התראות בלבד"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ההתראה הבאה שלך היא ב-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ההתראה הבאה שלך היא ב<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"לא תשמע את ההתראה שלך ב-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"החלק מעלה כדי לבטל את הנעילה"</string> <string name="phone_hint" msgid="3101468054914424646">"כדי להפעיל את הטלפון, החלק שמאלה"</string> <string name="camera_hint" msgid="5241441720959174226">"החלק ימינה להפעלת המצלמה"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ללא"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"עדיפות"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ללא הפרעות"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"עדיפות בלבד"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"התראות בלבד"</string> <string name="interruption_level_all" msgid="1330581184930945764">"הכל"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ללא\nהפרעות"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"התראות בעדיפות\nבלבד"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"התראות\nבלבד"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"טוען (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> עד לסיום)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"החלפת משתמש"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"החלף משתמש. המשתמש הנוכחי הוא <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +389,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"דחה"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> הוא תיבת הדו-שיח של עוצמת הקול"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"גע כדי לשחזר את עוצמת הקול המקורית."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"חסימת הפרעות"</string> </resources> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 1d8a2f7..b87f265 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"バッテリーセーバーをONにします"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"設定"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"機内モード"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"自動回転画面"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ミュート"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"オート"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"機内モードをONにしました。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"[通知を非表示]はONで、重要な通知のみです。"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"[通知を非表示]はONで、サイレントです。"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"[通知を非表示]はONで、アラームのみです。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"[通知を非表示]はOFFです。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"[通知を非表示]をOFFにしました。"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"[通知を非表示]をONにしました。"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"デザートケース"</string> <string name="start_dreams" msgid="7219575858348719790">"スクリーンセーバー"</string> <string name="ethernet_label" msgid="7967563676324087464">"イーサネット"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"機内モード"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"通知を非表示"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"重要な通知のみ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"アラームのみ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"サイレント"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth(端末数<xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"サイレント(アラームも鳴りません)"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"サイレント"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"重要な通知のみ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"アラームのみ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"次のアラームは<xliff:g id="ALARM_TIME">%s</xliff:g>です"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"次のアラームは<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>です"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>のアラームは鳴りません"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"ロック解除するには上にスワイプしてください"</string> <string name="phone_hint" msgid="3101468054914424646">"右にスワイプして電話を表示"</string> <string name="camera_hint" msgid="5241441720959174226">"左にスワイプしてカメラを表示"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"なし"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"重要"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"アラームのみ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"すべて"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"通知\nなし"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"重要な\n通知のみ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"アラーム\nのみ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中(フル充電まで<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ユーザーを切り替える"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ユーザーを切り替える、現在のユーザーは<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"許可しない"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>を音量ダイアログとして使用"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"タップすると元の音量ダイアログが復元されます。"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 9de70e8..c405cc2 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ბატარეის დაზოგვის ჩართვა"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"პარამეტრები"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"თვითმფრინავის რეჟიმი"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"ავტოროტაციის ეკრანი"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"დადუმება"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ავტო."</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"თვითმფრინავის რეჟიმი ჩაირთო."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ჩართულია რეჟიმი „არ შემაწუხოთ\", მხოლოდ პრიორიტეტები."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ჩართულია რეჟიმი „არ შემაწუხოთ\", შეწყვეტის გარეშე."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"„ნუ შემაწუხებთ“ ჩართულია, მხოლოდ გაფრთხილებები."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"„არ შემაწუხოთ“ გამორთულია"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"„არ შემაწუხოთ\" რეჟიმი გამორთულია."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"„არ შემაწუხოთ\" რეჟიმი ჩართულია."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"სადესერტო ყუთი"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"ეთერნეტი"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"თვითმფრინავის რეჟიმი"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"არ შემაწუხოთ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"მხოლოდ პრიორიტეტული"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"მხოლოდ გაფრთხილებები"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"შეფერხებების გაეშე"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> მოწყობილობა)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"წყვეტების გარეშე. მაღვიძარების შემთხვევაშიც კი."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"შეწყვეტების გარეშე"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"მხოლოდ პრიორიტეტული შეწყვეტები"</string> + <string name="zen_alarms" msgid="5055668280767657759">"მხოლოდ გაფრთხილებები"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"თქვენი შემდეგი მაღვიძარაა <xliff:g id="ALARM_TIME">%s</xliff:g>-ზე"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"თქვენი შემდეგი მაღვიძარაა <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"თქვენს მაღვიძარას <xliff:g id="ALARM_TIME">%s</xliff:g>-ზე ვერ გაიგონებთ"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"გაასრიალეთ ზევით განსაბლოკად"</string> <string name="phone_hint" msgid="3101468054914424646">"გადაფურცლეთ მარჯვნივ ტელეფონისთვის"</string> <string name="camera_hint" msgid="5241441720959174226">"კამერისთვის მარცხენა შენაცვლება"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"არცერთი"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"პრიორიტეტი"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"მხოლოდ გაფრთხილებები"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ყველა"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"არ არის\nშეფერხებები"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"მხოლოდ\nპრიორიტეტულები"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"მხოლოდ\nგაფრთხილებები"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>-ის შეცვლა დასრულებამდე)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"მომხმარებლის გადართვა"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"მომხმარებლის გდართვა. ამჟამინდელი მომხმარებელი <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"უარყოფა"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ხმოვან დიალოგშია"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ორიგინალის აღდგენისათვის, შეეხეთ."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index a340624..b6505d5 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Батарея үнемдегішін қосу"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Параметрлер"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Ұшақ режимі"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Авто айналатын экран"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ҮНСІЗ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"Авто"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ұшақ режимі қосылды."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Мазаламау режимі қосулы, тек басымдық"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Мазаламау режимі қосулы, үзілістерсіз"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Кедергі жасамаңыз, тек дабылдар."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Мазаламау режимі өшірулі"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Мазаламау режимі өшірілді."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Мазаламау режимі қосылды."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Десерт жағдайы"</string> <string name="start_dreams" msgid="7219575858348719790">"Қалғу"</string> <string name="ethernet_label" msgid="7967563676324087464">"Этернет"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Ұшақ режимі"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Мазаламау"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Тек басымдық"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Тек дабылдар"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Үзулерсіз"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> құрылғылары)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзілулер болмайды. Тіпті дабылдар да."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Үзулерсіз"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Тек басым үзулер"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Тек дабылдар"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Келесі дабыл — <xliff:g id="ALARM_TIME">%s</xliff:g> уақытында"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Келесі дабыл — <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> уақытында дабылды естімейсіз"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Бекітпесін ашу үшін жанаңыз"</string> <string name="phone_hint" msgid="3101468054914424646">"Телефон үшін оңға жанаңыз"</string> <string name="camera_hint" msgid="5241441720959174226">"Камера үшін солға жанаңыз"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ешқандай"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Басымдық"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Тек дабылдар"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Барлығы"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Кедергілер\nжоқ"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Тек\nбасымдық"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Тек\nдабылдар"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядталуда (толғанша <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Пайдаланушыны ауыстыру"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Пайдаланушыны ауыстыру, ағымдағы пайдаланушы <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Өшіру"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> — көлем диалогтық терезесі"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнұсқаны қалпына келтіру үшін түртіңіз."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 4fb737c..7df3bcc 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"បើកធាតុរក្សាថាមពលថ្ម"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ការកំណត់"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"វ៉ាយហ្វាយ"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ពេលជិះយន្តហោះ"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"បង្វិលអេក្រង់ស្វ័យប្រវត្តិ"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ស្ងាត់"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ស្វ័យប្រវត្តិ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"បានបើករបៀបជិះយន្តហោះ។"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"បានបើកមុខងារកុំរំខាន (អាទិភាពប៉ុណ្ណោះ)។"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"បានបើកមុខងារកុំរំខាន សូមកុំរំខាន"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"មុខងារកុំរំខានបានបើក សម្លេងរោទិ៍ប៉ុណ្ណោះ។"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"បានបិទមុខងារកុំរំខាន។"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"បានបិទមុខងារកុំរំខាន។"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"បានបើកមុខងារកុំរំខាន។"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ករណី Dessert"</string> <string name="start_dreams" msgid="7219575858348719790">"ធាតុរក្សាអេក្រង់"</string> <string name="ethernet_label" msgid="7967563676324087464">"អ៊ីសឺរណិត"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"របៀបពេលជិះយន្តហោះ"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"កុំរំខាន"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"អាទិភាពប៉ុណ្ណោះ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"សូមកុំរំខាន"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ប៊្លូធូស"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ប៊្លូធូស (ឧបករណ៍ <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"គ្មានការផ្អាក។ គ្មានការជូនដំណឹងពីព្រឹត្តិការណ៍។"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"គ្មានការផ្អាក"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"តែការផ្អាកអាទិភាពប៉ុណ្ណោះ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ការជូនដំណឹងបន្ទាប់របស់អ្នកគឺនៅម៉ោង <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ការជូនដំណឹងបន្ទាប់របស់អ្នកគឺនៅ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"អ្នកនឹងមិនឮការជូនដំណឹងរបស់អ្នកនៅម៉ោង <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"អូសឡើងលើ ដើម្បីដោះសោ"</string> <string name="phone_hint" msgid="3101468054914424646">"អូសទៅស្ដាំដើម្បីបើកទូរស័ព្ទ"</string> <string name="camera_hint" msgid="5241441720959174226">"អូសទៅឆ្វេងដើម្បីប្រើម៉ាស៊ីនថត"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"គ្មាន"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"អាទិភាព"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"គ្មានការរំខាន"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"អាទិភាពប៉ុណ្ណោះ"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ទាំងអស់"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"មិនមានការរំខា\nទេ"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"អាទិភាព\nប៉ុណ្ណោះ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"សំឡេងរោទ៍\nប៉ុណ្ណោះ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"កំពុងបញ្ចូលថ្ម (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ទើបពេញ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ប្ដូរអ្នកប្រើ"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ប្ដូរអ្នកប្រើ អ្នកប្រើបច្ចុប្បន្ន <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"បដិសេធ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> គឺជាប្រអប់សម្លេង"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ប៉ះដើម្បីស្តារច្បាប់ដើម។"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"រារាំងការរំខាន"</string> </resources> diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index 87a1bb4..e03801a 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ಬ್ಯಾಟರಿ ಉಳಿತಾಯವನ್ನು ಆನ್ ಮಾಡಿ"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"ಪರದೆಯನ್ನು ಸ್ವಯಂ-ತಿರುಗಿಸಿ"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ಮ್ಯೂಟ್"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ಸ್ವಯಂ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ ಅನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್, ಆದ್ಯತೆ ಮಾತ್ರ."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್ ಆಗಿದೆ, ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ಅಲಾರಮ್ಗಳಿಗೆ ಮಾತ್ರ ಅಡಚಣೆ ಮಾಡಬೇಡಿ."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆಫ್ ಆಗಿದೆ."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ತೊಂದರೆ ಮಾಡಬೇಡಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ಡೆಸರ್ಟ್ ಕೇಸ್"</string> <string name="start_dreams" msgid="7219575858348719790">"ಡೇಡ್ರೀಮ್"</string> <string name="ethernet_label" msgid="7967563676324087464">"ಇಥರ್ನೆಟ್"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ಆದ್ಯತೆ ಮಾತ್ರ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ಬ್ಲೂಟೂತ್"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ಬ್ಲೂಟೂತ್ (<xliff:g id="NUMBER">%d</xliff:g> ಸಾಧನಗಳು)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ಅಲಾರಂಗಳನ್ನು ಸೇರಿದಂತೆ ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ಆದ್ಯತೆಯ ಅಡಚಣೆಗಳು ಮಾತ್ರ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ನಿಮ್ಮ ಮುಂದಿನ ಅಲಾರಂ <xliff:g id="ALARM_TIME">%s</xliff:g> ಗೆ ಆಗಿದೆ"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ನಿಮ್ಮ ಮುಂದಿನ ಅಲಾರಮ್ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ಆಗಿದೆ"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> ಗೆ ನೀವು ನಿಮ್ಮ ಅಲಾರಂ ಆಲಿಸುವುದಿಲ್ಲ"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"ಅನ್ಲಾಕ್ ಮಾಡಲು ಸ್ವೈಪ್ ಮಾಡಿ"</string> <string name="phone_hint" msgid="3101468054914424646">"ಫೋನ್ಗಾಗಿ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string> <string name="camera_hint" msgid="5241441720959174226">"ಕ್ಯಾಮರಾಗಾಗಿ ಎಡಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ಯಾವುದೂ ಇಲ್ಲ"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ಆದ್ಯತೆ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ಆದ್ಯತೆ ಮಾತ್ರ"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ಎಲ್ಲ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ಯಾವುದೇ\nಅಡಚಣೆಗಳಿಲ್ಲ"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ಆದ್ಯತೆ\nಮಾತ್ರ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ಅಲಾರಮ್ಗಳು\nಮಾತ್ರ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ( ಪೂರ್ತಿ ಆಗುವವರೆಗೆ <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ, ಪ್ರಸ್ತುತ ಬಳಕೆದಾರ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ನಿರಾಕರಿಸು"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ವಾಲ್ಯೂಮ್ ಸಂವಾದವಾಗಿದೆ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ಮೂಲ ಮರುಸ್ಥಾಪಿಸಲು ಸ್ಪರ್ಶಿಸಿ."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"ಅಡಚಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 884272d..70732cd 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"배터리 절약 기능 사용"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"설정"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"비행기 모드"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"자동 화면 회전"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"무시"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"자동"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"비행기 모드를 사용합니다."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"알림 일시중지 사용, 중요 알림만 수신"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"알림 일시중지 사용, 방해 금지"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"알림 일시중지 사용, 알람만 수신"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"알림 일시중지 사용 중지"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"알림 일시중지가 사용 중지되었습니다."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"알림 일시중지를 사용합니다."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"디저트 케이스"</string> <string name="start_dreams" msgid="7219575858348719790">"화면 보호기"</string> <string name="ethernet_label" msgid="7967563676324087464">"이더넷"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"비행기 모드"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"알림 일시중지"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"중요 알림만"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"알람만 수신"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"방해 금지"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"블루투스"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"블루투스(<xliff:g id="NUMBER">%d</xliff:g>개의 기기)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"어떤 방해도 받지 않습니다. 알람도 울리지 않습니다."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"모든 알림 차단"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"최우선 알림만 수신"</string> + <string name="zen_alarms" msgid="5055668280767657759">"알람만 수신"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"다음 알람 시각: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"다음 알람 일시: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>에 알람을 들을 수 없습니다."</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"위로 스와이프하여 잠금 해제"</string> <string name="phone_hint" msgid="3101468054914424646">"전화 기능을 사용하려면 오른쪽으로 스와이프하세요."</string> <string name="camera_hint" msgid="5241441720959174226">"카메라를 사용하려면 왼쪽으로 스와이프하세요."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"수신 안함"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"최우선만 수신"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"알람만 수신"</string> <string name="interruption_level_all" msgid="1330581184930945764">"모두 수신"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"방해\n금지"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"중요 알림만\n허용"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"알람만\n수신"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"충전 중(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> 후 충전 완료)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"사용자 전환"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"사용자 전환, 현재 사용자 <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -370,8 +377,8 @@ <string name="notification_collapse_button_text" msgid="6883253262134328057">"모두 숨기기"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"화면 고정됨"</string> - <string name="screen_pinning_description" msgid="1346522416878235405">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 뒤로와 개요를 동시에 길게 터치합니다."</string> - <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 개요를 길게 터치합니다."</string> + <string name="screen_pinning_description" msgid="1346522416878235405">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 뒤로와 최근 사용을 동시에 길게 터치합니다."</string> + <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 최근 사용을 길게 터치합니다."</string> <string name="screen_pinning_positive" msgid="3783985798366751226">"확인"</string> <string name="screen_pinning_negative" msgid="3741602308343880268">"거부"</string> <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"<xliff:g id="TILE_LABEL">%1$s</xliff:g>을(를) 숨기시겠습니까?"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"거부"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>은(는) 볼륨 대화입니다."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"원본을 복원하려면 터치하세요."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index 1a7aa8b..9aa2703 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -52,8 +52,6 @@ <skip /> <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) --> <skip /> - <!-- no translation found for status_bar_settings_airplane (4879879698500955300) --> - <skip /> <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> <skip /> <!-- no translation found for status_bar_settings_mute_label (554682549917429396) --> @@ -206,6 +204,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Учак режими күйгүзүлдү."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Тынчымды алба деген күйүк, артыкчылыктуулар гана."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Тынчымды алба деген күйүк, үзгүлтүккө учуратуулар жок."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Тынчымды алба деген күйүк, ойготкучтар гана."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Тынчымды алба деген өчүк."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Тынчымды алба деген өчүрүлдү."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Тынчымды алба деген күйгүзүлдү."</string> @@ -256,9 +255,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Десерт себети"</string> <string name="start_dreams" msgid="7219575858348719790">"Кыялдануу"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Учак тартиби"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Тынчымды алба"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Артыкчылык гана"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ойготкучтар гана"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Үзгүлтүксүз"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> түзмөк)"</string> @@ -329,6 +328,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзгүлтүктөр жок. Ойготкучтар дагы жок."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Үзгүлтүксүз"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Артыкчылыктуу үзгүлтүктөр гана"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ойготкучтар гана"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Кийинки үн ишараты саат <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Кийинки үн ишараты <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Саат <xliff:g id="ALARM_TIME">%s</xliff:g> үн ишаратын укпайсыз."</string> @@ -338,9 +338,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Кулпуну ачуу үчүн серпип коюңуз"</string> <string name="phone_hint" msgid="3101468054914424646">"Телефонду колдонуу үчүн оңго серпип коюңуз"</string> <string name="camera_hint" msgid="5241441720959174226">"Камераны ачуу үчүн солго серпип коюңуз"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Эч нерсе жок"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Артыкчылыктуу"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Ойготкучтар гана"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Бардыгы"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Үзгүтүк\nжок"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Артыкчылыктуу\nгана"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ойготкучтар\nгана"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Кубатталууда (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> толгонго чейин)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Колдонуучуну которуу"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Колдонуучуну күйгүзүү, учурдагы колдонуучу <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -408,4 +414,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Жок"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> үндү катуулатуу диалогу"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнусканы калыбына келтирүү үчүн тийип коюңуз."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-land/styles.xml b/packages/SystemUI/res/values-land/styles.xml index e58fbb1..8919198 100644 --- a/packages/SystemUI/res/values-land/styles.xml +++ b/packages/SystemUI/res/values-land/styles.xml @@ -18,10 +18,4 @@ <style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer"> <item name="android:layout_width">360dp</item> </style> - - <style name="SearchPanelScrim"> - <item name="android:layout_width">@dimen/search_panel_scrim_height</item> - <item name="android:layout_height">match_parent</item> - <item name="android:layout_gravity">right</item> - </style> </resources> diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index 4d215e3..18dc348 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ເປີດໃຊ້ໂຕປະຢັດແບັດເຕີຣີ"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ການຕັ້ງຄ່າ"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ໂໝດເທິງຍົນ"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"ໝຸນໜ້າຈໍອັດຕະໂນມັດ"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ປິດສຽງ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ອັດຕະໂນມັດ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ເປີດໂໝດຢູ່ໃນຍົນແລ້ວ."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ຫ້າມລະກວນເປີດຢູ່, ບຸລິມະສິດເທົ່ານັ້ນ."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ຫ້າມລະກວນເປີດຢູ່, ບໍ່ມີການຂັດຈັງຫວະ."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ຫ້າມລົບກວນເປີດຢູ່, ໂມງປຸກເທົ່ານັ້ນ."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ຫ້າມລົບກວນປິດຢູ່."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ຢ່າລົບກວນປິດແລ້ວ."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"ຢ່າລົບກວນເປີດແລ້ວ."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ກ່ອງຂອງຫວານ"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"ໂໝດຢູ່ໃນຍົນ"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ຫ້າມລົບກວນ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ບຸລິມະສິດເທົ່ານັ້ນ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ໂມງປຸກເທົ່ານັ້ນ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ບໍ່ມີການລົບກວນ"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> ອຸປະກອນ)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ບໍ່ມີການລົບກວນ. ບໍ່ວ່າຈະເປັນໂມງປຸກກໍຕາມ."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ບໍ່ມີການລົບກວນ"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ສະເພາະເລື່ອງສຳຄັນເທົ່ານັນ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ໂມງປຸກເທົ່ານັ້ນ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ໂມງປຸກຖັດໄປຂອງທ່ານແມ່ນ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ໂມງປຸກຖັດໄປຂອງທ່ານແມ່ນ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"ທ່ານຈະບໍ່ໄດ້ຍິນສຽງໂມງປຸກໃນເວລາ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"ເລື່ອນຂຶ້ນເພື່ອປົດລັອກ"</string> <string name="phone_hint" msgid="3101468054914424646">"ປັດຂວາເພື່ອໃຊ້ໂທລະສັບ"</string> <string name="camera_hint" msgid="5241441720959174226">"ປັດຊ້າຍເພື່ອໃຊ້ກ້ອງ"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ບໍ່ມີ"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ລະດັບຄວາມສຳຄັນ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ບໍ່ມີການລົບກວນ"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ບຸລິມະສິດເທົ່ານັ້ນ"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"ໂມງປຸກເທົ່ານັ້ນ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ທັງໝົດ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ບໍ່ມີ\nລົບກວນ"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ບຸລິມະສິດ\nເທົ່ານັ້ນ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ໂມງປຸກ\nເທົ່ານັ້ນ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ກຳລັງສາກໄຟ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ກວ່າຈະເຕັມ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ສະລັບຜູ່ໃຊ້"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ປ່ຽນຜູ່ໃຊ້, ຜູ່ໃຊ້ປະຈຸບັນ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ປະຕິເສດ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ແມ່ນໜ້າຕ່າງລະດັບສຽງ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ສໍາຜັດເພື່ອກູ້ຄືນຕົ້ນສະບັບ."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"ບລັອກການລົບກວນ"</string> </resources> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 1cb5980..2832015 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Įj. Akum. tausojimo priemonę"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nustatymai"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lėktuvo režimas"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatiškai sukti ekraną"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NUTILD."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lėktuvo režimas įjungtas."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Funkcija „Netrukdyti“ įjungta. Tik prioritetiniai įvykiai."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Funkcija „Netrukdyti“ įjungta. Jokių pertraukčių."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Funkcija „Netrukdyti“ įjungta. Leidžiami tik signalai."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Funkcija „Netrukdyti“ išjungta."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Funkcija „Netrukdyti“ išjungta."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Funkcija „Netrukdyti“ įjungta."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Desertų dėklas"</string> <string name="start_dreams" msgid="7219575858348719790">"Svajonė"</string> <string name="ethernet_label" msgid="7967563676324087464">"Eternetas"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lėktuvo režimas"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Netrukdyti"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tik prioritetiniai įvykiai"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tik signalai"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Jokių pertraukčių"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"„Bluetooth“ (<xliff:g id="NUMBER">%d</xliff:g> įreng.)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Nėra trikdžių. Nėra net įspėjimų."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Jokių pertraukčių"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Tik prioritetinės pertrauktys"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tik signalai"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Kito signalo laikas: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Kito signalo laikas: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> signalo negirdėsite"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Perbraukite aukštyn, kad atrakintumėte"</string> <string name="phone_hint" msgid="3101468054914424646">"Perbraukite į dešinę, kad galėtumėte skambinti"</string> <string name="camera_hint" msgid="5241441720959174226">"Perbraukite į kairę, kad būtų įjungtas fotoaparatas"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nėra"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritetas"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Tik signalai"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Neleidžiama\ntrukdyti"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tik\nprioritetiniai"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tik\nsignalai"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kraunama (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> iki visiško įkrovimo)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Perjungti naudotoją"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Perjungti naudotoją, dabartinis naudotojas <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Atmesti"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ yra garsumo valdymo dialogo langas"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Palieskite, kad atkurtumėte originalą."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 5fdc0cd..34e4da0 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -45,7 +45,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ieslēgt akumulatora jaudas taupīšanu"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Iestatījumi"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lidmašīnas režīms"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automātiska ekrāna pagriešana"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"IZ. SK."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -181,6 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lidojuma režīms ir ieslēgts."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Statuss Netraucēt ir ieslēgts, izvēlēts iestatījums Tikai prioritārie."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Statuss Netraucēt ir ieslēgts, izvēlēts iestatījums Bez pārtraukumiem."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ieslēgts režīms “Netraucēt”, atļauti tikai signāli."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Statuss Netraucēt ir izslēgts."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Statuss Netraucēt tika izslēgts."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Statuss Netraucēt tika ieslēgts."</string> @@ -231,9 +231,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Saldo ēdienu stends"</string> <string name="start_dreams" msgid="7219575858348719790">"Ekrānsaudzētājs"</string> <string name="ethernet_label" msgid="7967563676324087464">"Tīkls Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lidojuma režīms"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Netraucēt"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tikai prioritārie"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tikai signāli"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez pārtraukumiem"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> ierīce(-es))"</string> @@ -304,6 +304,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez traucējumiem. Pat bez brīdinājumiem"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Nepārtraukt"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Tikai prioritārie pārtraukumi"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tikai signāli"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Jūsu nākamā signāla laiks: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Jūsu nākamā signāla datums un laiks: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Jūs nedzirdēsiet iestatīto signālu: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -313,9 +314,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Velciet uz augšu, lai atbloķētu"</string> <string name="phone_hint" msgid="3101468054914424646">"Lai lietotu tālruni, velciet pa labi."</string> <string name="camera_hint" msgid="5241441720959174226">"Lai lietotu kameru, velciet pa kreisi."</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nav"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritāte"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Tikai signāli"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nepārtraukt\n"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tikai\nprioritārie"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tikai\nsignāli"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Notiek uzlāde (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> līdz pilnīgai uzlādei)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Mainīt lietotāju"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Pārslēgt lietotāju; pašreizējais lietotājs: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -383,4 +390,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neatļaut"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ir skaļuma dialoglodziņš"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Pieskarieties, lai atjaunotu sākotnējo."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index 83988c0..b0ba780 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Вклучете го штедачот на батерија"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Подесувања"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим на работа во авион"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Автоматско ротирање на екранот"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ИСКЛ."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"Автоматски"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Авионскиот режим е вклучен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"„Не вознемирувај“ е вклучено, само приоритетни."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"„Не вознемирувај“ е вклучено, без прекини."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"„Не вознемирувај“ е вклучено, само аларми."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"„Не вознемирувај“ е исклучено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"„Не вознемирувај“ е исклучено."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"„Не вознемирувај“ е вклучено."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Етернет"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим на работа во авион"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не вознемирувај"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само приоритетно"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само аларми"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекини"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> уреди)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекини. Дури и без аларми."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекини"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекини"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следниот аларм е во <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следниот аларм е <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Нема да го слушнете алармот во <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Повлечете за да се отклучи"</string> <string name="phone_hint" msgid="3101468054914424646">"Повлечете надесно за телефон"</string> <string name="camera_hint" msgid="5241441720959174226">"Повлечете налево за камера"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ништо"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Само аларми"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Сѐ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Нема\nпрекини"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nприоритетни"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nаларми"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Се полни (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> додека не се наполни)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Промени го корисникот"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Промени го корисникот, тековен корисник <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> е дијалог за јачина на звук"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Допрете за да го вратите оригиналот."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index ee090f9..fb9fa0e 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ബാറ്ററി സേവർ ഓണാക്കുക"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ക്രമീകരണങ്ങൾ"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ഫ്ലൈറ്റ് മോഡ്"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"സ്ക്രീൻ യാന്ത്രികമായി തിരിക്കുക"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"മ്യൂട്ടുചെയ്യുക"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"യാന്ത്രികം"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ഫ്ലൈറ്റ് മോഡ് ഓണാക്കി."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാണ്, മുൻഗണന മാത്രം."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാണ്, തടസ്സങ്ങളൊന്നുമില്ല."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാണ്, അലാറം മാത്രം."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ശല്ല്യപ്പെടുത്തരുത് എന്നത് ഓഫാണ്."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓഫാക്കി."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാക്കി."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ഡെസേർട്ട് കെയ്സ്"</string> <string name="start_dreams" msgid="7219575858348719790">"ഡേഡ്രീം"</string> <string name="ethernet_label" msgid="7967563676324087464">"ഇതർനെറ്റ്"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"ഫ്ലൈറ്റ് മോഡ്"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ശല്ല്യപ്പെടുത്തരുത്"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"മുൻഗണന മാത്രം"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"അലാറങ്ങൾ മാത്രം"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"തടസ്സങ്ങളൊന്നുമില്ല"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ബ്ലൂടൂത്ത്"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ബ്ലൂടൂത്ത് (<xliff:g id="NUMBER">%d</xliff:g> ഉപകരണങ്ങൾ)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"തടസ്സങ്ങളൊന്നുമില്ല. അലാറങ്ങൾ പോലുമില്ല."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"തടസ്സങ്ങളൊന്നുമില്ല"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"മുൻഗണനാ തടസ്സങ്ങൾ മാത്രം"</string> + <string name="zen_alarms" msgid="5055668280767657759">"അലാറങ്ങൾ മാത്രം"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"നിങ്ങളുടെ അടുത്ത അലാറം <xliff:g id="ALARM_TIME">%s</xliff:g>-നാണ്"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"നിങ്ങളുടെ അടുത്ത അലാറം <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>-നാണ്"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"നിങ്ങൾ <xliff:g id="ALARM_TIME">%s</xliff:g>-ന് അലാറം കേൾക്കില്ല"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"അൺലോക്കുചെയ്യുന്നതിന് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക"</string> <string name="phone_hint" msgid="3101468054914424646">"ഫോണിനായി വലതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string> <string name="camera_hint" msgid="5241441720959174226">"ക്യാമറയ്ക്കായി ഇടതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ഒന്നുമില്ല"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"പ്രധാനപ്പെട്ടവ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"തടസ്സങ്ങളൊന്നുമില്ല"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"മുൻഗണന മാത്രം"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"അലാറങ്ങൾ മാത്രം"</string> <string name="interruption_level_all" msgid="1330581184930945764">"എല്ലാം"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"തടസ്സങ്ങൾ\nഒന്നുമില്ല"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"മുൻഗണന\nമാത്രം"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"അലാറങ്ങൾ\nമാത്രം"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ചാർജ്ജുചെയ്യുന്നു (പൂർണ്ണമാകുന്നതിന്, <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ഉപയോക്താവ് മാറുക"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ഉപയോക്താവിനെ മാറ്റുക, <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> എന്നയാളാണ് നിലവിലുള്ള ഉപയോക്താവ്"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"നിരസിക്കുക"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>, വോളിയം ഡയലോഗാണ്"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ആദ്യത്തേത് പുനഃസ്ഥാപിക്കാൻ സ്പർശിക്കുക."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"തടസ്സങ്ങൾ തടയുക"</string> </resources> diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index 66f287a..b558cfa 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -42,7 +42,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Батерей хэмнэгчийг асаах"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Тохиргоо"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Нислэгийн горим"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Дэлгэцийг автоматаар эргүүлэх"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ХААХ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТОМАТ"</string> @@ -178,6 +177,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Нислэгийн горимыг асаасан."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Бүү саад болно уу.Зөвхөн чухал зүйлст."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Бүү саад болно уу. Аливаа саад учруулахгүй байна уу."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Бүү саад бол, зөвхөн сэрүүлгийг асаа."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Бүү саад бол."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Идэвхгүй болгох үйлдэлд бүү саад бол."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Идэвхжүүлэх үйлдэлд бүү саад бол."</string> @@ -228,9 +228,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Амттаны хайрцаг"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Этернет"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Нислэгийн горим"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Бүү саад бол"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Зөвхөн чухал зүйлс"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Зөвхөн сэрүүлэг"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Аливаа саад байхгүй байх"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Блютүүт"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Блютүүт (<xliff:g id="NUMBER">%d</xliff:g> төхөөрөмж)"</string> @@ -301,6 +301,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Тасалдал байхгүй. Сэрүүлэг ч байхгүй."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Ямар ч тасалдалгүй"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Зөвхөн нэн тэргүүний тасалдалд"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Зөвхөн сэрүүлэг"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Таны дараагийн сэрүүлгийн цаг <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Таны дараагийн сэрүүлгийн цаг <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Та <xliff:g id="ALARM_TIME">%s</xliff:g>-д өөрийн сэрүүлгээ сонсохгүй"</string> @@ -310,9 +311,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Түгжээг тайлах бол шудрана уу"</string> <string name="phone_hint" msgid="3101468054914424646">"Утас гаргахын тулд баруун шударна уу"</string> <string name="camera_hint" msgid="5241441720959174226">"Камер гаргахын тулд зүүн шударна уу"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Хоосон"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Нэн тэргүүний"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Аливаа саад байхгүй байх"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Зөвхөн чухал зүйлс"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Зөвхөн сэрүүлэг"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Бүгд"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ямар ч\nтасалдал байхгүй"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Зөвхөн\nхамгийн чухлыг"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Зөвхөн\nсэрүүлэг"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Цэнэглэж байна (дүүргэхэд <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Хэрэглэгчийг сэлгэх"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Хэрэглэгчийг сэлгэх, одоогийн хэрэглэгч <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -380,4 +385,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Татгалзах"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь дууны диалог юм."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Анхны хувилбарыг эргүүлэн хадгалахыг хүсвэл хүрнэ үү."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Тасалдуулахгүй байх"</string> </resources> diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index f40429c..77f8348 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"बॅटरी बचतकर्ता चालू करा"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"सेटिंग्ज"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"वाय-फाय"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"विमान मोड"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"स्वयं-फिरणारी स्क्रीन"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"नि:शब्द करा"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"स्वयं"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"विमान मोड चालू केला."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"व्यत्यय आणू नका चालू, केवळ प्राधान्य."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"व्यत्यय आणू नका चालू, कोणताही व्यत्यय नाही."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"व्यत्यय आणू नका चालू, केवळ अलार्म."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"व्यत्यय आणू नका बंद."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"व्यत्यय आणू नका बंद करा"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"व्यत्यय आणू नका चालू करा"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"मिष्ठान्न प्रकरण"</string> <string name="start_dreams" msgid="7219575858348719790">"डेड्रीम"</string> <string name="ethernet_label" msgid="7967563676324087464">"इथरनेट"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"विमान मोड"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"व्यत्यय आणू नका"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"केवळ प्राधान्य"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"केवळ अलार्म"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कोणतेही व्यत्यय नाही"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लूटुथ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब (<xliff:g id="NUMBER">%d</xliff:g> डिव्हाइसेस)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कोणतेही व्यत्यय नाहीत. अगदी अलार्मचे देखील नाहीत."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"कोणतेही व्यत्यय नाही"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"केवळ प्राधान्य दिलेले व्यत्यय"</string> + <string name="zen_alarms" msgid="5055668280767657759">"केवळ अलार्म"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"आपला पुढील अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता आहे"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"आपला पुढील अलार्म <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> आहे"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"आपण आपला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता ऐकणार नाही"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करण्यासाठी स्वाइप करा"</string> <string name="phone_hint" msgid="3101468054914424646">"फोन साठी उजवीकडे स्वाइप करा"</string> <string name="camera_hint" msgid="5241441720959174226">"कॅमेर्यासाठी डावीकडे स्वाइप करा"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"काहीही नाही"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"प्राधान्य"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कोणतेही व्यत्यय नाहीत"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"केवळ प्राधान्य"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"केवळ अलार्म"</string> <string name="interruption_level_all" msgid="1330581184930945764">"सर्व"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"कोणतेही व्यत्यय\nनाही"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"केवळ\nप्राधान्य"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"केवळ\nअलार्म"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण होईपर्यंत) चार्ज होत आहे"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"वापरकर्ता स्विच करा"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"वापरकर्ता स्विच करा, वर्तमान वापरकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"नकार द्या"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> हा व्हॉल्यूम संवाद आहे"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूळ पुनर्संचयित करण्यासाठी स्पर्श करा."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"व्यत्यय अवरोधित करा"</string> </resources> diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index 5ee867f..db43a54 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Hidupkan penjimat bateri"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Tetapan"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod pesawat"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Autoputar skrin"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"REDAM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Mod pesawat dihidupkan."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Jangan ganggu dihidupkan, perkara penting sahaja."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Jangan ganggu dihidupkan, tiada gangguan."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Jangan ganggu dihidupkan, penggera sahaja."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Jangan ganggu dimatikan."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Jangan ganggu dimatikan."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Jangan ganggu dihidupkan."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Bekas Pencuci Mulut"</string> <string name="start_dreams" msgid="7219575858348719790">"Lamun"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mod kapal terbang"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Jangan ganggu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Keutamaan sahaja"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Penggera sahaja"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tiada gangguan"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Peranti)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tiada gangguan, walau penggera sekalipun."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Tiada gangguan"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Gangguan keutamaan sahaja"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Penggera sahaja"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Penggera anda yang seterusnya pada <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Penggera anda yang seterusnya pada <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tdk akan mdgr penggera anda pd <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Leret ke atas untuk membuka kunci"</string> <string name="phone_hint" msgid="3101468054914424646">"Leret ke kanan untuk telefon"</string> <string name="camera_hint" msgid="5241441720959174226">"Leret ke kiri untuk kamera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Tiada"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Keutamaan"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Tiada gangguan"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Keutamaan sahaja"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Penggera sahaja"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Tiada\ngangguan"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Keutamaan\nsahaja"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Penggera\nsahaja"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengecas (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> sehingga penuh)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Tukar pengguna"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Tukar pengguna, pengguna semasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tolak"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ialah dialog kelantangan"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Sentuh untuk memulihkan yang asal."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Halang gangguan"</string> </resources> diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index 8880f93..e792a58 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ဘက်ထရီ ချွေတာမှုကို ဖွင့်ရန်"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"အပြင်အဆင်များ"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"ဝိုင်ဖိုင်"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"လေယာဥ်ပျံပေါ်အသုံးပြုသောစနစ်"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"မျက်နှာပြင်အလိုအလျောက်လှည့်ရန်"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"လေယာဉ် မုဒ်ကို ဖွင့်ထားလိုက်ပြီ။"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"မနှောင့်ယှက်ပါနှင့် ဖွင့်ထားသည်၊ ဦးစားပေးများသာ။"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"မနှောင့်ယှက်ပါနှင့် ဖွင့်ထားသည်၊ အနှောင့်အယှက်များ မရှိပါ။"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"အနှောင့်ယှက်ရ ဖွင့်ထားသည်။ နှိုးစက်များသာ။"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"မနှောင့်ယှက်ပါနှင့် ကိုပိတ်ထားသည်။"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"မနှောင့်ယှက်ပါနှင့် ကိုပိတ်ထားသည်။"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"မနှောင့်ယှက်ပါနှင့်ကို ဖွင့်ထားသည်။"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"မုန့်ထည့်သော ပုံး"</string> <string name="start_dreams" msgid="7219575858348719790">"ဒေးဒရင်းမ်"</string> <string name="ethernet_label" msgid="7967563676324087464">"အီသာနက်"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"လေယာဥ်ပျံပေါ်အသုံးပြုသောစနစ်"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"မနှောက်ယှက်ပါနှင့်"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ဦးစားပေးများသာ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"နှိုးစက်များသာ"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ဘလူးတု"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ဘလူးတု (<xliff:g id="NUMBER">%d</xliff:g> စက်များ)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ကြားဖြတ်ဝင်မှုများ မရှိခဲ့။ နှိုးစက်ပင် မရှိခဲ့။"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ဦးစားပေး ကြားဖြတ်ဝင်မှုများ သာလျှင်"</string> + <string name="zen_alarms" msgid="5055668280767657759">"နှိုးစက်များသာ"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"သင်၏ နောက် နှိုးစက်၏ အချိန်မှာ<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"သင်၏ နောက် နှိုးစက်မှာ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"သင်သည် သင်၏ <xliff:g id="ALARM_TIME">%s</xliff:g> နှိုးစက်ကို ကြားရမည် မဟုတ်"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"သော့ဖွင့်ရန် အပေါ်သို့ ပွတ်ဆွဲပါ"</string> <string name="phone_hint" msgid="3101468054914424646">"ဖုန်း အတွက် ညာသို့ ပွတ်ဆွဲပါ"</string> <string name="camera_hint" msgid="5241441720959174226">"ကင်မရာ အတွက် ဘယ်သို့ ပွတ်ဆွဲပါ"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"မရှိ"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ဦးစားပေးမှု"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ဦးစားပေးများသာ"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"နှိုးစက်များသာ"</string> <string name="interruption_level_all" msgid="1330581184930945764">"အားလုံး"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n"ကြားဝင်မှု မရှိပါ"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ဦးစားပေးမှု\nသာ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"နှိုးစက်များ\nသာ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> အပြည့် အထိ) အားသွင်းနေ"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"အသုံးပြုသူကို ပြောင်းလဲရန်"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"အသုံးပြုသူကို ပြောင်းရန်၊ လက်ရှိ အသုံးပြုသူ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ငြင်းပယ်သည်"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> သည် အသံဒိုင်ယာလော့ခ်ဖြစ်သည်"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"မူရင်းအားပြန်လည်သိမ်းဆည်းရန် ထိပါ။"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"ကြားဖြတ်ဝင်မှုများ ပိတ်ဆို့ရန်"</string> </resources> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 07cf096..26e6cad 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Slå på batterisparing"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Innstillinger"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Trådløse nettverk"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flymodus"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Roter skjerm automatisk"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flymodus er slått på."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"«Ikke forstyrr» er på – bare prioritert."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"«Ikke forstyrr» er på – ingen avbrytelser."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ikke forstyrr er på – bare alarmer."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"«Ikke forstyrr» er av."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"«Ikke forstyrr» er slått av."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"«Ikke forstyrr» er slått på."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertmonter"</string> <string name="start_dreams" msgid="7219575858348719790">"Dagdrøm"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flymodus"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"«Ikke forstyrr»"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Bare prioritet"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Bare alarmer"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ingen forstyrrelser"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheter)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen forstyrrelser, ikke engang alarmer."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen forstyrrelser"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Bare prioriterte forstyrrelser"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Bare alarmer"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Den neste alarmen din er stilt inn kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Den neste alarmen din er stilt inn <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Du kommer ikke til å høre alarmen kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Sveip oppover for å låse opp"</string> <string name="phone_hint" msgid="3101468054914424646">"Sveip mot høyre for å åpne telefonen"</string> <string name="camera_hint" msgid="5241441720959174226">"Sveip mot venstre for å åpne kameraet"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ingen"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Bare alarmer"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ingen\nforstyrrelser"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Bare\nPrioritet"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Bare\nalarmer"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Lader (fulladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Bytt bruker"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Bytt bruker, gjeldende bruker er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ikke tillat"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er volumdialogen"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Trykk for å gå tilbake til den opprinnelige volumdialogen."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index 549bc8b..edabd65 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"ब्याट्री बचत खोल्नुहोस्"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"सेटिङहरू"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"वाइफाइ"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"हवाइजहाज मोड"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"स्वत:घुम्ने स्क्रिन"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"म्युट गर्नुहोस्"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"स्वतः"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"हवाइजहाज मोड खोलियो।"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"प्राथमिकतालाई मात्र बाधा नपुर्याउनुहोस्।"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"बाधा नपुर्याउँनुहोस्, कुनै पनि अवरोध छैनन्।"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"बाधा नगर्नुहोस्, आलार्महरू मात्र।"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"निष्क्रियलाई बाधा नपुर्याउनुहोस्"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"निष्क्रिय गरिएकालाई अवरोध नपुर्याउनुहोस्।"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"सक्रिय रहेकोलाई अवरोध नपुर्याउनुहोस्।"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"दिवासपना"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"हवाइजहाज मोड"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"बाधा नपुर्याउँनुहोस्"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"प्राथमिकता मात्र"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"अलार्महरू मात्र"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कुनै अवरोधहरू छैन"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लुटुथ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लुटुथ (<xliff:g id="NUMBER">%d</xliff:g> उपकरणहरू)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कुनै रुकावट छैन। चेतावनी समेत छैन।"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"कुनै रुकावटहरू छैन"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"प्राथमिकता रुकावटहरूमा मात्र"</string> + <string name="zen_alarms" msgid="5055668280767657759">"अलार्महरू मात्र"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"तपाईंको अर्को सचेतक <xliff:g id="ALARM_TIME">%s</xliff:g> मा छ"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"तपाईंको अर्को सचेतक <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> हो"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> मा तपाईंले आफ्नो सचेतक सुन्नुहुने छैन"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"अनलक गर्न स्वाप गर्नुहोस्"</string> <string name="phone_hint" msgid="3101468054914424646">"फोनका लागि दाँया स्वाइप"</string> <string name="camera_hint" msgid="5241441720959174226">"क्यामेराका लागि बाँया स्वाइप"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"कुनै पनि होइन"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"प्राथमिकता"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कुनै अवरोधहरू छैनन्"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"प्राथमिकता मात्र"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"अलार्महरू मात्र"</string> <string name="interruption_level_all" msgid="1330581184930945764">"सबै"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n" रोकावटहरू छैनन्"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"प्राथमिकता \nमात्र"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"आलार्महरू \nमात्र"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हुँदै (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण भएसम्म)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"प्रयोगकर्ता फेर्नुहोस्"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"प्रयोगकर्ता, हालको प्रयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> मा स्विच गर्नुहोस्"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"अस्वीकार गर्नुहोस्"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> भोल्यूम संवाद हो"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूल पुनर्स्थापना गर्न छुनुहोस्।"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"अवरोधहरू रोक्नुहोस्"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index 4f2bcc5..0959bff 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Accubesparing inschakelen"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Instellingen"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wifi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegtuigmodus"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Scherm automatisch draaien"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPEN"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Vliegtuigmodus ingeschakeld."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Niet storen aan, alleen prioriteit."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Niet storen aan, geen onderbrekingen."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Niet storen aan, alleen alarmen."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Niet storen uit."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Niet storen uitgeschakeld."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Niet storen ingeschakeld."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertshowcase"</string> <string name="start_dreams" msgid="7219575858348719790">"Dagdroom"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Vliegtuigmodus"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Niet storen"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Alleen prioriteit"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alleen alarmen"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Geen onderbrekingen"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> apparaten)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekingen. Zelfs geen alarm."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekingen"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Alleen prioriteitsonderbrekingen"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alleen alarmen"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Uw volgende alarm is om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Uw volgende alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"U hoort uw alarm niet om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Veeg omhoog om te ontgrendelen"</string> <string name="phone_hint" msgid="3101468054914424646">"Veeg naar rechts voor telefoon"</string> <string name="camera_hint" msgid="5241441720959174226">"Veeg naar links voor camera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Geen"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteit"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Alleen alarmen"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Geen\nonderbrekingen"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Alleen\nprioriteit"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alleen\nalarmen"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Opladen (vol over <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Gebruiker wijzigen"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Schakelen tussen gebruikers, huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afwijzen"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is het volumedialoogvenster"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tik hierop om het origineel te herstellen."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 7e7253c..0680ce2 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Włącz oszczędzanie baterii"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ustawienia"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Tryb samolotowy"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Autoobracanie ekranu"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"WYGAŚ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Tryb samolotowy został włączony."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Nie przeszkadzać (włączone, tylko priorytetowe)."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Nie przeszkadzać (włączone, bez przeszkadzania)."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Nie przeszkadzać (włączone, tylko alarmy)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Nie przeszkadzać (wyłączone)."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Nieprzeszkadzanie wyłączone."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Nieprzeszkadzanie włączone."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Półka ze słodkościami"</string> <string name="start_dreams" msgid="7219575858348719790">"Wygaszacz ekranu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Tryb samolotowy"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nie przeszkadzać"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tylko priorytetowe"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tylko alarmy"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez przeszkadzania"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (urządzenia: <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Żadnych powiadomień. Nawet alarmów."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Bez przerw"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Tylko dźwięki priorytetowe"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tylko alarmy"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Następny alarm o <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Następny alarm: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Nie usłyszysz alarmu o <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Przesuń w górę, by odblokować"</string> <string name="phone_hint" msgid="3101468054914424646">"Przesuń w prawo, by przełączyć się na telefon"</string> <string name="camera_hint" msgid="5241441720959174226">"Przesuń w lewo, by włączyć aparat"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Żadne"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Priorytetowe"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Tylko alarmy"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Wszystkie"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n"0/}przeszkadzać"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tylko\npriorytetowe"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tylko\nalarmy"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ładuje się (pełne naładowanie za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Przełącz użytkownika"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Przełącz użytkownika. Bieżący użytkownik: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmów"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> steruje głośnością"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dotknij, by przywrócić pierwotną."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 14f60dc..891ff16 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ativar a poupança de bateria"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Definições"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo de avião"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rodar ecrã automaticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"D. SOM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo de avião ligado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Não incomodar ligado, apenas prioridade."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Não incomodar ligado, sem interrupções."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Não incomodar ligado, apenas alarmes."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Não incomodar desligado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Não incomodar desligado."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Não incomodar ligado."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vitrina de sobremesas"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo de avião"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Não incomodar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Apenas prioridade"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Apenas alarmes"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sem interrupções"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Dispositivos)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções com prioridade"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Apenas alarmes"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"O próximo alarme é à(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"O próximo alarme é <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Não vai ouvir o alarme à(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar rapidamente com o dedo para cima para desbloquear"</string> <string name="phone_hint" msgid="3101468054914424646">"Deslize rapidamente para a direita para aceder ao telemóvel"</string> <string name="camera_hint" msgid="5241441720959174226">"Deslize rapidamente para a esquerda para aceder à câmara"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nenhum"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Apenas alarmes"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sem\ninterrupções"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Apenas\nprioridade"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Apenas\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"A carregar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até à carga máxima)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Mudar utilizador"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Mudar de utilizador; o utilizador atual é <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Recusar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo do volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index 15d869a..a0e80e6 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ativar a economia de bateria"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configurações"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avião"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar automaticamente a tela"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUDO"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"O modo avião foi ativado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Não perturbe\" ativado, somente prioridade."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Não perturbe\" ativado, sem interrupções."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Não perturbe\" ativado, somente alarmes."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Não perturbe\" desativado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Não perturbe\" desativado."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Não perturbe\" ativado."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Mostruário de sobremesas"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avião"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Não perturbe"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Só prioridade"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Somente alarmes"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sem interrupções"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções prioritárias"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Somente alarmes"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Seu próximo alarme será às <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Seu próximo alarme será em <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Você não ouvirá o alarme às <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Deslize para cima para desbloquear"</string> <string name="phone_hint" msgid="3101468054914424646">"Deslize à direita p/ usar o telefone"</string> <string name="camera_hint" msgid="5241441720959174226">"Deslize à esquerda p/ usar a câmera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nenhum"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sem interrupções"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Só prioridade"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Somente alarmes"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sem\ninterrupções"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Somente\nprioridade"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Somente\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até concluir)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Trocar usuário"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Alternar usuário. Usuário atual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +389,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Negar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo referente ao volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Bloquear interrupções"</string> </resources> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index d517a42..100f8e7 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -45,7 +45,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Activați economisirea bateriei"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setări"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod Avion"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotire automată a ecranului"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEZAC."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> @@ -181,6 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modul Avion este activat."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Setarea „Nu deranja” este activată – numai prioritare."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Setarea „Nu deranja” este activată – fără întreruperi."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Setarea „Nu deranja” este activată – numai alarme."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Setarea „Nu deranja” este dezactivată."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Setarea „Nu deranja” a fost dezactivată."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Setarea „Nu deranja” a fost activată."</string> @@ -231,9 +231,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vitrina cu dulciuri"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mod Avion"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nu deranja"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Numai cu prioritate"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Numai alarme"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Fără întreruperi"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispozitive)"</string> @@ -304,6 +304,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Fără întreruperi. Nici măcar alarme."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Fără întreruperi"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Numai întreruperi cu prioritate"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Numai alarme"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Următoarea alarmă este setată la <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Următoarea alarmă este la <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Nu veți auzi alarma la <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -313,9 +314,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Glisați în sus pentru a debloca"</string> <string name="phone_hint" msgid="3101468054914424646">"Glisați la dreapta pentru a acesa telefonul"</string> <string name="camera_hint" msgid="5241441720959174226">"Glisați la stânga pentru a accesa camera foto"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Niciuna"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritate"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Numai alarme"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Toate"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Fără\nîntreruperi"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Numai\ncu prioritate"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Numai\nalarme"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Se încarcă (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> până la finalizare)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Comutați între utilizatori"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Schimbați utilizatorul (utilizator actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -383,4 +390,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuzați"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> afișează caseta de dialog pentru volum"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Atingeți pentru a reveni la setarea inițială."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index b53b581..18ebf13 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Включить режим энергосбережения"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Настройки"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим полета"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Автоповорот экрана"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ВЫКЛ."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТО"</string> @@ -184,6 +183,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим полета включен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Режим \"Не беспокоить\" включен. Будут показаны только важные оповещения."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Включен режим \"Не беспокоить\". Все оповещения отключены."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Не беспокоить – только будильник."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Режим \"Не беспокоить\" выключен."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Режим \"Не беспокоить\" выключен."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Режим \"Не беспокоить\" включен."</string> @@ -234,9 +234,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Коробка со сладостями"</string> <string name="start_dreams" msgid="7219575858348719790">"Заставка"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим полета"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не беспокоить"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Только важные"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Только будильник"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без оповещений"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -307,6 +307,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Никаких оповещений, даже от будильника."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Не беспокоить"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Только важные оповещения"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Только будильник"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следующий будильник: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следующий будильник: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Следующий будильник: <xliff:g id="ALARM_TIME">%s</xliff:g>. Звук отключен."</string> @@ -316,9 +317,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Проведите вверх, чтобы разблокировать"</string> <string name="phone_hint" msgid="3101468054914424646">"Чтобы позвонить, пролистните вправо"</string> <string name="camera_hint" msgid="5241441720959174226">"Чтобы включить камеру, пролистните влево"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Не беспокоить"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Важные"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Только будильник"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Все"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nпрерываний"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Только\nважные"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Только\nбудильник"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядка батареи (осталось <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Сменить пользователя."</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Сменить аккаунт. Вход выполнен под именем <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>."</string> @@ -386,4 +393,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Нет"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> назначено регулятором громкости"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Нажмите, чтобы восстановить приложение по умолчанию."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index 8bf3a29..d3b1044 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"බැටරි සුරැකීම සක්රිය කරන්න"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"සැකසීම්"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"අහස්යානා ආකාරය"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"ස්වයංක්රීයව-භ්රමණය වන තිරය"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"නිශ්ශබ්ද කරන්න"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"ස්වයංක්රීය"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"අහස්යානා ආකාරය සක්රීයයි."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"බාධා නොකරන්න ක්රියාත්මකයි, ප්රමුඛතා පමණි."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"බාධා නොකරන්න ක්රියාත්මකයි, බාධා කිරීම් නැත."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"බාධා නොකරන්න ක්රියාත්මකයි, ප්රමුඛතා පමණි."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"බාධා නොකරන්න ක්රියා විරහිතයි."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"බාධා නොකරන්න ක්රියා විරහිත කරන ලදි."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"බාධා නොකරන්න ක්රියාත්මක කරන ලදි"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"අතුරුපස අවස්තාව"</string> <string name="start_dreams" msgid="7219575858348719790">"දවල් හීනය"</string> <string name="ethernet_label" msgid="7967563676324087464">"ඊතර නෙට්"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"අහස්යානා ආකාරය"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"බාධා නොකරන්න"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ප්රමුඛතාව පමණයි"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ඇඟවීම් පමණි"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"බාධා කිරීම් නැත"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"බ්ලූටූත්"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"බ්ලූටූත් (උපාංග <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"අතුරු බිඳීම් නැත. අඩුම තරමේ අනතුරු ඇඟවීමක්වත් නැත."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"අතුරු බිදුම් නැත"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ප්රමුඛ අතුරු බිඳීම් පමණයි"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ඇඟවීම් පමණි"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"ඔබගේ ඊළඟ සීනුව <xliff:g id="ALARM_TIME">%s</xliff:g> තිබේ"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ඔබගේ ඊළඟ සීනුව <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> වේ"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> හි තිබෙන ඔබගේ සීනුව ඔබට ඇසෙන්නේ නැත"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"අගුළු ඇරීමට ස්වයිප් කරන්න."</string> <string name="phone_hint" msgid="3101468054914424646">"දුරකථන සඳහා දකුණට ස්වයිප් කරන්න"</string> <string name="camera_hint" msgid="5241441720959174226">"කැමරාව සඳහා දකුණට ස්වයිප් කරන්න"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"කිසිවක් නැත"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ප්රමුඛතාව"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"බාධා කිරීම් නැත"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ප්රමුඛතාව පමණයි"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"ඇඟවීම් පමණි"</string> <string name="interruption_level_all" msgid="1330581184930945764">"සියලු"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"බාධා\nනොකරන්න"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ප්රමුඛතා\nපමණි"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ඇඟවීම්\nපමණි"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ආරෝපණය වෙමින් (සම්පුර්ණ වන තෙක් <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"පරිශීලක මාරුව"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"පරිශීලකයා මාරු කරන්න,දැන් සිටින පරිශීලකයා <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ප්රතික්ෂේප කරන්න"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ධාරිතා සංවාදයයි"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"මුල් තත්ත්වය නැවත ප්රතිසාධනය කිරීමට ස්පර්ශ කරන්න."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"බාධා අවහිර කරන්න"</string> </resources> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index a17b8ec..6ea28f5 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Zapnúť šetrič batérie"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavenia"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim v lietadle"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatické otočenie obrazovky"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STLMIŤ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -184,6 +183,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Režim v lietadle je zapnutý."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stav Nerušiť je zapnutý, iba prioritné."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stav Nerušiť je zapnutý, žiadne prerušenia."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Stav Nerušiť je zapnutý, iba budíky."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stav Nerušiť je vypnutý."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stav Nerušiť je vypnutý."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Stav Nerušiť je zapnutý."</string> @@ -234,9 +234,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Pult s dezertami"</string> <string name="start_dreams" msgid="7219575858348719790">"Šetrič obrazovky"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Režim v lietadle"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nerušiť"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Iba prioritné"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Iba budíky"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Žiadne prerušenia"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Rozhranie Bluetooth (počet zariadení: <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -307,6 +307,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žiadne vyrušenia, ani budíky"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Žiadne vyrušenia"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Iba prioritné vyrušenia"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Iba budíky"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ďalší budík: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ďalší budík: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Váš budík o <xliff:g id="ALARM_TIME">%s</xliff:g> sa nespustí"</string> @@ -316,9 +317,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Zariadenie odomknete prejdením prstom nahor"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefón otvoríte prejdením prstom doľava"</string> <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otvoríte prejdením prstom doľava"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Žiadne"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritné"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Žiadne prerušenia"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Iba prioritné"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Iba budíky"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Všetky"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Žiadne\nprerušenia"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Iba\nprioritné"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Iba\nbudíky"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíja sa (úplné nabitie o <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Prepnutie používateľa"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Prepnúť používateľa (súčasný používateľ: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> @@ -376,7 +381,7 @@ <string name="screen_pinning_title" msgid="3273740381976175811">"Obrazovka je pripnutá"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Obsah bude pripnutý v zobrazení, dokým ho neuvoľníte. Ak ho chcete uvoľniť, stlačte a podržte súčasne tlačidlá Späť a Prehľad."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Obsah bude pripnutý v zobrazení, dokým ho neuvoľníte. Uvoľníte ho stlačením a podržaním tlačidla Prehľad."</string> - <string name="screen_pinning_positive" msgid="3783985798366751226">"Rozumiem"</string> + <string name="screen_pinning_positive" msgid="3783985798366751226">"Dobre"</string> <string name="screen_pinning_negative" msgid="3741602308343880268">"Nie, vďaka"</string> <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"Skryť <xliff:g id="TILE_LABEL">%1$s</xliff:g>?"</string> <string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"Táto položka sa znova zobrazí, keď ju v nastaveniach opätovne zapnete."</string> @@ -386,4 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmietnuť"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialóg hlasitosti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Blokovanie prerušení"</string> </resources> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 177ef1e..3323450 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Vklop varčevanja z energijo"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavitve"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način za letalo"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Samodejno zasukaj zaslon"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TIHO"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"SAMOD."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Način za letalo je vklopljen."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Način »ne moti« je vklopljen, samo prednostno."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Način »ne moti« je vklopljen, ni prekinitev."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Način »ne moti« je vklopljen, samo alarmi."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Način »ne moti« je izklopljen."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Način »ne moti« je izklopljen."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Način »ne moti« je vklopljen."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Vitrina za sladice"</string> <string name="start_dreams" msgid="7219575858348719790">"Sanjarjenje"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način za letalo"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne moti"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Samo prednostno"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Samo alarmi"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Brez prekinitev"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (št. naprav: <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Brez motenj. Celo brez alarmov."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Brez prekinitev"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prednostne prekinitve"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Vaš naslednji alarm je ob <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Vaš naslednji alarm: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarma ob <xliff:g id="ALARM_TIME">%s</xliff:g> ne boste slišali"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Povlecite, da odklenete"</string> <string name="phone_hint" msgid="3101468054914424646">"Povlecite v desno za telefon"</string> <string name="camera_hint" msgid="5241441720959174226">"Povlecite v levo za fotoaparat"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Nič"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prednost"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Samo alarmi"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Vse"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Brez\nprekinitev"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Samo\nprednostno"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Samo\nalarmi"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Polnjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napolnjenosti)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Preklop med uporabniki"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Preklop med uporabniki, trenutni uporabnik <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Zavrni"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je pogovorno okno glede prostornine"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dotaknite se, če želite obnoviti izvirnik."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 0262dd7..5faa39b 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -45,7 +45,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Укључи штедњу батерије"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Подешавања"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим рада у авиону"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Аутоматско ротирање екрана"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"УГАСИ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АУТОM."</string> @@ -181,6 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим рада у авиону је укључен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Подешавање Не узнемиравај је укључено, само приоритетни прекиди."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Подешавање Не узнемиравај је укључено, без прекида."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Подешавање Не узнемиравај је укључено, само аларми."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Подешавање Не узнемиравај је искључено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Подешавање Не узнемиравај је искључено."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Подешавање Не узнемиравај је укључено."</string> @@ -231,9 +231,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Витрина са посластицама"</string> <string name="start_dreams" msgid="7219575858348719790">"Сањарење"</string> <string name="ethernet_label" msgid="7967563676324087464">"Етернет"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим рада у авиону"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не узнемиравај"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само приоритетни прекиди"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само аларми"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекида"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> уређаја)"</string> @@ -304,6 +304,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Нема прекида. Чак ни аларма."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекида"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекиди"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следећи аларм је у <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следећи аларм: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Нећете чути аларм у <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -313,9 +314,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Превуците нагоре да бисте откључали"</string> <string name="phone_hint" msgid="3101468054914424646">"Превуците удесно за телефон"</string> <string name="camera_hint" msgid="5241441720959174226">"Превуците улево за камеру"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ниједан"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Само аларми"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Све"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nпрекида"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nприорит. прекиди"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nаларми"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Пуњење (пун је за <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Замени корисника"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Промените корисника, актуелни корисник је <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -383,4 +390,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> је дијалог за јачину звука"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Додирните да бисте вратили оригинал."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 71d0596..0659815 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktivera batterisparläge"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Inställningar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flygplansläge"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotera skärmen automatiskt"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TYST"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flygplansläget har aktiverats."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stör ej har aktiverats. Endast prioriterade."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stör ej har aktiverats. Inga avbrott."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Stör ej är aktiverat, endast alarm."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stör ej av."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stör ej har inaktiverats."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Stör ej har aktiverats."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertdisken"</string> <string name="start_dreams" msgid="7219575858348719790">"Dagdröm"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flygplansläge"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Stör ej"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Endast prioriterade"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Endast alarm"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Inga avbrott"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheter)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Inga avbrott. Inte ens alarm."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Inga avbrott"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Bara prioriterade samtal och aviseringar"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Endast alarm"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nästa alarm är kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nästa alarm är <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarmet kommer inte att höras kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Dra uppåt om du vill låsa upp"</string> <string name="phone_hint" msgid="3101468054914424646">"Dra åt höger om du vill visa telefonen"</string> <string name="camera_hint" msgid="5241441720959174226">"Dra åt vänster om du vill visa kameran"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Ingen"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Endast alarm"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Alla"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Stör\nej"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Endast\nprioriterade"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Endast\nalarm"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laddar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tills batteriet är fulladdat)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Byt användare"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Byt användare. Aktuell användare: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neka"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> används som volymkontroll"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tryck här om du vill återställa den ursprungliga appen."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 1811864..7f3af18 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Washa kiokoa betri"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Mipangilio"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Mtandao-Hewa"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Hali ya Ndege"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Skrini ijizungushe kiotomatiki"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"PUUZA"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"KIOTOMATIKI"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Hali ya ndegeni imewashwa."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Kipengee cha usinisumbue kimewashwa, kipaumbele pekee."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Kipengee cha usinisumbue kimewashwa, hakuna kukatizwa."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Kipengee cha usinisumbue kimewashwa, kengele pekee."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Kipengee cha usinisumbue kimezimwa."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Kipengee cha usinisumbue kimezimwa."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Kipengee cha usinisumbue kimewashwa."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Sanduku la Vitindamlo"</string> <string name="start_dreams" msgid="7219575858348719790">"Hali Tulivu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Hali ya ndege"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Usinisumbue"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Kipaumbele tu"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Kengele pekee"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Hakuna kukatizwa"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (Vifaa <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hakuna kukatizwa. Hata kama ni kengele."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Hakuna kukatizwa"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Mambo yenye kipaumbele pekee yakatize"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Kengele pekee"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Kengele yako inayofuata itakuwa saa <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Kengele yako inayofuata itakuwa <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Hutasikia kengele yako ifikapo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Telezesha kidole ili ufungue"</string> <string name="phone_hint" msgid="3101468054914424646">"Telezesha kidole kulia ili ufikie simu"</string> <string name="camera_hint" msgid="5241441720959174226">"Telezesha kidole kushoto ili ufikie kamera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Hamna"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Kipaumbele"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Hakuna kukatizwa"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Kipaumbele tu"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Kengele pekee"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Zote"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Hakuna\nukatizaji"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Kipaumbele\npekee"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Kengele\npekee"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Inachaji (Imebakisha <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ijae)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Badili mtumiaji"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Badili mtumiaji, mtumiaji wa sasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Kataa"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ni mazungumzo ya sauti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Gusa ili urejeshe ya awali."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Zuia ukatizaji"</string> </resources> diff --git a/packages/SystemUI/res/values-sw600dp/styles.xml b/packages/SystemUI/res/values-sw600dp/styles.xml index 156fa65..4d7d6b5 100644 --- a/packages/SystemUI/res/values-sw600dp/styles.xml +++ b/packages/SystemUI/res/values-sw600dp/styles.xml @@ -19,12 +19,6 @@ <item name="android:layout_width">480dp</item> </style> - <style name="SearchPanelScrim"> - <item name="android:layout_width">match_parent</item> - <item name="android:layout_height">@dimen/search_panel_scrim_height</item> - <item name="android:layout_gravity">bottom</item> - </style> - <style name="UserDetailView"> <item name="numColumns">4</item> </style> diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index 1c246c5..17626cc 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"பேட்டரி சேமிப்பானை இயக்கு"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"அமைப்பு"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"வைஃபை"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"விமானப் பயன்முறை"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"திரையைத் தானாகச் சுழற்று"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"முடக்கு"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"தானியங்கு"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"விமானப் பயன்முறை இயக்கப்பட்டது."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, முதன்மை மட்டும்."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, குறுக்கீடுகள் இல்லை."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, அலாரங்கள் மட்டும்."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"தொந்தரவு செய்ய வேண்டாம் என்பது முடக்கப்பட்டது."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"தொந்தரவு செய்ய வேண்டாம் என்பது முடக்கப்பட்டது."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"இனிப்பு வடிவங்கள்"</string> <string name="start_dreams" msgid="7219575858348719790">"பகல்கனா"</string> <string name="ethernet_label" msgid="7967563676324087464">"ஈதர்நெட்"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"விமானப் பயன்முறை"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"தொந்தரவு செய்ய வேண்டாம்"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"முதன்மை மட்டும்"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"அலாரங்கள் மட்டும்"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"குறுக்கீடுகள் வேண்டாம்"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"புளூடூத்"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"புளூடூத் (<xliff:g id="NUMBER">%d</xliff:g> சாதனங்கள்)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"அறிவிப்பும் இல்லை. அலாரங்களும் இல்லை."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"தெரிவிக்காதே"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"முக்கிய அறிவிப்புகள் மட்டும்"</string> + <string name="zen_alarms" msgid="5055668280767657759">"அலாரங்கள் மட்டும்"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"அடுத்த அலாரம் - <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"அடுத்த அலாரம் - <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> க்கு அலாரத்தைக் கேட்க மாட்டீர்கள்"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"திறக்க, மேலே ஸ்வைப் செய்யவும்"</string> <string name="phone_hint" msgid="3101468054914424646">"ஃபோனுக்கு, வலப்புறம் ஸ்வைப் செய்க"</string> <string name="camera_hint" msgid="5241441720959174226">"கேமராவிற்கு இடப்புறம் ஸ்வைப் செய்க"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ஏதுமில்லை"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"முன்னுரிமை"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"குறுக்கீடுகள் வேண்டாம்"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"முதன்மை மட்டும்"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"அலாரங்கள் மட்டும்"</string> <string name="interruption_level_all" msgid="1330581184930945764">"எல்லாம்"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"குறுக்கீடுகள்\nஇல்லை"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"முதன்மை\nமட்டும்"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"அலாரங்கள்\nமட்டும்"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"சார்ஜாகிறது (முழு சார்ஜிற்கு <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ஆகும்)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"பயனரை மாற்று"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"பயனரை மாற்று, தற்போதைய பயனர் <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"நிராகரி"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"ஒலியளவு செய்தி: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"அசலை மீட்டமைக்கத் தொடவும்."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"குறுக்கீடுகளைத் தடுக்கவும்"</string> </resources> diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index cc5d2ad..f8cc692 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"బ్యాటరీ సేవర్ను ఆన్ చేయి"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"సెట్టింగ్లు"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ఎయిర్ప్లేన్ మోడ్"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"స్క్రీన్ను స్వయంచాలకంగా తిప్పండి"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"మ్యూట్"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"స్వయంచాలకం"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ఎయిర్ప్లైన్ మోడ్ ఆన్ చేయబడింది."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, ప్రాధాన్యత మాత్రమే."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, అంతరాయాలు ఉండవు."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, అలారాలు మాత్రమే."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"అంతరాయం కలిగించవద్దు ఆఫ్లో ఉంది."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"అంతరాయం కలిగించవద్దు ఆఫ్ చేయబడింది."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"అంతరాయం కలిగించవద్దు ఆన్ చేయబడింది."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"డెజర్ట్ కేస్"</string> <string name="start_dreams" msgid="7219575858348719790">"డేడ్రీమ్"</string> <string name="ethernet_label" msgid="7967563676324087464">"ఈథర్నెట్"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"ఎయిర్ప్లేన్ మోడ్"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"అంతరాయం కలిగించవద్దు"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ప్రాధాన్యత మాత్రమే"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"అలారాలు మాత్రమే"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"అంతరాయాలు ఉండవు"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"బ్లూటూత్"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"బ్లూటూత్ (<xliff:g id="NUMBER">%d</xliff:g> పరికరాలు)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"అంతరాయాలు లేవు. అలారాలు కూడా లేవు."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"అంతరాయాలు లేకుండా"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"ప్రాధాన్య అంతరాయాలు మాత్రమే"</string> + <string name="zen_alarms" msgid="5055668280767657759">"అలారాలు మాత్రమే"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"మీ తదుపరి అలారం <xliff:g id="ALARM_TIME">%s</xliff:g>కి ఉంది"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"మీ తదుపరి అలారం <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"మీరు <xliff:g id="ALARM_TIME">%s</xliff:g>కి సెట్ చేసిన అలారం మీకు వినిపించదు"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"అన్లాక్ చేయడానికి ఎగువకు స్వైప్ చేయండి"</string> <string name="phone_hint" msgid="3101468054914424646">"ఫోన్ కోసం కుడివైపుకి స్వైప్ చేయండి"</string> <string name="camera_hint" msgid="5241441720959174226">"కెమెరా కోసం ఎడమవైపుకి స్వైప్ చేయండి"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"వేటికీ వద్దు"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ప్రాధాన్యత"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"అంతరాయాలు ఉండవు"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"ప్రాధాన్యత మాత్రమే"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"అలారాలు మాత్రమే"</string> <string name="interruption_level_all" msgid="1330581184930945764">"అన్నిటికీ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"అంతరాయాలు\nఉండకూడదు"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ప్రాధాన్యమైనవి\nమాత్రమే"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"అలారాలు\nమాత్రమే"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ఛార్జ్ అవుతోంది (పూర్తిగా నిండటానికి <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"వినియోగదారుని మార్చు"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"వినియోగదారుని మార్చు, ప్రస్తుత వినియోగదారు <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"తిరస్కరించు"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> అనేది వాల్యూమ్ డైలాగ్"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"అసలుదాన్ని పునరుద్ధరించడానికి తాకండి."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"అంతరాయాలను బ్లాక్ చేయండి"</string> </resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 1c064e5..978ff25 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"เปิดโหมดประหยัดแบตเตอรี่"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"การตั้งค่า"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WiFi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"โหมดใช้งานบนเครื่องบิน"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"หมุนหน้าจออัตโนมัติ"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ปิดเสียง"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"อัตโนมัติ"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"เปิดโหมดบนเครื่องบินแล้ว"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"การห้ามรบกวนเปิดอยู่ เฉพาะเรื่องสำคัญเท่านั้น"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"การห้ามรบกวนเปิดอยู่ ห้ามรบกวน"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"เปิดการห้ามรบกวนอยู่ ปลุกได้เท่านั้น"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"การห้ามรบกวนปิดอยู่"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ปิดการห้ามรบกวนแล้ว"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"เปิดการห้ามรบกวนแล้ว"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ชั้นแสดงของหวาน"</string> <string name="start_dreams" msgid="7219575858348719790">"เดย์ดรีม"</string> <string name="ethernet_label" msgid="7967563676324087464">"อีเทอร์เน็ต"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"โหมดใช้บนเครื่องบิน"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ห้ามรบกวน"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"เฉพาะเรื่องสำคัญ"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"เฉพาะปลุกเท่านั้น"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ไม่มีการรบกวน"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"บลูทูธ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"บลูทูธ (<xliff:g id="NUMBER">%d</xliff:g> อุปกรณ์)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ไม่มีการรบกวน แม้แต่นาฬิกาปลุก"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"ไม่มีการรบกวน"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"เฉพาะเรื่องสำคัญเท่านั้น"</string> + <string name="zen_alarms" msgid="5055668280767657759">"เฉพาะปลุกเท่านั้น"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"การปลุกครั้งถัดไปของคุณคือเวลา <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"การปลุกครั้งถัดไปของคุณคือ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"คุณจะไม่ได้ยินเสียงปลุกในเวลา <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"กวาดขึ้นเพื่อปลดล็อก"</string> <string name="phone_hint" msgid="3101468054914424646">"กวาดไปทางขวาเพื่อใช้โทรศัพท์"</string> <string name="camera_hint" msgid="5241441720959174226">"กวาดไปทางซ้ายเพื่อใช้กล้องถ่ายรูป"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"ไม่มี"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"สำคัญ"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"เฉพาะปลุกเท่านั้น"</string> <string name="interruption_level_all" msgid="1330581184930945764">"ทั้งหมด"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ไม่มี\nการรบกวน"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"เฉพาะเรื่อง\nสำคัญ"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"เฉพาะปลุก\nเท่านั้น"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"กำลังชาร์จ (อีก <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> เต็ม)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"สลับผู้ใช้"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"เปลี่ยนผู้ใช้จากผู้ใช้ปัจจุบัน <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ปฏิเสธ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> เป็นช่องโต้ตอบระดับเสียง"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"แตะเพื่อคืนค่าดั้งเดิม"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 6ecd402..19cb066 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"I-on ang pagtitipid ng baterya"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Mga Setting"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Airplane mode"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"I-auto-rotate ang screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Na-on ang Airplane mode."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Naka-on ang huwag istorbohin, priyoridad lang."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Naka-on ang huwag istorbohin, walang mga paggambala."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Naka-on ang huwag istorbohin, mga alarm lang."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Naka-off ang huwag istorbohin."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Na-off na ang huwag istorbohin"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Na-on na ang huwag istorbohin."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Airplane mode"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Huwag istorbohin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priyoridad lang"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Mga alarm lang"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Walang mga paggambala"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> (na) Device)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Walang mga pagkaantala. Kahit mga alarma."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Walang mga paggambala"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Mga may priyoridad na paggambala lang"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Mga alarm lang"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ang susunod mong alarma ay sa <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ang susunod mong alarma ay <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Hindi mo maririnig ang alarma mo ng <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Mag-swipe pataas upang i-unlock"</string> <string name="phone_hint" msgid="3101468054914424646">"Mag-swipe pakanan para sa telepono"</string> <string name="camera_hint" msgid="5241441720959174226">"Mag-swipe pakaliwa para sa camera"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Wala"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Prayoridad"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Walang pagkaantala"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Priyoridad lang"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Mga alarm lang"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Lahat"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Walang\npagkaantala"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priyoridad\nlang"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Mga alarm\nlang"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nagtsa-charge (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hanggang mapuno)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Magpalit ng user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Magpalit ng user, kasalukuyang user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tanggihan"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Ang <xliff:g id="APP_NAME">%1$s</xliff:g> ang volume dialog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Pindutin upang ibalik ang orihinal."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"I-block ang mga pagkaantala"</string> </resources> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 7209af0..bfbdcb7 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Pil tasarrufunu aç"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ayarlar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Kablosuz"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Uçak modu"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ekranı otomatik döndür"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"KAPAT"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OTOMTK"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Uçak modu açıldı."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Rahatsız etmeyin ayarı açık, yalnızca öncelikliler."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Rahatsız etmeyin ayarı açık, kesme yok."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Rahatsız etmeyin ayarı açık, yalnızca alarmlar."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Rahatsız etmeyin\" ayarı kapalı."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Rahatsız etmeyin\" ayarı kapalı."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Rahatsız etmeyin\" ayarı açık."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Tatlı Kutusu"</string> <string name="start_dreams" msgid="7219575858348719790">"Hafif uyku"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Uçak modu"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Rahatsız etmeyin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Yalnızca öncelikliler"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Yalnızca alarmlar"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Kesme yok"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Cihaz)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Kesinti yok. Uyarı bile yok."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Kesinti yok"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Sadece öncelikli kesintiler"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Yalnızca alarmlar"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Bir sonraki alarmın saati: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Bir sonraki alarmınız: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> olarak ayarlanan alarmı duymayacaksınız"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Kilidi açmak için hızlıca yukarı kaydırın"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefon için sağa kaydırın"</string> <string name="camera_hint" msgid="5241441720959174226">"Kamera için sola kaydırın"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Yok"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Öncelik"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Yalnızca alarmlar"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tümü"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Kesinti\nyok"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Yalnızca\nöncelik"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Yalnızca\nalarmlar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Şarj oluyor (tamamen dolmasına <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kaldı)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Kullanıcı değiştirme"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Kullanıcı değiştir. Geçerli kullanıcı: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Reddet"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ses denetimi iletişim kutusu olarak ayarlandı"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Orijinali geri yüklemek için dokunun."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 8c582f8..8855193 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -46,7 +46,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Увімкнути режим заощадження заряду акумулятора"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Налаштування"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим польоту"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Повертати екран автоматично"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ІГНОР."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТОМ."</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим польоту ввімкнено."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Режим \"Не турбувати\" ввімкнено, лише пріоритетні."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Режим \"Не турбувати\" ввімкнено, без сповіщень."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Увімкнено режим \"Не турбувати\", дозволено лише сигнали."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Режим \"Не турбувати\" вимкнено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Режим \"Не турбувати\" вимкнено."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Режим \"Не турбувати\" ввімкнено."</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Вітрина десертів"</string> <string name="start_dreams" msgid="7219575858348719790">"Заставка"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим польоту"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не турбувати"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Лише пріоритетні"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Лише сигнали"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без сповіщень"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (пристроїв: <xliff:g id="NUMBER">%d</xliff:g>)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без сповіщень і сигналів будильника."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Без сповіщень"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Лише пріоритетні сповіщення"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Лише сигнали"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Наступний сигнал: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Наступний сигнал: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Сигнал не лунатиме о <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -314,9 +315,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Проведіть пальцем угору, щоб розблокувати"</string> <string name="phone_hint" msgid="3101468054914424646">"Проведіть пальцем праворуч, щоб скористатися телефоном"</string> <string name="camera_hint" msgid="5241441720959174226">"Проведіть пальцем ліворуч, щоб скористатися камерою"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Немає"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Пріоритетні"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Без сповіщень"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Лише пріоритетні"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Лише сигнали"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Усі"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nсповіщень"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Лише\nприорітетні"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Лише\nсигнали"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Заряджання (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до повного зарядження)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Змінити користувача"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Змінити користувача, поточний користувач – <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +389,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Відхилити"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> призначено регулятором гучності"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Торкніться, щоб відновити оригінал."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Блокувати сповіщення"</string> </resources> diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index f402071..89ccfa3 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"بیٹری کی بچت آن کریں"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ترتیبات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ہوائی جہاز وضع"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"سکرین کو خودکار طور پر گھمائیں"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"خاموش کریں"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"خودکار"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ہوائی جہاز وضع کو آن کر دیا گیا۔"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ڈسٹرب نہ کریں آن ہے، صرف ترجیحی۔"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ڈسٹرب نہ کریں آن ہے، کوئی مداخلتیں نہیں۔"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ڈسٹرب نہ کریں آن ہے، صرف الارمز۔"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ڈسٹرب نہ کریں آف ہے۔"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ڈسٹرب نہ کریں کو آف کر دیا گیا۔"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"ڈسٹرب نہ کریں کو آن کر دیا گیا۔"</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"ڈیزرٹ کیس"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"ایتھرنیٹ"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"ہوائی جہاز طرز"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ڈسٹرب نہ کریں"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"صرف ترجیحی"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"صرف الارمز"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"کوئی مداخلتیں نہیں"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوٹوتھ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوٹوتھ (<xliff:g id="NUMBER">%d</xliff:g> آلات)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"کوئی مداخلتیں نہیں ہیں۔ یہاں تک کہ الارمز بھی نہیں ہیں۔"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"کوئی مداخلتیں نہیں ہیں"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"صرف ترجیحی مداخلتیں"</string> + <string name="zen_alarms" msgid="5055668280767657759">"صرف الارمز"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"آپ کا اگلا الارم <xliff:g id="ALARM_TIME">%s</xliff:g> بجے ہے"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"آپ کا اگلا الارم <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ہے"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"آپ کو <xliff:g id="ALARM_TIME">%s</xliff:g> بجے اپنا الارم سنائی نہیں دیگا"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"غیر مقفل کرنے کیلئے اوپر سوائپ کریں"</string> <string name="phone_hint" msgid="3101468054914424646">"فون کیلئے دائیں سوائپ کریں"</string> <string name="camera_hint" msgid="5241441720959174226">"کیمرہ کیلئے بائیں سوائپ کریں"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"کوئی نہیں"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"ترجیح"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"صرف الارمز"</string> <string name="interruption_level_all" msgid="1330581184930945764">"سبھی"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"کوئی مداخلتیں\nنہیں"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"صرف\nترجیحی"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"صرف\nالارمز"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"چارج ہو رہا ہے (مکمل ہونے تک <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> باقی ہیں)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"صارف سوئچ کریں"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"صارف سوئچ کریں، موجودہ صارف <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"مسترد کریں"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> والیوم ڈائلاگ ہے"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"اصل کو بحال کرنے کیلئے ٹچ کریں۔"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index 782d5e1..156aeb6 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Quvvat tejash funksiyasini yoqing"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Sozlamalar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Parvoz rejimi"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ekranni avtomatik burish"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Parvoz rejimi yoqildi."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"“Bezovta qilinmasin” funksiyasi yoqilgan, faqat muhim bildirishnomalar ko‘rsatiladi."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"“Bezovta qilinmasin” funksiyasi yoqilgan, bezovta qilinmaydi."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Bezovta qilinmasin, faqat signallar"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"“Bezovta qilinmasin” funksiyasi o‘chirilgan."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"“Bezovta qilinmasin” funksiyasi o‘chirildi."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"“Bezovta qilinmasin” funksiyasi yoqildi."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Tush kurish"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Parvoz rejimi"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Bezovta qilinmasin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Faqat muhimlari"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Faqat signallar"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tanaffuslarsiz"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g>ta qurilma)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hech narsa bezovta qilmaydi, hatto uyg‘otkichlar ham."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Tanaffuslarsiz"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Faqat ustuvor tanaffuslar"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Faqat signallar"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Keyingi uyg‘otkich: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Keyingi uyg‘otkich: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Keyingi uyg‘otkich: <xliff:g id="ALARM_TIME">%s</xliff:g>. Ovoz eshitilmaydi."</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Qulfdan chiqarish uchun yuqoriga suring"</string> <string name="phone_hint" msgid="3101468054914424646">"Telefonni ochish uchun o‘ngga"</string> <string name="camera_hint" msgid="5241441720959174226">"Kamerani ochish uchun chapga suring"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Hech biri"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Ustuvorlik"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Bezovta qilinishlarsiz"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Faqat muhimlari"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Faqat signallar"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Barchasi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Uzilishlar\nbo‘lmasin"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Faqat\nmuhimlar"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Faqat\nsignallar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Quvvat olmoqda (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>da to‘ladi)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Foydalanuvchini almashtirish"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Foydalanuvchini o‘zgartirish. Joriy foydalanuvchi – <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rad etish"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ovoz balandligini boshqaradi"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Aslini tiklash uchun bosing."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Bezovta qilinishlar"</string> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 7343c6f..f7885d7 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Bật trình tiết kiệm pin"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Cài đặt"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Chế độ trên máy bay"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Tự động xoay màn hình"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TẮT TIẾNG"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"TỰ ĐỘNG"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Đã bật chế độ trên máy bay."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Bật tính năng không làm phiền, chỉ ưu tiên."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Bật tính năng không làm phiền, không có gián đoạn."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Bật tính năng không làm phiền, chỉ báo thức."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Tắt tính năng không làm phiền."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Đã tắt tính năng không làm phiền."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Đã bật tính năng không làm phiền."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Tủ trưng bày bánh ngọt"</string> <string name="start_dreams" msgid="7219575858348719790">"Chế độ ngủ"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Chế độ trên máy bay"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Không làm phiền"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Chỉ ưu tiên"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Chỉ báo thức"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Không có gián đoạn nào"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> thiết bị)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Không có gián đoạn. Thậm chí không có cảnh báo."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Không có gián đoạn nào"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Chỉ các gián đoạn ưu tiên"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Chỉ báo thức"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"Lần báo thức tiếp theo của bạn vào lúc <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Lần báo thức tiếp theo của bạn là <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Bạn sẽ không nghe thấy báo thức lúc <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Vuốt lên để mở khóa"</string> <string name="phone_hint" msgid="3101468054914424646">"Vuốt sang phải để mở điện thoại"</string> <string name="camera_hint" msgid="5241441720959174226">"Vuốt sang trái để mở máy ảnh"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Không có"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Ưu tiên"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Chỉ báo thức"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Tất cả"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Không có\ngián đoạn"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Chỉ\nưu tiên"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Chỉ\nbáo thức"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Đang sạc (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> cho đến khi đầy)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Chuyển đổi người dùng"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Chuyển người dùng, người dùng hiện tại <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +389,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Từ chối"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> là hộp thoại khối lượng"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Chạm để khôi phục bản gốc."</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index ca2cfef..52f4ed0 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"开启节电助手"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"设置"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WLAN"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飞行模式"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"自动旋转屏幕"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"静音"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"自动"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飞行模式已开启。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"勿扰模式已开启,仅限优先打扰。"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"勿扰模式已开启,禁止打扰。"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"勿扰模式已开启,仅限闹钟。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"勿扰模式关闭。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已关闭勿扰模式。"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"已开启勿扰模式。"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"甜品盒"</string> <string name="start_dreams" msgid="7219575858348719790">"互动屏保"</string> <string name="ethernet_label" msgid="7967563676324087464">"有线网络"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飞行模式"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"勿扰"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"仅限优先打扰"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"仅限闹钟"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"禁止打扰"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"蓝牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"蓝牙(<xliff:g id="NUMBER">%d</xliff:g> 台设备)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"零打扰(甚至不发出闹钟提醒)。"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"禁止打扰"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"仅限优先打扰内容"</string> + <string name="zen_alarms" msgid="5055668280767657759">"仅限闹钟"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次闹钟响铃时间:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次闹钟响铃时间:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"您在<xliff:g id="ALARM_TIME">%s</xliff:g>将不会听到闹钟响铃"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑动即可解锁"</string> <string name="phone_hint" msgid="3101468054914424646">"向右滑动可打开拨号界面"</string> <string name="camera_hint" msgid="5241441720959174226">"向左滑动可打开相机"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"无"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"优先"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"仅限闹钟"</string> <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"禁止\n打扰"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"仅限\n优先打扰"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"仅限\n闹钟"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"正在充电(还需<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>充满)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切换用户"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切换用户,当前用户为<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒绝"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”已用作音量控制对话框"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"触摸即可恢复原始设置。"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 04a841d..f5b3e1d 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"開啟省電模式"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"設定"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"自動旋轉螢幕"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"關閉"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"自動"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飛行模式已開啟。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"開啟「請勿騷擾」,僅限優先。"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"開啟「請勿騷擾」,不允許干擾。"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"開啟「請勿騷擾」,僅限鬧鐘。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"「請勿騷擾」關閉"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已關閉「請勿騷擾」。"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"已開啟「請勿騷擾」。"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> <string name="ethernet_label" msgid="7967563676324087464">"以太網"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飛行模式"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"請勿騷擾"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"僅限優先"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"僅限鬧鐘"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"不允許干擾"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"藍牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"藍牙 (<xliff:g id="NUMBER">%d</xliff:g> 部裝置)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"只限重要干擾"</string> + <string name="zen_alarms" msgid="5055668280767657759">"僅限鬧鐘"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次鬧鐘時間:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次鬧鐘時間:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string> @@ -314,9 +315,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"向上快速滑動即可解鎖"</string> <string name="phone_hint" msgid="3101468054914424646">"向右快速滑動即可使用手機功能"</string> <string name="camera_hint" msgid="5241441720959174226">"向左快速滑動即可使用相機功能"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"無"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"重要"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"不允許干擾"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"僅限優先"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"僅限鬧鐘"</string> <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"不允許\n干擾"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"僅限\n優先"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"僅限\n鬧鐘"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後完成充電)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切換使用者"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切換使用者,目前使用者是<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +389,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」為音量對話框"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸即可復原。"</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"封鎖干擾"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 98ae37c..77156c0 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"開啟節約耗電量模式"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"設定"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"自動旋轉螢幕"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"關閉"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"自動"</string> @@ -182,6 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飛航模式已開啟。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"「零打擾」設定為開啟,只會顯示優先通知。"</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"「零打擾」設定為開啟,不接受任何干擾。"</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"「零打擾」設定為開啟,只會顯示鬧鐘。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"「零打擾」設定為關閉。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已停用「零打擾」設定。"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"已啟用「零打擾」設定。"</string> @@ -232,9 +232,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> <string name="start_dreams" msgid="7219575858348719790">"休眠模式"</string> <string name="ethernet_label" msgid="7967563676324087464">"乙太網路"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飛航模式"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"零打擾"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"僅顯示優先通知"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"僅允許鬧鐘"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"無干擾"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"藍牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"藍牙 (<xliff:g id="NUMBER">%d</xliff:g> 個裝置)"</string> @@ -305,6 +305,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"僅限優先干擾"</string> + <string name="zen_alarms" msgid="5055668280767657759">"僅允許鬧鐘"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次鬧鐘時間:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次鬧鐘時間:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string> @@ -314,9 +315,15 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑動即可解鎖"</string> <string name="phone_hint" msgid="3101468054914424646">"向右滑動可使用手機功能"</string> <string name="camera_hint" msgid="5241441720959174226">"向左滑動可使用相機功能"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"無"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"優先"</string> + <!-- no translation found for interruption_level_none (8284541443482072628) --> + <skip /> + <!-- no translation found for interruption_level_priority (6426766465363855505) --> + <skip /> + <string name="interruption_level_alarms" msgid="5226306993448328896">"僅允許鬧鐘"</string> <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"無\n干擾"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"僅允許\n優先通知"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"僅允許\n鬧鐘"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後充飽)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切換使用者"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切換使用者,目前使用者是<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -384,4 +391,6 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」現在是預設的音量控制對話方塊。"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸這裡即可恢復原始設定。"</string> + <!-- no translation found for volume_zen_switch_text (6388350641576595452) --> + <skip /> </resources> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 0136eb1..6910873 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -44,7 +44,6 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Vula isilondolozi sebhethri"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Izilungiselelo"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"I-Wi-Fi"</string> - <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Imodi yendiza"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ukuzulazula kweskrini okuzenzakalelayo"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"THULISA"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OKUZENZAKALELAYO"</string> @@ -180,6 +179,7 @@ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Imodi yendiza ivuliwe."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Ukungaphazamisi kuvuliwe, okubalulekile kuphela."</string> <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Ungaphazamisi, akukho ukuphazamiseka."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ukungaphazamisi kuvuliwe, ama-alamu kuphela."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Ukungaphazamisi kuvaliwe."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Ukungaphazamisi kuvaliwe."</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Ukungaphazamisi kuvuliwe."</string> @@ -230,9 +230,9 @@ <string name="dessert_case" msgid="1295161776223959221">"Isikhwama soswidi"</string> <string name="start_dreams" msgid="7219575858348719790">"Ukuphupha emini"</string> <string name="ethernet_label" msgid="7967563676324087464">"I-Ethernet"</string> - <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Isimo sendiza"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ungaphazamisi"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Okubalulekile kuphela"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ama-alamu kuphela"</string> <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Azikho iziphazamiso"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"I-Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"I-Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> amadivayisi)"</string> @@ -303,6 +303,7 @@ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Akukho ukuphazamiseka. Nama-alamu imbala."</string> <string name="zen_no_interruptions" msgid="7970973750143632592">"Azikho iziphazamiso"</string> <string name="zen_important_interruptions" msgid="3477041776609757628">"Iziphazamiso ezibalulekile kuphela"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ama-alamu kuphela"</string> <string name="zen_alarm_information_time" msgid="5235772206174372272">"I-alamu yakho elandelayo ingo<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"I-alamu yakho elandelayo ingo-<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> <string name="zen_alarm_warning" msgid="6873910860111498041">"Ngeke uzwe i-alamu yakho ngo-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> @@ -312,9 +313,13 @@ <string name="keyguard_unlock" msgid="8043466894212841998">"Swayiphela phezulu ukuze uvule"</string> <string name="phone_hint" msgid="3101468054914424646">"Swayiphela ngakwesokudla ukuze uthole ifoni"</string> <string name="camera_hint" msgid="5241441720959174226">"Swayiphela ngakwesokunxele ukuze uthole ikhamela"</string> - <string name="interruption_level_none" msgid="3831278883136066646">"Lutho"</string> - <string name="interruption_level_priority" msgid="6517366750688942030">"Okubalulekile"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Azikho iziphazamiso"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Okubalulekile kuphela"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Ama-alamu kuphela"</string> <string name="interruption_level_all" msgid="1330581184930945764">"Konke"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Akukho\nukuphazamiseka"</string> + <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Okubalulekile\nkuphela"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ama-alamu\nkuphela"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Iyashaja (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ize igcwale)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Shintsha umsebenzisi"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Shintsha umsebenzisi, umsebenzisi wamanje ngu-<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> @@ -382,4 +387,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Phika"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> yingxoxo yevolumu"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Thinta ukuze ubuyisele kokwangempela."</string> + <string name="volume_zen_switch_text" msgid="6388350641576595452">"Vimba iziphazamiso"</string> </resources> diff --git a/packages/SystemUI/res/values/attrs.xml b/packages/SystemUI/res/values/attrs.xml index 6ecdca3..24f92ef 100644 --- a/packages/SystemUI/res/values/attrs.xml +++ b/packages/SystemUI/res/values/attrs.xml @@ -72,5 +72,15 @@ <attr name="verticalSpacing" format="dimension" /> <attr name="horizontalSpacing" format="dimension" /> </declare-styleable> + + <!-- Theme for icons in the status bar (light/dark). background/fillColor is used for dual tone + icons like wifi and signal, and singleToneColor is used for icons with only one tone. + Contract: Pixel with fillColor blended over backgroundColor blended over translucent should + equal to singleToneColor blended over translucent. --> + <declare-styleable name="TonedIcon"> + <attr name="backgroundColor" format="integer" /> + <attr name="fillColor" format="integer" /> + <attr name="singleToneColor" format="integer" /> + </declare-styleable> </resources> diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml index d4aeab6..ded7c4e 100644 --- a/packages/SystemUI/res/values/colors.xml +++ b/packages/SystemUI/res/values/colors.xml @@ -108,8 +108,7 @@ <color name="notification_guts_text_color">#b2FFFFFF</color> <color name="notification_guts_btn_color">#FFFFFFFF</color> - <color name="search_panel_circle_color">#ffffff</color> - <color name="search_panel_ripple_color">#ffbbbbbb</color> + <color name="assist_orb_color">#ffffff</color> <color name="keyguard_user_switcher_background_gradient_color">#77000000</color> <color name="doze_small_icon_background_color">#ff434343</color> @@ -130,5 +129,12 @@ <color name="segmented_button_selected">#FFFFFFFF</color> <color name="segmented_button_unselected">#B3B0BEC5</color><!-- 70% blue grey 200 --> <color name="volume_panel_divider">#1FFFFFFF</color><!-- 12% white --> - <color name="light_mode_icon_color">#FF616161</color><!-- grey 700 --> + + <color name="dark_mode_icon_color_single_tone">#99000000</color> + <color name="dark_mode_icon_color_dual_tone_background">#3d000000</color> + <color name="dark_mode_icon_color_dual_tone_fill">#7a000000</color> + + <color name="light_mode_icon_color_single_tone">#ffffff</color> + <color name="light_mode_icon_color_dual_tone_background">#4dffffff</color> + <color name="light_mode_icon_color_dual_tone_fill">#ffffff</color> </resources> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index c24cd64..b6ff1ce 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -471,22 +471,23 @@ <dimen name="go_to_full_shade_appearing_translation">200dp</dimen> <!-- The diameter of the search panel circle. --> - <dimen name="search_panel_circle_size">88dp</dimen> + <dimen name="assist_orb_size">144dp</dimen> - <!-- The margin to the edge of the screen from where the circle starts to appear --> - <dimen name="search_panel_circle_base_margin">80dp</dimen> + <!-- The margin to the edge of the screen from where the orb starts to appear --> + <dimen name="assist_orb_base_margin">22dp</dimen> - <!-- The amount the circle translates when appearing --> - <dimen name="search_panel_circle_travel_distance">80dp</dimen> + <!-- The amount the orb translates when appearing --> + <dimen name="assist_orb_travel_distance">26dp</dimen> - <!-- The elevation of the search panel circle --> - <dimen name="search_panel_circle_elevation">12dp</dimen> + <!-- The elevation of the orb --> + <dimen name="assist_orb_elevation">12dp</dimen> - <!-- The height of the scrim behind the search panel circle. --> - <dimen name="search_panel_scrim_height">250dp</dimen> + <!-- The height of the scrim behind the orb. --> + <dimen name="assist_orb_scrim_height">250dp</dimen> - <!-- How far the user needs to drag up to invoke search. --> - <dimen name="search_panel_threshold">100dp</dimen> + <!-- The height of the scrim behind the search panel circle. Should be navigation_bar_height + + 8dp. --> + <dimen name="assist_orb_navbar_scrim_height">56dp</dimen> <!-- The width/height of the phone/camera/unlock icon view on keyguard. --> <dimen name="keyguard_affordance_height">56dp</dimen> @@ -572,4 +573,7 @@ <!-- Screen pinning inner nav bar outer circle size --> <dimen name="screen_pinning_nav_highlight_outer_size">84dp</dimen> + <!-- Padding to be used on the bottom of the fingerprint icon on Keyguard so it better aligns + with the other icons. --> + <dimen name="fingerprint_icon_additional_padding">12dp</dimen> </resources> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index b696787..779b55e 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -100,9 +100,6 @@ <!-- Name of the button that links to the Wifi settings screen. [CHAR LIMIT=NONE] --> <string name="status_bar_settings_wifi_button">Wi-Fi</string> - <!-- Label in the system panel for airplane mode (all radios are turned off)[CHAR LIMIT=30] --> - <string name="status_bar_settings_airplane">Airplane mode</string> - <!-- Label in system panel saying the device will use the orientation sensor to rotate [CHAR LIMIT=30] --> <string name="status_bar_settings_auto_rotation">Auto-rotate screen</string> @@ -438,6 +435,8 @@ <string name="accessibility_quick_settings_dnd_priority_on">Do not disturb on, priority only.</string> <!-- Content description of the do not disturb tile in quick settings when on in none (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_quick_settings_dnd_none_on">Do not disturb on, no interruptions.</string> + <!-- Content description of the do not disturb tile in quick settings when on in alarms only (not shown on the screen). [CHAR LIMIT=NONE] --> + <string name="accessibility_quick_settings_dnd_alarms_on">Do not disturb on, alarms only.</string> <!-- Content description of the do not disturb tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_quick_settings_dnd_off">Do not disturb off.</string> <!-- Announcement made when do not disturb changes to off (not shown on the screen). [CHAR LIMIT=NONE] --> @@ -566,12 +565,12 @@ <!-- Textual description of Ethernet connections --> <string name="ethernet_label">Ethernet</string> - <!-- QuickSettings: Airplane mode [CHAR LIMIT=NONE] --> - <string name="quick_settings_airplane_mode_label">Airplane mode</string> <!-- QuickSettings: Do not disturb [CHAR LIMIT=NONE] --> <string name="quick_settings_dnd_label">Do not disturb</string> <!-- QuickSettings: Do not disturb - Priority only [CHAR LIMIT=NONE] --> <string name="quick_settings_dnd_priority_label">Priority only</string> + <!-- QuickSettings: Do not disturb - Alarms only [CHAR LIMIT=NONE] --> + <string name="quick_settings_dnd_alarms_label">Alarms only</string> <!-- QuickSettings: Do not disturb - No interruptions [CHAR LIMIT=NONE] --> <string name="quick_settings_dnd_none_label">No interruptions</string> <!-- QuickSettings: Bluetooth [CHAR LIMIT=NONE] --> @@ -730,6 +729,9 @@ <!-- Zen mode: Only important interruptions. [CHAR LIMIT=40] --> <string name="zen_important_interruptions">Priority interruptions only</string> + <!-- Zen mode: Only alarms. [CHAR LIMIT=40] --> + <string name="zen_alarms">Alarms only</string> + <!-- Zen mode: Next alarm information - just a time. [CHAR LIMIT=40] --> <string name="zen_alarm_information_time">Your next alarm is at <xliff:g id="alarm_time" example="5:00 PM">%s</xliff:g></string> @@ -758,14 +760,26 @@ <string name="camera_hint">Swipe left for camera</string> <!-- Interruption level: None. [CHAR LIMIT=20] --> - <string name="interruption_level_none">None</string> + <string name="interruption_level_none">No interruptions</string> <!-- Interruption level: Priority. [CHAR LIMIT=20] --> - <string name="interruption_level_priority">Priority</string> + <string name="interruption_level_priority">Priority only</string> + + <!-- Interruption level: Alarms only. [CHAR LIMIT=20] --> + <string name="interruption_level_alarms">Alarms only</string> <!-- Interruption level: All. [CHAR LIMIT=20] --> <string name="interruption_level_all">All</string> + <!-- Interruption level: None. Optimized for narrow two-line display. [CHAR LIMIT=20] --> + <string name="interruption_level_none_twoline">No\ninterruptions</string> + + <!-- Interruption level: Priority. Optimized for narrow two-line display. [CHAR LIMIT=20] --> + <string name="interruption_level_priority_twoline">Priority\nonly</string> + + <!-- Interruption level: Alarms only. Optimized for narrow two-line display. [CHAR LIMIT=20] --> + <string name="interruption_level_alarms_twoline">Alarms\nonly</string> + <!-- Indication on the keyguard that is shown when the device is charging. [CHAR LIMIT=40]--> <string name="keyguard_indication_charging_time">Charging (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%s</xliff:g> until full)</string> @@ -965,4 +979,7 @@ <!-- VolumeUI restoration notification: text --> <string name="volumeui_notification_text">Touch to restore the original.</string> + + <!-- Volume dialog zen toggle switch title --> + <string name="volume_zen_switch_text">@*android:string/zen_mode_feature_name</string> </resources> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 07fcb82..107a8ec 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -246,12 +246,6 @@ <item name="android:layout_height">match_parent</item> </style> - <style name="SearchPanelScrim"> - <item name="android:layout_width">match_parent</item> - <item name="android:layout_height">@dimen/search_panel_scrim_height</item> - <item name="android:layout_gravity">bottom</item> - </style> - <style name="UserDetailView"> <item name="numColumns">3</item> </style> @@ -265,4 +259,15 @@ <item name="android:backgroundDimEnabled">false</item> <item name="android:alertDialogTheme">@style/Theme.SystemUI.Dialog.Alert</item> </style> + + <style name="DualToneLightTheme"> + <item name="backgroundColor">@color/light_mode_icon_color_dual_tone_background</item> + <item name="fillColor">@color/light_mode_icon_color_dual_tone_fill</item> + <item name="singleToneColor">@color/light_mode_icon_color_single_tone</item> + </style> + <style name="DualToneDarkTheme"> + <item name="backgroundColor">@color/dark_mode_icon_color_dual_tone_background</item> + <item name="fillColor">@color/dark_mode_icon_color_dual_tone_fill</item> + <item name="singleToneColor">@color/dark_mode_icon_color_single_tone</item> + </style> </resources> diff --git a/packages/SystemUI/res/values/volume.xml b/packages/SystemUI/res/values/volume.xml new file mode 100644 index 0000000..f516104 --- /dev/null +++ b/packages/SystemUI/res/values/volume.xml @@ -0,0 +1,87 @@ +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <item name="volume_expand_animation_duration" type="integer">300</item> + + <color name="volume_icon_color">#ffffffff</color> + <color name="volume_settings_icon_color">#7fffffff</color> + + <dimen name="volume_slider_interspacing">2dp</dimen> + <dimen name="volume_offset_top">0dp</dimen> + <dimen name="volume_button_size">48dp</dimen> + + <item name="volume_secondary_alpha" format="float" type="dimen">0.3</item> + + <style name="VolumeDialogAnimations"> + <item name="android:windowEnterAnimation">@android:anim/fade_in</item> + <item name="android:windowExitAnimation">@android:anim/fade_out</item> + </style> + + <style name="VolumeButtons" parent="@android:style/Widget.Material.Button.Borderless"> + <item name="android:background">@drawable/btn_borderless_rect</item> + </style> + + <style name="TextAppearance" /> + + <style name="TextAppearance.Volume"> + <item name="android:textStyle">normal</item> + <item name="android:textColor">#ffffffff</item> + <item name="android:fontFamily">sans-serif</item> + </style> + + <style name="TextAppearance.Volume.ZenSwitch"> + <item name="android:textSize">16sp</item> + <item name="android:fontFamily">sans-serif-medium</item> + </style> + + <style name="TextAppearance.Volume.ZenSwitchSummary"> + <item name="android:textSize">14sp</item> + <item name="android:fontFamily">sans-serif-medium</item> + </style> + + <style name="TextAppearance.Volume.ZenSwitchDetail"> + <item name="android:textSize">14sp</item> + <item name="android:fontFamily">sans-serif</item> + <item name="android:textColor">#ffb0b3c5</item> + </style> + + <string-array name="volume_stream_titles" translatable="false"> + <item>Voice calls</item> <!-- STREAM_VOICE_CALL --> + <item>System</item> <!-- STREAM_SYSTEM --> + <item>Notifications</item> <!-- STREAM_RING --> + <item>Media</item> <!-- STREAM_MUSIC --> + <item>Alarms</item> <!-- STREAM_ALARM --> + <item></item> <!-- STREAM_NOTIFICATION --> + <item>Bluetooth calls</item> <!-- STREAM_BLUETOOTH_SCO --> + <item></item> <!-- STREAM_SYSTEM_ENFORCED --> + <item></item> <!-- STREAM_DTMF --> + <item></item> <!-- STREAM_TTS --> + </string-array> + + <string name="volume_dnd_is_on" translatable="false">Do not disturb is on</string> + <string name="volume_turn_off" translatable="false">Turn off</string> + <string name="volume_stream_muted" translatable="false">%s silent</string> + <string name="volume_stream_vibrate" translatable="false">%s vibrate</string> + <string name="volume_stream_suppressed" translatable="false">%1$s silent — %2$s</string> + <string name="volume_stream_muted_dnd" translatable="false">%s silent — No interruptions</string> + <string name="volume_stream_limited_dnd" translatable="false">%s — Priority only</string> + <string name="volume_stream_vibrate_dnd" translatable="false">%s vibrate — Priority only</string> + <string name="volume_dnd_ends_in" translatable="false">Do not disturb ends in %s</string> + <string name="volume_dnd_ends_at" translatable="false">Do not disturb ends at %s</string> + <string name="volume_end_now" translatable="false">End now</string> + +</resources>
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java index 2e95498..292c9c2 100755 --- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java @@ -16,6 +16,7 @@ package com.android.systemui; +import android.animation.ArgbEvaluator; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -80,6 +81,12 @@ public class BatteryMeterView extends View implements DemoMode, private BatteryController mBatteryController; private boolean mPowerSaveEnabled; + private int mDarkModeBackgroundColor; + private int mDarkModeFillColor; + + private int mLightModeBackgroundColor; + private int mLightModeFillColor; + private class BatteryTracker extends BroadcastReceiver { public static final int UNKNOWN_LEVEL = -1; @@ -245,6 +252,13 @@ public class BatteryMeterView extends View implements DemoMode, mBoltPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mBoltPaint.setColor(context.getColor(R.color.batterymeter_bolt_color)); mBoltPoints = loadBoltPoints(res); + + mDarkModeBackgroundColor = + context.getColor(R.color.dark_mode_icon_color_dual_tone_background); + mDarkModeFillColor = context.getColor(R.color.dark_mode_icon_color_dual_tone_fill); + mLightModeBackgroundColor = + context.getColor(R.color.light_mode_icon_color_dual_tone_background); + mLightModeFillColor = context.getColor(R.color.light_mode_icon_color_dual_tone_fill); } public void setBatteryController(BatteryController batteryController) { @@ -309,14 +323,30 @@ public class BatteryMeterView extends View implements DemoMode, return color; } - public void setIconTint(int tint) { - mIconTint = tint; - mFramePaint.setColorFilter(new PorterDuffColorFilter(tint, PorterDuff.Mode.SRC_ATOP)); - mBoltPaint.setColor(tint); - mChargeColor = tint; + public void setDarkIntensity(float darkIntensity) { + int backgroundColor = getBackgroundColor(darkIntensity); + int fillColor = getFillColor(darkIntensity); + mIconTint = fillColor; + mFramePaint.setColor(backgroundColor); + mBoltPaint.setColor(backgroundColor); + mChargeColor = fillColor; invalidate(); } + private int getBackgroundColor(float darkIntensity) { + return getColorForDarkIntensity( + darkIntensity, mLightModeBackgroundColor, mDarkModeBackgroundColor); + } + + private int getFillColor(float darkIntensity) { + return getColorForDarkIntensity( + darkIntensity, mLightModeFillColor, mDarkModeFillColor); + } + + private int getColorForDarkIntensity(float darkIntensity, int lightColor, int darkColor) { + return (int) ArgbEvaluator.getInstance().evaluate(darkIntensity, lightColor, darkColor); + } + @Override public void draw(Canvas c) { BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java new file mode 100644 index 0000000..9df67fd --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/Prefs.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui; + +import android.annotation.StringDef; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.Map; + +public final class Prefs { + private Prefs() {} // no instantation + + @Retention(RetentionPolicy.SOURCE) + @StringDef({ + Key.SEARCH_APP_WIDGET_ID, + Key.DEBUG_MODE_ENABLED, + Key.HOTSPOT_TILE_LAST_USED, + Key.COLOR_INVERSION_TILE_LAST_USED, + Key.DND_TILE_VISIBLE, + Key.DND_TILE_COMBINED_ICON + }) + public @interface Key { + String SEARCH_APP_WIDGET_ID = "searchAppWidgetId"; + String DEBUG_MODE_ENABLED = "debugModeEnabled"; + String HOTSPOT_TILE_LAST_USED = "HotspotTileLastUsed"; + String COLOR_INVERSION_TILE_LAST_USED = "ColorInversionTileLastUsed"; + String DND_TILE_VISIBLE = "DndTileVisible"; + String DND_TILE_COMBINED_ICON = "DndTileCombinedIcon"; + } + + public static boolean getBoolean(Context context, @Key String key, boolean defaultValue) { + return get(context).getBoolean(key, defaultValue); + } + + public static void putBoolean(Context context, @Key String key, boolean value) { + get(context).edit().putBoolean(key, value).apply(); + } + + public static int getInt(Context context, @Key String key, int defaultValue) { + return get(context).getInt(key, defaultValue); + } + + public static void putInt(Context context, @Key String key, int value) { + get(context).edit().putInt(key, value).apply(); + } + + public static long getLong(Context context, @Key String key, long defaultValue) { + return get(context).getLong(key, defaultValue); + } + + public static void putLong(Context context, @Key String key, long value) { + get(context).edit().putLong(key, value).apply(); + } + + public static Map<String, ?> getAll(Context context) { + return get(context).getAll(); + } + + public static void remove(Context context, @Key String key) { + get(context).edit().remove(key).apply(); + } + + public static void registerListener(Context context, + OnSharedPreferenceChangeListener listener) { + get(context).registerOnSharedPreferenceChangeListener(listener); + } + + public static void unregisterListener(Context context, + OnSharedPreferenceChangeListener listener) { + get(context).unregisterOnSharedPreferenceChangeListener(listener); + } + + private static SharedPreferences get(Context context) { + return context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/SearchPanelCircleView.java b/packages/SystemUI/src/com/android/systemui/SearchPanelCircleView.java deleted file mode 100644 index f33e2b8..0000000 --- a/packages/SystemUI/src/com/android/systemui/SearchPanelCircleView.java +++ /dev/null @@ -1,592 +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.systemui; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.PropertyValuesHolder; -import android.animation.ValueAnimator; -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Outline; -import android.graphics.Paint; -import android.graphics.Rect; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewOutlineProvider; -import android.view.animation.AnimationUtils; -import android.view.animation.Interpolator; -import android.view.animation.LinearInterpolator; -import android.widget.FrameLayout; -import android.widget.ImageView; -import com.android.systemui.statusbar.phone.PhoneStatusBar; - -import java.util.ArrayList; - -public class SearchPanelCircleView extends FrameLayout { - - private final int mCircleMinSize; - private final int mBaseMargin; - private final int mStaticOffset; - private final Paint mBackgroundPaint = new Paint(); - private final Paint mRipplePaint = new Paint(); - private final Rect mCircleRect = new Rect(); - private final Rect mStaticRect = new Rect(); - private final Interpolator mFastOutSlowInInterpolator; - private final Interpolator mAppearInterpolator; - private final Interpolator mDisappearInterpolator; - - private boolean mClipToOutline; - private final int mMaxElevation; - private boolean mAnimatingOut; - private float mOutlineAlpha; - private float mOffset; - private float mCircleSize; - private boolean mHorizontal; - private boolean mCircleHidden; - private ImageView mLogo; - private boolean mDraggedFarEnough; - private boolean mOffsetAnimatingIn; - private float mCircleAnimationEndValue; - private ArrayList<Ripple> mRipples = new ArrayList<Ripple>(); - - private ValueAnimator mOffsetAnimator; - private ValueAnimator mCircleAnimator; - private ValueAnimator mFadeOutAnimator; - private ValueAnimator.AnimatorUpdateListener mCircleUpdateListener - = new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - applyCircleSize((float) animation.getAnimatedValue()); - updateElevation(); - } - }; - private AnimatorListenerAdapter mClearAnimatorListener = new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mCircleAnimator = null; - } - }; - private ValueAnimator.AnimatorUpdateListener mOffsetUpdateListener - = new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - setOffset((float) animation.getAnimatedValue()); - } - }; - - - public SearchPanelCircleView(Context context) { - this(context, null); - } - - public SearchPanelCircleView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SearchPanelCircleView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public SearchPanelCircleView(Context context, AttributeSet attrs, int defStyleAttr, - int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - setOutlineProvider(new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - if (mCircleSize > 0.0f) { - outline.setOval(mCircleRect); - } else { - outline.setEmpty(); - } - outline.setAlpha(mOutlineAlpha); - } - }); - setWillNotDraw(false); - mCircleMinSize = context.getResources().getDimensionPixelSize( - R.dimen.search_panel_circle_size); - mBaseMargin = context.getResources().getDimensionPixelSize( - R.dimen.search_panel_circle_base_margin); - mStaticOffset = context.getResources().getDimensionPixelSize( - R.dimen.search_panel_circle_travel_distance); - mMaxElevation = context.getResources().getDimensionPixelSize( - R.dimen.search_panel_circle_elevation); - mAppearInterpolator = AnimationUtils.loadInterpolator(mContext, - android.R.interpolator.linear_out_slow_in); - mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(mContext, - android.R.interpolator.fast_out_slow_in); - mDisappearInterpolator = AnimationUtils.loadInterpolator(mContext, - android.R.interpolator.fast_out_linear_in); - mBackgroundPaint.setAntiAlias(true); - mBackgroundPaint.setColor(context.getColor(R.color.search_panel_circle_color)); - mRipplePaint.setColor(context.getColor(R.color.search_panel_ripple_color)); - mRipplePaint.setAntiAlias(true); - } - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - drawBackground(canvas); - drawRipples(canvas); - } - - private void drawRipples(Canvas canvas) { - for (int i = 0; i < mRipples.size(); i++) { - Ripple ripple = mRipples.get(i); - ripple.draw(canvas); - } - } - - private void drawBackground(Canvas canvas) { - canvas.drawCircle(mCircleRect.centerX(), mCircleRect.centerY(), mCircleSize / 2, - mBackgroundPaint); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - mLogo = (ImageView) findViewById(R.id.search_logo); - } - - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - mLogo.layout(0, 0, mLogo.getMeasuredWidth(), mLogo.getMeasuredHeight()); - if (changed) { - updateCircleRect(mStaticRect, mStaticOffset, true); - } - } - - public void setCircleSize(float circleSize) { - setCircleSize(circleSize, false, null, 0, null); - } - - public void setCircleSize(float circleSize, boolean animated, final Runnable endRunnable, - int startDelay, Interpolator interpolator) { - boolean isAnimating = mCircleAnimator != null; - boolean animationPending = isAnimating && !mCircleAnimator.isRunning(); - boolean animatingOut = isAnimating && mCircleAnimationEndValue == 0; - if (animated || animationPending || animatingOut) { - if (isAnimating) { - if (circleSize == mCircleAnimationEndValue) { - return; - } - mCircleAnimator.cancel(); - } - mCircleAnimator = ValueAnimator.ofFloat(mCircleSize, circleSize); - mCircleAnimator.addUpdateListener(mCircleUpdateListener); - mCircleAnimator.addListener(mClearAnimatorListener); - mCircleAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (endRunnable != null) { - endRunnable.run(); - } - } - }); - Interpolator desiredInterpolator = interpolator != null ? interpolator - : circleSize == 0 ? mDisappearInterpolator : mAppearInterpolator; - mCircleAnimator.setInterpolator(desiredInterpolator); - mCircleAnimator.setDuration(300); - mCircleAnimator.setStartDelay(startDelay); - mCircleAnimator.start(); - mCircleAnimationEndValue = circleSize; - } else { - if (isAnimating) { - float diff = circleSize - mCircleAnimationEndValue; - PropertyValuesHolder[] values = mCircleAnimator.getValues(); - values[0].setFloatValues(diff, circleSize); - mCircleAnimator.setCurrentPlayTime(mCircleAnimator.getCurrentPlayTime()); - mCircleAnimationEndValue = circleSize; - } else { - applyCircleSize(circleSize); - updateElevation(); - } - } - } - - private void applyCircleSize(float circleSize) { - mCircleSize = circleSize; - updateLayout(); - } - - private void updateElevation() { - float t = (mStaticOffset - mOffset) / (float) mStaticOffset; - t = 1.0f - Math.max(t, 0.0f); - float offset = t * mMaxElevation; - setElevation(offset); - } - - /** - * Sets the offset to the edge of the screen. By default this not not animated. - * - * @param offset The offset to apply. - */ - public void setOffset(float offset) { - setOffset(offset, false, 0, null, null); - } - - /** - * Sets the offset to the edge of the screen. - * - * @param offset The offset to apply. - * @param animate Whether an animation should be performed. - * @param startDelay The desired start delay if animated. - * @param interpolator The desired interpolator if animated. If null, - * a default interpolator will be taken designed for appearing or - * disappearing. - * @param endRunnable The end runnable which should be executed when the animation is finished. - */ - private void setOffset(float offset, boolean animate, int startDelay, - Interpolator interpolator, final Runnable endRunnable) { - if (!animate) { - mOffset = offset; - updateLayout(); - if (endRunnable != null) { - endRunnable.run(); - } - } else { - if (mOffsetAnimator != null) { - mOffsetAnimator.removeAllListeners(); - mOffsetAnimator.cancel(); - } - mOffsetAnimator = ValueAnimator.ofFloat(mOffset, offset); - mOffsetAnimator.addUpdateListener(mOffsetUpdateListener); - mOffsetAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mOffsetAnimator = null; - if (endRunnable != null) { - endRunnable.run(); - } - } - }); - Interpolator desiredInterpolator = interpolator != null ? - interpolator : offset == 0 ? mDisappearInterpolator : mAppearInterpolator; - mOffsetAnimator.setInterpolator(desiredInterpolator); - mOffsetAnimator.setStartDelay(startDelay); - mOffsetAnimator.setDuration(300); - mOffsetAnimator.start(); - mOffsetAnimatingIn = offset != 0; - } - } - - private void updateLayout() { - updateCircleRect(); - updateLogo(); - invalidateOutline(); - invalidate(); - updateClipping(); - } - - private void updateClipping() { - boolean clip = mCircleSize < mCircleMinSize || !mRipples.isEmpty(); - if (clip != mClipToOutline) { - setClipToOutline(clip); - mClipToOutline = clip; - } - } - - private void updateLogo() { - boolean exitAnimationRunning = mFadeOutAnimator != null; - Rect rect = exitAnimationRunning ? mCircleRect : mStaticRect; - float translationX = (rect.left + rect.right) / 2.0f - mLogo.getWidth() / 2.0f; - float translationY = (rect.top + rect.bottom) / 2.0f - mLogo.getHeight() / 2.0f; - float t = (mStaticOffset - mOffset) / (float) mStaticOffset; - if (!exitAnimationRunning) { - if (mHorizontal) { - translationX += t * mStaticOffset * 0.3f; - } else { - translationY += t * mStaticOffset * 0.3f; - } - float alpha = 1.0f-t; - alpha = Math.max((alpha - 0.5f) * 2.0f, 0); - mLogo.setAlpha(alpha); - } else { - translationY += (mOffset - mStaticOffset) / 2; - } - mLogo.setTranslationX(translationX); - mLogo.setTranslationY(translationY); - } - - private void updateCircleRect() { - updateCircleRect(mCircleRect, mOffset, false); - } - - private void updateCircleRect(Rect rect, float offset, boolean useStaticSize) { - int left, top; - float circleSize = useStaticSize ? mCircleMinSize : mCircleSize; - if (mHorizontal) { - left = (int) (getWidth() - circleSize / 2 - mBaseMargin - offset); - top = (int) ((getHeight() - circleSize) / 2); - } else { - left = (int) (getWidth() - circleSize) / 2; - top = (int) (getHeight() - circleSize / 2 - mBaseMargin - offset); - } - rect.set(left, top, (int) (left + circleSize), (int) (top + circleSize)); - } - - public void setHorizontal(boolean horizontal) { - mHorizontal = horizontal; - updateCircleRect(mStaticRect, mStaticOffset, true); - updateLayout(); - } - - public void setDragDistance(float distance) { - if (!mAnimatingOut && (!mCircleHidden || mDraggedFarEnough)) { - float circleSize = mCircleMinSize + rubberband(distance); - setCircleSize(circleSize); - } - - } - - private float rubberband(float diff) { - return (float) Math.pow(Math.abs(diff), 0.6f); - } - - public void startAbortAnimation(Runnable endRunnable) { - if (mAnimatingOut) { - if (endRunnable != null) { - endRunnable.run(); - } - return; - } - setCircleSize(0, true, null, 0, null); - setOffset(0, true, 0, null, endRunnable); - mCircleHidden = true; - } - - public void startEnterAnimation() { - if (mAnimatingOut) { - return; - } - applyCircleSize(0); - setOffset(0); - setCircleSize(mCircleMinSize, true, null, 50, null); - setOffset(mStaticOffset, true, 50, null, null); - mCircleHidden = false; - } - - - public void startExitAnimation(final Runnable endRunnable) { - if (!mHorizontal) { - float offset = getHeight() / 2.0f; - setOffset(offset - mBaseMargin, true, 50, mFastOutSlowInInterpolator, null); - float xMax = getWidth() / 2; - float yMax = getHeight() / 2; - float maxRadius = (float) Math.ceil(Math.hypot(xMax, yMax) * 2); - setCircleSize(maxRadius, true, null, 50, mFastOutSlowInInterpolator); - performExitFadeOutAnimation(50, 300, endRunnable); - } else { - - // when in landscape, we don't wan't the animation as it interferes with the general - // rotation animation to the homescreen. - endRunnable.run(); - } - } - - private void performExitFadeOutAnimation(int startDelay, int duration, - final Runnable endRunnable) { - mFadeOutAnimator = ValueAnimator.ofFloat(mBackgroundPaint.getAlpha() / 255.0f, 0.0f); - - // Linear since we are animating multiple values - mFadeOutAnimator.setInterpolator(new LinearInterpolator()); - mFadeOutAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - float animatedFraction = animation.getAnimatedFraction(); - float logoValue = animatedFraction > 0.5f ? 1.0f : animatedFraction / 0.5f; - logoValue = PhoneStatusBar.ALPHA_OUT.getInterpolation(1.0f - logoValue); - float backgroundValue = animatedFraction < 0.2f ? 0.0f : - PhoneStatusBar.ALPHA_OUT.getInterpolation((animatedFraction - 0.2f) / 0.8f); - backgroundValue = 1.0f - backgroundValue; - mBackgroundPaint.setAlpha((int) (backgroundValue * 255)); - mOutlineAlpha = backgroundValue; - mLogo.setAlpha(logoValue); - invalidateOutline(); - invalidate(); - } - }); - mFadeOutAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (endRunnable != null) { - endRunnable.run(); - } - mLogo.setAlpha(1.0f); - mBackgroundPaint.setAlpha(255); - mOutlineAlpha = 1.0f; - mFadeOutAnimator = null; - } - }); - mFadeOutAnimator.setStartDelay(startDelay); - mFadeOutAnimator.setDuration(duration); - mFadeOutAnimator.start(); - } - - public void setDraggedFarEnough(boolean farEnough) { - if (farEnough != mDraggedFarEnough) { - if (farEnough) { - if (mCircleHidden) { - startEnterAnimation(); - } - if (mOffsetAnimator == null) { - addRipple(); - } else { - postDelayed(new Runnable() { - @Override - public void run() { - addRipple(); - } - }, 100); - } - } else { - startAbortAnimation(null); - } - mDraggedFarEnough = farEnough; - } - - } - - private void addRipple() { - if (mRipples.size() > 1) { - // we only want 2 ripples at the time - return; - } - float xInterpolation, yInterpolation; - if (mHorizontal) { - xInterpolation = 0.75f; - yInterpolation = 0.5f; - } else { - xInterpolation = 0.5f; - yInterpolation = 0.75f; - } - float circleCenterX = mStaticRect.left * (1.0f - xInterpolation) - + mStaticRect.right * xInterpolation; - float circleCenterY = mStaticRect.top * (1.0f - yInterpolation) - + mStaticRect.bottom * yInterpolation; - float radius = Math.max(mCircleSize, mCircleMinSize * 1.25f) * 0.75f; - Ripple ripple = new Ripple(circleCenterX, circleCenterY, radius); - ripple.start(); - } - - public void reset() { - mDraggedFarEnough = false; - mAnimatingOut = false; - mCircleHidden = true; - mClipToOutline = false; - if (mFadeOutAnimator != null) { - mFadeOutAnimator.cancel(); - } - mBackgroundPaint.setAlpha(255); - mOutlineAlpha = 1.0f; - } - - /** - * Check if an animation is currently running - * - * @param enterAnimation Is the animating queried the enter animation. - */ - public boolean isAnimationRunning(boolean enterAnimation) { - return mOffsetAnimator != null && (enterAnimation == mOffsetAnimatingIn); - } - - public void performOnAnimationFinished(final Runnable runnable) { - if (mOffsetAnimator != null) { - mOffsetAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (runnable != null) { - runnable.run(); - } - } - }); - } else { - if (runnable != null) { - runnable.run(); - } - } - } - - public void setAnimatingOut(boolean animatingOut) { - mAnimatingOut = animatingOut; - } - - /** - * @return Whether the circle is currently launching to the search activity or aborting the - * interaction - */ - public boolean isAnimatingOut() { - return mAnimatingOut; - } - - @Override - public boolean hasOverlappingRendering() { - // not really true but it's ok during an animation, as it's never permanent - return false; - } - - private class Ripple { - float x; - float y; - float radius; - float endRadius; - float alpha; - - Ripple(float x, float y, float endRadius) { - this.x = x; - this.y = y; - this.endRadius = endRadius; - } - - void start() { - ValueAnimator animator = ValueAnimator.ofFloat(0.0f, 1.0f); - - // Linear since we are animating multiple values - animator.setInterpolator(new LinearInterpolator()); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - alpha = 1.0f - animation.getAnimatedFraction(); - alpha = mDisappearInterpolator.getInterpolation(alpha); - radius = mAppearInterpolator.getInterpolation(animation.getAnimatedFraction()); - radius *= endRadius; - invalidate(); - } - }); - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mRipples.remove(Ripple.this); - updateClipping(); - } - - public void onAnimationStart(Animator animation) { - mRipples.add(Ripple.this); - updateClipping(); - } - }); - animator.setDuration(400); - animator.start(); - } - - public void draw(Canvas canvas) { - mRipplePaint.setAlpha((int) (alpha * 255)); - canvas.drawCircle(x, y, radius, mRipplePaint); - } - } - -} diff --git a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java b/packages/SystemUI/src/com/android/systemui/SearchPanelView.java deleted file mode 100644 index 445b499..0000000 --- a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java +++ /dev/null @@ -1,345 +0,0 @@ -/* - * 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.systemui; - -import android.app.ActivityOptions; -import android.app.SearchManager; -import android.content.ActivityNotFoundException; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.res.Resources; -import android.media.AudioAttributes; -import android.os.AsyncTask; -import android.os.Bundle; -import android.os.UserHandle; -import android.os.Vibrator; -import android.provider.Settings; -import android.util.AttributeSet; -import android.util.Log; -import android.view.MotionEvent; -import android.view.View; -import android.widget.FrameLayout; -import android.widget.ImageView; - -import com.android.systemui.statusbar.BaseStatusBar; -import com.android.systemui.statusbar.CommandQueue; -import com.android.systemui.statusbar.StatusBarPanel; -import com.android.systemui.statusbar.phone.PhoneStatusBar; - -public class SearchPanelView extends FrameLayout implements StatusBarPanel { - - private static final String TAG = "SearchPanelView"; - private static final String ASSIST_ICON_METADATA_NAME = - "com.android.systemui.action_assist_icon"; - - private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder() - .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) - .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) - .build(); - - private final Context mContext; - private BaseStatusBar mBar; - - private SearchPanelCircleView mCircle; - private ImageView mLogo; - private View mScrim; - - private int mThreshold; - private boolean mHorizontal; - - private boolean mLaunching; - private boolean mDragging; - private boolean mDraggedFarEnough; - private float mStartTouch; - private float mStartDrag; - private boolean mLaunchPending; - - public SearchPanelView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SearchPanelView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - mContext = context; - mThreshold = context.getResources().getDimensionPixelSize(R.dimen.search_panel_threshold); - } - - private void startAssistActivity() { - if (!mBar.isDeviceProvisioned()) return; - - // Close Recent Apps if needed - mBar.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_SEARCH_PANEL); - - final Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) - .getAssistIntent(mContext, true, UserHandle.USER_CURRENT); - if (intent == null) return; - - try { - final ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext, - R.anim.search_launch_enter, R.anim.search_launch_exit); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - AsyncTask.execute(new Runnable() { - @Override - public void run() { - mContext.startActivityAsUser(intent, opts.toBundle(), - new UserHandle(UserHandle.USER_CURRENT)); - } - }); - } catch (ActivityNotFoundException e) { - Log.w(TAG, "Activity not found for " + intent.getAction()); - } - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - mCircle = (SearchPanelCircleView) findViewById(R.id.search_panel_circle); - mLogo = (ImageView) findViewById(R.id.search_logo); - mScrim = findViewById(R.id.search_panel_scrim); - } - - private void maybeSwapSearchIcon() { - Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) - .getAssistIntent(mContext, false, UserHandle.USER_CURRENT); - if (intent != null) { - ComponentName component = intent.getComponent(); - replaceDrawable(mLogo, component, ASSIST_ICON_METADATA_NAME); - } else { - mLogo.setImageDrawable(null); - } - } - - public void replaceDrawable(ImageView v, ComponentName component, String name) { - if (component != null) { - try { - PackageManager packageManager = mContext.getPackageManager(); - // Look for the search icon specified in the activity meta-data - Bundle metaData = packageManager.getActivityInfo( - component, PackageManager.GET_META_DATA).metaData; - if (metaData != null) { - int iconResId = metaData.getInt(name); - if (iconResId != 0) { - Resources res = packageManager.getResourcesForActivity(component); - v.setImageDrawable(res.getDrawable(iconResId)); - return; - } - } - } catch (PackageManager.NameNotFoundException e) { - Log.w(TAG, "Failed to swap drawable; " - + component.flattenToShortString() + " not found", e); - } catch (Resources.NotFoundException nfe) { - Log.w(TAG, "Failed to swap drawable from " - + component.flattenToShortString(), nfe); - } - } - v.setImageDrawable(null); - } - - @Override - public boolean isInContentArea(int x, int y) { - return true; - } - - private void vibrate() { - Context context = getContext(); - if (Settings.System.getIntForUser(context.getContentResolver(), - Settings.System.HAPTIC_FEEDBACK_ENABLED, 1, UserHandle.USER_CURRENT) != 0) { - Resources res = context.getResources(); - Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); - vibrator.vibrate(res.getInteger(R.integer.config_search_panel_view_vibration_duration), - VIBRATION_ATTRIBUTES); - } - } - - public void show(final boolean show, boolean animate) { - if (show) { - maybeSwapSearchIcon(); - if (getVisibility() != View.VISIBLE) { - setVisibility(View.VISIBLE); - vibrate(); - if (animate) { - startEnterAnimation(); - } else { - mScrim.setAlpha(1f); - } - } - setFocusable(true); - setFocusableInTouchMode(true); - requestFocus(); - } else { - if (animate) { - startAbortAnimation(); - } else { - setVisibility(View.INVISIBLE); - } - } - } - - private void startEnterAnimation() { - mCircle.startEnterAnimation(); - mScrim.setAlpha(0f); - mScrim.animate() - .alpha(1f) - .setDuration(300) - .setStartDelay(50) - .setInterpolator(PhoneStatusBar.ALPHA_IN) - .start(); - - } - - private void startAbortAnimation() { - mCircle.startAbortAnimation(new Runnable() { - @Override - public void run() { - mCircle.setAnimatingOut(false); - setVisibility(View.INVISIBLE); - } - }); - mCircle.setAnimatingOut(true); - mScrim.animate() - .alpha(0f) - .setDuration(300) - .setStartDelay(0) - .setInterpolator(PhoneStatusBar.ALPHA_OUT); - } - - public void hide(boolean animate) { - if (mBar != null) { - // This will indirectly cause show(false, ...) to get called - mBar.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE); - } else { - if (animate) { - startAbortAnimation(); - } else { - setVisibility(View.INVISIBLE); - } - } - } - - @Override - public boolean dispatchHoverEvent(MotionEvent event) { - // Ignore hover events outside of this panel bounds since such events - // generate spurious accessibility events with the panel content when - // tapping outside of it, thus confusing the user. - final int x = (int) event.getX(); - final int y = (int) event.getY(); - if (x >= 0 && x < getWidth() && y >= 0 && y < getHeight()) { - return super.dispatchHoverEvent(event); - } - return true; - } - - /** - * Whether the panel is showing, or, if it's animating, whether it will be - * when the animation is done. - */ - public boolean isShowing() { - return getVisibility() == View.VISIBLE && !mCircle.isAnimatingOut(); - } - - public void setBar(BaseStatusBar bar) { - mBar = bar; - } - - public boolean isAssistantAvailable() { - return ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) - .getAssistIntent(mContext, false, UserHandle.USER_CURRENT) != null; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (mLaunching || mLaunchPending) { - return false; - } - int action = event.getActionMasked(); - switch (action) { - case MotionEvent.ACTION_DOWN: - mStartTouch = mHorizontal ? event.getX() : event.getY(); - mDragging = false; - mDraggedFarEnough = false; - mCircle.reset(); - break; - case MotionEvent.ACTION_MOVE: - float currentTouch = mHorizontal ? event.getX() : event.getY(); - if (getVisibility() == View.VISIBLE && !mDragging && - (!mCircle.isAnimationRunning(true /* enterAnimation */) - || Math.abs(mStartTouch - currentTouch) > mThreshold)) { - mStartDrag = currentTouch; - mDragging = true; - } - if (mDragging) { - float offset = Math.max(mStartDrag - currentTouch, 0.0f); - mCircle.setDragDistance(offset); - mDraggedFarEnough = Math.abs(mStartTouch - currentTouch) > mThreshold; - mCircle.setDraggedFarEnough(mDraggedFarEnough); - } - break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - if (mDraggedFarEnough) { - if (mCircle.isAnimationRunning(true /* enterAnimation */)) { - mLaunchPending = true; - mCircle.setAnimatingOut(true); - mCircle.performOnAnimationFinished(new Runnable() { - @Override - public void run() { - startExitAnimation(); - } - }); - } else { - startExitAnimation(); - } - } else { - startAbortAnimation(); - } - break; - } - return true; - } - - private void startExitAnimation() { - mLaunchPending = false; - if (mLaunching || getVisibility() != View.VISIBLE) { - return; - } - mLaunching = true; - startAssistActivity(); - vibrate(); - mCircle.setAnimatingOut(true); - mCircle.startExitAnimation(new Runnable() { - @Override - public void run() { - mLaunching = false; - mCircle.setAnimatingOut(false); - setVisibility(View.INVISIBLE); - } - }); - mScrim.animate() - .alpha(0f) - .setDuration(300) - .setStartDelay(0) - .setInterpolator(PhoneStatusBar.ALPHA_OUT); - } - - public void setHorizontal(boolean horizontal) { - mHorizontal = horizontal; - mCircle.setHorizontal(horizontal); - } -} diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistGestureManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistGestureManager.java new file mode 100644 index 0000000..36be355 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistGestureManager.java @@ -0,0 +1,292 @@ +package com.android.systemui.assist; + +import android.app.ActivityManager; +import android.app.ActivityOptions; +import android.app.SearchManager; +import android.content.ActivityNotFoundException; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.PixelFormat; +import android.media.AudioAttributes; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.os.UserHandle; +import android.os.Vibrator; +import android.provider.Settings; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.ImageView; + +import com.android.internal.app.IVoiceInteractionManagerService; +import com.android.internal.app.IVoiceInteractionSessionShowCallback; +import com.android.systemui.R; +import com.android.systemui.statusbar.CommandQueue; +import com.android.systemui.statusbar.phone.PhoneStatusBar; + +/** + * Class to manage everything around the assist gesture. + */ +public class AssistGestureManager { + + private static final String TAG = "AssistGestureManager"; + private static final String ASSIST_ICON_METADATA_NAME = + "com.android.systemui.action_assist_icon"; + + private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder() + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) + .build(); + + private static final long TIMEOUT_SERVICE = 2500; + private static final long TIMEOUT_ACTIVITY = 1000; + + private final Context mContext; + private final WindowManager mWindowManager; + private AssistOrbContainer mView; + private final PhoneStatusBar mBar; + private final IVoiceInteractionManagerService mVoiceInteractionManagerService; + + private IVoiceInteractionSessionShowCallback mShowCallback = + new IVoiceInteractionSessionShowCallback.Stub() { + + @Override + public void onFailed() throws RemoteException { + mView.post(mHideRunnable); + } + + @Override + public void onShown() throws RemoteException { + mView.post(mHideRunnable); + } + }; + + private Runnable mHideRunnable = new Runnable() { + @Override + public void run() { + mView.removeCallbacks(this); + mView.show(false /* show */, true /* animate */); + } + }; + + public AssistGestureManager(PhoneStatusBar bar, Context context) { + mContext = context; + mBar = bar; + mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); + mVoiceInteractionManagerService = IVoiceInteractionManagerService.Stub.asInterface( + ServiceManager.getService(Context.VOICE_INTERACTION_MANAGER_SERVICE)); + } + + public void onConfigurationChanged() { + boolean visible = false; + if (mView != null) { + visible = mView.isShowing(); + mWindowManager.removeView(mView); + } + + mView = (AssistOrbContainer) LayoutInflater.from(mContext).inflate( + R.layout.assist_orb, null); + mView.setVisibility(View.GONE); + mView.setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + WindowManager.LayoutParams lp = getLayoutParams(); + mWindowManager.addView(mView, lp); + mBar.getNavigationBarView().setDelegateView(mView); + if (visible) { + mView.show(true /* show */, false /* animate */); + } + } + + public void onGestureInvoked(boolean vibrate) { + boolean isVoiceInteractorActive = getVoiceInteractorSupportsAssistGesture(); + if (!isVoiceInteractorActive && !isAssistantIntentAvailable()) { + return; + } + if (vibrate) { + vibrate(); + } + if (!isVoiceInteractorActive || !isVoiceSessionRunning()) { + showOrb(); + mView.postDelayed(mHideRunnable, isVoiceInteractorActive + ? TIMEOUT_SERVICE + : TIMEOUT_ACTIVITY); + } + startAssist(); + } + + private WindowManager.LayoutParams getLayoutParams() { + WindowManager.LayoutParams lp = new WindowManager.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + mContext.getResources().getDimensionPixelSize(R.dimen.assist_orb_scrim_height), + WindowManager.LayoutParams.TYPE_VOICE_INTERACTION_STARTING, + WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE + | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, + PixelFormat.TRANSLUCENT); + if (ActivityManager.isHighEndGfx()) { + lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; + } + lp.gravity = Gravity.BOTTOM | Gravity.START; + lp.setTitle("AssistPreviewPanel"); + lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED + | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING; + return lp; + } + + private void showOrb() { + maybeSwapSearchIcon(); + mView.show(true /* show */, true /* animate */); + } + + private void startAssist() { + if (getVoiceInteractorSupportsAssistGesture()) { + startVoiceInteractor(); + } else { + startAssistActivity(); + } + } + + private void startAssistActivity() { + if (!mBar.isDeviceProvisioned()) { + return; + } + + // Close Recent Apps if needed + mBar.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_SEARCH_PANEL | + CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL); + + final Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) + .getAssistIntent(mContext, true, UserHandle.USER_CURRENT); + if (intent == null) { + return; + } + + try { + final ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext, + R.anim.search_launch_enter, R.anim.search_launch_exit); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + AsyncTask.execute(new Runnable() { + @Override + public void run() { + mContext.startActivityAsUser(intent, opts.toBundle(), + new UserHandle(UserHandle.USER_CURRENT)); + } + }); + } catch (ActivityNotFoundException e) { + Log.w(TAG, "Activity not found for " + intent.getAction()); + } + } + + private void startVoiceInteractor() { + try { + mVoiceInteractionManagerService.showSessionForActiveService(mShowCallback); + } catch (RemoteException e) { + Log.w(TAG, "Failed to call showSessionForActiveService", e); + } + } + + private boolean getVoiceInteractorSupportsAssistGesture() { + try { + return mVoiceInteractionManagerService.activeServiceSupportsAssistGesture(); + } catch (RemoteException e) { + Log.w(TAG, "Failed to call activeServiceSupportsAssistGesture", e); + return false; + } + } + + private ComponentName getVoiceInteractorComponentName() { + try { + return mVoiceInteractionManagerService.getActiveServiceComponentName(); + } catch (RemoteException e) { + Log.w(TAG, "Failed to call getActiveServiceComponentName", e); + return null; + } + } + + private boolean isVoiceSessionRunning() { + try { + return mVoiceInteractionManagerService.isSessionRunning(); + } catch (RemoteException e) { + Log.w(TAG, "Failed to call isSessionRunning", e); + return false; + } + } + + public void destroy() { + mWindowManager.removeViewImmediate(mView); + } + + private void maybeSwapSearchIcon() { + Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) + .getAssistIntent(mContext, false, UserHandle.USER_CURRENT); + ComponentName component = null; + boolean isService = false; + if (getVoiceInteractorSupportsAssistGesture()) { + component = getVoiceInteractorComponentName(); + isService = true; + } else if (intent != null) { + component = intent.getComponent(); + } + if (component != null) { + replaceDrawable(mView.getOrb().getLogo(), component, ASSIST_ICON_METADATA_NAME, + isService); + } else { + mView.getOrb().getLogo().setImageDrawable(null); + } + } + + public void replaceDrawable(ImageView v, ComponentName component, String name, + boolean isService) { + if (component != null) { + try { + PackageManager packageManager = mContext.getPackageManager(); + // Look for the search icon specified in the activity meta-data + Bundle metaData = isService + ? packageManager.getServiceInfo( + component, PackageManager.GET_META_DATA).metaData + : packageManager.getActivityInfo( + component, PackageManager.GET_META_DATA).metaData; + if (metaData != null) { + int iconResId = metaData.getInt(name); + if (iconResId != 0) { + Resources res = packageManager.getResourcesForApplication( + component.getPackageName()); + v.setImageDrawable(res.getDrawable(iconResId)); + return; + } + } + } catch (PackageManager.NameNotFoundException e) { + Log.w(TAG, "Failed to swap drawable; " + + component.flattenToShortString() + " not found", e); + } catch (Resources.NotFoundException nfe) { + Log.w(TAG, "Failed to swap drawable from " + + component.flattenToShortString(), nfe); + } + } + v.setImageDrawable(null); + } + + private void vibrate() { + if (Settings.System.getIntForUser(mContext.getContentResolver(), + Settings.System.HAPTIC_FEEDBACK_ENABLED, 1, UserHandle.USER_CURRENT) != 0) { + Resources res = mContext.getResources(); + Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); + vibrator.vibrate(res.getInteger(R.integer.config_search_panel_view_vibration_duration), + VIBRATION_ATTRIBUTES); + } + } + + public boolean isAssistantIntentAvailable() { + return ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) + .getAssistIntent(mContext, false, UserHandle.USER_CURRENT) != null; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistOrbContainer.java b/packages/SystemUI/src/com/android/systemui/assist/AssistOrbContainer.java new file mode 100644 index 0000000..67017db --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistOrbContainer.java @@ -0,0 +1,155 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.systemui.assist; + +import android.annotation.Nullable; +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.animation.AnimationUtils; +import android.view.animation.Interpolator; +import android.widget.FrameLayout; + +import com.android.systemui.R; + +public class AssistOrbContainer extends FrameLayout { + + private static final long EXIT_START_DELAY = 150; + + private final Interpolator mLinearOutSlowInInterpolator; + private final Interpolator mFastOutLinearInInterpolator; + + private View mScrim; + private View mNavbarScrim; + private AssistOrbView mOrb; + + private boolean mAnimatingOut; + + public AssistOrbContainer(Context context) { + this(context, null); + } + + public AssistOrbContainer(Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public AssistOrbContainer(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(context, + android.R.interpolator.linear_out_slow_in); + mFastOutLinearInInterpolator = AnimationUtils.loadInterpolator(context, + android.R.interpolator.fast_out_slow_in); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + mScrim = findViewById(R.id.assist_orb_scrim); + mNavbarScrim = findViewById(R.id.assist_orb_navbar_scrim); + mOrb = (AssistOrbView) findViewById(R.id.assist_orb); + } + + public void show(final boolean show, boolean animate) { + if (show) { + if (getVisibility() != View.VISIBLE) { + setVisibility(View.VISIBLE); + if (animate) { + startEnterAnimation(); + } else { + reset(); + } + } + } else { + if (animate) { + startExitAnimation(new Runnable() { + @Override + public void run() { + mAnimatingOut = false; + setVisibility(View.GONE); + } + }); + } else { + setVisibility(View.GONE); + } + } + } + + private void reset() { + mAnimatingOut = false; + mOrb.reset(); + mScrim.setAlpha(1f); + mNavbarScrim.setAlpha(1f); + } + + private void startEnterAnimation() { + if (mAnimatingOut) { + return; + } + mOrb.startEnterAnimation(); + mScrim.setAlpha(0f); + mNavbarScrim.setAlpha(0f); + post(new Runnable() { + @Override + public void run() { + mScrim.animate() + .alpha(1f) + .setDuration(300) + .setStartDelay(0) + .setInterpolator(mLinearOutSlowInInterpolator); + mNavbarScrim.animate() + .alpha(1f) + .setDuration(300) + .setStartDelay(0) + .setInterpolator(mLinearOutSlowInInterpolator); + } + }); + } + + private void startExitAnimation(final Runnable endRunnable) { + if (mAnimatingOut) { + if (endRunnable != null) { + endRunnable.run(); + } + return; + } + mAnimatingOut = true; + mOrb.startExitAnimation(EXIT_START_DELAY); + mScrim.animate() + .alpha(0f) + .setDuration(250) + .setStartDelay(EXIT_START_DELAY) + .setInterpolator(mFastOutLinearInInterpolator); + mNavbarScrim.animate() + .alpha(0f) + .setDuration(250) + .setStartDelay(EXIT_START_DELAY) + .setInterpolator(mFastOutLinearInInterpolator) + .withEndAction(endRunnable); + } + + /** + * Whether the panel is showing, or, if it's animating, whether it will be + * when the animation is done. + */ + public boolean isShowing() { + return getVisibility() == View.VISIBLE && !mAnimatingOut; + } + + public AssistOrbView getOrb() { + return mOrb; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistOrbView.java b/packages/SystemUI/src/com/android/systemui/assist/AssistOrbView.java new file mode 100644 index 0000000..a3372a8 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistOrbView.java @@ -0,0 +1,285 @@ +/* + * 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.systemui.assist; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Outline; +import android.graphics.Paint; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewOutlineProvider; +import android.view.animation.AnimationUtils; +import android.view.animation.Interpolator; +import android.view.animation.OvershootInterpolator; +import android.widget.FrameLayout; +import android.widget.ImageView; + +import com.android.systemui.R; + +public class AssistOrbView extends FrameLayout { + + private final int mCircleMinSize; + private final int mBaseMargin; + private final int mStaticOffset; + private final Paint mBackgroundPaint = new Paint(); + private final Rect mCircleRect = new Rect(); + private final Rect mStaticRect = new Rect(); + private final Interpolator mAppearInterpolator; + private final Interpolator mDisappearInterpolator; + private final Interpolator mOvershootInterpolator = new OvershootInterpolator(); + + private boolean mClipToOutline; + private final int mMaxElevation; + private float mOutlineAlpha; + private float mOffset; + private float mCircleSize; + private ImageView mLogo; + private float mCircleAnimationEndValue; + + private ValueAnimator mOffsetAnimator; + private ValueAnimator mCircleAnimator; + + private ValueAnimator.AnimatorUpdateListener mCircleUpdateListener + = new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + applyCircleSize((float) animation.getAnimatedValue()); + updateElevation(); + } + }; + private AnimatorListenerAdapter mClearAnimatorListener = new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mCircleAnimator = null; + } + }; + private ValueAnimator.AnimatorUpdateListener mOffsetUpdateListener + = new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mOffset = (float) animation.getAnimatedValue(); + updateLayout(); + } + }; + + + public AssistOrbView(Context context) { + this(context, null); + } + + public AssistOrbView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public AssistOrbView(Context context, AttributeSet attrs, int defStyleAttr) { + this(context, attrs, defStyleAttr, 0); + } + + public AssistOrbView(Context context, AttributeSet attrs, int defStyleAttr, + int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + setOutlineProvider(new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + if (mCircleSize > 0.0f) { + outline.setOval(mCircleRect); + } else { + outline.setEmpty(); + } + outline.setAlpha(mOutlineAlpha); + } + }); + setWillNotDraw(false); + mCircleMinSize = context.getResources().getDimensionPixelSize( + R.dimen.assist_orb_size); + mBaseMargin = context.getResources().getDimensionPixelSize( + R.dimen.assist_orb_base_margin); + mStaticOffset = context.getResources().getDimensionPixelSize( + R.dimen.assist_orb_travel_distance); + mMaxElevation = context.getResources().getDimensionPixelSize( + R.dimen.assist_orb_elevation); + mAppearInterpolator = AnimationUtils.loadInterpolator(mContext, + android.R.interpolator.linear_out_slow_in); + mDisappearInterpolator = AnimationUtils.loadInterpolator(mContext, + android.R.interpolator.fast_out_linear_in); + mBackgroundPaint.setAntiAlias(true); + mBackgroundPaint.setColor(getResources().getColor(R.color.assist_orb_color)); + } + + public ImageView getLogo() { + return mLogo; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + drawBackground(canvas); + } + + private void drawBackground(Canvas canvas) { + canvas.drawCircle(mCircleRect.centerX(), mCircleRect.centerY(), mCircleSize / 2, + mBackgroundPaint); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + mLogo = (ImageView) findViewById(R.id.search_logo); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + mLogo.layout(0, 0, mLogo.getMeasuredWidth(), mLogo.getMeasuredHeight()); + if (changed) { + updateCircleRect(mStaticRect, mStaticOffset, true); + } + } + + public void animateCircleSize(float circleSize, long duration, + long startDelay, Interpolator interpolator) { + if (circleSize == mCircleAnimationEndValue) { + return; + } + if (mCircleAnimator != null) { + mCircleAnimator.cancel(); + } + mCircleAnimator = ValueAnimator.ofFloat(mCircleSize, circleSize); + mCircleAnimator.addUpdateListener(mCircleUpdateListener); + mCircleAnimator.addListener(mClearAnimatorListener); + mCircleAnimator.setInterpolator(interpolator); + mCircleAnimator.setDuration(duration); + mCircleAnimator.setStartDelay(startDelay); + mCircleAnimator.start(); + mCircleAnimationEndValue = circleSize; + } + + private void applyCircleSize(float circleSize) { + mCircleSize = circleSize; + updateLayout(); + } + + private void updateElevation() { + float t = (mStaticOffset - mOffset) / (float) mStaticOffset; + t = 1.0f - Math.max(t, 0.0f); + float offset = t * mMaxElevation; + setElevation(offset); + } + + /** + * Animates the offset to the edge of the screen. + * + * @param offset The offset to apply. + * @param startDelay The desired start delay if animated. + * + * @param interpolator The desired interpolator if animated. If null, + * a default interpolator will be taken designed for appearing or + * disappearing. + */ + private void animateOffset(float offset, long duration, long startDelay, + Interpolator interpolator) { + if (mOffsetAnimator != null) { + mOffsetAnimator.removeAllListeners(); + mOffsetAnimator.cancel(); + } + mOffsetAnimator = ValueAnimator.ofFloat(mOffset, offset); + mOffsetAnimator.addUpdateListener(mOffsetUpdateListener); + mOffsetAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mOffsetAnimator = null; + } + }); + mOffsetAnimator.setInterpolator(interpolator); + mOffsetAnimator.setStartDelay(startDelay); + mOffsetAnimator.setDuration(duration); + mOffsetAnimator.start(); + } + + private void updateLayout() { + updateCircleRect(); + updateLogo(); + invalidateOutline(); + invalidate(); + updateClipping(); + } + + private void updateClipping() { + boolean clip = mCircleSize < mCircleMinSize; + if (clip != mClipToOutline) { + setClipToOutline(clip); + mClipToOutline = clip; + } + } + + private void updateLogo() { + float translationX = (mCircleRect.left + mCircleRect.right) / 2.0f - mLogo.getWidth() / 2.0f; + float translationY = (mCircleRect.top + mCircleRect.bottom) / 2.0f + - mLogo.getHeight() / 2.0f - mCircleMinSize / 7f; + float t = (mStaticOffset - mOffset) / (float) mStaticOffset; + translationY += t * mStaticOffset * 0.1f; + float alpha = 1.0f-t; + alpha = Math.max((alpha - 0.5f) * 2.0f, 0); + mLogo.setImageAlpha((int) (alpha * 255)); + mLogo.setTranslationX(translationX); + mLogo.setTranslationY(translationY); + } + + private void updateCircleRect() { + updateCircleRect(mCircleRect, mOffset, false); + } + + private void updateCircleRect(Rect rect, float offset, boolean useStaticSize) { + int left, top; + float circleSize = useStaticSize ? mCircleMinSize : mCircleSize; + left = (int) (getWidth() - circleSize) / 2; + top = (int) (getHeight() - circleSize / 2 - mBaseMargin - offset); + rect.set(left, top, (int) (left + circleSize), (int) (top + circleSize)); + } + + public void startExitAnimation(long delay) { + animateCircleSize(0, 200, delay, mDisappearInterpolator); + animateOffset(0, 200, delay, mDisappearInterpolator); + } + + public void startEnterAnimation() { + applyCircleSize(0); + post(new Runnable() { + @Override + public void run() { + animateCircleSize(mCircleMinSize, 300, 0 /* delay */, mOvershootInterpolator); + animateOffset(mStaticOffset, 400, 0 /* delay */, mAppearInterpolator); + } + }); + } + + public void reset() { + mClipToOutline = false; + mBackgroundPaint.setAlpha(255); + mOutlineAlpha = 1.0f; + } + + @Override + public boolean hasOverlappingRendering() { + // not really true but it's ok during an animation, as it's never permanent + return false; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index dd28734..d8e732e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -748,6 +748,11 @@ public class KeyguardViewMediator extends SystemUI { synchronized (this) { if (DEBUG) Log.d(TAG, "setKeyguardEnabled(" + enabled + ")"); + if (isSecure()) { + Log.d(TAG, "current mode is SecurityMode, ignore hide keyguard"); + return; + } + mExternallyEnabled = enabled; if (!enabled && mShowing) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java b/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java index e60aa53..f36019b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java +++ b/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java @@ -23,6 +23,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.Listenable; @@ -32,14 +33,15 @@ public class UsageTracker implements Listenable { private final Context mContext; private final long mTimeToShowTile; - private final String mPrefKey; + @Prefs.Key private final String mPrefKey; private final String mResetAction; private boolean mRegistered; - public UsageTracker(Context context, Class<?> tile, int timeoutResource) { + public UsageTracker(Context context, @Prefs.Key String prefKey, Class<?> tile, + int timeoutResource) { mContext = context; - mPrefKey = tile.getSimpleName() + "LastUsed"; + mPrefKey = prefKey; mTimeToShowTile = MILLIS_PER_DAY * mContext.getResources().getInteger(timeoutResource); mResetAction = "com.android.systemui.qs." + tile.getSimpleName() + ".usage_reset"; } @@ -56,16 +58,16 @@ public class UsageTracker implements Listenable { } public boolean isRecentlyUsed() { - long lastUsed = getSharedPrefs().getLong(mPrefKey, 0); + long lastUsed = Prefs.getLong(mContext, mPrefKey, 0L /* defaultValue */); return (System.currentTimeMillis() - lastUsed) < mTimeToShowTile; } public void trackUsage() { - getSharedPrefs().edit().putLong(mPrefKey, System.currentTimeMillis()).commit(); + Prefs.putLong(mContext, mPrefKey, System.currentTimeMillis()); } public void reset() { - getSharedPrefs().edit().remove(mPrefKey).commit(); + Prefs.remove(mContext, mPrefKey); } public void showResetConfirmation(String title, final Runnable onConfirmed) { @@ -87,10 +89,6 @@ public class UsageTracker implements Listenable { d.show(); } - private SharedPreferences getSharedPrefs() { - return mContext.getSharedPreferences(mContext.getPackageName(), 0); - } - private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java index 2dd02a5..2bc31fc 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java @@ -72,7 +72,7 @@ public class AirplaneModeTile extends QSTile<QSTile.BooleanState> { final boolean airplaneMode = value != 0; state.value = airplaneMode; state.visible = true; - state.label = mContext.getString(R.string.quick_settings_airplane_mode_label); + state.label = mContext.getString(R.string.airplane_mode); if (airplaneMode) { state.icon = mEnable; state.contentDescription = mContext.getString( diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java index 5963a45..4a33f55 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java @@ -18,6 +18,7 @@ package com.android.systemui.qs.tiles; import android.provider.Settings.Secure; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.qs.QSTile; import com.android.systemui.qs.SecureSetting; @@ -50,7 +51,8 @@ public class ColorInversionTile extends QSTile<QSTile.BooleanState> { } } }; - mUsageTracker = new UsageTracker(host.getContext(), ColorInversionTile.class, + mUsageTracker = new UsageTracker(host.getContext(), + Prefs.Key.COLOR_INVERSION_TILE_LAST_USED, ColorInversionTile.class, R.integer.days_to_show_color_inversion_tile); if (mSetting.getValue() != 0 && !mUsageTracker.isRecentlyUsed()) { mUsageTracker.trackUsage(); diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java index 79600f5..6ce63d6 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.provider.Settings; import android.provider.Settings.Global; import android.view.LayoutInflater; @@ -28,6 +29,7 @@ import android.view.View; import android.view.View.OnAttachStateChangeListener; import android.view.ViewGroup; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.qs.QSTile; import com.android.systemui.statusbar.policy.ZenModeController; @@ -39,30 +41,35 @@ public class DndTile extends QSTile<QSTile.BooleanState> { private static final String ACTION_SET_VISIBLE = "com.android.systemui.dndtile.SET_VISIBLE"; private static final String EXTRA_VISIBLE = "visible"; - private static final String PREF_KEY_VISIBLE = "DndTileVisible"; private final ZenModeController mController; private final DndDetailAdapter mDetailAdapter; private boolean mListening; - private boolean mVisible; private boolean mShowingDetail; public DndTile(Host host) { super(host); mController = host.getZenModeController(); mDetailAdapter = new DndDetailAdapter(); - mVisible = getSharedPrefs(mContext).getBoolean(PREF_KEY_VISIBLE, false); mContext.registerReceiver(mReceiver, new IntentFilter(ACTION_SET_VISIBLE)); } public static void setVisible(Context context, boolean visible) { - context.sendBroadcast(new Intent(DndTile.ACTION_SET_VISIBLE) - .putExtra(DndTile.EXTRA_VISIBLE, visible)); + Prefs.putBoolean(context, Prefs.Key.DND_TILE_VISIBLE, visible); } public static boolean isVisible(Context context) { - return getSharedPrefs(context).getBoolean(PREF_KEY_VISIBLE, false); + return Prefs.getBoolean(context, Prefs.Key.DND_TILE_VISIBLE, false /* defaultValue */); + } + + public static void setCombinedIcon(Context context, boolean combined) { + Prefs.putBoolean(context, Prefs.Key.DND_TILE_COMBINED_ICON, combined); + } + + public static boolean isCombinedIcon(Context context) { + return Prefs.getBoolean(context, Prefs.Key.DND_TILE_COMBINED_ICON, + false /* defaultValue */); } @Override @@ -78,9 +85,9 @@ public class DndTile extends QSTile<QSTile.BooleanState> { @Override public void handleClick() { if (mState.value) { - mController.setZen(Global.ZEN_MODE_OFF); + mController.setZen(Global.ZEN_MODE_OFF, null, TAG); } else { - mController.setZen(Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); + mController.setZen(Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, null, TAG); showDetail(true); } } @@ -89,7 +96,7 @@ public class DndTile extends QSTile<QSTile.BooleanState> { protected void handleUpdateState(BooleanState state, Object arg) { final int zen = arg instanceof Integer ? (Integer) arg : mController.getZen(); state.value = zen != Global.ZEN_MODE_OFF; - state.visible = mVisible; + state.visible = isVisible(mContext); switch (zen) { case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS: state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_on); @@ -103,6 +110,12 @@ public class DndTile extends QSTile<QSTile.BooleanState> { state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_dnd_none_on); break; + case Global.ZEN_MODE_ALARMS: + state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_on); + state.label = mContext.getString(R.string.quick_settings_dnd_alarms_label); + state.contentDescription = mContext.getString( + R.string.accessibility_quick_settings_dnd_alarms_on); + break; default: state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_off); state.label = mContext.getString(R.string.quick_settings_dnd_label); @@ -130,26 +143,36 @@ public class DndTile extends QSTile<QSTile.BooleanState> { mListening = listening; if (mListening) { mController.addCallback(mZenCallback); + Prefs.registerListener(mContext, mPrefListener); } else { mController.removeCallback(mZenCallback); + Prefs.unregisterListener(mContext, mPrefListener); } } + private final OnSharedPreferenceChangeListener mPrefListener + = new OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, + @Prefs.Key String key) { + if (Prefs.Key.DND_TILE_COMBINED_ICON.equals(key) || + Prefs.Key.DND_TILE_VISIBLE.equals(key)) { + refreshState(); + } + } + }; + private final ZenModeController.Callback mZenCallback = new ZenModeController.Callback() { public void onZenChanged(int zen) { refreshState(zen); } }; - private static SharedPreferences getSharedPrefs(Context context) { - return context.getSharedPreferences(context.getPackageName(), 0); - } - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - mVisible = intent.getBooleanExtra(EXTRA_VISIBLE, false); - getSharedPrefs(mContext).edit().putBoolean(PREF_KEY_VISIBLE, mVisible).commit(); + final boolean visible = intent.getBooleanExtra(EXTRA_VISIBLE, false); + setVisible(mContext, visible); refreshState(); } }; @@ -174,7 +197,7 @@ public class DndTile extends QSTile<QSTile.BooleanState> { @Override public void setToggleState(boolean state) { if (!state) { - mController.setZen(Global.ZEN_MODE_OFF); + mController.setZen(Global.ZEN_MODE_OFF, null, TAG); showDetail(false); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java index fcc517f..6063f80 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java @@ -20,6 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.qs.UsageTracker; import com.android.systemui.qs.QSTile; @@ -105,7 +106,8 @@ public class HotspotTile extends QSTile<QSTile.BooleanState> { } private static UsageTracker newUsageTracker(Context context) { - return new UsageTracker(context, HotspotTile.class, R.integer.days_to_show_hotspot_tile); + return new UsageTracker(context, Prefs.Key.HOTSPOT_TILE_LAST_USED, HotspotTile.class, + R.integer.days_to_show_hotspot_tile); } private final class Callback implements HotspotController.Callback { diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java index 192acc6..c7f8919 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java @@ -59,8 +59,6 @@ public class Constants { public static class Values { public static class App { public static int AppWidgetHostId = 1024; - public static String Key_SearchAppWidgetId = "searchAppWidgetId"; - public static String Key_DebugModeEnabled = "debugModeEnabled"; public static String DebugModeVersion = "A"; } diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index f014f09..1001feb 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -19,14 +19,12 @@ package com.android.systemui.recents; import android.app.Activity; import android.app.ActivityOptions; import android.app.SearchManager; -import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.SharedPreferences; import android.os.Bundle; import android.os.SystemClock; import android.os.UserHandle; @@ -36,6 +34,7 @@ import android.view.View; import android.view.ViewStub; import android.widget.Toast; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.recents.misc.DebugTrigger; import com.android.systemui.recents.misc.ReferenceCountedTrigger; @@ -49,8 +48,6 @@ import com.android.systemui.recents.views.DebugOverlayView; import com.android.systemui.recents.views.RecentsView; import com.android.systemui.recents.views.SystemBarScrimViews; import com.android.systemui.recents.views.ViewAnimation; -import com.android.systemui.statusbar.phone.PhoneStatusBar; -import com.android.systemui.SystemUIApplication; import java.lang.ref.WeakReference; import java.lang.reflect.InvocationTargetException; @@ -78,9 +75,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView RecentsResizeTaskDialog mResizeTaskDebugDialog; // Search AppWidget - RecentsAppWidgetHost mAppWidgetHost; AppWidgetProviderInfo mSearchAppWidgetInfo; - AppWidgetHostView mSearchAppWidgetHostView; + RecentsAppWidgetHost mAppWidgetHost; + RecentsAppWidgetHostView mSearchAppWidgetHostView; // Runnables to finish the Recents activity FinishRecentsRunnable mFinishLaunchHomeRunnable; @@ -245,7 +242,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView if (mEmptyView != null) { mEmptyView.setVisibility(View.GONE); } - if (mRecentsView.hasSearchBar()) { + if (mRecentsView.hasValidSearchBar()) { mRecentsView.setSearchBarVisibility(View.VISIBLE); } else { addSearchBarAppWidgetView(); @@ -295,8 +292,8 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView if (Constants.DebugFlags.App.EnableSearchLayout) { int appWidgetId = mConfig.searchBarAppWidgetId; if (appWidgetId >= 0) { - mSearchAppWidgetHostView = mAppWidgetHost.createView(this, appWidgetId, - mSearchAppWidgetInfo); + mSearchAppWidgetHostView = (RecentsAppWidgetHostView) mAppWidgetHost.createView( + this, appWidgetId, mSearchAppWidgetInfo); Bundle opts = new Bundle(); opts.putInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX); @@ -345,6 +342,12 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView } } + /** Dismisses Recents directly to Home without transition animation. */ + void dismissRecentsToHomeWithoutTransitionAnimation() { + finish(); + overridePendingTransition(0, 0); + } + /** Dismisses Recents directly to Home if we currently aren't transitioning. */ boolean dismissRecentsToHome(boolean animated) { SystemServicesProxy ssp = RecentsTaskLoader.getInstance().getSystemServicesProxy(); @@ -563,10 +566,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView /** Called when debug mode is triggered */ public void onDebugModeTriggered() { if (mConfig.developerOptionsEnabled) { - SharedPreferences settings = getSharedPreferences(getPackageName(), 0); - if (settings.getBoolean(Constants.Values.App.Key_DebugModeEnabled, false)) { + if (Prefs.getBoolean(this, Prefs.Key.DEBUG_MODE_ENABLED, false /* boolean */)) { // Disable the debug mode - settings.edit().remove(Constants.Values.App.Key_DebugModeEnabled).apply(); + Prefs.remove(this, Prefs.Key.DEBUG_MODE_ENABLED); mConfig.debugModeEnabled = false; inflateDebugOverlay(); if (mDebugOverlay != null) { @@ -574,7 +576,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView } } else { // Enable the debug mode - settings.edit().putBoolean(Constants.Values.App.Key_DebugModeEnabled, true).apply(); + Prefs.putBoolean(this, Prefs.Key.DEBUG_MODE_ENABLED, true); mConfig.debugModeEnabled = true; inflateDebugOverlay(); if (mDebugOverlay != null) { diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHost.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHost.java index 5bae37a..02a7b94 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHost.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHost.java @@ -17,6 +17,7 @@ package com.android.systemui.recents; import android.appwidget.AppWidgetHost; +import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import com.android.systemui.recents.misc.SystemServicesProxy; @@ -61,6 +62,12 @@ public class RecentsAppWidgetHost extends AppWidgetHost { } @Override + protected AppWidgetHostView onCreateView(Context context, int appWidgetId, + AppWidgetProviderInfo appWidget) { + return new RecentsAppWidgetHostView(context); + } + + @Override protected void onProviderChanged(int appWidgetId, AppWidgetProviderInfo appWidgetInfo) { if (mCb == null) return; diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHostView.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHostView.java new file mode 100644 index 0000000..1ed755a --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsAppWidgetHostView.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.recents; + +import android.appwidget.AppWidgetHostView; +import android.content.Context; +import android.widget.RemoteViews; + +public class RecentsAppWidgetHostView extends AppWidgetHostView { + + private Context mContext; + private int mPreviousOrientation; + + public RecentsAppWidgetHostView(Context context) { + super(context); + mContext = context; + } + + @Override + public void updateAppWidget(RemoteViews remoteViews) { + // Store the orientation in which the widget was inflated + updateLastInflationOrientation(); + super.updateAppWidget(remoteViews); + } + + /** + * Updates the last orientation that this widget was inflated. + */ + private void updateLastInflationOrientation() { + mPreviousOrientation = mContext.getResources().getConfiguration().orientation; + } + + /** + * @return whether the search widget was updated while Recents was in a different orientation + * in the background. + */ + public boolean isReinflateRequired() { + // Re-inflate is required if the orientation has changed since last inflated. + int orientation = mContext.getResources().getConfiguration().orientation; + if (mPreviousOrientation != orientation) { + return true; + } + return false; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java index abeb2b0..244fada 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java @@ -18,7 +18,6 @@ package com.android.systemui.recents; import android.app.ActivityManager; import android.content.Context; -import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Rect; @@ -26,6 +25,8 @@ import android.provider.Settings; import android.util.DisplayMetrics; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; + +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.recents.misc.Console; import com.android.systemui.recents.misc.SystemServicesProxy; @@ -177,12 +178,12 @@ public class RecentsConfiguration { /** Updates the state, given the specified context */ void update(Context context) { - SharedPreferences settings = context.getSharedPreferences(context.getPackageName(), 0); Resources res = context.getResources(); DisplayMetrics dm = res.getDisplayMetrics(); // Debug mode - debugModeEnabled = settings.getBoolean(Constants.Values.App.Key_DebugModeEnabled, false); + debugModeEnabled = Prefs.getBoolean(context, Prefs.Key.DEBUG_MODE_ENABLED, + false /* defaultValue */); if (debugModeEnabled) { Console.Enabled = true; } @@ -206,7 +207,8 @@ public class RecentsConfiguration { // Search Bar searchBarSpaceHeightPx = res.getDimensionPixelSize(R.dimen.recents_search_bar_space_height); - searchBarAppWidgetId = settings.getInt(Constants.Values.App.Key_SearchAppWidgetId, -1); + searchBarAppWidgetId = Prefs.getInt(context, Prefs.Key.SEARCH_APP_WIDGET_ID, + -1 /* defaultValue */); // Task stack taskStackScrollDuration = @@ -280,9 +282,7 @@ public class RecentsConfiguration { /** Updates the search bar app widget */ public void updateSearchBarAppWidgetId(Context context, int appWidgetId) { searchBarAppWidgetId = appWidgetId; - SharedPreferences settings = context.getSharedPreferences(context.getPackageName(), 0); - settings.edit().putInt(Constants.Values.App.Key_SearchAppWidgetId, - appWidgetId).apply(); + Prefs.putInt(context, Prefs.Key.SEARCH_APP_WIDGET_ID, appWidgetId); } /** Updates the states that need to be re-read whenever we re-initialize. */ diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java index 4cd577d..b701e0b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java @@ -209,6 +209,10 @@ public class RecentsResizeTaskDialog extends DialogFragment { } } + // Get rid of the dialog. + dismiss(); + mRecentsActivity.dismissRecentsToHomeWithoutTransitionAnimation(); + // Resize all tasks beginning from the "oldest" one. for (int i = additionalTasks; i >= 0; --i) { if (mTasks[i] != null) { @@ -216,12 +220,8 @@ public class RecentsResizeTaskDialog extends DialogFragment { } } - // Get rid of the dialog. - dismiss(); - mRecentsActivity.dismissRecentsToHomeRaw(false); - - // Show tasks - beginning with the oldest so that the focus ends on the selected one. - // TODO: Remove this once issue b/19893373 is resolved. + // Show tasks as they might not be currently visible - beginning with the oldest so that + // the focus ends on the selected one. for (int i = additionalTasks; i >= 0; --i) { if (mTasks[i] != null) { mRecentsView.launchTask(mTasks[i]); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index abed7a5..1377975 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -34,6 +34,7 @@ import android.view.WindowInsets; import android.widget.FrameLayout; import com.android.systemui.R; import com.android.systemui.recents.Constants; +import com.android.systemui.recents.RecentsAppWidgetHostView; import com.android.systemui.recents.RecentsConfiguration; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.recents.model.RecentsPackageMonitor; @@ -69,7 +70,7 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV ArrayList<TaskStack> mStacks; List<TaskStackView> mTaskStackViews = new ArrayList<>(); - View mSearchBar; + RecentsAppWidgetHostView mSearchBar; RecentsViewCallbacks mCb; public RecentsView(Context context) { @@ -278,7 +279,7 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } /** Adds the search bar */ - public void setSearchBar(View searchBar) { + public void setSearchBar(RecentsAppWidgetHostView searchBar) { // Create the search bar (and hide it if we have no recent tasks) if (Constants.DebugFlags.App.EnableSearchLayout) { // Remove the previous search bar if one exists @@ -294,8 +295,8 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } /** Returns whether there is currently a search bar */ - public boolean hasSearchBar() { - return mSearchBar != null; + public boolean hasValidSearchBar() { + return mSearchBar != null && !mSearchBar.isReinflateRequired(); } /** Sets the visibility of the search bar */ diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java index 9d349ab..105bf0f 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java @@ -122,7 +122,7 @@ class SaveImageInBackgroundTask extends AsyncTask<SaveImageInBackgroundData, Voi // Prepare all the output metadata mImageTime = System.currentTimeMillis(); - String imageDate = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date(mImageTime)); + String imageDate = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date(mImageTime)); mImageFileName = String.format(SCREENSHOT_FILE_NAME_TEMPLATE, imageDate); mScreenshotDir = new File(Environment.getExternalStoragePublicDirectory( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 55bdcac..d2837b7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -71,7 +71,6 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewAnimationUtils; import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; import android.view.ViewParent; import android.view.WindowManager; import android.view.WindowManagerGlobal; @@ -79,7 +78,6 @@ import android.view.accessibility.AccessibilityManager; import android.view.animation.AnimationUtils; import android.widget.DateTimeView; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.RemoteViews; import android.widget.TextView; @@ -90,7 +88,6 @@ import com.android.internal.util.NotificationColorUtil; import com.android.internal.widget.LockPatternUtils; import com.android.systemui.R; import com.android.systemui.RecentsComponent; -import com.android.systemui.SearchPanelView; import com.android.systemui.SwipeHelper; import com.android.systemui.SystemUI; import com.android.systemui.recents.Recents; @@ -132,7 +129,6 @@ public abstract class BaseStatusBar extends SystemUI implements protected static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 1023; protected static final int MSG_SHOW_NEXT_AFFILIATED_TASK = 1024; protected static final int MSG_SHOW_PREV_AFFILIATED_TASK = 1025; - protected static final int MSG_CLOSE_SEARCH_PANEL = 1027; protected static final int MSG_SHOW_HEADS_UP = 1028; protected static final int MSG_HIDE_HEADS_UP = 1029; protected static final int MSG_ESCALATE_HEADS_UP = 1030; @@ -164,9 +160,6 @@ public abstract class BaseStatusBar extends SystemUI implements protected HeadsUpNotificationView mHeadsUpNotificationView; protected int mHeadsUpNotificationDecay; - // Search panel - protected SearchPanelView mSearchPanelView; - protected int mCurrentUserId = 0; final protected SparseArray<UserInfo> mCurrentProfiles = new SparseArray<UserInfo>(); @@ -1043,50 +1036,6 @@ public abstract class BaseStatusBar extends SystemUI implements mHandler.sendEmptyMessage(msg); } - @Override - public void showSearchPanel() { - if (mSearchPanelView != null && mSearchPanelView.isAssistantAvailable()) { - mSearchPanelView.show(true, true); - } - } - - @Override - public void hideSearchPanel() { - int msg = MSG_CLOSE_SEARCH_PANEL; - mHandler.removeMessages(msg); - mHandler.sendEmptyMessage(msg); - } - - protected abstract WindowManager.LayoutParams getSearchLayoutParams( - LayoutParams layoutParams); - - protected void updateSearchPanel() { - // Search Panel - boolean visible = false; - if (mSearchPanelView != null) { - visible = mSearchPanelView.isShowing(); - mWindowManager.removeView(mSearchPanelView); - } - - // Provide SearchPanel with a temporary parent to allow layout params to work. - LinearLayout tmpRoot = new LinearLayout(mContext); - mSearchPanelView = (SearchPanelView) LayoutInflater.from(mContext).inflate( - R.layout.status_bar_search_panel, tmpRoot, false); - mSearchPanelView.setOnTouchListener( - new TouchOutsideListener(MSG_CLOSE_SEARCH_PANEL, mSearchPanelView)); - mSearchPanelView.setVisibility(View.GONE); - boolean vertical = mNavigationBarView != null && mNavigationBarView.isVertical(); - mSearchPanelView.setHorizontal(vertical); - - WindowManager.LayoutParams lp = getSearchLayoutParams(mSearchPanelView.getLayoutParams()); - - mWindowManager.addView(mSearchPanelView, lp); - mSearchPanelView.setBar(this); - if (visible) { - mSearchPanelView.show(true, false); - } - } - protected H createHandler() { return new H(); } @@ -1263,35 +1212,7 @@ public abstract class BaseStatusBar extends SystemUI implements case MSG_SHOW_PREV_AFFILIATED_TASK: showRecentsPreviousAffiliatedTask(); break; - case MSG_CLOSE_SEARCH_PANEL: - if (DEBUG) Log.d(TAG, "closing search panel"); - if (mSearchPanelView != null && mSearchPanelView.isShowing()) { - mSearchPanelView.show(false, true); - } - break; - } - } - } - - public class TouchOutsideListener implements View.OnTouchListener { - private int mMsg; - private StatusBarPanel mPanel; - - public TouchOutsideListener(int msg, StatusBarPanel panel) { - mMsg = msg; - mPanel = panel; - } - - public boolean onTouch(View v, MotionEvent ev) { - final int action = ev.getAction(); - if (action == MotionEvent.ACTION_OUTSIDE - || (action == MotionEvent.ACTION_DOWN - && !mPanel.isInContentArea((int)ev.getX(), (int)ev.getY()))) { - mHandler.removeMessages(mMsg); - mHandler.sendEmptyMessage(mMsg); - return true; } - return false; } } @@ -1707,7 +1628,7 @@ public abstract class BaseStatusBar extends SystemUI implements // close the shade if it was open animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, - true /* force */); + true /* force */, true /* delayed */); visibilityChanged(false); return mIntent != null && mIntent.isActivity(); @@ -1719,6 +1640,9 @@ public abstract class BaseStatusBar extends SystemUI implements public void animateCollapsePanels(int flags, boolean force) { } + public void animateCollapsePanels(int flags, boolean force, boolean delayed) { + } + public void overrideActivityPendingAppTransition(boolean keyguardShowing) { if (keyguardShowing) { try { @@ -1935,7 +1859,7 @@ public abstract class BaseStatusBar extends SystemUI implements protected abstract void setAreThereNotifications(); protected abstract void updateNotifications(); - protected abstract boolean shouldDisableNavbarGestures(); + public abstract boolean shouldDisableNavbarGestures(); public abstract void addNotification(StatusBarNotification notification, RankingMap ranking, Entry oldEntry); @@ -2241,9 +2165,6 @@ public abstract class BaseStatusBar extends SystemUI implements } public void destroy() { - if (mSearchPanelView != null) { - mWindowManager.removeViewImmediate(mSearchPanelView); - } mContext.unregisterReceiver(mBroadcastReceiver); try { mNotificationListener.unregisterAsSystemService(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index 8f88e73..7aa9a90 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -96,8 +96,6 @@ public class CommandQueue extends IStatusBar.Stub { public void toggleRecentApps(); public void preloadRecentApps(); public void cancelPreloadRecentApps(); - public void showSearchPanel(); - public void hideSearchPanel(); public void setWindowState(int window, int state); public void buzzBeepBlinked(); public void notificationLightOff(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java index 7ae6764..9e2207e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java @@ -22,11 +22,12 @@ import android.graphics.RectF; import android.view.MotionEvent; import android.view.View; import com.android.systemui.R; +import com.android.systemui.statusbar.phone.PhoneStatusBar; public class DelegateViewHelper { private View mDelegateView; private View mSourceView; - private BaseStatusBar mBar; + private PhoneStatusBar mBar; private int[] mTempPoint = new int[2]; private float[] mDownPoint = new float[2]; private float mTriggerThreshhold; @@ -45,7 +46,7 @@ public class DelegateViewHelper { mDelegateView = view; } - public void setBar(BaseStatusBar phoneStatusBar) { + public void setBar(PhoneStatusBar phoneStatusBar) { mBar = phoneStatusBar; } @@ -79,7 +80,7 @@ public class DelegateViewHelper { float y = k < historySize ? event.getHistoricalY(k) : event.getY(); final float distance = mSwapXY ? (mDownPoint[0] - x) : (mDownPoint[1] - y); if (distance > mTriggerThreshhold) { - mBar.showSearchPanel(); + mBar.invokeAssistGesture(false /* vibrate */); mPanelShowing = true; break; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java index e2464c2..583184f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java @@ -34,6 +34,7 @@ import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.widget.ImageView; import com.android.systemui.R; +import com.android.systemui.statusbar.phone.KeyguardAffordanceHelper; /** * An ImageView which does not have overlapping renderings commands and therefore does not need a @@ -75,6 +76,7 @@ public class KeyguardAffordanceView extends ImageView { private float mCircleStartRadius; private float mMaxCircleSize; private Animator mPreviewClipper; + private float mRestingAlpha = KeyguardAffordanceHelper.SWIPE_RESTING_ALPHA_AMOUNT; private AnimatorListenerAdapter mClipEndListener = new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { @@ -394,6 +396,17 @@ public class KeyguardAffordanceView extends ImageView { } } + public void setRestingAlpha(float alpha) { + mRestingAlpha = alpha; + + // TODO: Handle the case an animation is playing. + setImageAlpha(alpha, false); + } + + public float getRestingAlpha() { + return mRestingAlpha; + } + public void setImageAlpha(float alpha, boolean animate) { setImageAlpha(alpha, animate, -1, null, null); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 58067c3..07a055c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -26,6 +26,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.graphics.Color; import android.os.BatteryManager; import android.os.BatteryStats; import android.os.Handler; @@ -53,6 +54,7 @@ public class KeyguardIndicationController { private String mRestingIndication; private String mTransientIndication; + private int mTransientTextColor; private boolean mVisible; private boolean mPowerPluggedIn; @@ -105,7 +107,15 @@ public class KeyguardIndicationController { * Shows {@param transientIndication} until it is hidden by {@link #hideTransientIndication}. */ public void showTransientIndication(String transientIndication) { + showTransientIndication(transientIndication, Color.WHITE); + } + + /** + * Shows {@param transientIndication} until it is hidden by {@link #hideTransientIndication}. + */ + public void showTransientIndication(String transientIndication, int textColor) { mTransientIndication = transientIndication; + mTransientTextColor = textColor; mHandler.removeMessages(MSG_HIDE_TRANSIENT); updateIndication(); } @@ -124,7 +134,15 @@ public class KeyguardIndicationController { private void updateIndication() { if (mVisible) { mTextView.switchIndication(computeIndication()); + mTextView.setTextColor(computeColor()); + } + } + + private int computeColor() { + if (!TextUtils.isEmpty(mTransientIndication)) { + return mTransientTextColor; } + return Color.WHITE; } private String computeIndication() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java index 7286907..a82afcf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java @@ -59,9 +59,10 @@ public class SignalClusterView private String mWifiDescription; private ArrayList<PhoneState> mPhoneStates = new ArrayList<PhoneState>(); private int mIconTint = Color.WHITE; + private float mDarkIntensity; ViewGroup mWifiGroup; - ImageView mVpn, mWifi, mAirplane, mNoSims; + ImageView mVpn, mWifi, mAirplane, mNoSims, mWifiDark, mNoSimsDark; View mWifiAirplaneSpacer; View mWifiSignalSpacer; LinearLayout mMobileSignalGroup; @@ -115,8 +116,10 @@ public class SignalClusterView mVpn = (ImageView) findViewById(R.id.vpn); mWifiGroup = (ViewGroup) findViewById(R.id.wifi_combo); mWifi = (ImageView) findViewById(R.id.wifi_signal); + mWifiDark = (ImageView) findViewById(R.id.wifi_signal_dark); mAirplane = (ImageView) findViewById(R.id.airplane); mNoSims = (ImageView) findViewById(R.id.no_sims); + mNoSimsDark = (ImageView) findViewById(R.id.no_sims_dark); mWifiAirplaneSpacer = findViewById(R.id.wifi_airplane_spacer); mWifiSignalSpacer = findViewById(R.id.wifi_signal_spacer); mMobileSignalGroup = (LinearLayout) findViewById(R.id.mobile_signal_group); @@ -273,6 +276,7 @@ public class SignalClusterView if (DEBUG) Log.d(TAG, String.format("vpn: %s", mVpnVisible ? "VISIBLE" : "GONE")); if (mWifiVisible) { mWifi.setImageResource(mWifiStrengthId); + mWifiDark.setImageResource(mWifiStrengthId); mWifiGroup.setContentDescription(mWifiDescription); mWifiGroup.setVisibility(View.VISIBLE); } else { @@ -317,15 +321,17 @@ public class SignalClusterView } mNoSims.setVisibility(mNoSimsVisible ? View.VISIBLE : View.GONE); + mNoSimsDark.setVisibility(mNoSimsVisible ? View.VISIBLE : View.GONE); boolean anythingVisible = mNoSimsVisible || mWifiVisible || mIsAirplaneMode || anyMobileVisible || mVpnVisible; setPaddingRelative(0, 0, anythingVisible ? mEndPadding : mEndPaddingNothingVisible, 0); } - public void setIconTint(int tint) { - boolean changed = tint != mIconTint; + public void setIconTint(int tint, float darkIntensity) { + boolean changed = tint != mIconTint || darkIntensity != mDarkIntensity; mIconTint = tint; + mDarkIntensity = darkIntensity; if (changed && isAttachedToWindow()) { applyIconTint(); } @@ -333,14 +339,19 @@ public class SignalClusterView private void applyIconTint() { setTint(mVpn, mIconTint); - setTint(mWifi, mIconTint); - setTint(mNoSims, mIconTint); setTint(mAirplane, mIconTint); + applyDarkIntensity(mDarkIntensity, mNoSims, mNoSimsDark); + applyDarkIntensity(mDarkIntensity, mWifi, mWifiDark); for (int i = 0; i < mPhoneStates.size(); i++) { - mPhoneStates.get(i).setIconTint(mIconTint); + mPhoneStates.get(i).setIconTint(mIconTint, mDarkIntensity); } } + private void applyDarkIntensity(float darkIntensity, View lightIcon, View darkIcon) { + lightIcon.setAlpha(1 - darkIntensity); + darkIcon.setAlpha(darkIntensity); + } + private void setTint(ImageView v, int tint) { v.setImageTintMode(PorterDuff.Mode.SRC_ATOP); v.setImageTintList(ColorStateList.valueOf(tint)); @@ -354,7 +365,7 @@ public class SignalClusterView private String mMobileDescription, mMobileTypeDescription; private ViewGroup mMobileGroup; - private ImageView mMobile, mMobileType; + private ImageView mMobile, mMobileDark, mMobileType; public PhoneState(int subId, Context context) { ViewGroup root = (ViewGroup) LayoutInflater.from(context) @@ -366,12 +377,14 @@ public class SignalClusterView public void setViews(ViewGroup root) { mMobileGroup = root; mMobile = (ImageView) root.findViewById(R.id.mobile_signal); + mMobileDark = (ImageView) root.findViewById(R.id.mobile_signal_dark); mMobileType = (ImageView) root.findViewById(R.id.mobile_type); } public boolean apply(boolean isSecondaryIcon) { if (mMobileVisible && !mIsAirplaneMode) { mMobile.setImageResource(mMobileStrengthId); + mMobileDark.setImageResource(mMobileStrengthId); mMobileType.setImageResource(mMobileTypeId); mMobileGroup.setContentDescription(mMobileTypeDescription + " " + mMobileDescription); @@ -385,6 +398,8 @@ public class SignalClusterView 0, 0, 0); mMobile.setPaddingRelative(mIsMobileTypeIconWide ? mWideTypeIconStartPadding : 0, 0, 0, 0); + mMobileDark.setPaddingRelative(mIsMobileTypeIconWide ? mWideTypeIconStartPadding : 0, + 0, 0, 0); if (DEBUG) Log.d(TAG, String.format("mobile: %s sig=%d typ=%d", (mMobileVisible ? "VISIBLE" : "GONE"), mMobileStrengthId, mMobileTypeId)); @@ -401,8 +416,8 @@ public class SignalClusterView } } - public void setIconTint(int tint) { - setTint(mMobile, tint); + public void setIconTint(int tint, float darkIntensity) { + applyDarkIntensity(darkIntensity, mMobile, mMobileDark); setTint(mMobileType, tint); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java index 3b8fccc..9d892f6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java @@ -69,7 +69,7 @@ public class KeyguardAffordanceHelper { @Override public void onAnimationEnd(Animator animation) { mSwipeAnimator = null; - setSwipingInProgress(false); + mSwipingInProgress = false; } }; private Runnable mAnimationEndRunnable = new Runnable() { @@ -83,9 +83,9 @@ public class KeyguardAffordanceHelper { mContext = context; mCallback = callback; initIcons(); - updateIcon(mLeftIcon, 0.0f, SWIPE_RESTING_ALPHA_AMOUNT, false, false); - updateIcon(mCenterIcon, 0.0f, SWIPE_RESTING_ALPHA_AMOUNT, false, false); - updateIcon(mRightIcon, 0.0f, SWIPE_RESTING_ALPHA_AMOUNT, false, false); + updateIcon(mLeftIcon, 0.0f, mLeftIcon.getRestingAlpha(), false, false); + updateIcon(mCenterIcon, 0.0f, mCenterIcon.getRestingAlpha(), false, false); + updateIcon(mRightIcon, 0.0f, mRightIcon.getRestingAlpha(), false, false); initDimens(); } @@ -117,14 +117,17 @@ public class KeyguardAffordanceHelper { } public boolean onTouchEvent(MotionEvent event) { - if (mMotionCancelled && event.getActionMasked() != MotionEvent.ACTION_DOWN) { + int action = event.getActionMasked(); + if (mMotionCancelled && action != MotionEvent.ACTION_DOWN + && action != MotionEvent.ACTION_UP + && action != MotionEvent.ACTION_CANCEL) { return false; } final float y = event.getY(); final float x = event.getX(); boolean isUp = false; - switch (event.getActionMasked()) { + switch (action) { case MotionEvent.ACTION_DOWN: if (mSwipingInProgress) { cancelAnimation(); @@ -152,7 +155,8 @@ public class KeyguardAffordanceHelper { mInitialTouchY = y; mInitialTouchX = x; mTranslationOnDown = mTranslation; - setSwipingInProgress(true); + mSwipingInProgress = true; + mCallback.onSwipingStarted(w < -mTouchSlop); } if (mSwipingInProgress) { setTranslation(mTranslationOnDown + x - mInitialTouchX, false, false); @@ -179,13 +183,6 @@ public class KeyguardAffordanceHelper { } } - private void setSwipingInProgress(boolean inProgress) { - mSwipingInProgress = inProgress; - if (inProgress) { - mCallback.onSwipingStarted(); - } - } - private boolean rightSwipePossible() { return mRightIcon.getVisibility() == View.VISIBLE; } @@ -323,6 +320,9 @@ public class KeyguardAffordanceHelper { } animator.start(); mSwipeAnimator = animator; + if (snapBack) { + mCallback.onSwipingAborted(); + } } private void startFinishingCircleAnimation(float velocity, Runnable mAnimationEndRunnable) { @@ -344,22 +344,23 @@ public class KeyguardAffordanceHelper { float alpha = absTranslation / getMinTranslationAmount(); // We interpolate the alpha of the other icons to 0 - float fadeOutAlpha = SWIPE_RESTING_ALPHA_AMOUNT * (1.0f - alpha); - fadeOutAlpha = Math.max(0.0f, fadeOutAlpha); - - // We interpolate the alpha of the targetView to 1 - alpha = fadeOutAlpha + alpha; + float fadeOutAlpha = 1.0f - alpha; + fadeOutAlpha = Math.min(1.0f, Math.max(0.0f, fadeOutAlpha)); boolean animateIcons = isReset && animateReset; float radius = getRadiusFromTranslation(absTranslation); boolean slowAnimation = isReset && isBelowFalsingThreshold(); if (!isReset) { - updateIcon(targetView, radius, alpha, false, false); + updateIcon(targetView, radius, alpha + fadeOutAlpha * targetView.getRestingAlpha(), + false, false); } else { - updateIcon(targetView, 0.0f, fadeOutAlpha, animateIcons, slowAnimation); + updateIcon(targetView, 0.0f, fadeOutAlpha * targetView.getRestingAlpha(), + animateIcons, slowAnimation); } - updateIcon(otherView, 0.0f, fadeOutAlpha, animateIcons, slowAnimation); - updateIcon(mCenterIcon, 0.0f, fadeOutAlpha, animateIcons, slowAnimation); + updateIcon(otherView, 0.0f, fadeOutAlpha * otherView.getRestingAlpha(), + animateIcons, slowAnimation); + updateIcon(mCenterIcon, 0.0f, fadeOutAlpha * mCenterIcon.getRestingAlpha(), + animateIcons, slowAnimation); mTranslation = translation; } @@ -369,15 +370,14 @@ public class KeyguardAffordanceHelper { float alpha = newRadius / mMinBackgroundRadius; // We interpolate the alpha of the other icons to 0 - float fadeOutAlpha = SWIPE_RESTING_ALPHA_AMOUNT * (1.0f - alpha); + float fadeOutAlpha = 1.0f - alpha; fadeOutAlpha = Math.max(0.0f, fadeOutAlpha); // We interpolate the alpha of the targetView to 1 - alpha = fadeOutAlpha + alpha; KeyguardAffordanceView otherView = targetView == mRightIcon ? mLeftIcon : mRightIcon; - updateIconAlpha(targetView, alpha, false); - updateIconAlpha(otherView, fadeOutAlpha, false); - updateIconAlpha(mCenterIcon, fadeOutAlpha, false); + updateIconAlpha(targetView, alpha + fadeOutAlpha * targetView.getRestingAlpha(), false); + updateIconAlpha(otherView, fadeOutAlpha * otherView.getRestingAlpha(), false); + updateIconAlpha(mCenterIcon, fadeOutAlpha * mCenterIcon.getRestingAlpha(), false); } private float getTranslationFromRadius(float circleSize) { @@ -404,14 +404,14 @@ public class KeyguardAffordanceHelper { } private void updateIconAlpha(KeyguardAffordanceView view, float alpha, boolean animate) { - float scale = getScale(alpha); + float scale = getScale(alpha, view); alpha = Math.min(1.0f, alpha); view.setImageAlpha(alpha, animate); view.setImageScale(scale, animate); } - private float getScale(float alpha) { - float scale = alpha / SWIPE_RESTING_ALPHA_AMOUNT * 0.2f + + private float getScale(float alpha, KeyguardAffordanceView icon) { + float scale = alpha / icon.getRestingAlpha() * 0.2f + KeyguardAffordanceView.MIN_ICON_SCALE_AMOUNT; return Math.min(scale, KeyguardAffordanceView.MAX_ICON_SCALE_AMOUNT); } @@ -451,7 +451,11 @@ public class KeyguardAffordanceHelper { mSwipeAnimator.cancel(); } setTranslation(0.0f, true, animate); - setSwipingInProgress(false); + mMotionCancelled = true; + if (mSwipingInProgress) { + mCallback.onSwipingAborted(); + } + mSwipingInProgress = false; } public interface Callback { @@ -470,7 +474,9 @@ public class KeyguardAffordanceHelper { float getPageWidth(); - void onSwipingStarted(); + void onSwipingStarted(boolean isRightwardMotion); + + void onSwipingAborted(); KeyguardAffordanceView getLeftIcon(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index a247c8e..410a7e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -25,13 +25,16 @@ import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; import android.os.AsyncTask; import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; +import android.os.Vibrator; import android.provider.MediaStore; +import android.provider.Settings; import android.telecom.TelecomManager; import android.util.AttributeSet; import android.util.Log; @@ -78,6 +81,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL private static final Intent PHONE_INTENT = new Intent(Intent.ACTION_DIAL); private static final int DOZE_ANIMATION_STAGGER_DELAY = 48; private static final int DOZE_ANIMATION_ELEMENT_DURATION = 250; + private static final long TRANSIENT_FP_ERROR_TIMEOUT = 1300; + private static final long[] FP_ERROR_VIBRATE_PATTERN = new long[] {0, 30, 100, 30}; + private static final long[] FP_SUCCESS_VIBRATE_PATTERN = new long[] {0, 30}; private KeyguardAffordanceView mCameraImageView; private KeyguardAffordanceView mPhoneImageView; @@ -100,6 +106,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL private final TrustDrawable mTrustDrawable; private final Interpolator mLinearOutSlowInInterpolator; private int mLastUnlockIconRes = 0; + private boolean mPrewarmSent; + private boolean mTransientFpError; public KeyguardBottomAreaView(Context context) { this(context, null); @@ -335,12 +343,47 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mLockPatternUtils.requireCredentialEntry(mLockPatternUtils.getCurrentUser()); } - public void launchCamera() { + public void prewarmCamera() { + Intent intent = getCameraIntent(); + String targetPackage = PreviewInflater.getTargetPackage(mContext, intent, + mLockPatternUtils.getCurrentUser()); + if (targetPackage != null) { + Intent prewarm = new Intent(MediaStore.ACTION_STILL_IMAGE_CAMERA_PREWARM); + prewarm.setPackage(targetPackage); + mPrewarmSent = true; + mContext.sendBroadcast(prewarm); + } + } + + public void maybeCooldownCamera() { + if (!mPrewarmSent) { + return; + } + mPrewarmSent = false; Intent intent = getCameraIntent(); + String targetPackage = PreviewInflater.getTargetPackage(mContext, intent, + mLockPatternUtils.getCurrentUser()); + if (targetPackage != null) { + Intent prewarm = new Intent(MediaStore.ACTION_STILL_IMAGE_CAMERA_COOLDOWN); + prewarm.setPackage(targetPackage); + mContext.sendBroadcast(prewarm); + } + } + + public void launchCamera() { + + // Reset prewarm state. + mPrewarmSent = false; + final Intent intent = getCameraIntent(); boolean wouldLaunchResolverActivity = PreviewInflater.wouldLaunchResolverActivity( mContext, intent, mLockPatternUtils.getCurrentUser()); if (intent == SECURE_CAMERA_INTENT && !wouldLaunchResolverActivity) { - mContext.startActivityAsUser(intent, UserHandle.CURRENT); + AsyncTask.execute(new Runnable() { + @Override + public void run() { + mContext.startActivityAsUser(intent, UserHandle.CURRENT); + } + }); } else { // We need to delay starting the activity because ResolverActivity finishes itself if @@ -395,28 +438,41 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL return; } // TODO: Real icon for facelock. - int iconRes = mUnlockMethodCache.isFaceUnlockRunning() - ? com.android.internal.R.drawable.ic_account_circle + boolean isFingerprintIcon = + KeyguardUpdateMonitor.getInstance(mContext).isFingerprintDetectionRunning(); + boolean anyFingerprintIcon = isFingerprintIcon || mTransientFpError; + int iconRes = mTransientFpError ? R.drawable.ic_fingerprint_error + : isFingerprintIcon ? R.drawable.ic_fingerprint + : mUnlockMethodCache.isFaceUnlockRunning() + ? com.android.internal.R.drawable.ic_account_circle : mUnlockMethodCache.isCurrentlyInsecure() ? R.drawable.ic_lock_open_24dp : R.drawable.ic_lock_24dp; + if (mLastUnlockIconRes != iconRes) { Drawable icon = mContext.getDrawable(iconRes); int iconHeight = getResources().getDimensionPixelSize( R.dimen.keyguard_affordance_icon_height); int iconWidth = getResources().getDimensionPixelSize( R.dimen.keyguard_affordance_icon_width); - if (icon.getIntrinsicHeight() != iconHeight || icon.getIntrinsicWidth() != iconWidth) { + if (!anyFingerprintIcon && (icon.getIntrinsicHeight() != iconHeight + || icon.getIntrinsicWidth() != iconWidth)) { icon = new IntrinsicSizeDrawable(icon, iconWidth, iconHeight); } mLockIcon.setImageDrawable(icon); + mLockIcon.setPaddingRelative(0, 0, 0, anyFingerprintIcon + ? getResources().getDimensionPixelSize( + R.dimen.fingerprint_icon_additional_padding) + : 0); + mLockIcon.setRestingAlpha( + anyFingerprintIcon ? 1f : KeyguardAffordanceHelper.SWIPE_RESTING_ALPHA_AMOUNT); } - boolean trustManaged = mUnlockMethodCache.isTrustManaged(); + + // Hide trust circle when fingerprint is running. + boolean trustManaged = mUnlockMethodCache.isTrustManaged() && !anyFingerprintIcon; mTrustDrawable.setTrustManaged(trustManaged); updateLockIconClickability(); } - - public KeyguardAffordanceView getPhoneView() { return mPhoneImageView; } @@ -494,6 +550,14 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL .setDuration(DOZE_ANIMATION_ELEMENT_DURATION); } + private void vibrateFingerprintError() { + mContext.getSystemService(Vibrator.class).vibrate(FP_ERROR_VIBRATE_PATTERN, -1); + } + + private void vibrateFingerprintSuccess() { + mContext.getSystemService(Vibrator.class).vibrate(FP_SUCCESS_VIBRATE_PATTERN, -1); + } + private final BroadcastReceiver mDevicePolicyReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { post(new Runnable() { @@ -505,6 +569,15 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } }; + private final Runnable mTransientFpErrorClearRunnable = new Runnable() { + @Override + public void run() { + mTransientFpError = false; + mIndicationController.hideTransientIndication(); + updateLockIcon(); + } + }; + private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @Override @@ -526,6 +599,33 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL public void onKeyguardVisibilityChanged(boolean showing) { updateLockIcon(); } + + @Override + public void onFingerprintAuthenticated(int userId) { + vibrateFingerprintSuccess(); + } + + @Override + public void onFingerprintRunningStateChanged(boolean running) { + updateLockIcon(); + } + + @Override + public void onFingerprintHelp(int msgId, String helpString) { + vibrateFingerprintError(); + mTransientFpError = true; + mIndicationController.showTransientIndication(helpString, + getResources().getColor(R.color.system_warning_color, null)); + removeCallbacks(mTransientFpErrorClearRunnable); + postDelayed(mTransientFpErrorClearRunnable, TRANSIENT_FP_ERROR_TIMEOUT); + updateLockIcon(); + } + + @Override + public void onFingerprintError(int msgId, String errString) { + // TODO: Go to bouncer if this is "too many attempts" (lockout) error. + Log.i(TAG, "FP Error: " + errString); + } }; public void setKeyguardIndicationController( @@ -533,7 +633,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mIndicationController = keyguardIndicationController; } - /** * A wrapper around another Drawable that overrides the intrinsic size. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 12ff399..c62ad66 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -50,6 +50,8 @@ import com.android.systemui.R; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.DelegateViewHelper; import com.android.systemui.statusbar.policy.DeadZone; +import com.android.systemui.statusbar.policy.KeyButtonView; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; @@ -195,7 +197,7 @@ public class NavigationBarView extends LinearLayout { mDelegateHelper.setDelegateView(view); } - public void setBar(BaseStatusBar phoneStatusBar) { + public void setBar(PhoneStatusBar phoneStatusBar) { mTaskSwitchHelper.setBar(phoneStatusBar); mDelegateHelper.setBar(phoneStatusBar); } @@ -261,8 +263,8 @@ public class NavigationBarView extends LinearLayout { return mCurrentView.findViewById(R.id.back); } - public View getHomeButton() { - return mCurrentView.findViewById(R.id.home); + public KeyButtonView getHomeButton() { + return (KeyButtonView) mCurrentView.findViewById(R.id.home); } public View getImeSwitchButton() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 195da46..02b6c19 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -1505,7 +1505,7 @@ public class NotificationPanelView extends PanelView implements lockIcon.setImageScale(LOCK_ICON_ACTIVE_SCALE, true, 150, mFastOutLinearInterpolator); } else if (!active && mUnlockIconActive && mTracking) { - lockIcon.setImageAlpha(KeyguardAffordanceHelper.SWIPE_RESTING_ALPHA_AMOUNT, true, + lockIcon.setImageAlpha(lockIcon.getRestingAlpha(), true /* animate */, 150, mFastOutLinearInterpolator, null); lockIcon.setImageScale(1.0f, true, 150, mFastOutLinearInterpolator); @@ -1796,8 +1796,8 @@ public class NotificationPanelView extends PanelView implements mFastOutSlowInInterpolator, new Runnable() { @Override public void run() { - icon.setImageAlpha(KeyguardAffordanceHelper.SWIPE_RESTING_ALPHA_AMOUNT, - true, KeyguardAffordanceHelper.HINT_PHASE1_DURATION, + icon.setImageAlpha(icon.getRestingAlpha(), + true /* animate */, KeyguardAffordanceHelper.HINT_PHASE1_DURATION, mFastOutSlowInInterpolator, null); } }); @@ -1809,14 +1809,24 @@ public class NotificationPanelView extends PanelView implements } @Override - public void onSwipingStarted() { - mSecureCameraLaunchManager.onSwipingStarted(); + public void onSwipingStarted(boolean isRightwardMotion) { + boolean start = getLayoutDirection() == LAYOUT_DIRECTION_RTL ? isRightwardMotion + : !isRightwardMotion; + if (!start) { + mSecureCameraLaunchManager.onSwipingStarted(); + mKeyguardBottomArea.prewarmCamera(); + } requestDisallowInterceptTouchEvent(true); mOnlyAffordanceInThisMotion = true; mQsTracking = false; } @Override + public void onSwipingAborted() { + mKeyguardBottomArea.maybeCooldownCamera(); + } + + @Override public KeyguardAffordanceView getLeftIcon() { return getLayoutDirection() == LAYOUT_DIRECTION_RTL ? mKeyguardBottomArea.getCameraView() diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index 3efaaff..c6e1be9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -187,11 +187,11 @@ public class PanelBar extends FrameLayout { (fullyOpenedPanel!=null)?" fullyOpened":"", fullyClosed?" fullyClosed":""); } - public void collapseAllPanels(boolean animate) { + public void collapseAllPanels(boolean animate, boolean delayed) { boolean waiting = false; for (PanelView pv : mPanels) { if (animate && !pv.isFullyCollapsed()) { - pv.collapse(true /* delayed */); + pv.collapse(delayed); waiting = true; } else { pv.resetViews(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 2c389fb..7c199cd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -49,7 +49,6 @@ import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.Bitmap; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.PixelFormat; import android.graphics.Point; @@ -114,6 +113,7 @@ import com.android.systemui.BatteryMeterView; import com.android.systemui.DemoMode; import com.android.systemui.EventLogConstants; import com.android.systemui.EventLogTags; +import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.doze.DozeHost; import com.android.systemui.doze.DozeLog; @@ -121,6 +121,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.qs.QSPanel; import com.android.systemui.recents.ScreenPinningRequest; import com.android.systemui.statusbar.ActivatableNotificationView; +import com.android.systemui.assist.AssistGestureManager; import com.android.systemui.statusbar.BackDropView; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.CommandQueue; @@ -225,8 +226,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, /** Allow some time inbetween the long press for back and recents. */ private static final int LOCK_TO_APP_GESTURE_TOLERENCE = 200; - private int mLightModeIconColor; - PhoneStatusBarPolicy mIconPolicy; // These are no longer handled by the policy, because we need custom strategies for them @@ -323,6 +322,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private int mNavigationIconHints = 0; private HandlerThread mHandlerThread; + private AssistGestureManager mAssistGestureManager; + // ensure quick settings is disabled until the current user makes it through the setup wizard private boolean mUserSetup = false; private ContentObserver mUserSetupObserver = new ContentObserver(new Handler()) { @@ -535,7 +536,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, updateDisplaySize(); mScrimSrcModeEnabled = mContext.getResources().getBoolean( R.bool.config_status_bar_scrim_behind_use_src); - mLightModeIconColor = mContext.getColor(R.color.light_mode_icon_color); super.start(); // calls createAndAddWindows() @@ -642,8 +642,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, new NavigationBarView.OnVerticalChangedListener() { @Override public void onVerticalChanged(boolean isVertical) { - if (mSearchPanelView != null) { - mSearchPanelView.setHorizontal(isVertical); + if (mAssistGestureManager != null) { + mAssistGestureManager.onConfigurationChanged(); } mNotificationPanel.setQsScrimEnabled(!isVertical); } @@ -834,6 +834,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mBroadcastReceiver.onReceive(mContext, new Intent(pm.isScreenOn() ? Intent.ACTION_SCREEN_ON : Intent.ACTION_SCREEN_OFF)); + mAssistGestureManager = new AssistGestureManager(this, context); + // receive broadcasts IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); @@ -953,60 +955,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mStatusBarWindow; } - @Override - protected WindowManager.LayoutParams getSearchLayoutParams(LayoutParams layoutParams) { - boolean opaque = false; - WindowManager.LayoutParams lp = new WindowManager.LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT, - WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL, - WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN - | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM - | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, - (opaque ? PixelFormat.OPAQUE : PixelFormat.TRANSLUCENT)); - if (ActivityManager.isHighEndGfx()) { - lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; - } - lp.gravity = Gravity.BOTTOM | Gravity.START; - lp.setTitle("SearchPanel"); - lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING; - return lp; - } - - @Override - protected void updateSearchPanel() { - super.updateSearchPanel(); - if (mNavigationBarView != null) { - mNavigationBarView.setDelegateView(mSearchPanelView); - } - } - - @Override - public void showSearchPanel() { - super.showSearchPanel(); - mHandler.removeCallbacks(mShowSearchPanel); - - // we want to freeze the sysui state wherever it is - mSearchPanelView.setSystemUiVisibility(mSystemUiVisibility); - - if (mNavigationBarView != null) { - WindowManager.LayoutParams lp = - (android.view.WindowManager.LayoutParams) mNavigationBarView.getLayoutParams(); - lp.flags &= ~WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; - mWindowManager.updateViewLayout(mNavigationBarView, lp); - } - } - - @Override - public void hideSearchPanel() { - super.hideSearchPanel(); - if (mNavigationBarView != null) { - WindowManager.LayoutParams lp = - (android.view.WindowManager.LayoutParams) mNavigationBarView.getLayoutParams(); - lp.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; - mWindowManager.updateViewLayout(mNavigationBarView, lp); - } + public void invokeAssistGesture(boolean vibrate) { + mHandler.removeCallbacks(mInvokeAssist); + mAssistGestureManager.onGestureInvoked(vibrate); } public int getStatusBarHeight() { @@ -1036,30 +987,33 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, }; private int mShowSearchHoldoff = 0; - private Runnable mShowSearchPanel = new Runnable() { + private Runnable mInvokeAssist = new Runnable() { public void run() { - showSearchPanel(); + invokeAssistGesture(true /* vibrate */); awakenDreams(); + if (mNavigationBarView != null) { + mNavigationBarView.getHomeButton().abortCurrentGesture(); + } } }; View.OnTouchListener mHomeActionListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { - switch(event.getAction()) { + switch (event.getAction()) { case MotionEvent.ACTION_DOWN: - if (!shouldDisableNavbarGestures()) { - mHandler.removeCallbacks(mShowSearchPanel); - mHandler.postDelayed(mShowSearchPanel, mShowSearchHoldoff); - } - break; + if (!shouldDisableNavbarGestures()) { + mHandler.removeCallbacks(mInvokeAssist); + mHandler.postDelayed(mInvokeAssist, mShowSearchHoldoff); + } + break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - mHandler.removeCallbacks(mShowSearchPanel); - awakenDreams(); - break; - } - return false; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + mHandler.removeCallbacks(mInvokeAssist); + awakenDreams(); + break; + } + return false; } }; @@ -1083,7 +1037,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mNavigationBarView.getBackButton().setLongClickable(true); mNavigationBarView.getBackButton().setOnLongClickListener(mLongPressBackRecentsListener); mNavigationBarView.getHomeButton().setOnTouchListener(mHomeActionListener); - updateSearchPanel(); + mAssistGestureManager.onConfigurationChanged(); } // For small-screen devices (read: phones) that lack hardware navigation buttons @@ -2038,10 +1992,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } public void animateCollapsePanels(int flags) { - animateCollapsePanels(flags, false /* force */); + animateCollapsePanels(flags, false /* force */, false /* delayed */); } public void animateCollapsePanels(int flags, boolean force) { + animateCollapsePanels(flags, force, false /* delayed*/); + } + + public void animateCollapsePanels(int flags, boolean force, boolean delayed) { if (!force && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) { runPostCollapseRunnables(); @@ -2060,17 +2018,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } - if ((flags & CommandQueue.FLAG_EXCLUDE_SEARCH_PANEL) == 0) { - mHandler.removeMessages(MSG_CLOSE_SEARCH_PANEL); - mHandler.sendEmptyMessage(MSG_CLOSE_SEARCH_PANEL); - } - if (mStatusBarWindow != null) { // release focus immediately to kick off focus change transition mStatusBarWindowManager.setStatusBarFocusable(false); mStatusBarWindow.cancelExpandHelper(); - mStatusBarView.collapseAllPanels(true); + mStatusBarView.collapseAllPanels(true /* animate */, delayed); } } @@ -2113,7 +2066,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void animateCollapseQuickSettings() { if (mState == StatusBarState.SHADE) { - mStatusBarView.collapseAllPanels(true); + mStatusBarView.collapseAllPanels(true, false /* delayed */); } } @@ -2126,7 +2079,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } // Ensure the panel is fully collapsed (just in case; bug 6765842, 7260868) - mStatusBarView.collapseAllPanels(/*animate=*/ false); + mStatusBarView.collapseAllPanels(/*animate=*/ false, false /* delayed*/); // reset things to their proper state mStackScroller.setVisibility(View.VISIBLE); @@ -2220,7 +2173,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mStatusBarWindowState = state; if (DEBUG_WINDOW_STATE) Log.d(TAG, "Status bar " + windowStateToString(state)); if (!showing && mState == StatusBarState.SHADE) { - mStatusBarView.collapseAllPanels(false); + mStatusBarView.collapseAllPanels(false /* animate */, false /* delayed */); } } if (mNavigationBarView != null @@ -2324,9 +2277,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, boolean allowLight = isTransparentBar && !mBatteryController.isPowerSave(); boolean light = (vis & View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) != 0; - mIconController.setIconTint( - (allowLight && light) ? mLightModeIconColor : Color.WHITE); - + mIconController.setIconsDark(allowLight && light); } // restore the recents bit if (wasRecentsVisible) { @@ -2627,8 +2578,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } pw.println("SharedPreferences:"); - for (Map.Entry<String, ?> entry : mContext.getSharedPreferences(mContext.getPackageName(), - Context.MODE_PRIVATE).getAll().entrySet()) { + for (Map.Entry<String, ?> entry : Prefs.getAll(mContext).entrySet()) { pw.print(" "); pw.print(entry.getKey()); pw.print("="); pw.println(entry.getValue()); } } @@ -2697,8 +2647,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } }); if (dismissShade) { - animateCollapsePanels( - CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true /* force */); + animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true /* force */, + true /* delayed*/); } return true; } @@ -2989,7 +2939,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, }; @Override - protected boolean shouldDisableNavbarGestures() { + public boolean shouldDisableNavbarGestures() { return !isDeviceProvisioned() || mExpandedVisible || (mDisabled & StatusBarManager.DISABLE_SEARCH) != 0; @@ -3058,6 +3008,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mHandlerThread = null; } mContext.unregisterReceiver(mBroadcastReceiver); + mAssistGestureManager.destroy(); } private boolean mDemoModeAllowed; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 2236aae..ac93ced 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java @@ -199,7 +199,7 @@ public class PhoneStatusBarPolicy { int volumeIconId = 0; String volumeDescription = null; - if (DndTile.isVisible(mContext)) { + if (DndTile.isVisible(mContext) || DndTile.isCombinedIcon(mContext)) { zenVisible = mZen != Global.ZEN_MODE_OFF; zenIconId = R.drawable.stat_sys_dnd; zenDescription = mContext.getString(R.string.quick_settings_dnd_label); @@ -218,7 +218,7 @@ public class PhoneStatusBarPolicy { volumeVisible = true; volumeIconId = R.drawable.stat_sys_ringer_silent; volumeDescription = mContext.getString(R.string.accessibility_ringer_silent); - } else if (mZen != Global.ZEN_MODE_NO_INTERRUPTIONS && + } else if (mZen != Global.ZEN_MODE_NO_INTERRUPTIONS && mZen != Global.ZEN_MODE_ALARMS && audioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_VIBRATE) { volumeVisible = true; volumeIconId = R.drawable.stat_sys_ringer_vibrate; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java index c49f620..45da297 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java @@ -16,11 +16,11 @@ package com.android.systemui.statusbar.phone; +import android.animation.ArgbEvaluator; import android.animation.ValueAnimator; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; -import android.graphics.PorterDuff; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; @@ -74,12 +74,16 @@ public class StatusBarIconController { private int mIconHPadding; private int mIconTint = Color.WHITE; + private float mDarkIntensity; private boolean mTransitionPending; private boolean mTintChangePending; - private int mPendingIconTint; + private float mPendingDarkIntensity; private ValueAnimator mTintAnimator; + private int mDarkModeIconColorSingleTone; + private int mLightModeIconColorSingleTone; + private final Handler mHandler; private boolean mTransitionDeferring; private long mTransitionDeferringStartTime; @@ -111,6 +115,8 @@ public class StatusBarIconController { android.R.interpolator.linear_out_slow_in); mFastOutSlowIn = AnimationUtils.loadInterpolator(mContext, android.R.interpolator.fast_out_slow_in); + mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone); + mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone); mHandler = new Handler(); updateResources(); } @@ -296,30 +302,31 @@ public class StatusBarIconController { } } - public void setIconTint(int tint) { + public void setIconsDark(boolean dark) { if (mTransitionPending) { - deferIconTintChange(tint); + deferIconTintChange(dark ? 1.0f : 0.0f); } else if (mTransitionDeferring) { - animateIconTint(tint, + animateIconTint(dark ? 1.0f : 0.0f, Math.max(0, mTransitionDeferringStartTime - SystemClock.uptimeMillis()), mTransitionDeferringDuration); } else { - animateIconTint(tint, 0 /* delay */, DEFAULT_TINT_ANIMATION_DURATION); + animateIconTint(dark ? 1.0f : 0.0f, 0 /* delay */, DEFAULT_TINT_ANIMATION_DURATION); } } - private void animateIconTint(int targetTint, long delay, long duration) { + private void animateIconTint(float targetDarkIntensity, long delay, + long duration) { if (mTintAnimator != null) { mTintAnimator.cancel(); } - if (mIconTint == targetTint) { + if (mDarkIntensity == targetDarkIntensity) { return; } - mTintAnimator = ValueAnimator.ofArgb(mIconTint, targetTint); + mTintAnimator = ValueAnimator.ofFloat(mDarkIntensity, targetDarkIntensity); mTintAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { - setIconTintInternal((Integer) animation.getAnimatedValue()); + setIconTintInternal((Float) animation.getAnimatedValue()); } }); mTintAnimator.setDuration(duration); @@ -327,17 +334,20 @@ public class StatusBarIconController { mTintAnimator.setInterpolator(mFastOutSlowIn); mTintAnimator.start(); } - private void setIconTintInternal(int tint) { - mIconTint = tint; + + private void setIconTintInternal(float darkIntensity) { + mDarkIntensity = darkIntensity; + mIconTint = (int) ArgbEvaluator.getInstance().evaluate(darkIntensity, + mLightModeIconColorSingleTone, mDarkModeIconColorSingleTone); applyIconTint(); } - private void deferIconTintChange(int tint) { - if (mTintChangePending && tint == mPendingIconTint) { + private void deferIconTintChange(float darkIntensity) { + if (mTintChangePending && darkIntensity == mPendingDarkIntensity) { return; } mTintChangePending = true; - mPendingIconTint = tint; + mPendingDarkIntensity = darkIntensity; } private void applyIconTint() { @@ -345,9 +355,9 @@ public class StatusBarIconController { StatusBarIconView v = (StatusBarIconView) mStatusIcons.getChildAt(i); v.setImageTintList(ColorStateList.valueOf(mIconTint)); } - mSignalCluster.setIconTint(mIconTint); + mSignalCluster.setIconTint(mIconTint, mDarkIntensity); mMoreIcon.setImageTintList(ColorStateList.valueOf(mIconTint)); - mBatteryMeterView.setIconTint(mIconTint); + mBatteryMeterView.setDarkIntensity(mDarkIntensity); mClock.setTextColor(mIconTint); applyNotificationIconsTint(); } @@ -358,7 +368,6 @@ public class StatusBarIconController { boolean isPreL = Boolean.TRUE.equals(v.getTag(R.id.icon_is_pre_L)); boolean colorize = !isPreL || isGrayscale(v); if (colorize) { - v.setImageTintMode(PorterDuff.Mode.SRC_ATOP); v.setImageTintList(ColorStateList.valueOf(mIconTint)); } } @@ -381,7 +390,7 @@ public class StatusBarIconController { public void appTransitionCancelled() { if (mTransitionPending && mTintChangePending) { mTintChangePending = false; - animateIconTint(mPendingIconTint, 0 /* delay */, DEFAULT_TINT_ANIMATION_DURATION); + animateIconTint(mPendingDarkIntensity, 0 /* delay */, DEFAULT_TINT_ANIMATION_DURATION); } mTransitionPending = false; } @@ -389,7 +398,7 @@ public class StatusBarIconController { public void appTransitionStarting(long startTime, long duration) { if (mTransitionPending && mTintChangePending) { mTintChangePending = false; - animateIconTint(mPendingIconTint, + animateIconTint(mPendingDarkIntensity, Math.max(0, startTime - SystemClock.uptimeMillis()), duration); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index a18daed..6bc51fa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -48,6 +48,7 @@ public class KeyButtonView extends ImageView { private int mTouchSlop; private boolean mSupportsLongpress = true; private AudioManager mAudioManager; + private boolean mGestureAborted; private final Runnable mCheckLongPress = new Runnable() { public void run() { @@ -126,10 +127,15 @@ public class KeyButtonView extends ImageView { public boolean onTouchEvent(MotionEvent ev) { final int action = ev.getAction(); int x, y; + if (action == MotionEvent.ACTION_DOWN) { + mGestureAborted = false; + } + if (mGestureAborted) { + return false; + } switch (action) { case MotionEvent.ACTION_DOWN: - //Log.d("KeyButtonView", "press"); mDownTime = SystemClock.uptimeMillis(); setPressed(true); if (mCode != 0) { @@ -203,6 +209,11 @@ public class KeyButtonView extends ImageView { InputManager.getInstance().injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); } + + public void abortCurrentGesture() { + setPressed(false); + mGestureAborted = true; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java index 34068fd..0dce82f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.policy; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -106,15 +107,28 @@ public class PreviewInflater { public static boolean wouldLaunchResolverActivity(Context ctx, Intent intent, int currentUserId) { + return getTargetPackage(ctx, intent, currentUserId) == null; + } + + /** + * @return the target package of the intent it resolves to a specific package or {@code null} if + * it resolved to the resolver activity + */ + public static String getTargetPackage(Context ctx, Intent intent, + int currentUserId) { PackageManager packageManager = ctx.getPackageManager(); final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser( intent, PackageManager.MATCH_DEFAULT_ONLY, currentUserId); if (appList.size() == 0) { - return false; + return null; } ResolveInfo resolved = packageManager.resolveActivityAsUser(intent, PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA, currentUserId); - return wouldLaunchResolverActivity(resolved, appList); + if (resolved == null || wouldLaunchResolverActivity(resolved, appList)) { + return null; + } else { + return resolved.activityInfo.packageName; + } } private static boolean wouldLaunchResolverActivity( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java index 0e21457..67cc788 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java @@ -17,16 +17,19 @@ package com.android.systemui.statusbar.policy; import android.content.ComponentName; +import android.net.Uri; import android.service.notification.Condition; +import android.service.notification.ZenModeConfig; +import android.service.notification.ZenModeConfig.ZenRule; public interface ZenModeController { void addCallback(Callback callback); void removeCallback(Callback callback); - void setZen(int zen); + void setZen(int zen, Uri conditionId, String reason); int getZen(); void requestConditions(boolean request); - void setExitCondition(Condition exitCondition); - Condition getExitCondition(); + ZenRule getManualRule(); + ZenModeConfig getConfig(); long getNextAlarm(); void setUserId(int userId); boolean isZenAvailable(); @@ -35,10 +38,11 @@ public interface ZenModeController { public static class Callback { public void onZenChanged(int zen) {} - public void onExitConditionChanged(Condition exitCondition) {} public void onConditionsChanged(Condition[] conditions) {} public void onNextAlarmChanged() {} public void onZenAvailableChanged(boolean available) {} public void onEffectsSupressorChanged() {} + public void onManualRuleChanged(ZenRule rule) {} + public void onConfigChanged(ZenModeConfig config) {} } }
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java index bea0c86..830a197 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java @@ -33,6 +33,7 @@ import android.provider.Settings.Secure; import android.service.notification.Condition; import android.service.notification.IConditionListener; import android.service.notification.ZenModeConfig; +import android.service.notification.ZenModeConfig.ZenRule; import android.util.Log; import android.util.Slog; @@ -40,6 +41,7 @@ import com.android.systemui.qs.GlobalSetting; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.Objects; /** Platform implementation of the zen mode controller. **/ public class ZenModeControllerImpl implements ZenModeController { @@ -58,6 +60,7 @@ public class ZenModeControllerImpl implements ZenModeController { private int mUserId; private boolean mRequesting; private boolean mRegistered; + private ZenModeConfig mConfig; public ZenModeControllerImpl(Context context, Handler handler) { mContext = context; @@ -70,12 +73,13 @@ public class ZenModeControllerImpl implements ZenModeController { mConfigSetting = new GlobalSetting(mContext, handler, Global.ZEN_MODE_CONFIG_ETAG) { @Override protected void handleValueChanged(int value) { - fireExitConditionChanged(); + updateZenModeConfig(); } }; + mNoMan = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + mConfig = mNoMan.getZenModeConfig(); mModeSetting.setListening(true); mConfigSetting.setListening(true); - mNoMan = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mSetupObserver = new SetupObserver(handler); mSetupObserver.register(); @@ -97,8 +101,8 @@ public class ZenModeControllerImpl implements ZenModeController { } @Override - public void setZen(int zen) { - mModeSetting.setValue(zen); + public void setZen(int zen, Uri conditionId, String reason) { + mNoMan.setZenMode(zen, conditionId, reason); } @Override @@ -116,13 +120,13 @@ public class ZenModeControllerImpl implements ZenModeController { } @Override - public void setExitCondition(Condition exitCondition) { - mNoMan.setZenModeCondition(exitCondition); + public ZenRule getManualRule() { + return mConfig == null ? null : mConfig.manualRule; } @Override - public Condition getExitCondition() { - return mNoMan.getZenModeCondition(); + public ZenModeConfig getConfig() { + return mConfig; } @Override @@ -185,11 +189,15 @@ public class ZenModeControllerImpl implements ZenModeController { } } - private void fireExitConditionChanged() { - final Condition exitCondition = getExitCondition(); - if (DEBUG) Slog.d(TAG, "exitCondition changed: " + exitCondition); + private void fireManualRuleChanged(ZenRule rule) { + for (Callback cb : mCallbacks) { + cb.onManualRuleChanged(rule); + } + } + + private void fireConfigChanged(ZenModeConfig config) { for (Callback cb : mCallbacks) { - cb.onExitConditionChanged(exitCondition); + cb.onConfigChanged(config); } } @@ -203,6 +211,17 @@ public class ZenModeControllerImpl implements ZenModeController { mConditions.values().toArray(new Condition[mConditions.values().size()])); } + private void updateZenModeConfig() { + final ZenModeConfig config = mNoMan.getZenModeConfig(); + if (Objects.equals(config, mConfig)) return; + final ZenRule oldRule = mConfig != null ? mConfig.manualRule : null; + mConfig = config; + fireConfigChanged(config); + final ZenRule newRule = config != null ? config.manualRule : null; + if (Objects.equals(oldRule, newRule)) return; + fireManualRuleChanged(newRule); + } + private final IConditionListener mListener = new IConditionListener.Stub() { @Override public void onConditionsReceived(Condition[] conditions) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index d1e1b71..c272e48 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -106,12 +106,6 @@ public class TvStatusBar extends BaseStatusBar { } @Override - protected WindowManager.LayoutParams getSearchLayoutParams( - LayoutParams layoutParams) { - return null; - } - - @Override protected void setAreThereNotifications() { } @@ -120,7 +114,7 @@ public class TvStatusBar extends BaseStatusBar { } @Override - protected boolean shouldDisableNavbarGestures() { + public boolean shouldDisableNavbarGestures() { return true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPanel.java b/packages/SystemUI/src/com/android/systemui/volume/D.java index 272c321..db7c853 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPanel.java +++ b/packages/SystemUI/src/com/android/systemui/volume/D.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,10 @@ * limitations under the License. */ -package com.android.systemui.statusbar; +package com.android.systemui.volume; -public interface StatusBarPanel { - public boolean isInContentArea(int x, int y); +import android.util.Log; + +class D { + public static boolean BUG = Log.isLoggable("volume", Log.DEBUG); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/Events.java b/packages/SystemUI/src/com/android/systemui/volume/Events.java new file mode 100644 index 0000000..12dca94 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/Events.java @@ -0,0 +1,190 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.media.AudioManager; +import android.media.AudioSystem; +import android.provider.Settings.Global; +import android.util.Log; + +import com.android.systemui.volume.VolumeDialogController.State; + +import java.util.Arrays; + +/** + * Interesting events related to the volume. + */ +public class Events { + private static final String TAG = Util.logTag(Events.class); + + public static final int EVENT_SHOW_DIALOG = 0; // (reason|int) (keyguard|bool) + public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int) + public static final int EVENT_ACTIVE_STREAM_CHANGED = 2; // (stream|int) + public static final int EVENT_EXPAND = 3; // (expand|bool) + public static final int EVENT_KEY = 4; + public static final int EVENT_COLLECTION_STARTED = 5; + public static final int EVENT_COLLECTION_STOPPED = 6; + public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int) + public static final int EVENT_SETTINGS_CLICK = 8; + public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int) + public static final int EVENT_LEVEL_CHANGED = 10; // (stream|int) (level|int) + public static final int EVENT_INTERNAL_RINGER_MODE_CHANGED = 11; // (mode|int) + public static final int EVENT_EXTERNAL_RINGER_MODE_CHANGED = 12; // (mode|int) + public static final int EVENT_ZEN_MODE_CHANGED = 13; // (mode|int) + public static final int EVENT_SUPPRESSOR_CHANGED = 14; // (component|string) (name|string) + public static final int EVENT_MUTE_CHANGED = 15; // (stream|int) (muted|bool) + + private static final String[] EVENT_TAGS = { + "show_dialog", + "dismiss_dialog", + "active_stream_changed", + "expand", + "key", + "collection_started", + "collection_stopped", + "icon_click", + "settings_click", + "touch_level_changed", + "level_changed", + "internal_ringer_mode_changed", + "external_ringer_mode_changed", + "zen_mode_changed", + "suppressor_changed", + "mute_changed", + }; + + public static final int DISMISS_REASON_UNKNOWN = 0; + public static final int DISMISS_REASON_TOUCH_OUTSIDE = 1; + public static final int DISMISS_REASON_VOLUME_CONTROLLER = 2; + public static final int DISMISS_REASON_TIMEOUT = 3; + public static final int DISMISS_REASON_SCREEN_OFF = 4; + public static final int DISMISS_REASON_SETTINGS_CLICKED = 5; + public static final int DISMISS_REASON_DONE_CLICKED = 6; + public static final String[] DISMISS_REASONS = { + "unknown", + "touch_outside", + "volume_controller", + "timeout", + "screen_off", + "settings_clicked", + "done_clicked", + }; + + public static final int SHOW_REASON_UNKNOWN = 0; + public static final int SHOW_REASON_VOLUME_CHANGED = 1; + public static final int SHOW_REASON_REMOTE_VOLUME_CHANGED = 2; + public static final String[] SHOW_REASONS = { + "unknown", + "volume_changed", + "remote_volume_changed" + }; + + public static final int ICON_STATE_UNKNOWN = 0; + public static final int ICON_STATE_UNMUTE = 1; + public static final int ICON_STATE_MUTE = 2; + public static final int ICON_STATE_VIBRATE = 3; + + public static Callback sCallback; + + public static void writeEvent(int tag, Object... list) { + final long time = System.currentTimeMillis(); + final StringBuilder sb = new StringBuilder("writeEvent ").append(EVENT_TAGS[tag]); + if (list != null && list.length > 0) { + sb.append(" "); + switch (tag) { + case EVENT_SHOW_DIALOG: + sb.append(SHOW_REASONS[(Integer) list[0]]).append(" keyguard=").append(list[1]); + break; + case EVENT_EXPAND: + sb.append(list[0]); + break; + case EVENT_DISMISS_DIALOG: + sb.append(DISMISS_REASONS[(Integer) list[0]]); + break; + case EVENT_ACTIVE_STREAM_CHANGED: + sb.append(AudioSystem.streamToString((Integer) list[0])); + break; + case EVENT_ICON_CLICK: + sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') + .append(iconStateToString((Integer) list[1])); + break; + case EVENT_TOUCH_LEVEL_CHANGED: + case EVENT_LEVEL_CHANGED: + case EVENT_MUTE_CHANGED: + sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') + .append(list[1]); + break; + case EVENT_INTERNAL_RINGER_MODE_CHANGED: + case EVENT_EXTERNAL_RINGER_MODE_CHANGED: + sb.append(ringerModeToString((Integer) list[0])); + break; + case EVENT_ZEN_MODE_CHANGED: + sb.append(zenModeToString((Integer) list[0])); + break; + case EVENT_SUPPRESSOR_CHANGED: + sb.append(list[0]).append(' ').append(list[1]); + break; + default: + sb.append(Arrays.asList(list)); + break; + } + } + Log.i(TAG, sb.toString()); + if (sCallback != null) { + sCallback.writeEvent(time, tag, list); + } + } + + public static void writeState(long time, State state) { + if (sCallback != null) { + sCallback.writeState(time, state); + } + } + + private static String iconStateToString(int iconState) { + switch (iconState) { + case ICON_STATE_UNMUTE: return "unmute"; + case ICON_STATE_MUTE: return "mute"; + case ICON_STATE_VIBRATE: return "vibrate"; + default: return "unknown_state_" + iconState; + } + } + + private static String ringerModeToString(int ringerMode) { + switch (ringerMode) { + case AudioManager.RINGER_MODE_SILENT: return "silent"; + case AudioManager.RINGER_MODE_VIBRATE: return "vibrate"; + case AudioManager.RINGER_MODE_NORMAL: return "normal"; + default: return "unknown"; + } + } + + private static String zenModeToString(int zenMode) { + switch (zenMode) { + case Global.ZEN_MODE_OFF: return "off"; + case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS: return "important_interruptions"; + case Global.ZEN_MODE_ALARMS: return "alarms"; + case Global.ZEN_MODE_NO_INTERRUPTIONS: return "no_interruptions"; + default: return "unknown"; + } + } + + public interface Callback { + void writeEvent(long time, int tag, Object[] list); + void writeState(long time, State state); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/MediaSessions.java b/packages/SystemUI/src/com/android/systemui/volume/MediaSessions.java new file mode 100644 index 0000000..712ea27 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/MediaSessions.java @@ -0,0 +1,378 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.ResolveInfo; +import android.media.IRemoteVolumeController; +import android.media.MediaMetadata; +import android.media.session.ISessionController; +import android.media.session.MediaController; +import android.media.session.MediaController.PlaybackInfo; +import android.media.session.MediaSession.QueueItem; +import android.media.session.MediaSession.Token; +import android.media.session.MediaSessionManager; +import android.media.session.MediaSessionManager.OnActiveSessionsChangedListener; +import android.media.session.PlaybackState; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.os.RemoteException; +import android.util.Log; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Convenience client for all media session updates. Provides a callback interface for events + * related to remote media sessions. + */ +public class MediaSessions { + private static final String TAG = Util.logTag(MediaSessions.class); + + private static final boolean USE_SERVICE_LABEL = false; + + private final Context mContext; + private final H mHandler; + private final MediaSessionManager mMgr; + private final Map<Token, MediaControllerRecord> mRecords = new HashMap<>(); + private final Callbacks mCallbacks; + + private boolean mInit; + + public MediaSessions(Context context, Looper looper, Callbacks callbacks) { + mContext = context; + mHandler = new H(looper); + mMgr = (MediaSessionManager) context.getSystemService(Context.MEDIA_SESSION_SERVICE); + mCallbacks = callbacks; + } + + public void dump(PrintWriter writer) { + writer.println(getClass().getSimpleName() + " state:"); + writer.print(" mInit: "); writer.println(mInit); + writer.print(" mRecords.size: "); writer.println(mRecords.size()); + int i = 0; + for (MediaControllerRecord r : mRecords.values()) { + dump(++i, writer, r.controller); + } + } + + public void init() { + if (D.BUG) Log.d(TAG, "init"); + // will throw if no permission + mMgr.addOnActiveSessionsChangedListener(mSessionsListener, null, mHandler); + mInit = true; + postUpdateSessions(); + mMgr.setRemoteVolumeController(mRvc); + } + + protected void postUpdateSessions() { + if (!mInit) return; + mHandler.sendEmptyMessage(H.UPDATE_SESSIONS); + } + + public void destroy() { + if (D.BUG) Log.d(TAG, "destroy"); + mInit = false; + mMgr.removeOnActiveSessionsChangedListener(mSessionsListener); + } + + public void setVolume(Token token, int level) { + final MediaControllerRecord r = mRecords.get(token); + if (r == null) { + Log.w(TAG, "setVolume: No record found for token " + token); + return; + } + if (D.BUG) Log.d(TAG, "Setting level to " + level); + r.controller.setVolumeTo(level, 0); + } + + private void onRemoteVolumeChangedH(ISessionController session, int flags) { + final MediaController controller = new MediaController(mContext, session); + if (D.BUG) Log.d(TAG, "remoteVolumeChangedH " + controller.getPackageName() + " " + + Util.audioManagerFlagsToString(flags)); + final Token token = controller.getSessionToken(); + mCallbacks.onRemoteVolumeChanged(token, flags); + } + + private void onUpdateRemoteControllerH(ISessionController session) { + final MediaController controller = session != null ? new MediaController(mContext, session) + : null; + final String pkg = controller != null ? controller.getPackageName() : null; + if (D.BUG) Log.d(TAG, "updateRemoteControllerH " + pkg); + // this may be our only indication that a remote session is changed, refresh + postUpdateSessions(); + } + + protected void onActiveSessionsUpdatedH(List<MediaController> controllers) { + if (D.BUG) Log.d(TAG, "onActiveSessionsUpdatedH n=" + controllers.size()); + final Set<Token> toRemove = new HashSet<Token>(mRecords.keySet()); + for (MediaController controller : controllers) { + final Token token = controller.getSessionToken(); + final PlaybackInfo pi = controller.getPlaybackInfo(); + toRemove.remove(token); + if (!mRecords.containsKey(token)) { + final MediaControllerRecord r = new MediaControllerRecord(controller); + r.name = getControllerName(controller); + mRecords.put(token, r); + controller.registerCallback(r, mHandler); + } + final MediaControllerRecord r = mRecords.get(token); + final boolean remote = isRemote(pi); + if (remote) { + updateRemoteH(token, r.name, pi); + r.sentRemote = true; + } + } + for (Token t : toRemove) { + final MediaControllerRecord r = mRecords.get(t); + r.controller.unregisterCallback(r); + mRecords.remove(t); + if (D.BUG) Log.d(TAG, "Removing " + r.name + " sentRemote=" + r.sentRemote); + if (r.sentRemote) { + mCallbacks.onRemoteRemoved(t); + r.sentRemote = false; + } + } + } + + private static boolean isRemote(PlaybackInfo pi) { + return pi != null && pi.getPlaybackType() == PlaybackInfo.PLAYBACK_TYPE_REMOTE; + } + + protected String getControllerName(MediaController controller) { + final PackageManager pm = mContext.getPackageManager(); + final String pkg = controller.getPackageName(); + try { + if (USE_SERVICE_LABEL) { + final List<ResolveInfo> ris = pm.queryIntentServices( + new Intent("android.media.MediaRouteProviderService").setPackage(pkg), 0); + if (ris != null) { + for (ResolveInfo ri : ris) { + if (ri.serviceInfo == null) continue; + if (pkg.equals(ri.serviceInfo.packageName)) { + final String serviceLabel = + Objects.toString(ri.serviceInfo.loadLabel(pm), "").trim(); + if (serviceLabel.length() > 0) { + return serviceLabel; + } + } + } + } + } + final ApplicationInfo ai = pm.getApplicationInfo(pkg, 0); + final String appLabel = Objects.toString(ai.loadLabel(pm), "").trim(); + if (appLabel.length() > 0) { + return appLabel; + } + } catch (NameNotFoundException e) { } + return pkg; + } + + private void updateRemoteH(Token token, String name, PlaybackInfo pi) { + if (mCallbacks != null) { + mCallbacks.onRemoteUpdate(token, name, pi); + } + } + + private static void dump(int n, PrintWriter writer, MediaController c) { + writer.println(" Controller " + n + ": " + c.getPackageName()); + final Bundle extras = c.getExtras(); + final long flags = c.getFlags(); + final MediaMetadata mm = c.getMetadata(); + final PlaybackInfo pi = c.getPlaybackInfo(); + final PlaybackState playbackState = c.getPlaybackState(); + final List<QueueItem> queue = c.getQueue(); + final CharSequence queueTitle = c.getQueueTitle(); + final int ratingType = c.getRatingType(); + final PendingIntent sessionActivity = c.getSessionActivity(); + + writer.println(" PlaybackState: " + Util.playbackStateToString(playbackState)); + writer.println(" PlaybackInfo: " + Util.playbackInfoToString(pi)); + if (mm != null) { + writer.println(" MediaMetadata.desc=" + mm.getDescription()); + } + writer.println(" RatingType: " + ratingType); + writer.println(" Flags: " + flags); + if (extras != null) { + writer.println(" Extras:"); + for (String key : extras.keySet()) { + writer.println(" " + key + "=" + extras.get(key)); + } + } + if (queueTitle != null) { + writer.println(" QueueTitle: " + queueTitle); + } + if (queue != null && !queue.isEmpty()) { + writer.println(" Queue:"); + for (QueueItem qi : queue) { + writer.println(" " + qi); + } + } + if (pi != null) { + writer.println(" sessionActivity: " + sessionActivity); + } + } + + public static void dumpMediaSessions(Context context) { + final MediaSessionManager mgr = (MediaSessionManager) context + .getSystemService(Context.MEDIA_SESSION_SERVICE); + try { + final List<MediaController> controllers = mgr.getActiveSessions(null); + final int N = controllers.size(); + if (D.BUG) Log.d(TAG, N + " controllers"); + for (int i = 0; i < N; i++) { + final StringWriter sw = new StringWriter(); + final PrintWriter pw = new PrintWriter(sw, true); + dump(i + 1, pw, controllers.get(i)); + if (D.BUG) Log.d(TAG, sw.toString()); + } + } catch (SecurityException e) { + Log.w(TAG, "Not allowed to get sessions", e); + } + } + + private final class MediaControllerRecord extends MediaController.Callback { + private final MediaController controller; + + private boolean sentRemote; + private String name; + + private MediaControllerRecord(MediaController controller) { + this.controller = controller; + } + + private String cb(String method) { + return method + " " + controller.getPackageName() + " "; + } + + @Override + public void onAudioInfoChanged(PlaybackInfo info) { + if (D.BUG) Log.d(TAG, cb("onAudioInfoChanged") + Util.playbackInfoToString(info) + + " sentRemote=" + sentRemote); + final boolean remote = isRemote(info); + if (!remote && sentRemote) { + mCallbacks.onRemoteRemoved(controller.getSessionToken()); + sentRemote = false; + } else if (remote) { + updateRemoteH(controller.getSessionToken(), name, info); + sentRemote = true; + } + } + + @Override + public void onExtrasChanged(Bundle extras) { + if (D.BUG) Log.d(TAG, cb("onExtrasChanged") + extras); + } + + @Override + public void onMetadataChanged(MediaMetadata metadata) { + if (D.BUG) Log.d(TAG, cb("onMetadataChanged") + Util.mediaMetadataToString(metadata)); + } + + @Override + public void onPlaybackStateChanged(PlaybackState state) { + if (D.BUG) Log.d(TAG, cb("onPlaybackStateChanged") + Util.playbackStateToString(state)); + } + + @Override + public void onQueueChanged(List<QueueItem> queue) { + if (D.BUG) Log.d(TAG, cb("onQueueChanged") + queue); + } + + @Override + public void onQueueTitleChanged(CharSequence title) { + if (D.BUG) Log.d(TAG, cb("onQueueTitleChanged") + title); + } + + @Override + public void onSessionDestroyed() { + if (D.BUG) Log.d(TAG, cb("onSessionDestroyed")); + } + + @Override + public void onSessionEvent(String event, Bundle extras) { + if (D.BUG) Log.d(TAG, cb("onSessionEvent") + "event=" + event + " extras=" + extras); + } + } + + private final OnActiveSessionsChangedListener mSessionsListener = + new OnActiveSessionsChangedListener() { + @Override + public void onActiveSessionsChanged(List<MediaController> controllers) { + onActiveSessionsUpdatedH(controllers); + } + }; + + private final IRemoteVolumeController mRvc = new IRemoteVolumeController.Stub() { + @Override + public void remoteVolumeChanged(ISessionController session, int flags) + throws RemoteException { + mHandler.obtainMessage(H.REMOTE_VOLUME_CHANGED, flags, 0, session).sendToTarget(); + } + + @Override + public void updateRemoteController(final ISessionController session) + throws RemoteException { + mHandler.obtainMessage(H.UPDATE_REMOTE_CONTROLLER, session).sendToTarget(); + } + }; + + private final class H extends Handler { + private static final int UPDATE_SESSIONS = 1; + private static final int REMOTE_VOLUME_CHANGED = 2; + private static final int UPDATE_REMOTE_CONTROLLER = 3; + + private H(Looper looper) { + super(looper); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case UPDATE_SESSIONS: + onActiveSessionsUpdatedH(mMgr.getActiveSessions(null)); + break; + case REMOTE_VOLUME_CHANGED: + onRemoteVolumeChangedH((ISessionController) msg.obj, msg.arg1); + break; + case UPDATE_REMOTE_CONTROLLER: + onUpdateRemoteControllerH((ISessionController) msg.obj); + break; + } + } + } + + public interface Callbacks { + void onRemoteUpdate(Token token, String name, PlaybackInfo pi); + void onRemoteRemoved(Token t); + void onRemoteVolumeChanged(Token token, int flags); + } + +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/Prefs.java b/packages/SystemUI/src/com/android/systemui/volume/Prefs.java new file mode 100644 index 0000000..58bc9f4 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/Prefs.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; +import android.preference.PreferenceManager; + +/** + * Configuration for the volume dialog + related policy. + */ +public class Prefs { + + public static final String PREF_ENABLE_PROTOTYPE = "pref_enable_prototype"; // not persistent + public static final String PREF_SHOW_ALARMS = "pref_show_alarms"; + public static final String PREF_SHOW_SYSTEM = "pref_show_system"; + public static final String PREF_SHOW_HEADERS = "pref_show_headers"; + public static final String PREF_SHOW_FAKE_REMOTE_1 = "pref_show_fake_remote_1"; + public static final String PREF_SHOW_FAKE_REMOTE_2 = "pref_show_fake_remote_2"; + public static final String PREF_SHOW_FOOTER = "pref_show_footer"; + public static final String PREF_ZEN_FOOTER = "pref_zen_footer"; + public static final String PREF_ENABLE_AUTOMUTE = "pref_enable_automute"; + public static final String PREF_ENABLE_SILENT_MODE = "pref_enable_silent_mode"; + public static final String PREF_DEBUG_LOGGING = "pref_debug_logging"; + public static final String PREF_SEND_LOGS = "pref_send_logs"; + public static final String PREF_ADJUST_SYSTEM = "pref_adjust_system"; + public static final String PREF_ADJUST_VOICE_CALLS = "pref_adjust_voice_calls"; + public static final String PREF_ADJUST_BLUETOOTH_SCO = "pref_adjust_bluetooth_sco"; + public static final String PREF_ADJUST_MEDIA = "pref_adjust_media"; + public static final String PREF_ADJUST_ALARMS = "pref_adjust_alarms"; + public static final String PREF_ADJUST_NOTIFICATION = "pref_adjust_notification"; + + public static final boolean DEFAULT_SHOW_HEADERS = true; + public static final boolean DEFAULT_SHOW_FOOTER = true; + public static final boolean DEFAULT_ENABLE_AUTOMUTE = true; + public static final boolean DEFAULT_ENABLE_SILENT_MODE = true; + public static final boolean DEFAULT_ZEN_FOOTER = true; + + public static void unregisterCallbacks(Context c, OnSharedPreferenceChangeListener listener) { + prefs(c).unregisterOnSharedPreferenceChangeListener(listener); + } + + public static void registerCallbacks(Context c, OnSharedPreferenceChangeListener listener) { + prefs(c).registerOnSharedPreferenceChangeListener(listener); + } + + private static SharedPreferences prefs(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context); + } + + public static boolean get(Context context, String key, boolean def) { + return prefs(context).getBoolean(key, def); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java b/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java new file mode 100644 index 0000000..04640a2 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.media.AudioManager; +import android.util.Log; +import android.view.KeyEvent; +import android.view.WindowManager; + +import com.android.systemui.statusbar.phone.SystemUIDialog; + +abstract public class SafetyWarningDialog extends SystemUIDialog + implements DialogInterface.OnDismissListener, DialogInterface.OnClickListener { + + private static final String TAG = Util.logTag(SafetyWarningDialog.class); + + private static final int KEY_CONFIRM_ALLOWED_AFTER = 1000; // milliseconds + + private final Context mContext; + private final AudioManager mAudioManager; + + private long mShowTime; + private boolean mNewVolumeUp; + + public SafetyWarningDialog(Context context, AudioManager audioManager) { + super(context); + mContext = context; + mAudioManager = audioManager; + + getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR); + setMessage(mContext.getString(com.android.internal.R.string.safe_media_volume_warning)); + setButton(DialogInterface.BUTTON_POSITIVE, + mContext.getString(com.android.internal.R.string.yes), this); + setButton(DialogInterface.BUTTON_NEGATIVE, + mContext.getString(com.android.internal.R.string.no), (OnClickListener) null); + setOnDismissListener(this); + + final IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + context.registerReceiver(mReceiver, filter); + } + + abstract protected void cleanUp(); + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) { + mNewVolumeUp = true; + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && mNewVolumeUp + && (System.currentTimeMillis() - mShowTime) > KEY_CONFIRM_ALLOWED_AFTER) { + if (D.BUG) Log.d(TAG, "Confirmed warning via VOLUME_UP"); + mAudioManager.disableSafeMediaVolume(); + dismiss(); + } + return super.onKeyUp(keyCode, event); + } + + @Override + public void onClick(DialogInterface dialog, int which) { + mAudioManager.disableSafeMediaVolume(); + } + + @Override + protected void onStart() { + super.onStart(); + mShowTime = System.currentTimeMillis(); + } + + @Override + public void onDismiss(DialogInterface unused) { + mContext.unregisterReceiver(mReceiver); + cleanUp(); + } + + private final BroadcastReceiver mReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) { + if (D.BUG) Log.d(TAG, "Received ACTION_CLOSE_SYSTEM_DIALOGS"); + cancel(); + cleanUp(); + } + } + }; +}
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java b/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java index 5f5b881..4f20ac7 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java +++ b/packages/SystemUI/src/com/android/systemui/volume/SegmentedButtons.java @@ -60,17 +60,14 @@ public class SegmentedButtons extends LinearLayout { final Object tag = c.getTag(); final boolean selected = Objects.equals(mSelectedValue, tag); c.setSelected(selected); - c.getCompoundDrawables()[1].setTint(mContext.getColor(selected - ? R.color.segmented_button_selected : R.color.segmented_button_unselected)); } fireOnSelected(); } - public void addButton(int labelResId, int iconResId, Object value) { + public void addButton(int labelResId, Object value) { final Button b = (Button) mInflater.inflate(R.layout.segmented_button, this, false); b.setTag(LABEL_RES_KEY, labelResId); b.setText(labelResId); - b.setCompoundDrawablesWithIntrinsicBounds(0, iconResId, 0, 0); final LayoutParams lp = (LayoutParams) b.getLayoutParams(); if (getChildCount() == 0) { lp.leftMargin = lp.rightMargin = 0; // first button has no margin diff --git a/packages/SystemUI/src/com/android/systemui/volume/SpTexts.java b/packages/SystemUI/src/com/android/systemui/volume/SpTexts.java new file mode 100644 index 0000000..d8e53db --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/SpTexts.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.content.Context; +import android.content.res.Resources; +import android.util.ArrayMap; +import android.util.TypedValue; +import android.view.View; +import android.view.View.OnAttachStateChangeListener; +import android.widget.TextView; + +/** + * Capture initial sp values for registered textviews, and update properly when configuration + * changes. + */ +public class SpTexts { + + private final Context mContext; + private final ArrayMap<TextView, Integer> mTexts = new ArrayMap<>(); + + public SpTexts(Context context) { + mContext = context; + } + + public int add(final TextView text) { + if (text == null) return 0; + final Resources res = mContext.getResources(); + final float fontScale = res.getConfiguration().fontScale; + final float density = res.getDisplayMetrics().density; + final float px = text.getTextSize(); + final int sp = (int)(px / fontScale / density); + mTexts.put(text, sp); + text.addOnAttachStateChangeListener(new OnAttachStateChangeListener() { + @Override + public void onViewDetachedFromWindow(View v) { + } + + @Override + public void onViewAttachedToWindow(View v) { + setTextSizeH(text, sp); + } + }); + return sp; + } + + public void update() { + if (mTexts.isEmpty()) return; + mTexts.keyAt(0).post(mUpdateAll); + } + + private void setTextSizeH(TextView text, int sp) { + text.setTextSize(TypedValue.COMPLEX_UNIT_SP, sp); + } + + private final Runnable mUpdateAll = new Runnable() { + @Override + public void run() { + for (int i = 0; i < mTexts.size(); i++) { + setTextSizeH(mTexts.keyAt(i), mTexts.valueAt(i)); + } + } + }; +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/Util.java b/packages/SystemUI/src/com/android/systemui/volume/Util.java new file mode 100644 index 0000000..216a4da --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/Util.java @@ -0,0 +1,162 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.media.AudioManager; +import android.media.MediaMetadata; +import android.media.VolumeProvider; +import android.media.session.MediaController.PlaybackInfo; +import android.media.session.PlaybackState; +import android.view.View; +import android.widget.TextView; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.Objects; + +/** + * Static helpers for the volume dialog. + */ +class Util { + + // Note: currently not shown (only used in the text footer) + private static final SimpleDateFormat HMMAA = new SimpleDateFormat("h:mm aa", Locale.US); + + private static int[] AUDIO_MANAGER_FLAGS = new int[] { + AudioManager.FLAG_SHOW_UI, + AudioManager.FLAG_VIBRATE, + AudioManager.FLAG_PLAY_SOUND, + AudioManager.FLAG_ALLOW_RINGER_MODES, + AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE, + AudioManager.FLAG_SHOW_VIBRATE_HINT, + AudioManager.FLAG_SHOW_SILENT_HINT, + AudioManager.FLAG_FROM_KEY, + AudioManager.FLAG_SHOW_UI_WARNINGS, + }; + + private static String[] AUDIO_MANAGER_FLAG_NAMES = new String[] { + "SHOW_UI", + "VIBRATE", + "PLAY_SOUND", + "ALLOW_RINGER_MODES", + "REMOVE_SOUND_AND_VIBRATE", + "SHOW_VIBRATE_HINT", + "SHOW_SILENT_HINT", + "FROM_KEY", + "SHOW_UI_WARNINGS", + }; + + public static String logTag(Class<?> c) { + final String tag = "vol." + c.getSimpleName(); + return tag.length() < 23 ? tag : tag.substring(0, 23); + } + + public static String ringerModeToString(int ringerMode) { + switch (ringerMode) { + case AudioManager.RINGER_MODE_SILENT: return "RINGER_MODE_SILENT"; + case AudioManager.RINGER_MODE_VIBRATE: return "RINGER_MODE_VIBRATE"; + case AudioManager.RINGER_MODE_NORMAL: return "RINGER_MODE_NORMAL"; + default: return "RINGER_MODE_UNKNOWN_" + ringerMode; + } + } + + public static String mediaMetadataToString(MediaMetadata metadata) { + return metadata.getDescription().toString(); + } + + public static String playbackInfoToString(PlaybackInfo info) { + if (info == null) return null; + final String type = playbackInfoTypeToString(info.getPlaybackType()); + final String vc = volumeProviderControlToString(info.getVolumeControl()); + return String.format("PlaybackInfo[vol=%s,max=%s,type=%s,vc=%s],atts=%s", + info.getCurrentVolume(), info.getMaxVolume(), type, vc, info.getAudioAttributes()); + } + + public static String playbackInfoTypeToString(int type) { + switch (type) { + case PlaybackInfo.PLAYBACK_TYPE_LOCAL: return "LOCAL"; + case PlaybackInfo.PLAYBACK_TYPE_REMOTE: return "REMOTE"; + default: return "UNKNOWN_" + type; + } + } + + public static String playbackStateStateToString(int state) { + switch (state) { + case PlaybackState.STATE_NONE: return "STATE_NONE"; + case PlaybackState.STATE_STOPPED: return "STATE_STOPPED"; + case PlaybackState.STATE_PAUSED: return "STATE_PAUSED"; + case PlaybackState.STATE_PLAYING: return "STATE_PLAYING"; + default: return "UNKNOWN_" + state; + } + } + + public static String volumeProviderControlToString(int control) { + switch (control) { + case VolumeProvider.VOLUME_CONTROL_ABSOLUTE: return "VOLUME_CONTROL_ABSOLUTE"; + case VolumeProvider.VOLUME_CONTROL_FIXED: return "VOLUME_CONTROL_FIXED"; + case VolumeProvider.VOLUME_CONTROL_RELATIVE: return "VOLUME_CONTROL_RELATIVE"; + default: return "VOLUME_CONTROL_UNKNOWN_" + control; + } + } + + public static String playbackStateToString(PlaybackState playbackState) { + if (playbackState == null) return null; + return playbackStateStateToString(playbackState.getState()) + " " + playbackState; + } + + public static String audioManagerFlagsToString(int value) { + return bitFieldToString(value, AUDIO_MANAGER_FLAGS, AUDIO_MANAGER_FLAG_NAMES); + } + + private static String bitFieldToString(int value, int[] values, String[] names) { + if (value == 0) return ""; + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < values.length; i++) { + if ((value & values[i]) != 0) { + if (sb.length() > 0) sb.append(','); + sb.append(names[i]); + } + value &= ~values[i]; + } + if (value != 0) { + if (sb.length() > 0) sb.append(','); + sb.append("UNKNOWN_").append(value); + } + return sb.toString(); + } + + public static String getShortTime(long millis) { + return HMMAA.format(new Date(millis)); + } + + public static void setText(TextView tv, CharSequence text) { + if (Objects.equals(tv.getText(), text)) return; + tv.setText(text); + } + + public static final void setVisOrGone(View v, boolean vis) { + if (v == null || (v.getVisibility() == View.VISIBLE) == vis) return; + v.setVisibility(vis ? View.VISIBLE : View.GONE); + } + + public static final void setVisOrInvis(View v, boolean vis) { + if (v == null || (v.getVisibility() == View.VISIBLE) == vis) return; + v.setVisibility(vis ? View.VISIBLE : View.INVISIBLE); + } + +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java index e3f8f3d..1f0ee57 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java @@ -16,10 +16,18 @@ package com.android.systemui.volume; +import android.content.res.Configuration; + import com.android.systemui.DemoMode; import com.android.systemui.statusbar.policy.ZenModeController; +import java.io.FileDescriptor; +import java.io.PrintWriter; + public interface VolumeComponent extends DemoMode { ZenModeController getZenController(); void dismissNow(); + void onConfigurationChanged(Configuration newConfig); + void dump(FileDescriptor fd, PrintWriter pw, String[] args); + void register(); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java new file mode 100644 index 0000000..539fec8 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java @@ -0,0 +1,1061 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.animation.LayoutTransition; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.app.KeyguardManager; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Color; +import android.graphics.PixelFormat; +import android.graphics.Rect; +import android.graphics.drawable.AnimatedVectorDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.media.AudioManager; +import android.media.AudioSystem; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.os.SystemClock; +import android.provider.Settings.Global; +import android.service.notification.ZenModeConfig; +import android.util.DisplayMetrics; +import android.util.Log; +import android.util.SparseBooleanArray; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLayoutChangeListener; +import android.view.View.OnTouchListener; +import android.view.ViewGroup; +import android.view.ViewGroup.MarginLayoutParams; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.DecelerateInterpolator; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.SeekBar.OnSeekBarChangeListener; +import android.widget.TextView; + +import com.android.systemui.R; +import com.android.systemui.statusbar.policy.ZenModeController; +import com.android.systemui.volume.VolumeDialogController.State; +import com.android.systemui.volume.VolumeDialogController.StreamState; + +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +/** + * Visual presentation of the volume dialog. + * + * A client of VolumeDialogController and its state model. + * + * Methods ending in "H" must be called on the (ui) handler. + */ +public class VolumeDialog { + private static final String TAG = Util.logTag(VolumeDialog.class); + + private static final long USER_ATTEMPT_GRACE_PERIOD = 1000; + private static final int WAIT_FOR_RIPPLE = 200; + private static final int UPDATE_ANIMATION_DURATION = 80; + + private final Context mContext; + private final H mHandler = new H(); + private final VolumeDialogController mController; + + private final CustomDialog mDialog; + private final ViewGroup mDialogView; + private final ViewGroup mDialogContentView; + private final ImageButton mExpandButton; + private final TextView mFootlineText; + private final Button mFootlineAction; + private final View mSettingsButton; + private final View mFooter; + private final List<VolumeRow> mRows = new ArrayList<VolumeRow>(); + private final SpTexts mSpTexts; + private final SparseBooleanArray mDynamic = new SparseBooleanArray(); + private final KeyguardManager mKeyguard; + private final int mExpandButtonAnimationDuration; + private final View mTextFooter; + private final ZenFooter mZenFooter; + private final LayoutTransition mLayoutTransition; + private final Object mSafetyWarningLock = new Object(); + + private boolean mShowing; + private boolean mExpanded; + private int mActiveStream; + private boolean mShowHeaders = Prefs.DEFAULT_SHOW_HEADERS; + private boolean mShowFooter = Prefs.DEFAULT_SHOW_FOOTER; + private boolean mShowZenFooter = Prefs.DEFAULT_ZEN_FOOTER; + private boolean mAutomute = Prefs.DEFAULT_ENABLE_AUTOMUTE; + private boolean mSilentMode = Prefs.DEFAULT_ENABLE_SILENT_MODE; + private State mState; + private int mExpandButtonRes; + private boolean mExpanding; + private SafetyWarningDialog mSafetyWarning; + + public VolumeDialog(Context context, VolumeDialogController controller, + ZenModeController zenModeController) { + mContext = context; + mController = controller; + mSpTexts = new SpTexts(mContext); + mKeyguard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); + + mDialog = new CustomDialog(mContext); + + final Window window = mDialog.getWindow(); + window.requestFeature(Window.FEATURE_NO_TITLE); + window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE + | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL + | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH + | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); + mDialog.setCanceledOnTouchOutside(true); + final Resources res = mContext.getResources(); + final WindowManager.LayoutParams lp = window.getAttributes(); + lp.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY; + lp.format = PixelFormat.TRANSLUCENT; + lp.setTitle(VolumeDialog.class.getSimpleName()); + lp.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; + lp.windowAnimations = R.style.VolumeDialogAnimations; + lp.y = res.getDimensionPixelSize(R.dimen.volume_offset_top); + lp.gravity = Gravity.TOP; + window.setAttributes(lp); + + mDialog.setContentView(R.layout.volume_dialog); + mDialogView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog); + mDialogContentView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog_content); + mExpandButton = (ImageButton) mDialogView.findViewById(R.id.volume_expand_button); + mExpandButton.setOnClickListener(mClickExpand); + updateWindowWidthH(); + updateExpandButtonH(); + mLayoutTransition = new LayoutTransition(); + mLayoutTransition.setDuration(new ValueAnimator().getDuration() / 2); + mLayoutTransition.disableTransitionType(LayoutTransition.DISAPPEARING); + mLayoutTransition.disableTransitionType(LayoutTransition.CHANGE_DISAPPEARING); + mDialogContentView.setLayoutTransition(mLayoutTransition); + + addRow(AudioManager.STREAM_RING, + R.drawable.ic_volume_ringer, R.drawable.ic_volume_ringer_mute, true); + addRow(AudioManager.STREAM_MUSIC, + R.drawable.ic_volume_media, R.drawable.ic_volume_media_mute, true); + addRow(AudioManager.STREAM_ALARM, + R.drawable.ic_volume_alarm, R.drawable.ic_volume_alarm_mute, false); + addRow(AudioManager.STREAM_VOICE_CALL, + R.drawable.ic_volume_voice, R.drawable.ic_volume_voice, false); + addRow(AudioManager.STREAM_BLUETOOTH_SCO, + R.drawable.ic_volume_bt_sco, R.drawable.ic_volume_bt_sco, false); + addRow(AudioManager.STREAM_SYSTEM, + R.drawable.ic_volume_system, R.drawable.ic_volume_system_mute, false); + + mTextFooter = mDialog.findViewById(R.id.volume_text_footer); + mFootlineText = (TextView) mDialog.findViewById(R.id.volume_footline_text); + mSpTexts.add(mFootlineText); + mFootlineAction = (Button) mDialog.findViewById(R.id.volume_footline_action_button); + mSpTexts.add(mFootlineAction); + mFooter = mDialog.findViewById(R.id.volume_footer); + mSettingsButton = mDialog.findViewById(R.id.volume_settings_button); + mSettingsButton.setOnClickListener(mClickSettings); + mExpandButtonAnimationDuration = res.getInteger(R.integer.volume_expand_animation_duration); + mZenFooter = (ZenFooter) mDialog.findViewById(R.id.volume_zen_footer); + mZenFooter.init(zenModeController, mZenFooterCallback); + + controller.addCallback(mControllerCallbackH, mHandler); + controller.getState(); + } + + private void updateWindowWidthH() { + final ViewGroup.LayoutParams lp = mDialogView.getLayoutParams(); + final DisplayMetrics dm = mContext.getResources().getDisplayMetrics(); + if (D.BUG) Log.d(TAG, "updateWindowWidth dm.w=" + dm.widthPixels); + int w = dm.widthPixels; + final int max = mContext.getResources() + .getDimensionPixelSize(R.dimen.standard_notification_panel_width); + if (w > max) { + w = max; + } + w -= mContext.getResources().getDimensionPixelSize(R.dimen.notification_side_padding) * 2; + lp.width = w; + mDialogView.setLayoutParams(lp); + } + + public void setStreamImportant(int stream, boolean important) { + mHandler.obtainMessage(H.SET_STREAM_IMPORTANT, stream, important ? 1 : 0).sendToTarget(); + } + + public void setShowHeaders(boolean showHeaders) { + if (showHeaders == mShowHeaders) return; + mShowHeaders = showHeaders; + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + public void setShowFooter(boolean show) { + if (mShowFooter == show) return; + mShowFooter = show; + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + public void setZenFooter(boolean zen) { + if (mShowZenFooter == zen) return; + mShowZenFooter = zen; + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + public void setAutomute(boolean automute) { + if (mAutomute == automute) return; + mAutomute = automute; + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + public void setSilentMode(boolean silentMode) { + if (mSilentMode == silentMode) return; + mSilentMode = silentMode; + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + private void addRow(int stream, int iconRes, int iconMuteRes, boolean important) { + final VolumeRow row = initRow(stream, iconRes, iconMuteRes, important); + if (!mRows.isEmpty()) { + final View v = new View(mContext); + final int h = mContext.getResources() + .getDimensionPixelSize(R.dimen.volume_slider_interspacing); + final LinearLayout.LayoutParams lp = + new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, h); + mDialogContentView.addView(v, mDialogContentView.getChildCount() - 1, lp); + row.space = v; + } + row.settingsButton.addOnLayoutChangeListener(new OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, int left, int top, int right, int bottom, + int oldLeft, int oldTop, int oldRight, int oldBottom) { + if (D.BUG) Log.d(TAG, "onLayoutChange" + + " old=" + new Rect(oldLeft, oldTop, oldRight, oldBottom).toShortString() + + " new=" + new Rect(left,top,right,bottom).toShortString()); + if (oldLeft != left || oldTop != top) { + for (int i = 0; i < mDialogContentView.getChildCount(); i++) { + final View c = mDialogContentView.getChildAt(i); + if (!c.isShown()) continue; + if (c == row.view) { + repositionExpandAnim(row); + } + return; + } + } + } + }); + // add new row just before the footer + mDialogContentView.addView(row.view, mDialogContentView.getChildCount() - 1); + mRows.add(row); + } + + private boolean isAttached() { + return mDialogContentView != null && mDialogContentView.isAttachedToWindow(); + } + + private VolumeRow getActiveRow() { + for (VolumeRow row : mRows) { + if (row.stream == mActiveStream) { + return row; + } + } + return mRows.get(0); + } + + private VolumeRow findRow(int stream) { + for (VolumeRow row : mRows) { + if (row.stream == stream) return row; + } + return null; + } + + private void repositionExpandAnim(VolumeRow row) { + final int[] loc = new int[2]; + row.settingsButton.getLocationInWindow(loc); + final MarginLayoutParams mlp = (MarginLayoutParams) mDialogView.getLayoutParams(); + final int x = loc[0] - mlp.leftMargin; + final int y = loc[1] - mlp.topMargin; + if (D.BUG) Log.d(TAG, "repositionExpandAnim x=" + x + " y=" + y); + mExpandButton.setTranslationX(x); + mExpandButton.setTranslationY(y); + } + + public void dump(PrintWriter writer) { + writer.println(VolumeDialog.class.getSimpleName() + " state:"); + writer.print(" mShowing: "); writer.println(mShowing); + writer.print(" mExpanded: "); writer.println(mExpanded); + writer.print(" mExpanding: "); writer.println(mExpanding); + writer.print(" mActiveStream: "); writer.println(mActiveStream); + writer.print(" mDynamic: "); writer.println(mDynamic); + writer.print(" mShowHeaders: "); writer.println(mShowHeaders); + writer.print(" mShowFooter: "); writer.println(mShowFooter); + writer.print(" mAutomute: "); writer.println(mAutomute); + writer.print(" mSilentMode: "); writer.println(mSilentMode); + } + + private static int getImpliedLevel(SeekBar seekBar, int progress) { + final int m = seekBar.getMax(); + final int n = m / 100 - 1; + final int level = progress == 0 ? 0 + : progress == m ? (m / 100) : (1 + (int)((progress / (float) m) * n)); + return level; + } + + @SuppressLint("InflateParams") + private VolumeRow initRow(final int stream, int iconRes, int iconMuteRes, boolean important) { + final VolumeRow row = new VolumeRow(); + row.stream = stream; + row.iconRes = iconRes; + row.iconMuteRes = iconMuteRes; + row.important = important; + row.view = mDialog.getLayoutInflater().inflate(R.layout.volume_dialog_row, null); + row.view.setTag(row); + row.header = (TextView) row.view.findViewById(R.id.volume_row_header); + mSpTexts.add(row.header); + row.slider = (SeekBar) row.view.findViewById(R.id.volume_row_slider); + row.slider.setOnSeekBarChangeListener(new VolumeSeekBarChangeListener(row)); + + // forward events above the slider into the slider + row.view.setOnTouchListener(new OnTouchListener() { + private final Rect mSliderHitRect = new Rect(); + private boolean mDragging; + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouch(View v, MotionEvent event) { + row.slider.getHitRect(mSliderHitRect); + if (!mDragging && event.getActionMasked() == MotionEvent.ACTION_DOWN + && event.getY() < mSliderHitRect.top) { + mDragging = true; + } + if (mDragging) { + event.offsetLocation(-mSliderHitRect.left, -mSliderHitRect.top); + row.slider.dispatchTouchEvent(event); + if (event.getActionMasked() == MotionEvent.ACTION_UP + || event.getActionMasked() == MotionEvent.ACTION_CANCEL) { + mDragging = false; + } + return true; + } + return false; + } + }); + row.icon = (ImageButton) row.view.findViewById(R.id.volume_row_icon); + row.icon.setImageResource(iconRes); + row.icon.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Events.writeEvent(Events.EVENT_ICON_CLICK, row.stream, row.iconState); + mController.setActiveStream(row.stream); + if (row.stream == AudioManager.STREAM_RING) { + final boolean hasVibrator = mController.hasVibrator(); + if (mState.ringerModeInternal == AudioManager.RINGER_MODE_NORMAL) { + if (hasVibrator) { + mController.setRingerMode(AudioManager.RINGER_MODE_VIBRATE, false); + } else { + final boolean wasZero = row.ss.level == 0; + mController.setStreamVolume(stream, wasZero ? row.lastAudibleLevel : 0); + } + } else { + mController.setRingerMode(AudioManager.RINGER_MODE_NORMAL, false); + if (row.ss.level == 0) { + mController.setStreamVolume(stream, 1); + } + } + } else { + if (mAutomute && !row.ss.muteSupported) { + final boolean vmute = row.ss.level == 0; + mController.setStreamVolume(stream, vmute ? row.lastAudibleLevel : 0); + } else { + final boolean mute = !row.ss.muted; + mController.setStreamMute(stream, mute); + if (mAutomute) { + if (!mute && row.ss.level == 0) { + mController.setStreamVolume(stream, 1); + } + } + } + } + row.userAttempt = 0; // reset the grace period, slider should update immediately + } + }); + row.settingsButton = (ImageButton) row.view.findViewById(R.id.volume_settings_button); + row.settingsButton.setOnClickListener(mClickSettings); + return row; + } + + public void destroy() { + mController.removeCallback(mControllerCallbackH); + } + + public void show(int reason) { + mHandler.obtainMessage(H.SHOW, reason, 0).sendToTarget(); + } + + public void dismiss(int reason) { + mHandler.obtainMessage(H.DISMISS, reason, 0).sendToTarget(); + } + + protected void onSettingsClickedH() { + // hook for subclasses + } + + protected void onZenSettingsClickedH() { + // hook for subclasses + } + + private void showH(int reason) { + mHandler.removeMessages(H.SHOW); + mHandler.removeMessages(H.DISMISS); + rescheduleTimeoutH(); + if (mShowing) return; + mShowing = true; + mDialog.show(); + Events.writeEvent(Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); + mController.notifyVisible(true); + } + + protected void rescheduleTimeoutH() { + mHandler.removeMessages(H.DISMISS); + final int timeout = computeTimeoutH(); + if (D.BUG) Log.d(TAG, "rescheduleTimeout " + timeout); + mHandler.sendMessageDelayed(mHandler + .obtainMessage(H.DISMISS, Events.DISMISS_REASON_TIMEOUT, 0), timeout); + mController.userActivity(); + } + + private int computeTimeoutH() { + if (mZenFooter != null && mZenFooter.isFooterExpanded()) return 10000; + if (mSafetyWarning != null) return 5000; + if (mExpanded || mExpanding) return 5000; + if (mActiveStream == AudioManager.STREAM_MUSIC) return 1500; + return 3000; + } + + protected void dismissH(int reason) { + mHandler.removeMessages(H.DISMISS); + mHandler.removeMessages(H.SHOW); + if (!mShowing) return; + mShowing = false; + mDialog.dismiss(); + Events.writeEvent(Events.EVENT_DISMISS_DIALOG, reason); + setExpandedH(false); + mController.notifyVisible(false); + synchronized (mSafetyWarningLock) { + if (mSafetyWarning != null) { + if (D.BUG) Log.d(TAG, "SafetyWarning dismissed"); + mSafetyWarning.dismiss(); + } + } + } + + private void setExpandedH(boolean expanded) { + if (mExpanded == expanded) return; + mExpanded = expanded; + mExpanding = isAttached(); + if (D.BUG) Log.d(TAG, "setExpandedH " + expanded); + updateRowsH(); + if (mExpanding) { + final Drawable d = mExpandButton.getDrawable(); + if (d instanceof AnimatedVectorDrawable) { + // workaround to reset drawable + final AnimatedVectorDrawable avd = (AnimatedVectorDrawable) d.getConstantState() + .newDrawable(); + mExpandButton.setImageDrawable(avd); + avd.start(); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + mExpanding = false; + updateExpandButtonH(); + rescheduleTimeoutH(); + } + }, mExpandButtonAnimationDuration); + } + } + rescheduleTimeoutH(); + } + + private void updateExpandButtonH() { + mExpandButton.setClickable(!mExpanding); + if (mExpanding && isAttached()) return; + final int res = mExpanded ? R.drawable.ic_volume_collapse_animation + : R.drawable.ic_volume_expand_animation; + if (res == mExpandButtonRes) return; + mExpandButtonRes = res; + mExpandButton.setImageResource(res); + } + + private boolean isVisibleH(VolumeRow row, boolean isActive) { + return mExpanded && row.view.getVisibility() == View.VISIBLE + || (mExpanded && (row.important || isActive)) + || !mExpanded && isActive; + } + + private void updateRowsH() { + final VolumeRow activeRow = getActiveRow(); + updateFooterH(); + updateExpandButtonH(); + final boolean footerVisible = mFooter.getVisibility() == View.VISIBLE; + if (!mShowing) { + trimObsoleteH(); + } + // first, find the last visible row + VolumeRow lastVisible = null; + for (VolumeRow row : mRows) { + final boolean isActive = row == activeRow; + if (isVisibleH(row, isActive)) { + lastVisible = row; + } + } + // apply changes to all rows + for (VolumeRow row : mRows) { + final boolean isActive = row == activeRow; + final boolean visible = isVisibleH(row, isActive); + Util.setVisOrGone(row.view, visible); + Util.setVisOrGone(row.space, visible && mExpanded); + final int expandButtonRes = mExpanded ? R.drawable.ic_volume_settings : 0; + if (expandButtonRes != row.cachedExpandButtonRes) { + row.cachedExpandButtonRes = expandButtonRes; + if (expandButtonRes == 0) { + row.settingsButton.setImageDrawable(null); + } else { + row.settingsButton.setImageResource(expandButtonRes); + } + } + Util.setVisOrInvis(row.settingsButton, + mExpanded && (!footerVisible && row == lastVisible)); + row.header.setAlpha(mExpanded && isActive ? 1 : 0.5f); + } + } + + private void trimObsoleteH() { + for (int i = mRows.size() -1; i >= 0; i--) { + final VolumeRow row = mRows.get(i); + if (row.ss == null || !row.ss.dynamic) continue; + if (!mDynamic.get(row.stream)) { + mRows.remove(i); + mDialogContentView.removeView(row.view); + mDialogContentView.removeView(row.space); + } + } + } + + private void onStateChangedH(State state) { + mState = state; + mDynamic.clear(); + // add any new dynamic rows + for (int i = 0; i < state.states.size(); i++) { + final int stream = state.states.keyAt(i); + final StreamState ss = state.states.valueAt(i); + if (!ss.dynamic) continue; + mDynamic.put(stream, true); + if (findRow(stream) == null) { + addRow(stream, R.drawable.ic_volume_remote, R.drawable.ic_volume_remote_mute, true); + } + } + + if (mActiveStream != state.activeStream) { + mActiveStream = state.activeStream; + updateRowsH(); + rescheduleTimeoutH(); + } + for (VolumeRow row : mRows) { + updateVolumeRowH(row); + } + updateFooterH(); + } + + private void updateTextFooterH() { + final boolean zen = mState.zenMode != Global.ZEN_MODE_OFF; + final boolean wasVisible = mFooter.getVisibility() == View.VISIBLE; + Util.setVisOrGone(mTextFooter, mExpanded && mShowFooter && (zen || mShowing && wasVisible)); + if (mTextFooter.getVisibility() == View.VISIBLE) { + String text = null; + String action = null; + if (mState.exitCondition != null) { + final long countdown = ZenModeConfig.tryParseCountdownConditionId(mState + .exitCondition.id); + if (countdown != 0) { + text = mContext.getString(R.string.volume_dnd_ends_at, + Util.getShortTime(countdown)); + action = mContext.getString(R.string.volume_end_now); + } + } + if (text == null) { + text = mContext.getString(R.string.volume_dnd_is_on); + } + if (action == null) { + action = mContext.getString(R.string.volume_turn_off); + } + Util.setText(mFootlineText, text); + Util.setText(mFootlineAction, action); + mFootlineAction.setOnClickListener(mTurnOffDnd); + } + Util.setVisOrGone(mFootlineText, zen); + Util.setVisOrGone(mFootlineAction, zen); + } + + private void updateFooterH() { + if (!mShowFooter) { + Util.setVisOrGone(mFooter, false); + return; + } + if (mShowZenFooter) { + Util.setVisOrGone(mTextFooter, false); + final boolean ringActive = mActiveStream == AudioManager.STREAM_RING; + Util.setVisOrGone(mZenFooter, mZenFooter.isZen() && ringActive + || mShowing && (mExpanded || mZenFooter.getVisibility() == View.VISIBLE)); + mZenFooter.update(); + } else { + Util.setVisOrGone(mZenFooter, false); + updateTextFooterH(); + } + } + + private void updateVolumeRowH(VolumeRow row) { + if (mState == null) return; + final StreamState ss = mState.states.get(row.stream); + if (ss == null) return; + row.ss = ss; + if (ss.level > 0) { + row.lastAudibleLevel = ss.level; + } + final boolean isRingStream = row.stream == AudioManager.STREAM_RING; + final boolean isSystemStream = row.stream == AudioManager.STREAM_SYSTEM; + final boolean isRingVibrate = isRingStream + && mState.ringerModeInternal == AudioManager.RINGER_MODE_VIBRATE; + final boolean isNoned = (isRingStream || isSystemStream) + && mState.zenMode == Global.ZEN_MODE_NO_INTERRUPTIONS; + final boolean isLimited = isRingStream + && mState.zenMode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS; + + // update slider max + final int max = ss.levelMax * 100; + if (max != row.slider.getMax()) { + row.slider.setMax(max); + } + + // update header visible + if (row.cachedShowHeaders != mShowHeaders) { + row.cachedShowHeaders = mShowHeaders; + Util.setVisOrGone(row.header, mShowHeaders); + } + + // update header text + final String text; + if (isNoned) { + text = mContext.getString(R.string.volume_stream_muted_dnd, ss.name); + } else if (isRingVibrate && isLimited) { + text = mContext.getString(R.string.volume_stream_vibrate_dnd, ss.name); + } else if (isRingVibrate) { + text = mContext.getString(R.string.volume_stream_vibrate, ss.name); + } else if (ss.muted || mAutomute && ss.level == 0) { + text = mContext.getString(R.string.volume_stream_muted, ss.name); + } else if (isLimited) { + text = mContext.getString(R.string.volume_stream_limited_dnd, ss.name); + } else { + text = ss.name; + } + Util.setText(row.header, text); + + // update icon + final boolean iconEnabled = mAutomute || ss.muteSupported; + row.icon.setEnabled(iconEnabled); + row.icon.setAlpha(iconEnabled ? 1 : 0.5f); + final int iconRes = + isRingVibrate ? R.drawable.ic_volume_ringer_vibrate + : ss.routedToBluetooth ? + (ss.muted ? R.drawable.ic_volume_media_bt_mute + : R.drawable.ic_volume_media_bt) + : mAutomute && ss.level == 0 ? row.iconMuteRes + : (ss.muted ? row.iconMuteRes : row.iconRes); + if (iconRes != row.cachedIconRes) { + if (row.cachedIconRes != 0 && isRingVibrate) { + mController.vibrate(); + } + row.cachedIconRes = iconRes; + row.icon.setImageResource(iconRes); + } + row.iconState = + iconRes == R.drawable.ic_volume_ringer_vibrate ? Events.ICON_STATE_VIBRATE + : (iconRes == R.drawable.ic_volume_media_bt_mute || iconRes == row.iconMuteRes) + ? Events.ICON_STATE_MUTE + : (iconRes == R.drawable.ic_volume_media_bt || iconRes == row.iconRes) + ? Events.ICON_STATE_UNMUTE + : Events.ICON_STATE_UNKNOWN; + + // update slider + updateVolumeRowSliderH(row); + } + + private void updateVolumeRowSliderH(VolumeRow row) { + if (row.tracking) { + return; // don't update if user is sliding + } + final int progress = row.slider.getProgress(); + final int level = getImpliedLevel(row.slider, progress); + final boolean rowVisible = row.view.getVisibility() == View.VISIBLE; + final boolean inGracePeriod = (SystemClock.uptimeMillis() - row.userAttempt) + < USER_ATTEMPT_GRACE_PERIOD; + mHandler.removeMessages(H.RECHECK, row); + if (mShowing && rowVisible && inGracePeriod) { + if (D.BUG) Log.d(TAG, "inGracePeriod"); + mHandler.sendMessageAtTime(mHandler.obtainMessage(H.RECHECK, row), + row.userAttempt + USER_ATTEMPT_GRACE_PERIOD); + return; // don't update if visible and in grace period + } + final int vlevel = row.ss.muted ? 0 : row.ss.level; + if (vlevel == level) { + if (mShowing && rowVisible) { + return; // don't clamp if visible + } + } + final int newProgress = vlevel * 100; + if (progress != newProgress) { + if (mShowing && rowVisible) { + // animate! + if (row.anim != null && row.anim.isRunning() + && row.animTargetProgress == newProgress) { + return; // already animating to the target progress + } + // start/update animation + if (row.anim == null) { + row.anim = ObjectAnimator.ofInt(row.slider, "progress", progress, newProgress); + row.anim.setInterpolator(new DecelerateInterpolator()); + } else { + row.anim.cancel(); + row.anim.setIntValues(progress, newProgress); + } + row.animTargetProgress = newProgress; + row.anim.setDuration(UPDATE_ANIMATION_DURATION); + row.anim.start(); + } else { + // update slider directly to clamped value + if (row.anim != null) { + row.anim.cancel(); + } + row.slider.setProgress(newProgress); + } + if (mAutomute) { + if (vlevel == 0 && !row.ss.muted && row.stream == AudioManager.STREAM_MUSIC) { + mController.setStreamMute(row.stream, true); + } + } + } + } + + private void recheckH(VolumeRow row) { + if (row == null) { + if (D.BUG) Log.d(TAG, "recheckH ALL"); + trimObsoleteH(); + for (VolumeRow r : mRows) { + updateVolumeRowH(r); + } + } else { + if (D.BUG) Log.d(TAG, "recheckH " + row.stream); + updateVolumeRowH(row); + } + } + + private void setStreamImportantH(int stream, boolean important) { + for (VolumeRow row : mRows) { + if (row.stream == stream) { + row.important = important; + return; + } + } + } + + private void showSafetyWarningH(int flags) { + if ((flags & (AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_SHOW_UI_WARNINGS)) != 0 + || mShowing) { + synchronized (mSafetyWarningLock) { + if (mSafetyWarning != null) { + return; + } + mSafetyWarning = new SafetyWarningDialog(mContext, mController.getAudioManager()) { + @Override + protected void cleanUp() { + synchronized (mSafetyWarningLock) { + mSafetyWarning = null; + } + recheckH(null); + } + }; + mSafetyWarning.show(); + } + recheckH(null); + } + rescheduleTimeoutH(); + } + + private final VolumeDialogController.Callbacks mControllerCallbackH + = new VolumeDialogController.Callbacks() { + @Override + public void onShowRequested(int reason) { + showH(reason); + } + + @Override + public void onDismissRequested(int reason) { + dismissH(reason); + } + + @Override + public void onScreenOff() { + dismissH(Events.DISMISS_REASON_SCREEN_OFF); + } + + @Override + public void onStateChanged(State state) { + onStateChangedH(state); + } + + @Override + public void onLayoutDirectionChanged(int layoutDirection) { + mDialogView.setLayoutDirection(layoutDirection); + } + + @Override + public void onConfigurationChanged() { + updateWindowWidthH(); + mSpTexts.update(); + } + + @Override + public void onShowVibrateHint() { + if (mSilentMode) { + mController.setRingerMode(AudioManager.RINGER_MODE_SILENT, false); + } + } + + @Override + public void onShowSilentHint() { + if (mSilentMode) { + mController.setRingerMode(AudioManager.RINGER_MODE_NORMAL, false); + } + } + + @Override + public void onShowSafetyWarning(int flags) { + showSafetyWarningH(flags); + } + }; + + private final OnClickListener mClickExpand = new OnClickListener() { + @Override + public void onClick(View v) { + if (mExpanding) return; + final boolean newExpand = !mExpanded; + Events.writeEvent(Events.EVENT_EXPAND, v); + setExpandedH(newExpand); + } + }; + + private final OnClickListener mClickSettings = new OnClickListener() { + @Override + public void onClick(View v) { + mSettingsButton.postDelayed(new Runnable() { + @Override + public void run() { + Events.writeEvent(Events.EVENT_SETTINGS_CLICK); + onSettingsClickedH(); + } + }, WAIT_FOR_RIPPLE); + } + }; + + private final View.OnClickListener mTurnOffDnd = new View.OnClickListener() { + @Override + public void onClick(View v) { + mSettingsButton.postDelayed(new Runnable() { + @Override + public void run() { + mController.setZenMode(Global.ZEN_MODE_OFF); + } + }, WAIT_FOR_RIPPLE); + } + }; + + private final ZenFooter.Callback mZenFooterCallback = new ZenFooter.Callback() { + @Override + public void onFooterExpanded() { + mHandler.sendEmptyMessage(H.RESCHEDULE_TIMEOUT); + } + + @Override + public void onSettingsClicked() { + dismiss(Events.DISMISS_REASON_SETTINGS_CLICKED); + onZenSettingsClickedH(); + } + + @Override + public void onDoneClicked() { + dismiss(Events.DISMISS_REASON_DONE_CLICKED); + } + }; + + private final class H extends Handler { + private static final int SHOW = 1; + private static final int DISMISS = 2; + private static final int RECHECK = 3; + private static final int RECHECK_ALL = 4; + private static final int SET_STREAM_IMPORTANT = 5; + private static final int RESCHEDULE_TIMEOUT = 6; + + public H() { + super(Looper.getMainLooper()); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case SHOW: showH(msg.arg1); break; + case DISMISS: dismissH(msg.arg1); break; + case RECHECK: recheckH((VolumeRow) msg.obj); break; + case RECHECK_ALL: recheckH(null); break; + case SET_STREAM_IMPORTANT: setStreamImportantH(msg.arg1, msg.arg2 != 0); break; + case RESCHEDULE_TIMEOUT: rescheduleTimeoutH(); break; + } + } + } + + private final class CustomDialog extends Dialog { + public CustomDialog(Context context) { + super(context); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + rescheduleTimeoutH(); + return super.dispatchTouchEvent(ev); + } + + @Override + protected void onStop() { + super.onStop(); + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (isShowing()) { + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + dismissH(Events.DISMISS_REASON_TOUCH_OUTSIDE); + return true; + } + } + return false; + } + } + + private final class VolumeSeekBarChangeListener implements OnSeekBarChangeListener { + private final VolumeRow mRow; + + private VolumeSeekBarChangeListener(VolumeRow row) { + mRow = row; + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (mRow.ss == null) return; + if (D.BUG) Log.d(TAG, AudioSystem.streamToString(mRow.stream) + + " onProgressChanged " + progress + " fromUser=" + fromUser); + if (!fromUser) return; + if (mRow.ss.levelMin > 0) { + final int minProgress = mRow.ss.levelMin * 100; + if (progress < minProgress) { + seekBar.setProgress(minProgress); + } + } + final int userLevel = getImpliedLevel(seekBar, progress); + if (mRow.ss.level != userLevel || mRow.ss.muted && userLevel > 0) { + mRow.userAttempt = SystemClock.uptimeMillis(); + if (mAutomute) { + if (mRow.stream != AudioManager.STREAM_RING) { + if (userLevel > 0 && mRow.ss.muted) { + mController.setStreamMute(mRow.stream, false); + } + if (userLevel == 0 && mRow.ss.muteSupported && !mRow.ss.muted) { + mController.setStreamMute(mRow.stream, true); + } + } + } + if (mRow.requestedLevel != userLevel) { + mController.setStreamVolume(mRow.stream, userLevel); + mRow.requestedLevel = userLevel; + Events.writeEvent(Events.EVENT_TOUCH_LEVEL_CHANGED, mRow.stream, userLevel); + } + } + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + if (D.BUG) Log.d(TAG, "onStartTrackingTouch"+ " " + mRow.stream); + mController.setActiveStream(mRow.stream); + mRow.tracking = true; + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + if (D.BUG) Log.d(TAG, "onStopTrackingTouch"+ " " + mRow.stream); + mRow.tracking = false; + mRow.userAttempt = SystemClock.uptimeMillis(); + int userLevel = getImpliedLevel(seekBar, seekBar.getProgress()); + if (mRow.ss.level != userLevel) { + mHandler.sendMessageDelayed(mHandler.obtainMessage(H.RECHECK, mRow), + USER_ATTEMPT_GRACE_PERIOD); + } + } + } + + private static class VolumeRow { + private View view; + private View space; + private TextView header; + private ImageButton icon; + private SeekBar slider; + private ImageButton settingsButton; + private int stream; + private StreamState ss; + private long userAttempt; // last user-driven slider change + private boolean tracking; // tracking slider touch + private int requestedLevel; + private int iconRes; + private int iconMuteRes; + private boolean important; + private int cachedIconRes; + private int iconState; // from Events + private boolean cachedShowHeaders = Prefs.DEFAULT_SHOW_HEADERS; + private int cachedExpandButtonRes; + private ObjectAnimator anim; // slider progress animation for non-touch-related updates + private int animTargetProgress; + private int lastAudibleLevel = 1; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java new file mode 100644 index 0000000..741e498 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.content.Context; +import android.content.res.Configuration; +import android.media.AudioManager; +import android.media.VolumePolicy; +import android.os.Bundle; +import android.os.Handler; + +import com.android.systemui.SystemUI; +import com.android.systemui.keyguard.KeyguardViewMediator; +import com.android.systemui.qs.tiles.DndTile; +import com.android.systemui.statusbar.phone.PhoneStatusBar; +import com.android.systemui.statusbar.policy.ZenModeController; + +import java.io.FileDescriptor; +import java.io.PrintWriter; + +/** + * Implementation of VolumeComponent backed by the new volume dialog. + */ +public class VolumeDialogComponent implements VolumeComponent { + private final SystemUI mSysui; + private final Context mContext; + private final VolumeDialogController mController; + private final ZenModeController mZenModeController; + private final VolumeDialog mDialog; + + public VolumeDialogComponent(SystemUI sysui, Context context, Handler handler, + ZenModeController zen) { + mSysui = sysui; + mContext = context; + mController = new VolumeDialogController(context, null) { + @Override + protected void onUserActivityW() { + sendUserActivity(); + } + }; + mZenModeController = zen; + mDialog = new VolumeDialog(context, mController, zen) { + @Override + protected void onZenSettingsClickedH() { + startZenSettings(); + } + }; + applyConfiguration(); + } + + private void sendUserActivity() { + final KeyguardViewMediator kvm = mSysui.getComponent(KeyguardViewMediator.class); + if (kvm != null) { + kvm.userActivity(); + } + } + + private void applyConfiguration() { + mDialog.setStreamImportant(AudioManager.STREAM_ALARM, true); + mDialog.setStreamImportant(AudioManager.STREAM_SYSTEM, false); + mDialog.setShowHeaders(false); + mDialog.setShowFooter(true); + mDialog.setZenFooter(true); + mDialog.setAutomute(true); + mDialog.setSilentMode(false); + mController.setVolumePolicy(VolumePolicy.DEFAULT); + mController.showDndTile(false); + } + + @Override + public ZenModeController getZenController() { + return mZenModeController; + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + // noop + } + + @Override + public void dismissNow() { + mController.dismiss(); + } + + @Override + public void dispatchDemoCommand(String command, Bundle args) { + // noop + } + + @Override + public void register() { + mController.register(); + DndTile.setCombinedIcon(mContext, true); + } + + @Override + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + mController.dump(fd, pw, args); + mDialog.dump(pw); + } + + private void startZenSettings() { + mSysui.getComponent(PhoneStatusBar.class).startActivityDismissingKeyguard( + ZenModePanel.ZEN_SETTINGS, true /* onlyProvisioned */, true /* dismissShade */); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java new file mode 100644 index 0000000..5bc8c3e --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java @@ -0,0 +1,996 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.app.NotificationManager; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.database.ContentObserver; +import android.media.AudioManager; +import android.media.AudioSystem; +import android.media.IVolumeController; +import android.media.VolumePolicy; +import android.media.session.MediaController.PlaybackInfo; +import android.media.session.MediaSession.Token; +import android.net.Uri; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Looper; +import android.os.Message; +import android.os.RemoteException; +import android.os.Vibrator; +import android.provider.Settings; +import android.service.notification.Condition; +import android.service.notification.ZenModeConfig; +import android.util.Log; +import android.util.SparseArray; + +import com.android.systemui.R; +import com.android.systemui.qs.tiles.DndTile; + +import java.io.FileDescriptor; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * Source of truth for all state / events related to the volume dialog. No presentation. + * + * All work done on a dedicated background worker thread & associated worker. + * + * Methods ending in "W" must be called on the worker thread. + */ +public class VolumeDialogController { + private static final String TAG = Util.logTag(VolumeDialogController.class); + + private static final int DYNAMIC_STREAM_START_INDEX = 100; + private static final int VIBRATE_HINT_DURATION = 50; + + private static final int[] STREAMS = { + AudioSystem.STREAM_ALARM, + AudioSystem.STREAM_BLUETOOTH_SCO, + AudioSystem.STREAM_DTMF, + AudioSystem.STREAM_MUSIC, + AudioSystem.STREAM_NOTIFICATION, + AudioSystem.STREAM_RING, + AudioSystem.STREAM_SYSTEM, + AudioSystem.STREAM_SYSTEM_ENFORCED, + AudioSystem.STREAM_TTS, + AudioSystem.STREAM_VOICE_CALL, + }; + + private final HandlerThread mWorkerThread; + private final W mWorker; + private final Context mContext; + private final AudioManager mAudio; + private final NotificationManager mNoMan; + private final ComponentName mComponent; + private final SettingObserver mObserver; + private final Receiver mReceiver = new Receiver(); + private final MediaSessions mMediaSessions; + private final VC mVolumeController = new VC(); + private final C mCallbacks = new C(); + private final State mState = new State(); + private final String[] mStreamTitles; + private final MediaSessionsCallbacks mMediaSessionsCallbacksW = new MediaSessionsCallbacks(); + private final Vibrator mVibrator; + private final boolean mHasVibrator; + + private boolean mEnabled; + private boolean mDestroyed; + private VolumePolicy mVolumePolicy = new VolumePolicy(true, true, false, 400); + private boolean mShowDndTile = false; + + public VolumeDialogController(Context context, ComponentName component) { + mContext = context.getApplicationContext(); + Events.writeEvent(Events.EVENT_COLLECTION_STARTED); + mComponent = component; + mWorkerThread = new HandlerThread(VolumeDialogController.class.getSimpleName()); + mWorkerThread.start(); + mWorker = new W(mWorkerThread.getLooper()); + mMediaSessions = createMediaSessions(mContext, mWorkerThread.getLooper(), + mMediaSessionsCallbacksW); + mAudio = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); + mNoMan = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); + mObserver = new SettingObserver(mWorker); + mObserver.init(); + mReceiver.init(); + mStreamTitles = mContext.getResources().getStringArray(R.array.volume_stream_titles); + mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); + mHasVibrator = mVibrator != null && mVibrator.hasVibrator(); + } + + public AudioManager getAudioManager() { + return mAudio; + } + + public void dismiss() { + mCallbacks.onDismissRequested(Events.DISMISS_REASON_VOLUME_CONTROLLER); + } + + public void register() { + try { + mAudio.setVolumeController(mVolumeController); + } catch (SecurityException e) { + Log.w(TAG, "Unable to set the volume controller", e); + return; + } + setVolumePolicy(mVolumePolicy); + showDndTile(mShowDndTile); + try { + mMediaSessions.init(); + } catch (SecurityException e) { + Log.w(TAG, "No access to media sessions", e); + } + } + + public void setVolumePolicy(VolumePolicy policy) { + mVolumePolicy = policy; + try { + mAudio.setVolumePolicy(mVolumePolicy); + } catch (NoSuchMethodError e) { + Log.w(TAG, "No volume policy api"); + } + } + + protected MediaSessions createMediaSessions(Context context, Looper looper, + MediaSessions.Callbacks callbacks) { + return new MediaSessions(context, looper, callbacks); + } + + public void destroy() { + if (D.BUG) Log.d(TAG, "destroy"); + if (mDestroyed) return; + mDestroyed = true; + Events.writeEvent(Events.EVENT_COLLECTION_STOPPED); + mMediaSessions.destroy(); + mObserver.destroy(); + mReceiver.destroy(); + mWorkerThread.quitSafely(); + } + + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + pw.println(VolumeDialogController.class.getSimpleName() + " state:"); + pw.print(" mEnabled: "); pw.println(mEnabled); + pw.print(" mDestroyed: "); pw.println(mDestroyed); + pw.print(" mVolumePolicy: "); pw.println(mVolumePolicy); + pw.print(" mEnabled: "); pw.println(mEnabled); + pw.print(" mShowDndTile: "); pw.println(mShowDndTile); + pw.print(" mHasVibrator: "); pw.println(mHasVibrator); + pw.print(" mRemoteStreams: "); pw.println(mMediaSessionsCallbacksW.mRemoteStreams + .values()); + pw.println(); + mMediaSessions.dump(pw); + } + + public void addCallback(Callbacks callback, Handler handler) { + mCallbacks.add(callback, handler); + } + + public void removeCallback(Callbacks callback) { + mCallbacks.remove(callback); + } + + public void getState() { + if (mDestroyed) return; + mWorker.sendEmptyMessage(W.GET_STATE); + } + + public void notifyVisible(boolean visible) { + if (mDestroyed) return; + mWorker.obtainMessage(W.NOTIFY_VISIBLE, visible ? 1 : 0, 0).sendToTarget(); + } + + public void userActivity() { + if (mDestroyed) return; + mWorker.removeMessages(W.USER_ACTIVITY); + mWorker.sendEmptyMessage(W.USER_ACTIVITY); + } + + public void setRingerMode(int value, boolean external) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_RINGER_MODE, value, external ? 1 : 0).sendToTarget(); + } + + public void setZenMode(int value) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_ZEN_MODE, value, 0).sendToTarget(); + } + + public void setExitCondition(Condition condition) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_EXIT_CONDITION, condition).sendToTarget(); + } + + public void setStreamMute(int stream, boolean mute) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_STREAM_MUTE, stream, mute ? 1 : 0).sendToTarget(); + } + + public void setStreamVolume(int stream, int level) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_STREAM_VOLUME, stream, level).sendToTarget(); + } + + public void setActiveStream(int stream) { + if (mDestroyed) return; + mWorker.obtainMessage(W.SET_ACTIVE_STREAM, stream, 0).sendToTarget(); + } + + public void vibrate() { + if (mHasVibrator) { + mVibrator.vibrate(VIBRATE_HINT_DURATION); + } + } + + public boolean hasVibrator() { + return mHasVibrator; + } + + private void onNotifyVisibleW(boolean visible) { + if (mDestroyed) return; + mAudio.notifyVolumeControllerVisible(mVolumeController, visible); + if (!visible) { + if (updateActiveStreamW(-1)) { + mCallbacks.onStateChanged(mState); + } + } + } + + protected void onUserActivityW() { + // hook for subclasses + } + + private void onShowSafetyWarningW(int flags) { + mCallbacks.onShowSafetyWarning(flags); + } + + private boolean checkRoutedToBluetoothW(int stream) { + boolean changed = false; + if (stream == AudioManager.STREAM_MUSIC) { + final boolean routedToBluetooth = + (mAudio.getDevicesForStream(AudioManager.STREAM_MUSIC) & + (AudioManager.DEVICE_OUT_BLUETOOTH_A2DP | + AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | + AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER)) != 0; + changed |= updateStreamRoutedToBluetoothW(stream, routedToBluetooth); + } + return changed; + } + + private void onVolumeChangedW(int stream, int flags) { + final boolean showUI = (flags & AudioManager.FLAG_SHOW_UI) != 0; + final boolean fromKey = (flags & AudioManager.FLAG_FROM_KEY) != 0; + final boolean showVibrateHint = (flags & AudioManager.FLAG_SHOW_VIBRATE_HINT) != 0; + final boolean showSilentHint = (flags & AudioManager.FLAG_SHOW_SILENT_HINT) != 0; + boolean changed = false; + if (showUI) { + changed |= updateActiveStreamW(stream); + } + changed |= updateStreamLevelW(stream, mAudio.getLastAudibleStreamVolume(stream)); + changed |= checkRoutedToBluetoothW(showUI ? AudioManager.STREAM_MUSIC : stream); + if (changed) { + mCallbacks.onStateChanged(mState); + } + if (showUI) { + mCallbacks.onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED); + } + if (showVibrateHint) { + mCallbacks.onShowVibrateHint(); + } + if (showSilentHint) { + mCallbacks.onShowSilentHint(); + } + if (changed && fromKey) { + Events.writeEvent(Events.EVENT_KEY); + } + } + + private boolean updateActiveStreamW(int activeStream) { + if (activeStream == mState.activeStream) return false; + mState.activeStream = activeStream; + Events.writeEvent(Events.EVENT_ACTIVE_STREAM_CHANGED, activeStream); + if (D.BUG) Log.d(TAG, "updateActiveStreamW " + activeStream); + final int s = activeStream < DYNAMIC_STREAM_START_INDEX ? activeStream : -1; + if (D.BUG) Log.d(TAG, "forceVolumeControlStream " + s); + mAudio.forceVolumeControlStream(s); + return true; + } + + private StreamState streamStateW(int stream) { + StreamState ss = mState.states.get(stream); + if (ss == null) { + ss = new StreamState(); + mState.states.put(stream, ss); + } + return ss; + } + + private void onGetStateW() { + for (int stream : STREAMS) { + updateStreamLevelW(stream, mAudio.getLastAudibleStreamVolume(stream)); + streamStateW(stream).levelMin = mAudio.getStreamMinVolume(stream); + streamStateW(stream).levelMax = mAudio.getStreamMaxVolume(stream); + updateStreamMuteW(stream, mAudio.isStreamMute(stream)); + final StreamState ss = streamStateW(stream); + ss.muteSupported = mAudio.isStreamAffectedByMute(stream); + ss.name = mStreamTitles[stream]; + checkRoutedToBluetoothW(stream); + } + updateRingerModeExternalW(mAudio.getRingerMode()); + updateZenModeW(); + updateEffectsSuppressorW(mNoMan.getEffectsSuppressor()); + updateExitConditionW(); + mCallbacks.onStateChanged(mState); + } + + private boolean updateStreamRoutedToBluetoothW(int stream, boolean routedToBluetooth) { + final StreamState ss = streamStateW(stream); + if (ss.routedToBluetooth == routedToBluetooth) return false; + ss.routedToBluetooth = routedToBluetooth; + if (D.BUG) Log.d(TAG, "updateStreamRoutedToBluetoothW stream=" + stream + + " routedToBluetooth=" + routedToBluetooth); + return true; + } + + private boolean updateStreamLevelW(int stream, int level) { + final StreamState ss = streamStateW(stream); + if (ss.level == level) return false; + ss.level = level; + if (isLogWorthy(stream)) { + Events.writeEvent(Events.EVENT_LEVEL_CHANGED, stream, level); + } + return true; + } + + private static boolean isLogWorthy(int stream) { + switch (stream) { + case AudioSystem.STREAM_ALARM: + case AudioSystem.STREAM_BLUETOOTH_SCO: + case AudioSystem.STREAM_MUSIC: + case AudioSystem.STREAM_RING: + case AudioSystem.STREAM_SYSTEM: + case AudioSystem.STREAM_VOICE_CALL: + return true; + } + return false; + } + + private boolean updateStreamMuteW(int stream, boolean muted) { + final StreamState ss = streamStateW(stream); + if (ss.muted == muted) return false; + ss.muted = muted; + if (isLogWorthy(stream)) { + Events.writeEvent(Events.EVENT_MUTE_CHANGED, stream, muted); + } + if (muted && isRinger(stream)) { + updateRingerModeInternalW(mAudio.getRingerModeInternal()); + } + return true; + } + + private static boolean isRinger(int stream) { + return stream == AudioManager.STREAM_RING || stream == AudioManager.STREAM_NOTIFICATION; + } + + private Condition getExitCondition() { + final ZenModeConfig config = mNoMan.getZenModeConfig(); + return config == null ? null + : config.manualRule == null ? null + : config.manualRule.condition; + } + + private boolean updateExitConditionW() { + final Condition exitCondition = getExitCondition(); + if (Objects.equals(mState.exitCondition, exitCondition)) return false; + mState.exitCondition = exitCondition; + return true; + } + + private boolean updateEffectsSuppressorW(ComponentName effectsSuppressor) { + if (Objects.equals(mState.effectsSuppressor, effectsSuppressor)) return false; + mState.effectsSuppressor = effectsSuppressor; + mState.effectsSuppressorName = getApplicationName(mContext, mState.effectsSuppressor); + Events.writeEvent(Events.EVENT_SUPPRESSOR_CHANGED, mState.effectsSuppressor, + mState.effectsSuppressorName); + return true; + } + + private static String getApplicationName(Context context, ComponentName component) { + if (component == null) return null; + final PackageManager pm = context.getPackageManager(); + final String pkg = component.getPackageName(); + try { + final ApplicationInfo ai = pm.getApplicationInfo(pkg, 0); + final String rt = Objects.toString(ai.loadLabel(pm), "").trim(); + if (rt.length() > 0) { + return rt; + } + } catch (NameNotFoundException e) {} + return pkg; + } + + private boolean updateZenModeW() { + final int zen = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF); + if (mState.zenMode == zen) return false; + mState.zenMode = zen; + Events.writeEvent(Events.EVENT_ZEN_MODE_CHANGED, zen); + return true; + } + + private boolean updateRingerModeExternalW(int rm) { + if (rm == mState.ringerModeExternal) return false; + mState.ringerModeExternal = rm; + Events.writeEvent(Events.EVENT_EXTERNAL_RINGER_MODE_CHANGED, rm); + return true; + } + + private boolean updateRingerModeInternalW(int rm) { + if (rm == mState.ringerModeInternal) return false; + mState.ringerModeInternal = rm; + Events.writeEvent(Events.EVENT_INTERNAL_RINGER_MODE_CHANGED, rm); + return true; + } + + private void onSetRingerModeW(int mode, boolean external) { + if (external) { + mAudio.setRingerMode(mode); + } else { + mAudio.setRingerModeInternal(mode); + } + } + + private void onSetStreamMuteW(int stream, boolean mute) { + mAudio.adjustStreamVolume(stream, mute ? AudioManager.ADJUST_MUTE + : AudioManager.ADJUST_UNMUTE, 0); + } + + private void onSetStreamVolumeW(int stream, int level) { + if (D.BUG) Log.d(TAG, "onSetStreamVolume " + stream + " level=" + level); + if (stream >= DYNAMIC_STREAM_START_INDEX) { + mMediaSessionsCallbacksW.setStreamVolume(stream, level); + return; + } + mAudio.setStreamVolume(stream, level, 0); + } + + private void onSetActiveStreamW(int stream) { + boolean changed = updateActiveStreamW(stream); + if (changed) { + mCallbacks.onStateChanged(mState); + } + } + + private void onSetExitConditionW(Condition condition) { + mNoMan.setZenMode(mState.zenMode, condition != null ? condition.id : null, TAG); + } + + private void onSetZenModeW(int mode) { + if (D.BUG) Log.d(TAG, "onSetZenModeW " + mode); + mNoMan.setZenMode(mode, null, TAG); + } + + private void onDismissRequestedW(int reason) { + mCallbacks.onDismissRequested(reason); + } + + public void showDndTile(boolean visible) { + if (D.BUG) Log.d(TAG, "showDndTile"); + DndTile.setVisible(mContext, visible); + } + + private final class VC extends IVolumeController.Stub { + private final String TAG = VolumeDialogController.TAG + ".VC"; + + @Override + public void displaySafeVolumeWarning(int flags) throws RemoteException { + if (D.BUG) Log.d(TAG, "displaySafeVolumeWarning " + + Util.audioManagerFlagsToString(flags)); + if (mDestroyed) return; + mWorker.obtainMessage(W.SHOW_SAFETY_WARNING, flags, 0).sendToTarget(); + } + + @Override + public void volumeChanged(int streamType, int flags) throws RemoteException { + if (D.BUG) Log.d(TAG, "volumeChanged " + AudioSystem.streamToString(streamType) + + " " + Util.audioManagerFlagsToString(flags)); + if (mDestroyed) return; + mWorker.obtainMessage(W.VOLUME_CHANGED, streamType, flags).sendToTarget(); + } + + @Override + public void masterMuteChanged(int flags) throws RemoteException { + if (D.BUG) Log.d(TAG, "masterMuteChanged"); + } + + @Override + public void setLayoutDirection(int layoutDirection) throws RemoteException { + if (D.BUG) Log.d(TAG, "setLayoutDirection"); + if (mDestroyed) return; + mWorker.obtainMessage(W.LAYOUT_DIRECTION_CHANGED, layoutDirection, 0).sendToTarget(); + } + + @Override + public void dismiss() throws RemoteException { + if (D.BUG) Log.d(TAG, "dismiss requested"); + if (mDestroyed) return; + mWorker.obtainMessage(W.DISMISS_REQUESTED, Events.DISMISS_REASON_VOLUME_CONTROLLER, 0) + .sendToTarget(); + mWorker.sendEmptyMessage(W.DISMISS_REQUESTED); + } + } + + private final class W extends Handler { + private static final int VOLUME_CHANGED = 1; + private static final int DISMISS_REQUESTED = 2; + private static final int GET_STATE = 3; + private static final int SET_RINGER_MODE = 4; + private static final int SET_ZEN_MODE = 5; + private static final int SET_EXIT_CONDITION = 6; + private static final int SET_STREAM_MUTE = 7; + private static final int LAYOUT_DIRECTION_CHANGED = 8; + private static final int CONFIGURATION_CHANGED = 9; + private static final int SET_STREAM_VOLUME = 10; + private static final int SET_ACTIVE_STREAM = 11; + private static final int NOTIFY_VISIBLE = 12; + private static final int USER_ACTIVITY = 13; + private static final int SHOW_SAFETY_WARNING = 14; + + W(Looper looper) { + super(looper); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case VOLUME_CHANGED: onVolumeChangedW(msg.arg1, msg.arg2); break; + case DISMISS_REQUESTED: onDismissRequestedW(msg.arg1); break; + case GET_STATE: onGetStateW(); break; + case SET_RINGER_MODE: onSetRingerModeW(msg.arg1, msg.arg2 != 0); break; + case SET_ZEN_MODE: onSetZenModeW(msg.arg1); break; + case SET_EXIT_CONDITION: onSetExitConditionW((Condition) msg.obj); break; + case SET_STREAM_MUTE: onSetStreamMuteW(msg.arg1, msg.arg2 != 0); break; + case LAYOUT_DIRECTION_CHANGED: mCallbacks.onLayoutDirectionChanged(msg.arg1); break; + case CONFIGURATION_CHANGED: mCallbacks.onConfigurationChanged(); break; + case SET_STREAM_VOLUME: onSetStreamVolumeW(msg.arg1, msg.arg2); break; + case SET_ACTIVE_STREAM: onSetActiveStreamW(msg.arg1); break; + case NOTIFY_VISIBLE: onNotifyVisibleW(msg.arg1 != 0); break; + case USER_ACTIVITY: onUserActivityW(); break; + case SHOW_SAFETY_WARNING: onShowSafetyWarningW(msg.arg1); break; + } + } + } + + private final class C implements Callbacks { + private final HashMap<Callbacks, Handler> mCallbackMap = new HashMap<>(); + + public void add(Callbacks callback, Handler handler) { + if (callback == null || handler == null) throw new IllegalArgumentException(); + mCallbackMap.put(callback, handler); + } + + public void remove(Callbacks callback) { + mCallbackMap.remove(callback); + } + + @Override + public void onShowRequested(final int reason) { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onShowRequested(reason); + } + }); + } + } + + @Override + public void onDismissRequested(final int reason) { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onDismissRequested(reason); + } + }); + } + } + + @Override + public void onStateChanged(final State state) { + final long time = System.currentTimeMillis(); + final State copy = state.copy(); + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onStateChanged(copy); + } + }); + } + Events.writeState(time, copy); + } + + @Override + public void onLayoutDirectionChanged(final int layoutDirection) { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onLayoutDirectionChanged(layoutDirection); + } + }); + } + } + + @Override + public void onConfigurationChanged() { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onConfigurationChanged(); + } + }); + } + } + + @Override + public void onShowVibrateHint() { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onShowVibrateHint(); + } + }); + } + } + + @Override + public void onShowSilentHint() { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onShowSilentHint(); + } + }); + } + } + + @Override + public void onScreenOff() { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onScreenOff(); + } + }); + } + } + + @Override + public void onShowSafetyWarning(final int flags) { + for (final Map.Entry<Callbacks, Handler> entry : mCallbackMap.entrySet()) { + entry.getValue().post(new Runnable() { + @Override + public void run() { + entry.getKey().onShowSafetyWarning(flags); + } + }); + } + } + } + + + private final class SettingObserver extends ContentObserver { + private final Uri SERVICE_URI = Settings.Secure.getUriFor( + Settings.Secure.VOLUME_CONTROLLER_SERVICE_COMPONENT); + private final Uri ZEN_MODE_URI = + Settings.Global.getUriFor(Settings.Global.ZEN_MODE); + private final Uri ZEN_MODE_CONFIG_URI = + Settings.Global.getUriFor(Settings.Global.ZEN_MODE_CONFIG_ETAG); + + public SettingObserver(Handler handler) { + super(handler); + } + + public void init() { + mContext.getContentResolver().registerContentObserver(SERVICE_URI, false, this); + mContext.getContentResolver().registerContentObserver(ZEN_MODE_URI, false, this); + mContext.getContentResolver().registerContentObserver(ZEN_MODE_CONFIG_URI, false, this); + onChange(true, SERVICE_URI); + } + + public void destroy() { + mContext.getContentResolver().unregisterContentObserver(this); + } + + @Override + public void onChange(boolean selfChange, Uri uri) { + boolean changed = false; + if (SERVICE_URI.equals(uri)) { + final String setting = Settings.Secure.getString(mContext.getContentResolver(), + Settings.Secure.VOLUME_CONTROLLER_SERVICE_COMPONENT); + final boolean enabled = setting != null && mComponent != null + && mComponent.equals(ComponentName.unflattenFromString(setting)); + if (enabled == mEnabled) return; + if (enabled) { + register(); + } + mEnabled = enabled; + } + if (ZEN_MODE_URI.equals(uri)) { + changed = updateZenModeW(); + } + if (ZEN_MODE_CONFIG_URI.equals(uri)) { + changed = updateExitConditionW(); + } + if (changed) { + mCallbacks.onStateChanged(mState); + } + } + } + + private final class Receiver extends BroadcastReceiver { + + public void init() { + final IntentFilter filter = new IntentFilter(); + filter.addAction(AudioManager.VOLUME_CHANGED_ACTION); + filter.addAction(AudioManager.STREAM_DEVICES_CHANGED_ACTION); + filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); + filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION); + filter.addAction(AudioManager.STREAM_MUTE_CHANGED_ACTION); + filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED); + filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); + filter.addAction(Intent.ACTION_SCREEN_OFF); + mContext.registerReceiver(this, filter, null, mWorker); + } + + public void destroy() { + mContext.unregisterReceiver(this); + } + + @Override + public void onReceive(Context context, Intent intent) { + final String action = intent.getAction(); + boolean changed = false; + if (action.equals(AudioManager.VOLUME_CHANGED_ACTION)) { + final int stream = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1); + final int level = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, -1); + final int oldLevel = intent + .getIntExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE, -1); + if (D.BUG) Log.d(TAG, "onReceive VOLUME_CHANGED_ACTION stream=" + stream + + " level=" + level + " oldLevel=" + oldLevel); + changed = updateStreamLevelW(stream, level); + } else if (action.equals(AudioManager.STREAM_DEVICES_CHANGED_ACTION)) { + final int stream = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1); + final int devices = intent + .getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_DEVICES, -1); + final int oldDevices = intent + .getIntExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_DEVICES, -1); + if (D.BUG) Log.d(TAG, "onReceive STREAM_DEVICES_CHANGED_ACTION stream=" + + stream + " devices=" + devices + " oldDevices=" + oldDevices); + changed = checkRoutedToBluetoothW(stream); + } else if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) { + final int rm = intent.getIntExtra(AudioManager.EXTRA_RINGER_MODE, -1); + if (D.BUG) Log.d(TAG, "onReceive RINGER_MODE_CHANGED_ACTION rm=" + + Util.ringerModeToString(rm)); + changed = updateRingerModeExternalW(rm); + } else if (action.equals(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION)) { + final int rm = intent.getIntExtra(AudioManager.EXTRA_RINGER_MODE, -1); + if (D.BUG) Log.d(TAG, "onReceive INTERNAL_RINGER_MODE_CHANGED_ACTION rm=" + + Util.ringerModeToString(rm)); + changed = updateRingerModeInternalW(rm); + } else if (action.equals(AudioManager.STREAM_MUTE_CHANGED_ACTION)) { + final int stream = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1); + final boolean muted = intent + .getBooleanExtra(AudioManager.EXTRA_STREAM_VOLUME_MUTED, false); + if (D.BUG) Log.d(TAG, "onReceive STREAM_MUTE_CHANGED_ACTION stream=" + stream + + " muted=" + muted); + changed = updateStreamMuteW(stream, muted); + } else if (action.equals(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED)) { + if (D.BUG) Log.d(TAG, "onReceive ACTION_EFFECTS_SUPPRESSOR_CHANGED"); + changed = updateEffectsSuppressorW(mNoMan.getEffectsSuppressor()); + } else if (action.equals(Intent.ACTION_CONFIGURATION_CHANGED)) { + if (D.BUG) Log.d(TAG, "onReceive ACTION_CONFIGURATION_CHANGED"); + mCallbacks.onConfigurationChanged(); + } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { + if (D.BUG) Log.d(TAG, "onReceive ACTION_SCREEN_OFF"); + mCallbacks.onScreenOff(); + } + if (changed) { + mCallbacks.onStateChanged(mState); + } + } + } + + private final class MediaSessionsCallbacks implements MediaSessions.Callbacks { + private final HashMap<Token, Integer> mRemoteStreams = new HashMap<>(); + + private int mNextStream = DYNAMIC_STREAM_START_INDEX; + + @Override + public void onRemoteUpdate(Token token, String name, PlaybackInfo pi) { + if (!mRemoteStreams.containsKey(token)) { + mRemoteStreams.put(token, mNextStream); + if (D.BUG) Log.d(TAG, "onRemoteUpdate: " + name + " is stream " + mNextStream); + mNextStream++; + } + final int stream = mRemoteStreams.get(token); + boolean changed = mState.states.indexOfKey(stream) < 0; + final StreamState ss = streamStateW(stream); + ss.dynamic = true; + ss.levelMin = 0; + ss.levelMax = pi.getMaxVolume(); + if (ss.level != pi.getCurrentVolume()) { + ss.level = pi.getCurrentVolume(); + changed = true; + } + if (!Objects.equals(ss.name, name)) { + ss.name = name; + changed = true; + } + if (changed) { + if (D.BUG) Log.d(TAG, "onRemoteUpdate: " + name + ": " + ss.level + + " of " + ss.levelMax); + mCallbacks.onStateChanged(mState); + } + } + + @Override + public void onRemoteVolumeChanged(Token token, int flags) { + final int stream = mRemoteStreams.get(token); + final boolean showUI = (flags & AudioManager.FLAG_SHOW_UI) != 0; + boolean changed = updateActiveStreamW(stream); + if (showUI) { + changed |= checkRoutedToBluetoothW(AudioManager.STREAM_MUSIC); + } + if (changed) { + mCallbacks.onStateChanged(mState); + } + if (showUI) { + mCallbacks.onShowRequested(Events.SHOW_REASON_REMOTE_VOLUME_CHANGED); + } + } + + @Override + public void onRemoteRemoved(Token token) { + final int stream = mRemoteStreams.get(token); + mState.states.remove(stream); + if (mState.activeStream == stream) { + updateActiveStreamW(-1); + } + mCallbacks.onStateChanged(mState); + } + + public void setStreamVolume(int stream, int level) { + final Token t = findToken(stream); + if (t == null) { + Log.w(TAG, "setStreamVolume: No token found for stream: " + stream); + return; + } + mMediaSessions.setVolume(t, level); + } + + private Token findToken(int stream) { + for (Map.Entry<Token, Integer> entry : mRemoteStreams.entrySet()) { + if (entry.getValue().equals(stream)) { + return entry.getKey(); + } + } + return null; + } + } + + public static final class StreamState { + public boolean dynamic; + public int level; + public int levelMin; + public int levelMax; + public boolean muted; + public boolean muteSupported; + public String name; + public boolean routedToBluetooth; + + public StreamState copy() { + final StreamState rt = new StreamState(); + rt.dynamic = dynamic; + rt.level = level; + rt.levelMin = levelMin; + rt.levelMax = levelMax; + rt.muted = muted; + rt.muteSupported = muteSupported; + rt.name = name; + rt.routedToBluetooth = routedToBluetooth; + return rt; + } + } + + public static final class State { + public static int NO_ACTIVE_STREAM = -1; + + public final SparseArray<StreamState> states = new SparseArray<StreamState>(); + + public int ringerModeInternal; + public int ringerModeExternal; + public int zenMode; + public ComponentName effectsSuppressor; + public String effectsSuppressorName; + public Condition exitCondition; + public int activeStream = NO_ACTIVE_STREAM; + + public State copy() { + final State rt = new State(); + for (int i = 0; i < states.size(); i++) { + rt.states.put(states.keyAt(i), states.valueAt(i).copy()); + } + rt.ringerModeExternal = ringerModeExternal; + rt.ringerModeInternal = ringerModeInternal; + rt.zenMode = zenMode; + if (effectsSuppressor != null) rt.effectsSuppressor = effectsSuppressor.clone(); + rt.effectsSuppressorName = effectsSuppressorName; + if (exitCondition != null) rt.exitCondition = exitCondition.copy(); + rt.activeStream = activeStream; + return rt; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + for (int i = 0; i < states.size(); i++) { + if (i > 0) sb.append(','); + final int stream = states.keyAt(i); + final StreamState ss = states.valueAt(i); + sb.append(AudioSystem.streamToString(stream)).append(":").append(ss.level) + .append("[").append(ss.levelMin).append("..").append(ss.levelMax); + if (ss.muted) sb.append(" [MUTED]"); + } + sb.append(",ringerModeExternal:").append(ringerModeExternal); + sb.append(",ringerModeInternal:").append(ringerModeInternal); + sb.append(",zenMode:").append(zenMode); + sb.append(",effectsSuppressor:").append(effectsSuppressor); + sb.append(",effectsSuppressorName:").append(effectsSuppressorName); + sb.append(",exitCondition:").append(exitCondition); + sb.append(",activeStream:").append(activeStream); + return sb.append('}').toString(); + } + } + + public interface Callbacks { + void onShowRequested(int reason); + void onDismissRequested(int reason); + void onStateChanged(State state); + void onLayoutDirectionChanged(int layoutDirection); + void onConfigurationChanged(); + void onShowVibrateHint(); + void onShowSilentHint(); + void onScreenOff(); + void onShowSafetyWarning(int flags); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java index d16b818..f16e9d2 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java @@ -52,7 +52,6 @@ import android.os.Message; import android.os.Vibrator; import android.util.Log; import android.util.SparseArray; -import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -72,7 +71,6 @@ import android.widget.TextView; import com.android.internal.R; import com.android.systemui.DemoMode; -import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.ZenModeController; import java.io.FileDescriptor; @@ -264,80 +262,6 @@ public class VolumePanel extends Handler implements DemoMode { private static AlertDialog sSafetyWarning; private static Object sSafetyWarningLock = new Object(); - private static class SafetyWarning extends SystemUIDialog - implements DialogInterface.OnDismissListener, DialogInterface.OnClickListener { - private final Context mContext; - private final VolumePanel mVolumePanel; - private final AudioManager mAudioManager; - - private boolean mNewVolumeUp; - - SafetyWarning(Context context, VolumePanel volumePanel, AudioManager audioManager) { - super(context); - mContext = context; - mVolumePanel = volumePanel; - mAudioManager = audioManager; - - setMessage(mContext.getString(com.android.internal.R.string.safe_media_volume_warning)); - setButton(DialogInterface.BUTTON_POSITIVE, - mContext.getString(com.android.internal.R.string.yes), this); - setButton(DialogInterface.BUTTON_NEGATIVE, - mContext.getString(com.android.internal.R.string.no), (OnClickListener) null); - setOnDismissListener(this); - - IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - context.registerReceiver(mReceiver, filter); - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) { - mNewVolumeUp = true; - } - return super.onKeyDown(keyCode, event); - } - - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && mNewVolumeUp) { - if (LOGD) Log.d(TAG, "Confirmed warning via VOLUME_UP"); - mAudioManager.disableSafeMediaVolume(); - dismiss(); - } - return super.onKeyUp(keyCode, event); - } - - @Override - public void onClick(DialogInterface dialog, int which) { - mAudioManager.disableSafeMediaVolume(); - } - - @Override - public void onDismiss(DialogInterface unused) { - mContext.unregisterReceiver(mReceiver); - cleanUp(); - } - - private void cleanUp() { - synchronized (sSafetyWarningLock) { - sSafetyWarning = null; - } - mVolumePanel.forceTimeout(0); - mVolumePanel.updateStates(); - } - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) { - if (LOGD) Log.d(TAG, "Received ACTION_CLOSE_SYSTEM_DIALOGS"); - cancel(); - cleanUp(); - } - } - }; - } - protected LayoutParams getDialogLayoutParams(Window window, Resources res) { final LayoutParams lp = window.getAttributes(); lp.token = null; @@ -384,7 +308,7 @@ public class VolumePanel extends Handler implements DemoMode { final Window window = mDialog.getWindow(); window.requestFeature(Window.FEATURE_NO_TITLE); mDialog.setCanceledOnTouchOutside(true); - mDialog.setContentView(com.android.systemui.R.layout.volume_dialog); + mDialog.setContentView(com.android.systemui.R.layout.volume_panel_dialog); mDialog.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { @@ -1283,7 +1207,16 @@ public class VolumePanel extends Handler implements DemoMode { if (sSafetyWarning != null) { return; } - sSafetyWarning = new SafetyWarning(mContext, this, mAudioManager); + sSafetyWarning = new SafetyWarningDialog(mContext, mAudioManager) { + @Override + protected void cleanUp() { + synchronized (sSafetyWarningLock) { + sSafetyWarning = null; + } + forceTimeout(0); + updateStates(); + } + }; sSafetyWarning.show(); } updateStates(); diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanelComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanelComponent.java new file mode 100644 index 0000000..fa6ea9e --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanelComponent.java @@ -0,0 +1,184 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.volume; + +import android.content.Context; +import android.content.res.Configuration; +import android.media.AudioManager; +import android.media.IRemoteVolumeController; +import android.media.IVolumeController; +import android.media.VolumePolicy; +import android.media.session.ISessionController; +import android.media.session.MediaController; +import android.media.session.MediaSessionManager; +import android.os.Bundle; +import android.os.Handler; +import android.os.RemoteException; + +import com.android.systemui.R; +import com.android.systemui.SystemUI; +import com.android.systemui.keyguard.KeyguardViewMediator; +import com.android.systemui.qs.tiles.DndTile; +import com.android.systemui.statusbar.phone.PhoneStatusBar; +import com.android.systemui.statusbar.policy.ZenModeController; + +import java.io.FileDescriptor; +import java.io.PrintWriter; + +/** + * Implementation of VolumeComponent backed by the old volume panel. + */ +public class VolumePanelComponent implements VolumeComponent { + + private final SystemUI mSysui; + private final Context mContext; + private final Handler mHandler; + private final VolumeController mVolumeController; + private final RemoteVolumeController mRemoteVolumeController; + private final AudioManager mAudioManager; + private final MediaSessionManager mMediaSessionManager; + + private VolumePanel mPanel; + private int mDismissDelay; + + public VolumePanelComponent(SystemUI sysui, Context context, Handler handler, + ZenModeController controller) { + mSysui = sysui; + mContext = context; + mHandler = handler; + mAudioManager = context.getSystemService(AudioManager.class); + mMediaSessionManager = context.getSystemService(MediaSessionManager.class); + mVolumeController = new VolumeController(); + mRemoteVolumeController = new RemoteVolumeController(); + mDismissDelay = mContext.getResources().getInteger(R.integer.volume_panel_dismiss_delay); + mPanel = new VolumePanel(mContext, controller); + mPanel.setCallback(new VolumePanel.Callback() { + @Override + public void onZenSettings() { + mHandler.removeCallbacks(mStartZenSettings); + mHandler.post(mStartZenSettings); + } + + @Override + public void onInteraction() { + final KeyguardViewMediator kvm = mSysui.getComponent(KeyguardViewMediator.class); + if (kvm != null) { + kvm.userActivity(); + } + } + + @Override + public void onVisible(boolean visible) { + if (mAudioManager != null && mVolumeController != null) { + mAudioManager.notifyVolumeControllerVisible(mVolumeController, visible); + } + } + }); + } + + @Override + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + if (mPanel != null) { + mPanel.dump(fd, pw, args); + } + } + + public void register() { + mAudioManager.setVolumeController(mVolumeController); + mAudioManager.setVolumePolicy(VolumePolicy.DEFAULT); + mMediaSessionManager.setRemoteVolumeController(mRemoteVolumeController); + DndTile.setVisible(mContext, false); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + if (mPanel != null) { + mPanel.onConfigurationChanged(newConfig); + } + } + + @Override + public ZenModeController getZenController() { + return mPanel.getZenController(); + } + + @Override + public void dispatchDemoCommand(String command, Bundle args) { + mPanel.dispatchDemoCommand(command, args); + } + + @Override + public void dismissNow() { + mPanel.postDismiss(0); + } + + private final Runnable mStartZenSettings = new Runnable() { + @Override + public void run() { + mSysui.getComponent(PhoneStatusBar.class).startActivityDismissingKeyguard( + ZenModePanel.ZEN_SETTINGS, true /* onlyProvisioned */, true /* dismissShade */); + mPanel.postDismiss(mDismissDelay); + } + }; + + private final class RemoteVolumeController extends IRemoteVolumeController.Stub { + @Override + public void remoteVolumeChanged(ISessionController binder, int flags) + throws RemoteException { + MediaController controller = new MediaController(mContext, binder); + mPanel.postRemoteVolumeChanged(controller, flags); + } + + @Override + public void updateRemoteController(ISessionController session) throws RemoteException { + mPanel.postRemoteSliderVisibility(session != null); + // TODO stash default session in case the slider can be opened other + // than by remoteVolumeChanged. + } + } + + /** For now, simply host an unmodified base volume panel in this process. */ + private final class VolumeController extends IVolumeController.Stub { + + @Override + public void displaySafeVolumeWarning(int flags) throws RemoteException { + mPanel.postDisplaySafeVolumeWarning(flags); + } + + @Override + public void volumeChanged(int streamType, int flags) + throws RemoteException { + mPanel.postVolumeChanged(streamType, flags); + } + + @Override + public void masterMuteChanged(int flags) throws RemoteException { + // no-op + } + + @Override + public void setLayoutDirection(int layoutDirection) + throws RemoteException { + mPanel.postLayoutDirection(layoutDirection); + } + + @Override + public void dismiss() throws RemoteException { + dismissNow(); + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java index ac08904..387aed0 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java @@ -29,25 +29,17 @@ import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.media.AudioManager; -import android.media.IRemoteVolumeController; -import android.media.IVolumeController; -import android.media.VolumePolicy; -import android.media.session.ISessionController; -import android.media.session.MediaController; import android.media.session.MediaSessionManager; -import android.os.Bundle; import android.os.Handler; -import android.os.RemoteException; +import android.os.SystemProperties; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import com.android.systemui.R; import com.android.systemui.SystemUI; -import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.qs.tiles.DndTile; import com.android.systemui.statusbar.ServiceMonitor; -import com.android.systemui.statusbar.phone.PhoneStatusBar; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.ZenModeController; import com.android.systemui.statusbar.policy.ZenModeControllerImpl; @@ -59,6 +51,8 @@ public class VolumeUI extends SystemUI { private static final String TAG = "VolumeUI"; private static boolean LOGD = Log.isLoggable(TAG, Log.DEBUG); + private static final boolean USE_OLD_VOLUME = SystemProperties.getBoolean("volume.old", false); + private final Handler mHandler = new Handler(); private final Receiver mReceiver = new Receiver(); private final RestorationNotification mRestorationNotification = new RestorationNotification(); @@ -67,12 +61,10 @@ public class VolumeUI extends SystemUI { private AudioManager mAudioManager; private NotificationManager mNotificationManager; private MediaSessionManager mMediaSessionManager; - private VolumeController mVolumeController; - private RemoteVolumeController mRemoteVolumeController; private ServiceMonitor mVolumeControllerService; - private VolumePanel mPanel; - private int mDismissDelay; + private VolumePanelComponent mOldVolume; + private VolumeDialogComponent mNewVolume; @Override public void start() { @@ -83,10 +75,10 @@ public class VolumeUI extends SystemUI { (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); mMediaSessionManager = (MediaSessionManager) mContext .getSystemService(Context.MEDIA_SESSION_SERVICE); - initPanel(); - mVolumeController = new VolumeController(); - mRemoteVolumeController = new RemoteVolumeController(); - putComponent(VolumeComponent.class, mVolumeController); + final ZenModeController zenController = new ZenModeControllerImpl(mContext, mHandler); + mOldVolume = new VolumePanelComponent(this, mContext, mHandler, zenController); + mNewVolume = new VolumeDialogComponent(this, mContext, null, zenController); + putComponent(VolumeComponent.class, getVolumeComponent()); mReceiver.start(); mVolumeControllerService = new ServiceMonitor(TAG, LOGD, mContext, Settings.Secure.VOLUME_CONTROLLER_SERVICE_COMPONENT, @@ -94,30 +86,30 @@ public class VolumeUI extends SystemUI { mVolumeControllerService.start(); } + private VolumeComponent getVolumeComponent() { + return USE_OLD_VOLUME ? mOldVolume : mNewVolume; + } + @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); - if (mPanel != null) { - mPanel.onConfigurationChanged(newConfig); - } + if (!mEnabled) return; + getVolumeComponent().onConfigurationChanged(newConfig); } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.print("mEnabled="); pw.println(mEnabled); + if (!mEnabled) return; pw.print("mVolumeControllerService="); pw.println(mVolumeControllerService.getComponent()); - if (mPanel != null) { - mPanel.dump(fd, pw, args); - } + getVolumeComponent().dump(fd, pw, args); } - private void setVolumeController(boolean register) { + private void setDefaultVolumeController(boolean register) { if (register) { - if (LOGD) Log.d(TAG, "Registering default volume controller"); - mAudioManager.setVolumeController(mVolumeController); - mAudioManager.setVolumePolicy(VolumePolicy.DEFAULT); - mMediaSessionManager.setRemoteVolumeController(mRemoteVolumeController); DndTile.setVisible(mContext, false); + if (LOGD) Log.d(TAG, "Registering default volume controller"); + getVolumeComponent().register(); } else { if (LOGD) Log.d(TAG, "Unregistering default volume controller"); mAudioManager.setVolumeController(null); @@ -125,33 +117,6 @@ public class VolumeUI extends SystemUI { } } - private void initPanel() { - mDismissDelay = mContext.getResources().getInteger(R.integer.volume_panel_dismiss_delay); - mPanel = new VolumePanel(mContext, new ZenModeControllerImpl(mContext, mHandler)); - mPanel.setCallback(new VolumePanel.Callback() { - @Override - public void onZenSettings() { - mHandler.removeCallbacks(mStartZenSettings); - mHandler.post(mStartZenSettings); - } - - @Override - public void onInteraction() { - final KeyguardViewMediator kvm = getComponent(KeyguardViewMediator.class); - if (kvm != null) { - kvm.userActivity(); - } - } - - @Override - public void onVisible(boolean visible) { - if (mAudioManager != null && mVolumeController != null) { - mAudioManager.notifyVolumeControllerVisible(mVolumeController, visible); - } - } - }); - } - private String getAppLabel(ComponentName component) { final String pkg = component.getPackageName(); try { @@ -179,83 +144,11 @@ public class VolumeUI extends SystemUI { d.show(); } - private final Runnable mStartZenSettings = new Runnable() { - @Override - public void run() { - getComponent(PhoneStatusBar.class).startActivityDismissingKeyguard( - ZenModePanel.ZEN_SETTINGS, true /* onlyProvisioned */, true /* dismissShade */); - mPanel.postDismiss(mDismissDelay); - } - }; - - /** For now, simply host an unmodified base volume panel in this process. */ - private final class VolumeController extends IVolumeController.Stub implements VolumeComponent { - - @Override - public void displaySafeVolumeWarning(int flags) throws RemoteException { - mPanel.postDisplaySafeVolumeWarning(flags); - } - - @Override - public void volumeChanged(int streamType, int flags) - throws RemoteException { - mPanel.postVolumeChanged(streamType, flags); - } - - @Override - public void masterMuteChanged(int flags) throws RemoteException { - // no-op - } - - @Override - public void setLayoutDirection(int layoutDirection) - throws RemoteException { - mPanel.postLayoutDirection(layoutDirection); - } - - @Override - public void dismiss() throws RemoteException { - dismissNow(); - } - - @Override - public ZenModeController getZenController() { - return mPanel.getZenController(); - } - - @Override - public void dispatchDemoCommand(String command, Bundle args) { - mPanel.dispatchDemoCommand(command, args); - } - - @Override - public void dismissNow() { - mPanel.postDismiss(0); - } - } - - private final class RemoteVolumeController extends IRemoteVolumeController.Stub { - - @Override - public void remoteVolumeChanged(ISessionController binder, int flags) - throws RemoteException { - MediaController controller = new MediaController(mContext, binder); - mPanel.postRemoteVolumeChanged(controller, flags); - } - - @Override - public void updateRemoteController(ISessionController session) throws RemoteException { - mPanel.postRemoteSliderVisibility(session != null); - // TODO stash default session in case the slider can be opened other - // than by remoteVolumeChanged. - } - } - private final class ServiceMonitorCallbacks implements ServiceMonitor.Callbacks { @Override public void onNoService() { if (LOGD) Log.d(TAG, "onNoService"); - setVolumeController(true); + setDefaultVolumeController(true); mRestorationNotification.hide(); if (!mVolumeControllerService.isPackageAvailable()) { mVolumeControllerService.setComponent(null); @@ -267,8 +160,8 @@ public class VolumeUI extends SystemUI { if (LOGD) Log.d(TAG, "onServiceStartAttempt"); // poke the setting to update the uid mVolumeControllerService.setComponent(mVolumeControllerService.getComponent()); - setVolumeController(false); - mVolumeController.dismissNow(); + setDefaultVolumeController(false); + getVolumeComponent().dismissNow(); mRestorationNotification.show(); return 0; } diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java b/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java new file mode 100644 index 0000000..ef8257c --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.volume; + +import android.animation.LayoutTransition; +import android.animation.ValueAnimator; +import android.app.ActivityManager; +import android.content.Context; +import android.content.res.Resources; +import android.provider.Settings.Global; +import android.service.notification.ZenModeConfig; +import android.util.AttributeSet; +import android.util.Log; +import android.util.TypedValue; +import android.view.View; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.LinearLayout; +import android.widget.Switch; +import android.widget.TextView; + +import com.android.systemui.R; +import com.android.systemui.statusbar.policy.ZenModeController; + +import java.util.Objects; + +/** + * Switch bar + zen mode panel (conditions) attached to the bottom of the volume dialog. + */ +public class ZenFooter extends LinearLayout { + private static final String TAG = Util.logTag(ZenFooter.class); + + private final Context mContext; + private final float mSecondaryAlpha; + private final LayoutTransition mLayoutTransition; + + private ZenModeController mController; + private Switch mSwitch; + private ZenModePanel mZenModePanel; + private View mZenModePanelButtons; + private View mZenModePanelMoreButton; + private View mZenModePanelDoneButton; + private View mSwitchBar; + private View mSwitchBarIcon; + private View mSummary; + private TextView mSummaryLine1; + private TextView mSummaryLine2; + private boolean mFooterExpanded; + private int mZen = -1; + private ZenModeConfig mConfig; + private Callback mCallback; + + public ZenFooter(Context context, AttributeSet attrs) { + super(context, attrs); + mContext = context; + mSecondaryAlpha = getFloat(context.getResources(), R.dimen.volume_secondary_alpha); + mLayoutTransition = new LayoutTransition(); + mLayoutTransition.setDuration(new ValueAnimator().getDuration() / 2); + mLayoutTransition.disableTransitionType(LayoutTransition.DISAPPEARING); + mLayoutTransition.disableTransitionType(LayoutTransition.CHANGE_DISAPPEARING); + } + + private static float getFloat(Resources r, int resId) { + final TypedValue tv = new TypedValue(); + r.getValue(resId, tv, true); + return tv.getFloat(); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + mSwitchBar = findViewById(R.id.volume_zen_switch_bar); + mSwitchBarIcon = findViewById(R.id.volume_zen_switch_bar_icon); + mSwitch = (Switch) findViewById(R.id.volume_zen_switch); + mZenModePanel = (ZenModePanel) findViewById(R.id.zen_mode_panel); + mZenModePanelButtons = findViewById(R.id.volume_zen_mode_panel_buttons); + mZenModePanelMoreButton = findViewById(R.id.volume_zen_mode_panel_more); + mZenModePanelDoneButton = findViewById(R.id.volume_zen_mode_panel_done); + mSummary = findViewById(R.id.volume_zen_panel_summary); + mSummaryLine1 = (TextView) findViewById(R.id.volume_zen_panel_summary_line_1); + mSummaryLine2 = (TextView) findViewById(R.id.volume_zen_panel_summary_line_2); + } + + public void init(ZenModeController controller, Callback callback) { + mCallback = callback; + mController = controller; + mZenModePanel.init(controller); + mZenModePanel.setEmbedded(true); + mSwitch.setOnCheckedChangeListener(mCheckedListener); + mController.addCallback(new ZenModeController.Callback() { + @Override + public void onZenChanged(int zen) { + setZen(zen); + } + @Override + public void onConfigChanged(ZenModeConfig config) { + setConfig(config); + } + }); + mSwitchBar.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mSwitch.setChecked(!mSwitch.isChecked()); + } + }); + mZenModePanelMoreButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mCallback != null) { + mCallback.onSettingsClicked(); + } + } + }); + mZenModePanelDoneButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mCallback != null) { + mCallback.onDoneClicked(); + } + } + }); + mZen = mController.getZen(); + mConfig = mController.getConfig(); + update(); + } + + private void setZen(int zen) { + if (mZen == zen) return; + mZen = zen; + update(); + } + + private void setConfig(ZenModeConfig config) { + if (Objects.equals(mConfig, config)) return; + mConfig = config; + update(); + } + + public boolean isZen() { + return isZenPriority() || isZenAlarms() || isZenNone(); + } + + private boolean isZenPriority() { + return mZen == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS; + } + + private boolean isZenAlarms() { + return mZen == Global.ZEN_MODE_ALARMS; + } + + private boolean isZenNone() { + return mZen == Global.ZEN_MODE_NO_INTERRUPTIONS; + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + setLayoutTransition(null); + setFooterExpanded(false); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + setLayoutTransition(mLayoutTransition); + } + + private boolean setFooterExpanded(boolean expanded) { + if (mFooterExpanded == expanded) return false; + mFooterExpanded = expanded; + update(); + if (mCallback != null) { + mCallback.onFooterExpanded(); + } + return true; + } + + public boolean isFooterExpanded() { + return mFooterExpanded; + } + + public void update() { + final boolean isZen = isZen(); + mSwitch.setOnCheckedChangeListener(null); + mSwitch.setChecked(isZen); + mSwitch.setOnCheckedChangeListener(mCheckedListener); + Util.setVisOrGone(mZenModePanel, isZen && mFooterExpanded); + Util.setVisOrGone(mZenModePanelButtons, isZen && mFooterExpanded); + Util.setVisOrGone(mSummary, isZen && !mFooterExpanded); + mSwitchBarIcon.setAlpha(isZen ? 1 : mSecondaryAlpha); + final String line1 = + isZenPriority() ? mContext.getString(R.string.interruption_level_priority) + : isZenAlarms() ? mContext.getString(R.string.interruption_level_alarms) + : isZenNone() ? mContext.getString(R.string.interruption_level_none) + : null; + Util.setText(mSummaryLine1, line1); + final String line2 = ZenModeConfig.getConditionSummary(mContext, mConfig, + ActivityManager.getCurrentUser()); + Util.setText(mSummaryLine2, line2); + } + + private final OnCheckedChangeListener mCheckedListener = new OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (D.BUG) Log.d(TAG, "onCheckedChanged " + isChecked); + if (isChecked != isZen()) { + final int newZen = isChecked ? Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS + : Global.ZEN_MODE_OFF; + mZen = newZen; // this one's optimistic + setFooterExpanded(isChecked); + mController.setZen(newZen, null, TAG); + } + } + }; + + public interface Callback { + void onFooterExpanded(); + void onSettingsClicked(); + void onDoneClicked(); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java index 878ab712..f6d4c36 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java +++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java @@ -23,7 +23,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.content.res.Resources; import android.net.Uri; import android.os.AsyncTask; import android.os.Handler; @@ -33,6 +32,7 @@ import android.provider.Settings; import android.provider.Settings.Global; import android.service.notification.Condition; import android.service.notification.ZenModeConfig; +import android.service.notification.ZenModeConfig.ZenRule; import android.text.TextUtils; import android.util.ArraySet; import android.util.AttributeSet; @@ -150,14 +150,14 @@ public class ZenModePanel extends LinearLayout { if (mEmbedded == embedded) return; mEmbedded = embedded; mZenButtonsContainer.setLayoutTransition(mEmbedded ? null : newLayoutTransition(null)); + setLayoutTransition(mEmbedded ? null : newLayoutTransition(null)); if (mEmbedded) { mZenButtonsContainer.setBackground(null); } else { mZenButtonsContainer.setBackgroundResource(R.drawable.qs_background_secondary); } - mZenButtons.getChildAt(2).setVisibility(mEmbedded ? GONE : VISIBLE); + mZenButtons.getChildAt(3).setVisibility(mEmbedded ? GONE : VISIBLE); mZenEmbeddedDivider.setVisibility(mEmbedded ? VISIBLE : GONE); - setExpanded(mEmbedded); updateWidgets(); } @@ -166,12 +166,13 @@ public class ZenModePanel extends LinearLayout { super.onFinishInflate(); mZenButtons = (SegmentedButtons) findViewById(R.id.zen_buttons); - mZenButtons.addButton(R.string.interruption_level_none, R.drawable.ic_zen_none, + mZenButtons.addButton(R.string.interruption_level_none_twoline, Global.ZEN_MODE_NO_INTERRUPTIONS); - mZenButtons.addButton(R.string.interruption_level_priority, R.drawable.ic_zen_important, + mZenButtons.addButton(R.string.interruption_level_alarms_twoline, + Global.ZEN_MODE_ALARMS); + mZenButtons.addButton(R.string.interruption_level_priority_twoline, Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); - mZenButtons.addButton(R.string.interruption_level_all, R.drawable.ic_zen_all, - Global.ZEN_MODE_OFF); + mZenButtons.addButton(R.string.interruption_level_all, Global.ZEN_MODE_OFF); mZenButtons.setCallback(mZenButtonsCallback); mZenButtonsContainer = (ViewGroup) findViewById(R.id.zen_buttons_container); @@ -275,8 +276,9 @@ public class ZenModePanel extends LinearLayout { private void setExpanded(boolean expanded) { if (expanded == mExpanded) return; + if (DEBUG) Log.d(mTag, "setExpanded " + expanded); mExpanded = expanded; - if (mExpanded) { + if (mExpanded && isShown()) { ensureSelection(); } updateWidgets(); @@ -297,7 +299,7 @@ public class ZenModePanel extends LinearLayout { }); } if (mRequestingConditions) { - mTimeCondition = parseExistingTimeCondition(mExitCondition); + mTimeCondition = parseExistingTimeCondition(mContext, mExitCondition); if (mTimeCondition != null) { mBucketIndex = -1; } else { @@ -325,10 +327,9 @@ public class ZenModePanel extends LinearLayout { for (int i = 0; i < mMaxConditions; i++) { mZenConditions.addView(mInflater.inflate(R.layout.zen_mode_condition, this, false)); } - setExitCondition(mController.getExitCondition()); refreshExitConditionText(); mSessionZen = getSelectedZen(-1); - handleUpdateZen(mController.getZen()); + handleUpdateManualRule(mController.getManualRule()); if (DEBUG) Log.d(mTag, "init mExitCondition=" + mExitCondition); hideAllConditions(); mController.addCallback(mZenCallback); @@ -350,6 +351,10 @@ public class ZenModePanel extends LinearLayout { return condition != null ? condition.id : null; } + private Uri getRealConditionId(Condition condition) { + return isForever(condition) ? null : getConditionId(condition); + } + private static boolean sameConditionId(Condition lhs, Condition rhs) { return lhs == null ? rhs == null : rhs != null && lhs.id.equals(rhs.id); } @@ -359,13 +364,17 @@ public class ZenModePanel extends LinearLayout { } private void refreshExitConditionText() { - if (mExitCondition == null) { - mExitConditionText = foreverSummary(); - } else if (isCountdown(mExitCondition)) { - final Condition condition = parseExistingTimeCondition(mExitCondition); - mExitConditionText = condition != null ? condition.summary : foreverSummary(); + mExitConditionText = getExitConditionText(mContext, mExitCondition); + } + + public static String getExitConditionText(Context context, Condition exitCondition) { + if (exitCondition == null) { + return foreverSummary(context); + } else if (isCountdown(exitCondition)) { + final Condition condition = parseExistingTimeCondition(context, exitCondition); + return condition != null ? condition.summary : foreverSummary(context); } else { - mExitConditionText = mExitCondition.summary; + return exitCondition.summary; } } @@ -380,9 +389,16 @@ public class ZenModePanel extends LinearLayout { mIconPulser.start(noneButton); } + private void handleUpdateManualRule(ZenRule rule) { + final int zen = rule != null ? rule.zenMode : Global.ZEN_MODE_OFF; + handleUpdateZen(zen); + final Condition c = rule != null ? rule.condition : null; + handleExitConditionChanged(c); + } + private void handleUpdateZen(int zen) { if (mSessionZen != -1 && mSessionZen != zen) { - setExpanded(mEmbedded || zen != Global.ZEN_MODE_OFF); + setExpanded(mEmbedded && isShown() || !mEmbedded && zen != Global.ZEN_MODE_OFF); mSessionZen = zen; } mZenButtons.setSelectedValue(zen); @@ -396,6 +412,20 @@ public class ZenModePanel extends LinearLayout { } } + private void handleExitConditionChanged(Condition exitCondition) { + setExitCondition(exitCondition); + if (DEBUG) Log.d(mTag, "handleExitConditionChanged " + mExitCondition); + final int N = getVisibleConditions(); + for (int i = 0; i < N; i++) { + final ConditionTag tag = getConditionTagAt(i); + if (tag != null) { + if (sameConditionId(tag.condition, mExitCondition)) { + bind(exitCondition, mZenConditions.getChildAt(i)); + } + } + } + } + private Condition getSelectedCondition() { final int N = getVisibleConditions(); for (int i = 0; i < N; i++) { @@ -428,7 +458,7 @@ public class ZenModePanel extends LinearLayout { mZenSubheadExpanded.setVisibility(expanded ? VISIBLE : GONE); mZenSubheadCollapsed.setVisibility(!expanded ? VISIBLE : GONE); mMoreSettings.setVisibility(zenImportant && expanded ? VISIBLE : GONE); - mZenConditions.setVisibility(!zenOff && expanded ? VISIBLE : GONE); + mZenConditions.setVisibility(mEmbedded || !zenOff && expanded ? VISIBLE : GONE); if (zenNone) { mZenSubheadExpanded.setText(R.string.zen_no_interruptions_with_warning); @@ -441,14 +471,14 @@ public class ZenModePanel extends LinearLayout { ? mSubheadWarningColor : mSubheadColor); } - private Condition parseExistingTimeCondition(Condition condition) { + private static Condition parseExistingTimeCondition(Context context, Condition condition) { if (condition == null) return null; final long time = ZenModeConfig.tryParseCountdownConditionId(condition.id); if (time == 0) return null; final long now = System.currentTimeMillis(); final long span = time - now; if (span <= 0 || span > MAX_BUCKET_MINUTES * MINUTES_MS) return null; - return ZenModeConfig.toTimeCondition(mContext, + return ZenModeConfig.toTimeCondition(context, time, Math.round(span / (float) MINUTES_MS), now, ActivityManager.getCurrentUser()); } @@ -508,18 +538,18 @@ public class ZenModePanel extends LinearLayout { mZenConditions.getChildAt(i).setVisibility(GONE); } // ensure something is selected - if (mExpanded) { + if (mExpanded && isShown()) { ensureSelection(); } } private Condition forever() { - return new Condition(mForeverId, foreverSummary(), "", "", 0 /*icon*/, Condition.STATE_TRUE, - 0 /*flags*/); + return new Condition(mForeverId, foreverSummary(mContext), "", "", 0 /*icon*/, + Condition.STATE_TRUE, 0 /*flags*/); } - private String foreverSummary() { - return mContext.getString(com.android.internal.R.string.zen_mode_forever); + private static String foreverSummary(Context context) { + return context.getString(com.android.internal.R.string.zen_mode_forever); } private ConditionTag getConditionTagAt(int index) { @@ -568,21 +598,7 @@ public class ZenModePanel extends LinearLayout { } } - private void handleExitConditionChanged(Condition exitCondition) { - setExitCondition(exitCondition); - if (DEBUG) Log.d(mTag, "handleExitConditionChanged " + mExitCondition); - final int N = getVisibleConditions(); - for (int i = 0; i < N; i++) { - final ConditionTag tag = getConditionTagAt(i); - if (tag != null) { - if (sameConditionId(tag.condition, mExitCondition)) { - bind(exitCondition, mZenConditions.getChildAt(i)); - } - } - } - } - - private boolean isCountdown(Condition c) { + private static boolean isCountdown(Condition c) { return c != null && ZenModeConfig.isValidCountdownConditionId(c.id); } @@ -715,7 +731,10 @@ public class ZenModePanel extends LinearLayout { case Global.ZEN_MODE_NO_INTERRUPTIONS: modeText = mContext.getString(R.string.zen_no_interruptions); break; - default: + case Global.ZEN_MODE_ALARMS: + modeText = mContext.getString(R.string.zen_alarms); + break; + default: return; } announceForAccessibility(mContext.getString(R.string.zen_mode_and_condition, modeText, @@ -761,17 +780,21 @@ public class ZenModePanel extends LinearLayout { private void select(final Condition condition) { if (DEBUG) Log.d(mTag, "select " + condition); - final boolean isForever = isForever(condition); + if (mSessionZen == -1 || mSessionZen == Global.ZEN_MODE_OFF) { + if (DEBUG) Log.d(mTag, "Ignoring condition selection outside of manual zen"); + return; + } + final Uri realConditionId = getRealConditionId(condition); if (mController != null) { AsyncTask.execute(new Runnable() { @Override public void run() { - mController.setExitCondition(isForever ? null : condition); + mController.setZen(mSessionZen, realConditionId, TAG + ".selectCondition"); } }); } setExitCondition(condition); - if (isForever) { + if (realConditionId == null) { mPrefs.setMinuteIndex(-1); } else if (isCountdown(condition) && mBucketIndex != -1) { mPrefs.setMinuteIndex(mBucketIndex); @@ -799,24 +822,19 @@ public class ZenModePanel extends LinearLayout { private final ZenModeController.Callback mZenCallback = new ZenModeController.Callback() { @Override - public void onZenChanged(int zen) { - mHandler.obtainMessage(H.UPDATE_ZEN, zen, 0).sendToTarget(); - } - @Override public void onConditionsChanged(Condition[] conditions) { mHandler.obtainMessage(H.UPDATE_CONDITIONS, conditions).sendToTarget(); } @Override - public void onExitConditionChanged(Condition exitCondition) { - mHandler.obtainMessage(H.EXIT_CONDITION_CHANGED, exitCondition).sendToTarget(); + public void onManualRuleChanged(ZenRule rule) { + mHandler.obtainMessage(H.MANUAL_RULE_CHANGED, rule).sendToTarget(); } }; private final class H extends Handler { private static final int UPDATE_CONDITIONS = 1; - private static final int EXIT_CONDITION_CHANGED = 2; - private static final int UPDATE_ZEN = 3; + private static final int MANUAL_RULE_CHANGED = 2; private H() { super(Looper.getMainLooper()); @@ -826,10 +844,8 @@ public class ZenModePanel extends LinearLayout { public void handleMessage(Message msg) { if (msg.what == UPDATE_CONDITIONS) { handleUpdateConditions((Condition[]) msg.obj); - } else if (msg.what == EXIT_CONDITION_CHANGED) { - handleExitConditionChanged((Condition) msg.obj); - } else if (msg.what == UPDATE_ZEN) { - handleUpdateZen(msg.arg1); + } else if (msg.what == MANUAL_RULE_CHANGED) { + handleUpdateManualRule((ZenRule) msg.obj); } } } @@ -921,12 +937,13 @@ public class ZenModePanel extends LinearLayout { private final SegmentedButtons.Callback mZenButtonsCallback = new SegmentedButtons.Callback() { @Override public void onSelected(final Object value) { - if (value != null && mZenButtons.isShown()) { + if (value != null && mZenButtons.isShown() && isAttachedToWindow()) { if (DEBUG) Log.d(mTag, "mZenButtonsCallback selected=" + value); + final Uri realConditionId = getRealConditionId(mSessionExitCondition); AsyncTask.execute(new Runnable() { @Override public void run() { - mController.setZen((Integer) value); + mController.setZen((Integer) value, realConditionId, TAG + ".selectZen"); } }); } |
