diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2022-01-16 16:24:02 -0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2022-01-16 16:24:02 -0800 |
commit | b62212c4883a720aebe6e514100dac96e385ba82 (patch) | |
tree | 0564010bda8da0ae069dfe9012ccfae066e5a188 | |
parent | c772a77ab583661456156737b2eae8bff708fca2 (diff) | |
parent | 6a91dd93ed717a1dfa4fdbbd6636a9b66d134544 (diff) |
Merge 6a91dd93ed717a1dfa4fdbbd6636a9b66d134544 on remote branch
Change-Id: Ia768f21d6d778d95ce83e825b45612a0b110f78d
158 files changed, 1830 insertions, 916 deletions
diff --git a/Android.bp b/Android.bp index 1b6ffe42b7..45d022f4fd 100644 --- a/Android.bp +++ b/Android.bp @@ -112,6 +112,7 @@ android_library { "androidx.preference_preference", "androidx.slice_slice-view", "androidx.cardview_cardview", + "com.google.android.material_material", "iconloader_base", ], manifest: "AndroidManifest-common.xml", diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml index d725a16f80..4eecf29d67 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml @@ -144,7 +144,7 @@ <activity android:name="com.android.launcher3.settings.SettingsActivity" android:label="@string/settings_button_text" - android:theme="@style/HomeSettingsTheme" + android:theme="@style/HomeSettings.Theme" android:exported="true" android:autoRemoveFromRecents="true"> <intent-filter> diff --git a/go/quickstep/res/values-gu/strings.xml b/go/quickstep/res/values-gu/strings.xml index 28a2d3852d..7c627e18f8 100644 --- a/go/quickstep/res/values-gu/strings.xml +++ b/go/quickstep/res/values-gu/strings.xml @@ -4,12 +4,12 @@ <string name="app_share_drop_target_label" msgid="5804774105974539508">"ઍપ શેર કરો"</string> <string name="action_listen" msgid="2370304050784689486">"સાંભળો"</string> <string name="action_translate" msgid="8028378961867277746">"અનુવાદ કરો"</string> - <string name="action_search" msgid="6269564710943755464">"Lens"</string> + <string name="action_search" msgid="6269564710943755464">"લેન્સ"</string> <string name="dialog_acknowledge" msgid="2804025517675853172">"સમજાઈ ગયું"</string> <string name="dialog_cancel" msgid="6464336969134856366">"રદ કરો"</string> <string name="dialog_settings" msgid="6564397136021186148">"સેટિંગ"</string> <string name="niu_actions_confirmation_title" msgid="3863451714863526143">"સ્ક્રીન પરની ટેક્સ્ટનો અનુવાદ કરો અથવા સાંભળો"</string> - <string name="niu_actions_confirmation_text" msgid="2105271481950866089">"તમારી સ્ક્રીન પરની ટેક્સ્ટ, વેબ ઍડ્રેસ અને સ્ક્રીનશૉટ જેવી માહિતી Google સાથે શેર કરવામાં આવી શકે છે.\n\nતમે શેર કરતા હો તેવી માહિતીમાં ફેરફાર કરવા માટે, "<b>"સેટિંગ > ઍપ > ડિફૉલ્ટ ઍપ > ડિજિટલ Assistant ઍપ"</b>" પર જાઓ."</string> + <string name="niu_actions_confirmation_text" msgid="2105271481950866089">"તમારી સ્ક્રીન પરની ટેક્સ્ટ, વેબ ઍડ્રેસ અને સ્ક્રીનશૉટ જેવી માહિતી Google સાથે શેર કરવામાં આવી શકે છે.\n\nતમે શેર કરતા હો તેવી માહિતીમાં ફેરફાર કરવા માટે, "<b>"સેટિંગ > ઍપ > ડિફૉલ્ટ ઍપ > ડિજિટલ આસિસ્ટંટ ઍપ"</b>" પર જાઓ."</string> <string name="assistant_not_selected_title" msgid="5017072974603345228">"આ સુવિધાનો ઉપયોગ કરવા માટે આસિસ્ટંટ પસંદ કરો"</string> <string name="assistant_not_selected_text" msgid="3244613673884359276">"તમારી સ્ક્રીન પર ટેક્સ્ટ સાંભળવા માટે અથવા તેનો અનુવાદ કરવા માટે, સેટિંગમાં જઈને ડિજિટલ આસિસ્ટંટ ઍપ પસંદ કરો"</string> <string name="assistant_not_supported_title" msgid="1675788067597484142">"આ સુવિધાનો ઉપયોગ કરવા માટે તમારું આસિસ્ટંટ બદલો"</string> diff --git a/go/quickstep/res/values-kn/strings.xml b/go/quickstep/res/values-kn/strings.xml index 4621437d17..ef1954199b 100644 --- a/go/quickstep/res/values-kn/strings.xml +++ b/go/quickstep/res/values-kn/strings.xml @@ -10,9 +10,9 @@ <string name="dialog_settings" msgid="6564397136021186148">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="niu_actions_confirmation_title" msgid="3863451714863526143">"ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವ ಪಠ್ಯವನ್ನು ಅನುವಾದಿಸಿ ಅಥವಾ ಆಲಿಸಿ"</string> <string name="niu_actions_confirmation_text" msgid="2105271481950866089">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವ ಪಠ್ಯ, ವೆಬ್ ವಿಳಾಸಗಳು, ಮತ್ತು ಸ್ಕ್ರೀನ್ಶಾಟ್ಗಳಂತಹ ಮಾಹಿತಿಯನ್ನು Google ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಬಹುದು.\n\nನೀವು ಯಾವ ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತೀರಿ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಲು, "<b>"ಸೆಟ್ಟಿಂಗ್ಗಳು, ಆ್ಯಪ್ಗಳು ಮತ್ತು ಡೀಫಾಲ್ಟ್ ಆ್ಯಪ್ಗಳು, ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಎಂಬಲ್ಲಿ ಹೋಗಿ"</b>"."</string> - <string name="assistant_not_selected_title" msgid="5017072974603345228">"ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು Assistant ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string> + <string name="assistant_not_selected_title" msgid="5017072974603345228">"ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು ಅಸಿಸ್ಟಂಟ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string> <string name="assistant_not_selected_text" msgid="3244613673884359276">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನಲ್ಲಿರುವ ಪಠ್ಯವನ್ನು ಆಲಿಸಲು ಅಥವಾ ಅನುವಾದಿಸಲು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string> - <string name="assistant_not_supported_title" msgid="1675788067597484142">"ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು ನಿಮ್ಮ Assistant ಅನ್ನು ಬದಲಾಯಿಸಿ"</string> + <string name="assistant_not_supported_title" msgid="1675788067597484142">"ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು ನಿಮ್ಮ ಅಸಿಸ್ಟಂಟ್ ಅನ್ನು ಬದಲಾಯಿಸಿ"</string> <string name="assistant_not_supported_text" msgid="1708031078549268884">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನಲ್ಲಿರುವ ಪಠ್ಯವನ್ನು ಆಲಿಸಲು ಅಥವಾ ಅನುವಾದಿಸಲು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಅನ್ನು ಬದಲಾಯಿಸಿ"</string> <string name="tooltip_listen" msgid="7634466447860989102">"ಈ ಸ್ಕ್ರೀನ್ನಲ್ಲಿರುವ ಪಠ್ಯವನ್ನು ಆಲಿಸಲು ಇಲ್ಲಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string> <string name="tooltip_translate" msgid="4184845868901542567">"ಈ ಸ್ಕ್ರೀನ್ನಲ್ಲಿರುವ ಪಠ್ಯವನ್ನು ಅನುವಾದಿಸಲು ಇಲ್ಲಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string> diff --git a/quickstep/AndroidManifest.xml b/quickstep/AndroidManifest.xml index b43d8d1a4b..dc92731e16 100644 --- a/quickstep/AndroidManifest.xml +++ b/quickstep/AndroidManifest.xml @@ -22,11 +22,6 @@ xmlns:tools="http://schemas.android.com/tools" package="com.android.launcher3"> - <permission - android:name="${packageName}.permission.HOTSEAT_EDU" - android:permissionGroup="android.permission-group.SYSTEM_TOOLS" - android:protectionLevel="signatureOrSystem" /> - <uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" /> <uses-permission android:name="android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"/> <uses-permission android:name="android.permission.VIBRATE"/> @@ -41,7 +36,6 @@ <uses-permission android:name="android.permission.MANAGE_ACCESSIBILITY"/> <uses-permission android:name="android.permission.MONITOR_INPUT"/> - <uses-permission android:name="${packageName}.permission.HOTSEAT_EDU" /> <uses-permission android:name="android.permission.SYSTEM_APPLICATION_OVERLAY" /> <application android:backupAgent="com.android.launcher3.LauncherBackupAgent" @@ -133,20 +127,6 @@ </intent-filter> </activity> - <activity - android:name=".hybridhotseat.HotseatEduActivity" - android:theme="@android:style/Theme.NoDisplay" - android:noHistory="true" - android:launchMode="singleTask" - android:clearTaskOnLaunch="true" - android:permission="${packageName}.permission.HOTSEAT_EDU" - android:exported="true"> - <intent-filter> - <action android:name="com.android.launcher3.action.SHOW_HYBRID_HOTSEAT_EDU"/> - <category android:name="android.intent.category.DEFAULT" /> - </intent-filter> - </activity> - </application> </manifest> diff --git a/quickstep/res/interpolator/app_open_x.xml b/quickstep/res/interpolator/app_open_x.xml new file mode 100644 index 0000000000..5fa0bcb9ae --- /dev/null +++ b/quickstep/res/interpolator/app_open_x.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2021, 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 C 0.1217, 0.0462, 0.15, 0.4686, 0.1667, 0.66 C 0.1834, 0.8878, 0.1667, 1, 1, 1"/> diff --git a/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml b/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml new file mode 100644 index 0000000000..70c4231140 --- /dev/null +++ b/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2021, 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 C 0.05, 0, 0.133333, 0.06, 0.166666, 0.4 C 0.208333, 0.82, 0.25, 1, 1, 1"/> diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml index 2551fc41a3..aa114fac72 100644 --- a/quickstep/res/values-as/strings.xml +++ b/quickstep/res/values-as/strings.xml @@ -22,7 +22,7 @@ <string name="recent_task_option_pin" msgid="7929860679018978258">"পিন"</string> <string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string> <string name="recents_empty_message" msgid="7040467240571714191">"কোনো শেহতীয়া বস্তু নাই"</string> - <string name="accessibility_app_usage_settings" msgid="6312864233673544149">"এপে ব্যৱহাৰ কৰা ডেটাৰ ছেটিংসমূহ"</string> + <string name="accessibility_app_usage_settings" msgid="6312864233673544149">"এপে ব্যৱহাৰ কৰা ডেটাৰ ছেটিং"</string> <string name="recents_clear_all" msgid="5328176793634888831">"সকলো মচক"</string> <string name="accessibility_recent_apps" msgid="4058661986695117371">"শেহতীয়া এপসমূহ"</string> <string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string> @@ -38,7 +38,7 @@ <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"আপোনাৰ সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ গৃহ স্ক্ৰীনতে সহজে এক্সেছ কৰক। আপোনাৰ ৰুটিনসমূহৰ ভিত্তিত পৰামর্শসমূহ সলনি হ\'ব। একেবাৰে তলৰ শাৰীটোত থকা এপ্সমূহ এটা নতুন ফ\'ল্ডাৰলৈ যাব।"</string> <string name="hotseat_edu_accept" msgid="1611544083278999837">"এপৰ পৰামর্শসমূহ পাওক"</string> <string name="hotseat_edu_dismiss" msgid="2781161822780201689">"নালাগে, ধন্যবাদ"</string> - <string name="hotseat_prediction_settings" msgid="6246554993566070818">"ছেটিংসমূহ"</string> + <string name="hotseat_prediction_settings" msgid="6246554993566070818">"ছেটিং"</string> <string name="hotseat_auto_enrolled" msgid="522100018967146807">"সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ ইয়াত প্ৰদর্শিত হয় আৰু ৰুটিনসমূহ ওপৰত ভিত্তি কৰি সলনি হয়"</string> <string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"এপৰ পৰামর্শসমূহ পাবলৈ একেবাৰে তলৰ শাৰীত থকা এপ্সমূহ টানি আঁতৰাওক"</string> <string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"খালী ঠাইত এপৰ পৰামর্শসমূহ যোগ কৰা হ\'ল"</string> diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml index bd016e9384..12a0dbc740 100644 --- a/quickstep/res/values-eu/strings.xml +++ b/quickstep/res/values-eu/strings.xml @@ -37,7 +37,7 @@ <string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Atzitu erraz aplikazio erabilienak hasierako pantailatik bertatik. Ohituren arabera aldatuko dira iradokizunak. Gogokoen errenkadako aplikazioak hasierako pantailara eramango ditugu."</string> <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Atzitu erraz aplikazio erabilienak hasierako pantailatik bertatik. Ohituren arabera aldatuko dira iradokizunak. Karpeta berri batera eramango dira beheko errenkadan dauden aplikazioak."</string> <string name="hotseat_edu_accept" msgid="1611544083278999837">"Jaso aplikazioen iradokizunak"</string> - <string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ez"</string> + <string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ez, eskerrik asko"</string> <string name="hotseat_prediction_settings" msgid="6246554993566070818">"Ezarpenak"</string> <string name="hotseat_auto_enrolled" msgid="522100018967146807">"Hemen agertzen dira aplikazio erabilienak, eta ohituren arabera aldatzen dira"</string> <string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrastatu aplikazioak beheko errenkadatik aplikazioen iradokizunak jasotzeko"</string> diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml index ab3715aafb..d9420c826c 100644 --- a/quickstep/res/values-ka/strings.xml +++ b/quickstep/res/values-ka/strings.xml @@ -58,7 +58,7 @@ <string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"გადაფურცლეთ ზემოთ."</string> <string name="home_gesture_feedback_complete_with_follow_up" msgid="1427872029729605034">"თქვენ შეასრულეთ მთავარ ეკრანზე დაბრუნების ჟესტი. ახლა კი შევიტყოთ, თუ როგორ დავბრუნდეთ უკან."</string> <string name="home_gesture_feedback_complete_without_follow_up" msgid="8049099486868933882">"თქვენ შეასრულეთ მთავარ ეკრანზე დაბრუნების ჟესტი."</string> - <string name="home_gesture_intro_title" msgid="836590312858441830">"მთავარ გვერდზე გადასასვლელად გადაფურცლეთ"</string> + <string name="home_gesture_intro_title" msgid="836590312858441830">"მთავარი გვერდის სანახავად გადაფურცლეთ"</string> <string name="home_gesture_intro_subtitle" msgid="2632238748497975326">"გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ. ამ ჟესტს ყოველთვის მთავარი გვერდის ეკრანზე გადაყავხართ."</string> <string name="overview_gesture_feedback_swipe_too_far_from_edge" msgid="3032757898111577225">"გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ."</string> <string name="overview_gesture_feedback_home_detected" msgid="1411130969354020489">"უფრო ხანგრძლივად დააჭირეთ თითი ფანჯარას, რომ არ დაიხუროს."</string> diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml index 8618f85e70..176dc3a5a9 100644 --- a/quickstep/res/values-mr/strings.xml +++ b/quickstep/res/values-mr/strings.xml @@ -72,7 +72,7 @@ <string name="gesture_tutorial_action_button_label_settings" msgid="2923621047916486604">"सेटिंग्ज"</string> <string name="gesture_tutorial_try_again" msgid="65962545858556697">"पुन्हा प्रयत्न करा"</string> <string name="gesture_tutorial_nice" msgid="2936275692616928280">"छान!"</string> - <string name="gesture_tutorial_step" msgid="1279786122817620968">"ट्युटोरियल <xliff:g id="CURRENT">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>"</string> + <string name="gesture_tutorial_step" msgid="1279786122817620968">"ट्यूटोरियल <xliff:g id="CURRENT">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>"</string> <string name="allset_title" msgid="5021126669778966707">"सर्व तयार आहे!"</string> <string name="allset_hint" msgid="2384632994739392447">"होम वर जाण्यासाठी वरती स्वाइप करा"</string> <string name="allset_description" msgid="6350320429953234580">"तुम्ही तुमचा फोन वापरण्यास सुरुवात करू शकता"</string> @@ -80,7 +80,7 @@ <string name="action_share" msgid="2648470652637092375">"शेअर करा"</string> <string name="action_screenshot" msgid="8171125848358142917">"स्क्रीनशॉट"</string> <string name="blocked_by_policy" msgid="2071401072261365546">"अॅप किंवा तुमच्या संस्थेद्वारे ही क्रिया करण्याची अनुमती नाही"</string> - <string name="skip_tutorial_dialog_title" msgid="2725643161260038458">"नेव्हिगेशन ट्युटोरियल वगळायचे आहे का?"</string> + <string name="skip_tutorial_dialog_title" msgid="2725643161260038458">"नेव्हिगेशन ट्यूटोरियल वगळायचे आहे का?"</string> <string name="skip_tutorial_dialog_subtitle" msgid="544063326241955662">"तुम्हाला हे नंतर <xliff:g id="NAME">%1$s</xliff:g> ॲपमध्ये मिळेल"</string> <string name="gesture_tutorial_action_button_label_cancel" msgid="3809842569351264108">"रद्द करा"</string> <string name="gesture_tutorial_action_button_label_skip" msgid="394452764989751960">"वगळा"</string> diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml index de7c26d115..e7cc31d97f 100644 --- a/quickstep/res/values-ta/strings.xml +++ b/quickstep/res/values-ta/strings.xml @@ -35,7 +35,7 @@ <string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"உங்கள் முகப்புத் திரையின் \'பிடித்தவை\' வரிசையில் ஆப்ஸ் பரிந்துரைகளைப் பெறலாம்"</string> <string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"அதிகமாகப் பயன்படுத்திய ஆப்ஸை முகப்புத் திரையிலேயே அணுகலாம். உங்கள் வழக்கங்களின் அடிப்படையில் பரிந்துரைகள் மாறும். கடைசி வரிசையிலுள்ள ஆப்ஸ் உங்கள் முகப்புத் திரைக்கு நகர்த்தப்படும்."</string> <string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"அதிகமாகப் பயன்படுத்திய ஆப்ஸை முகப்புத் திரையிலேயே எளிதாக அணுகலாம். உங்கள் வழக்கங்களின் அடிப்படையில் பரிந்துரைகள் மாறும். பிடித்தவை வரிசையில் உள்ள ஆப்ஸ் உங்கள் முகப்புத் திரைக்கு நகர்த்தப்படும்."</string> - <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"அதிகமாகப் பயன்படுத்திய ஆப்ஸை முகப்புத் திரையிலேயே அணுகலாம். உங்கள் வழக்கங்களின் அடிப்படையில் பரிந்துரைகள் மாறும். கடைசி வரிசையிலுள்ள ஆப்ஸ் புதிய கோப்புறைக்கு நகர்த்தப்படும்."</string> + <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"அதிகமாகப் பயன்படுத்திய ஆப்ஸை முகப்புத் திரையிலேயே அணுகலாம். உங்கள் வழக்கங்களின் அடிப்படையில் பரிந்துரைகள் மாறும். கடைசி வரிசையிலுள்ள ஆப்ஸ் புதிய ஃபோல்டருக்கு நகர்த்தப்படும்."</string> <string name="hotseat_edu_accept" msgid="1611544083278999837">"ஆப்ஸ் பரிந்துரைகளைப் பெறுக"</string> <string name="hotseat_edu_dismiss" msgid="2781161822780201689">"வேண்டாம்"</string> <string name="hotseat_prediction_settings" msgid="6246554993566070818">"அமைப்புகள்"</string> diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml index 73e4e0c687..ef8f3bad48 100644 --- a/quickstep/res/values-te/strings.xml +++ b/quickstep/res/values-te/strings.xml @@ -33,13 +33,13 @@ <string name="all_apps_prediction_tip" msgid="2672336544844936186">"మీ సూచించబడిన యాప్లు"</string> <string name="hotseat_edu_title_migrate" msgid="306578144424489980">"మీ మొదటి స్క్రీన్ దిగువ వరుసలో యాప్ సలహాలను పొందండి"</string> <string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"మీ హోమ్ స్క్రీన్లోని ఇష్టమైన వాటి వరుసలో యాప్ సూచనలు పొందండి"</string> - <string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్లు మీ మొదటి స్క్రీన్ పైకి చేరుకుంటాయి."</string> - <string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. ఇష్టమైన వాటి వరుసలోని యాప్లు మీ మొదటి స్క్రీన్కు చేరుకుంటాయి."</string> - <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్లు కొత్త ఫోల్డర్కు తరలించబడతాయి."</string> + <string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ యాక్టివిటీలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్లు మీ మొదటి స్క్రీన్ పైకి చేరుకుంటాయి."</string> + <string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ యాక్టివిటీలను బట్టి సూచనలు మారతాయి. ఇష్టమైన వాటి వరుసలోని యాప్లు మీ మొదటి స్క్రీన్కు చేరుకుంటాయి."</string> + <string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"మీరు ఎక్కువగా ఉపయోగించే యాప్లను నేరుగా మొదటి స్క్రీన్లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ యాక్టివిటీలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్లు కొత్త ఫోల్డర్కు తరలించబడతాయి."</string> <string name="hotseat_edu_accept" msgid="1611544083278999837">"యాప్ సూచనలను పొందండి"</string> <string name="hotseat_edu_dismiss" msgid="2781161822780201689">"వద్దు"</string> <string name="hotseat_prediction_settings" msgid="6246554993566070818">"సెట్టింగ్లు"</string> - <string name="hotseat_auto_enrolled" msgid="522100018967146807">"ఎక్కువగా ఉపయోగించిన యాప్లు ఇక్కడ కనిపిస్తాయి, అవి రోజువారీ కార్యకలాపాలను బట్టి మారుతూ ఉంటాయి"</string> + <string name="hotseat_auto_enrolled" msgid="522100018967146807">"ఎక్కువగా ఉపయోగించిన యాప్లు ఇక్కడ కనిపిస్తాయి, అవి రోజువారీ యాక్టివిటీలను బట్టి మారుతూ ఉంటాయి"</string> <string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"యాప్ సలహాలను పొందడానికి దిగువ వరుస నుండి యాప్లను లాగండి"</string> <string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"యాప్ సూచనలు ఖాళీ స్పేస్కు జోడించబడ్డాయి"</string> <string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"యాప్ సలహాలు ఎనేబుల్ చేయబడ్డాయి"</string> diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index a44de793a3..de0416b693 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -200,6 +200,17 @@ public abstract class BaseQuickstepLauncher extends Launcher } } + /** + * {@code LauncherOverlayCallbacks} scroll amount. + * Indicates transition progress to -1 screen. + * @param progress From 0 to 1. + */ + @Override + public void onScrollChanged(float progress) { + super.onScrollChanged(progress); + mDepthController.onOverlayScrollChanged(progress); + } + @Override public void startIntentSenderForResult(IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options) { diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 5bb76d6a67..b557779a26 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -32,7 +32,6 @@ import static com.android.launcher3.Utilities.postAsyncCallback; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE; import static com.android.launcher3.anim.Interpolators.DEACCEL_1_5; import static com.android.launcher3.anim.Interpolators.DEACCEL_1_7; -import static com.android.launcher3.anim.Interpolators.EXAGGERATED_EASE; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.config.FeatureFlags.ENABLE_SCRIM_FOR_APP_LAUNCH; import static com.android.launcher3.config.FeatureFlags.KEYGUARD_ANIMATION; @@ -72,6 +71,7 @@ import android.view.SurfaceControl; import android.view.View; import android.view.ViewRootImpl; import android.view.ViewTreeObserver; +import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; @@ -142,21 +142,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private static final String CONTROL_REMOTE_APP_TRANSITION_PERMISSION = "android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"; - private static final long APP_LAUNCH_DURATION = 450; - // Use a shorter duration for x or y translation to create a curve effect - private static final long APP_LAUNCH_CURVED_DURATION = 250; + private static final long APP_LAUNCH_DURATION = 500; + private static final long APP_LAUNCH_ALPHA_DURATION = 50; private static final long APP_LAUNCH_ALPHA_START_DELAY = 25; - // We scale the durations for the downward app launch animations (minus the scale animation). - private static final float APP_LAUNCH_DOWN_DUR_SCALE_FACTOR = 0.8f; - private static final long APP_LAUNCH_DOWN_DURATION = - (long) (APP_LAUNCH_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - private static final long APP_LAUNCH_DOWN_CURVED_DURATION = - (long) (APP_LAUNCH_CURVED_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - private static final long APP_LAUNCH_ALPHA_DOWN_DURATION = - (long) (APP_LAUNCH_ALPHA_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - public static final int ANIMATION_NAV_FADE_IN_DURATION = 266; public static final int ANIMATION_NAV_FADE_OUT_DURATION = 133; public static final long ANIMATION_DELAY_NAV_FADE_IN = @@ -166,9 +156,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener public static final Interpolator NAV_FADE_OUT_INTERPOLATOR = new PathInterpolator(0.2f, 0f, 1f, 1f); - private static final long CROP_DURATION = 375; - private static final long RADIUS_DURATION = 375; - public static final int RECENTS_LAUNCH_DURATION = 336; private static final int LAUNCHER_RESUME_START_DELAY = 100; private static final int CLOSING_TRANSITION_DURATION_MS = 250; @@ -222,6 +209,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener // Will never be larger than MAX_NUM_TASKS private LinkedHashMap<Integer, Pair<Integer, Integer>> mTaskStartParams; + private final Interpolator mOpeningXInterpolator; + private final Interpolator mOpeningInterpolator; + public QuickstepTransitionManager(Context context) { mLauncher = Launcher.cast(Launcher.getLauncher(context)); mDragLayer = mLauncher.getDragLayer(); @@ -248,6 +238,10 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener SystemUiProxy.INSTANCE.get(mLauncher).setStartingWindowListener( mStartingWindowListener); } + + mOpeningXInterpolator = AnimationUtils.loadInterpolator(context, R.interpolator.app_open_x); + mOpeningInterpolator = AnimationUtils.loadInterpolator(context, + R.interpolator.three_point_fast_out_extra_slow_in); } @Override @@ -651,27 +645,29 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float finalShadowRadius = appTargetsAreTranslucent ? 0 : mMaxShadowRadius; MultiValueUpdateListener listener = new MultiValueUpdateListener() { - FloatProp mDx = new FloatProp(0, prop.dX, 0, prop.xDuration, AGGRESSIVE_EASE); - FloatProp mDy = new FloatProp(0, prop.dY, 0, prop.yDuration, AGGRESSIVE_EASE); + FloatProp mDx = new FloatProp(0, prop.dX, 0, APP_LAUNCH_DURATION, + mOpeningXInterpolator); + FloatProp mDy = new FloatProp(0, prop.dY, 0, APP_LAUNCH_DURATION, + mOpeningInterpolator); FloatProp mIconScaleToFitScreen = new FloatProp(prop.initialAppIconScale, - prop.finalAppIconScale, 0, APP_LAUNCH_DURATION, EXAGGERATED_EASE); + prop.finalAppIconScale, 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mIconAlpha = new FloatProp(prop.iconAlphaStart, 0f, - APP_LAUNCH_ALPHA_START_DELAY, prop.alphaDuration, LINEAR); + APP_LAUNCH_ALPHA_START_DELAY, APP_LAUNCH_ALPHA_DURATION, LINEAR); FloatProp mWindowRadius = new FloatProp(initialWindowRadius, finalWindowRadius, 0, - RADIUS_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mShadowRadius = new FloatProp(0, finalShadowRadius, 0, - APP_LAUNCH_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectCenterX = new FloatProp(prop.cropCenterXStart, prop.cropCenterXEnd, - 0, CROP_DURATION, EXAGGERATED_EASE); + 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectCenterY = new FloatProp(prop.cropCenterYStart, prop.cropCenterYEnd, - 0, CROP_DURATION, EXAGGERATED_EASE); + 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectWidth = new FloatProp(prop.cropWidthStart, prop.cropWidthEnd, 0, - CROP_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectHeight = new FloatProp(prop.cropHeightStart, prop.cropHeightEnd, 0, - CROP_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mNavFadeOut = new FloatProp(1f, 0f, 0, ANIMATION_NAV_FADE_OUT_DURATION, NAV_FADE_OUT_INTERPOLATOR); @@ -873,22 +869,23 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener WIDGET_CROSSFADE_DURATION_MILLIS / 2 /* delay */, WIDGET_CROSSFADE_DURATION_MILLIS / 2 /* duration */, LINEAR); final FloatProp mWindowRadius = new FloatProp(initialWindowRadius, finalWindowRadius, - 0 /* start */, RADIUS_DURATION, LINEAR); - final FloatProp mCornerRadiusProgress = new FloatProp(0, 1, 0, RADIUS_DURATION, LINEAR); + 0 /* start */, APP_LAUNCH_DURATION, mOpeningInterpolator); + final FloatProp mCornerRadiusProgress = new FloatProp(0, 1, 0, APP_LAUNCH_DURATION, + mOpeningInterpolator); // Window & widget background positioning bounds final FloatProp mDx = new FloatProp(widgetBackgroundBounds.centerX(), - windowTargetBounds.centerX(), 0 /* delay */, APP_LAUNCH_CURVED_DURATION, - EXAGGERATED_EASE); + windowTargetBounds.centerX(), 0 /* delay */, APP_LAUNCH_DURATION, + mOpeningXInterpolator); final FloatProp mDy = new FloatProp(widgetBackgroundBounds.centerY(), windowTargetBounds.centerY(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mWidth = new FloatProp(widgetBackgroundBounds.width(), windowTargetBounds.width(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mHeight = new FloatProp(widgetBackgroundBounds.height(), windowTargetBounds.height(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mNavFadeOut = new FloatProp(1f, 0f, 0, ANIMATION_NAV_FADE_OUT_DURATION, NAV_FADE_OUT_INTERPOLATOR); @@ -1424,10 +1421,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener public final float dX; public final float dY; - public final long xDuration; - public final long yDuration; - public final long alphaDuration; - public final float initialAppIconScale; public final float finalAppIconScale; @@ -1459,14 +1452,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener dX = centerX - launcherIconBounds.centerX(); dY = centerY - launcherIconBounds.centerY(); - boolean useUpwardAnimation = launcherIconBounds.top > centerY - || Math.abs(dY) < dp.cellHeightPx; - xDuration = useUpwardAnimation ? APP_LAUNCH_CURVED_DURATION - : APP_LAUNCH_DOWN_DURATION; - yDuration = useUpwardAnimation ? APP_LAUNCH_DURATION - : APP_LAUNCH_DOWN_CURVED_DURATION; - alphaDuration = useUpwardAnimation ? APP_LAUNCH_ALPHA_DURATION - : APP_LAUNCH_ALPHA_DOWN_DURATION; iconAlphaStart = hasSplashScreen && !hasDifferentAppIcon ? 0 : 1f; final int windowIconSize = ResourceUtils.getDimenByName("starting_surface_icon_size", diff --git a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java deleted file mode 100644 index 3a7d821ed6..0000000000 --- a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2020 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.launcher3.hybridhotseat; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; - -import com.android.launcher3.BaseActivity; -import com.android.launcher3.Launcher; -import com.android.launcher3.uioverrides.QuickstepLauncher; -import com.android.launcher3.util.ActivityTracker; - -/** - * Proxy activity to return user to home screen and show halfsheet education - */ -public class HotseatEduActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Intent homeIntent = new Intent(Intent.ACTION_MAIN) - .addCategory(Intent.CATEGORY_HOME) - .setPackage(getPackageName()) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - - Launcher.ACTIVITY_TRACKER.registerCallback(new HotseatActivityTracker()); - startActivity(homeIntent); - finish(); - } - - static class HotseatActivityTracker<T extends QuickstepLauncher> implements - ActivityTracker.SchedulerCallback { - - @Override - public boolean init(BaseActivity activity, boolean alreadyOnHome) { - QuickstepLauncher launcher = (QuickstepLauncher) activity; - if (launcher != null) { - launcher.getHotseatPredictionController().showEdu(); - } - return false; - } - - } -} diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index 370fb8ef7c..bb58f451ce 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -26,6 +26,7 @@ import android.animation.ObjectAnimator; import android.os.IBinder; import android.os.SystemProperties; import android.util.FloatProperty; +import android.view.AttachedSurfaceControl; import android.view.CrossWindowBlurListeners; import android.view.SurfaceControl; import android.view.View; @@ -108,6 +109,13 @@ public class DepthController implements StateHandler<LauncherState>, } }; + private final Runnable mOpaquenessListener = new Runnable() { + @Override + public void run() { + dispatchTransactionSurface(mDepth); + } + }; + private final Launcher mLauncher; /** * Blur radius when completely zoomed out, in pixels. @@ -117,6 +125,10 @@ public class DepthController implements StateHandler<LauncherState>, private WallpaperManagerCompat mWallpaperManager; private SurfaceControl mSurface; /** + * How visible the -1 overlay is, from 0 to 1. + */ + private float mOverlayScrollProgress; + /** * Ratio from 0 to 1, where 0 is fully zoomed out, and 1 is zoomed in. * @see android.service.wallpaper.WallpaperService.Engine#onZoomChanged(float) */ @@ -150,23 +162,28 @@ public class DepthController implements StateHandler<LauncherState>, if (windowToken != null) { mWallpaperManager.setWallpaperZoomOut(windowToken, mDepth); } - CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), - mCrossWindowBlurListener); + onAttached(); } @Override public void onViewDetachedFromWindow(View view) { CrossWindowBlurListeners.getInstance().removeListener(mCrossWindowBlurListener); + mLauncher.getScrimView().removeOpaquenessListener(mOpaquenessListener); } }; mLauncher.getRootView().addOnAttachStateChangeListener(mOnAttachListener); if (mLauncher.getRootView().isAttachedToWindow()) { - CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), - mCrossWindowBlurListener); + onAttached(); } } } + private void onAttached() { + CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), + mCrossWindowBlurListener); + mLauncher.getScrimView().addOpaquenessListener(mOpaquenessListener); + } + /** * Sets if the underlying activity is started or not */ @@ -251,12 +268,24 @@ public class DepthController implements StateHandler<LauncherState>, } } + public void onOverlayScrollChanged(float progress) { + // Round out the progress to dedupe frequent, non-perceptable updates + int progressI = (int) (progress * 256); + float progressF = Utilities.boundToRange(progressI / 256f, 0f, 1f); + if (Float.compare(mOverlayScrollProgress, progressF) == 0) { + return; + } + mOverlayScrollProgress = progressF; + dispatchTransactionSurface(mDepth); + } + private boolean dispatchTransactionSurface(float depth) { boolean supportsBlur = BlurUtils.supportsBlursOnWindows(); if (supportsBlur && (mSurface == null || !mSurface.isValid())) { return false; } ensureDependencies(); + depth = Math.max(depth, mOverlayScrollProgress); IBinder windowToken = mLauncher.getRootView().getWindowToken(); if (windowToken != null) { mWallpaperManager.setWallpaperZoomOut(windowToken, depth); @@ -270,10 +299,15 @@ public class DepthController implements StateHandler<LauncherState>, int blur = opaque || isOverview || !mCrossWindowBlursEnabled || mBlurDisabledForAppLaunch ? 0 : (int) (depth * mMaxBlurRadius); - new SurfaceControl.Transaction() + SurfaceControl.Transaction transaction = new SurfaceControl.Transaction() .setBackgroundBlurRadius(mSurface, blur) - .setOpaque(mSurface, opaque) - .apply(); + .setOpaque(mSurface, opaque); + + AttachedSurfaceControl rootSurfaceControl = + mLauncher.getRootView().getRootSurfaceControl(); + if (rootSurfaceControl != null) { + rootSurfaceControl.applyTransactionOnDraw(transaction); + } } return true; } diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java index c2c721adf8..1cf50f7f64 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java @@ -71,7 +71,7 @@ class QuickstepInteractionHandler implements RemoteViews.InteractionHandler { } } activityOptions.options.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON); + activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_EMPTY); Object itemInfo = hostView.getTag(); if (itemInfo instanceof ItemInfo) { mLauncher.addLaunchCookie((ItemInfo) itemInfo, activityOptions.options); diff --git a/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java b/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java index fd44e023a7..e2f198c05d 100644 --- a/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java @@ -173,7 +173,9 @@ public class FallbackSwipeHandler extends @Override protected void notifyGestureAnimationStartToRecents() { if (mRunningOverHome) { - mRecentsView.onGestureAnimationStartOnHome(mGestureState.getRunningTask()); + if (SysUINavigationMode.getMode(mContext).hasGestures) { + mRecentsView.onGestureAnimationStartOnHome(mGestureState.getRunningTask()); + } } else { super.notifyGestureAnimationStartToRecents(); } diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index 444d77a612..fde6902381 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -58,8 +58,6 @@ import android.os.SystemProperties; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.util.Log; import android.view.MotionEvent; import android.view.Surface; @@ -67,7 +65,6 @@ import androidx.annotation.BinderThread; import com.android.launcher3.R; import com.android.launcher3.Utilities; -import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.DisplayInfoChangeListener; import com.android.launcher3.util.DisplayController.Info; @@ -591,8 +588,7 @@ public class RecentsAnimationDeviceState implements final Info displayInfo = mDisplayController.getInfo(); return (mRotationTouchHelper.touchInOneHandedModeRegion(ev) && displayInfo.rotation != Surface.ROTATION_90 - && displayInfo.rotation != Surface.ROTATION_270 - && displayInfo.densityDpi < DisplayMetrics.DENSITY_600); + && displayInfo.rotation != Surface.ROTATION_270); } return false; } diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index db5c93c503..0f5671c543 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -331,12 +331,14 @@ public class TouchInteractionService extends Service implements PluginListener<O mDeviceState = new RecentsAnimationDeviceState(this, true); mDisplayManager = getSystemService(DisplayManager.class); mTaskbarManager = new TaskbarManager(this); - mRotationTouchHelper = mDeviceState.getRotationTouchHelper(); - mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged); - mDeviceState.addOneHandedModeChangedCallback(this::onOneHandedModeOverlayChanged); + + // Call runOnUserUnlocked() before any other callbacks to ensure everything is initialized. mDeviceState.runOnUserUnlocked(this::onUserUnlocked); mDeviceState.runOnUserUnlocked(mTaskbarManager::onUserUnlocked); + mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged); + mDeviceState.addOneHandedModeChangedCallback(this::onOneHandedModeOverlayChanged); + ProtoTracer.INSTANCE.get(this).add(this); sConnected = true; } diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index ce79125be1..070714ac25 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -1146,20 +1146,24 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T } updateTaskSize(); + int targetPage = -1; if (mNextPage == INVALID_PAGE) { // Set the current page to the running task, but not if settling on new task. TaskView runningTaskView = getRunningTaskView(); if (runningTaskView != null) { - setCurrentPage(indexOfChild(runningTaskView)); + targetPage = indexOfChild(runningTaskView); } else if (getTaskViewCount() > 0) { - setCurrentPage(indexOfChild(getTaskViewAt(0))); + targetPage = indexOfChild(getTaskViewAt(0)); } } else if (currentTaskId != -1) { currentTaskView = getTaskView(currentTaskId); if (currentTaskView != null) { - setCurrentPage(indexOfChild(currentTaskView)); + targetPage = indexOfChild(currentTaskView); } } + if (targetPage != -1 && mCurrentPage != targetPage) { + setCurrentPage(targetPage); + } if (mIgnoreResetTaskId != -1 && getTaskView(mIgnoreResetTaskId) != ignoreResetTaskView) { // If the taskView mapping is changing, do not preserve the visuals. Since we are @@ -1725,10 +1729,10 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T int runningIndex = getCurrentPage(); AnimatorSet as = new AnimatorSet(); for (int i = 0; i < getTaskViewCount(); i++) { - if (runningIndex == i) { + View taskView = getTaskViewAt(i); + if (runningIndex == i && taskView.getAlpha() != 0) { continue; } - View taskView = getTaskViewAt(i); as.play(ObjectAnimator.ofFloat(taskView, View.ALPHA, fadeInChildren ? 0 : 1)); } return as; @@ -1764,8 +1768,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T // When switching to tasks in quick switch, ensures the snapped page's scroll maintain // invariant between quick switch and overview, to ensure a smooth animation transition. updateGridProperties(); - } else if (endTarget == GestureState.GestureEndTarget.RECENTS) { - setEnableFreeScroll(true); } } @@ -1775,7 +1777,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T public void onGestureAnimationEnd() { mGestureActive = false; if (mOrientationState.setGestureActive(false)) { - updateOrientationHandler(); + updateOrientationHandler(/* forceRecreateDragLayerControllers = */ false); } setEnableFreeScroll(true); @@ -2906,8 +2908,11 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T boolean isStartShift; if (midpointIndex > -1) { // When there is a midpoint reference task, adjacent tasks have less distance to travel - // to reach offscreen. Offset the task position to the task's starting point. - int midpointScroll = getScrollForPage(midpointIndex); + // to reach offscreen. Offset the task position to the task's starting point, and offset + // by current page's scroll diff. + int midpointScroll = getScrollForPage(midpointIndex) + + mOrientationHandler.getPrimaryScroll(this) - getScrollForPage(mCurrentPage); + getPersistentChildPosition(midpointIndex, midpointScroll, taskPosition); float midpointStart = mOrientationHandler.getStart(taskPosition); diff --git a/res/color-v31/home_settings_switch_thumb_color.xml b/res/color-v31/home_settings_switch_thumb_color.xml new file mode 100644 index 0000000000..91d3d9b5e4 --- /dev/null +++ b/res/color-v31/home_settings_switch_thumb_color.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Disabled status of thumb --> + <item android:state_enabled="false" + android:color="@color/home_settings_thumb_off_color" /> + <!-- Toggle off status of thumb --> + <item android:state_checked="false" + android:color="@color/home_settings_thumb_off_color" /> + <!-- Enabled or toggle on status of thumb --> + <item android:color="@color/home_settings_state_on_color" /> +</selector> diff --git a/res/color-v31/home_settings_switch_track_color.xml b/res/color-v31/home_settings_switch_track_color.xml new file mode 100644 index 0000000000..50784f527d --- /dev/null +++ b/res/color-v31/home_settings_switch_track_color.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Disabled status of thumb --> + <item android:state_enabled="false" + android:color="@color/home_settings_track_off_color" + android:alpha="?android:attr/disabledAlpha" /> + <!-- Toggle off status of thumb --> + <item android:state_checked="false" + android:color="@color/home_settings_track_off_color" /> + <!-- Enabled or toggle on status of thumb --> + <item android:color="@color/home_settings_track_on_color" /> +</selector> diff --git a/res/drawable-v31/home_settings_switch_thumb.xml b/res/drawable-v31/home_settings_switch_thumb.xml new file mode 100644 index 0000000000..260d5ea35f --- /dev/null +++ b/res/drawable-v31/home_settings_switch_thumb.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 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. +--> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:top="4dp" + android:left="4dp" + android:right="4dp" + android:bottom="4dp"> + <shape android:shape="oval" > + <size android:height="20dp" android:width="20dp" /> + <solid android:color="@color/home_settings_switch_thumb_color" /> + </shape> + </item> +</layer-list>
\ No newline at end of file diff --git a/res/drawable-v31/home_settings_switch_track.xml b/res/drawable-v31/home_settings_switch_track.xml new file mode 100644 index 0000000000..502a3007a9 --- /dev/null +++ b/res/drawable-v31/home_settings_switch_track.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle" + android:width="52dp" + android:height="28dp"> + + <solid android:color="@color/home_settings_switch_track_color" /> + <corners android:radius="35dp" /> +</shape>
\ No newline at end of file diff --git a/res/drawable/padded_rounded_action_button.xml b/res/drawable/padded_rounded_action_button.xml index 6432efd539..6863f92f0c 100644 --- a/res/drawable/padded_rounded_action_button.xml +++ b/res/drawable/padded_rounded_action_button.xml @@ -14,18 +14,11 @@ ~ limitations under the License. --> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item + android:drawable="@drawable/rounded_action_button" android:left="@dimen/padded_rounded_button_padding" android:top="@dimen/padded_rounded_button_padding" android:right="@dimen/padded_rounded_button_padding" - android:bottom="@dimen/padded_rounded_button_padding"> - <shape android:shape="rectangle"> - <corners android:radius="@dimen/rounded_button_radius" /> - <stroke android:width="1dp" - android:color="?androidprv:attr/colorAccentPrimaryVariant" /> - </shape> - </item> + android:bottom="@dimen/padded_rounded_button_padding" /> </layer-list> - diff --git a/res/drawable/rounded_action_button.xml b/res/drawable/rounded_action_button.xml index f04389399f..b9942c0c92 100644 --- a/res/drawable/rounded_action_button.xml +++ b/res/drawable/rounded_action_button.xml @@ -19,7 +19,9 @@ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:shape="rectangle"> <corners android:radius="@dimen/rounded_button_radius" /> - <stroke android:width="1dp" android:color="@color/all_apps_tab_background_selected" /> + <stroke + android:width="1dp" + android:color="?androidprv:attr/colorAccentPrimaryVariant" /> <padding android:left="@dimen/rounded_button_padding" android:right="@dimen/rounded_button_padding" /> diff --git a/res/layout-v31/settings_activity.xml b/res/layout-v31/settings_activity.xml new file mode 100644 index 0000000000..59e14f22dd --- /dev/null +++ b/res/layout-v31/settings_activity.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 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. +--> +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/content_parent" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true"> + + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/app_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/colorPrimary" + android:fitsSystemWindows="true" + android:outlineAmbientShadowColor="@android:color/transparent" + android:outlineSpotShadowColor="@android:color/transparent" + android:theme="@style/HomeSettings.CollapsingToolbar"> + + <com.google.android.material.appbar.CollapsingToolbarLayout + android:id="@+id/collapsing_toolbar" + android:layout_width="match_parent" + android:layout_height="226dp" + android:clipToPadding="false" + app:collapsedTitleTextAppearance="@style/HomeSettings.CollapsedToolbarTitle" + app:contentScrim="@color/home_settings_header_collapsed" + app:expandedTitleMarginEnd="24dp" + app:expandedTitleMarginStart="24dp" + app:expandedTitleTextAppearance="@style/HomeSettings.ExpandedToolbarTitle" + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" + app:maxLines="3" + app:scrimAnimationDuration="50" + app:scrimVisibleHeightTrigger="174dp" + app:statusBarScrim="@null" + app:titleCollapseMode="fade" + app:toolbarId="@id/action_bar"> + + <Toolbar + android:id="@+id/action_bar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:theme="?android:attr/actionBarTheme" + android:transitionName="shared_element_view" + app:layout_collapseMode="pin" /> + + </com.google.android.material.appbar.CollapsingToolbarLayout> + </com.google.android.material.appbar.AppBarLayout> + + <FrameLayout + android:id="@+id/content_frame" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> +</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/res/layout/arrow_toast.xml b/res/layout/arrow_toast.xml index 9a6f8c35bd..88a92eb565 100644 --- a/res/layout/arrow_toast.xml +++ b/res/layout/arrow_toast.xml @@ -27,15 +27,13 @@ android:gravity="center" android:padding="16dp" android:background="@drawable/arrow_toast_rounded_background" - android:elevation="2dp" - android:outlineProvider="none" + android:elevation="@dimen/arrow_toast_elevation" android:textColor="@color/arrow_tip_view_content" android:textSize="14sp"/> <View android:id="@+id/arrow" - android:elevation="2dp" - android:outlineProvider="none" + android:elevation="@dimen/arrow_toast_elevation" android:layout_width="@dimen/arrow_toast_arrow_width" android:layout_height="10dp"/> </merge> diff --git a/res/layout/notification_content.xml b/res/layout/notification_content.xml index 84822a671b..91897e9e75 100644 --- a/res/layout/notification_content.xml +++ b/res/layout/notification_content.xml @@ -14,10 +14,11 @@ limitations under the License. --> -<merge +<com.android.launcher3.notification.NotificationMainView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:orientation="vertical"> <!-- header --> <FrameLayout @@ -49,7 +50,7 @@ </FrameLayout> <!-- Main view --> - <com.android.launcher3.notification.NotificationMainView + <FrameLayout android:id="@+id/main_view" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -59,7 +60,6 @@ android:id="@+id/text_and_background" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?attr/popupColorPrimary" android:gravity="center_vertical" android:orientation="vertical" android:paddingTop="@dimen/notification_padding" @@ -95,5 +95,5 @@ android:layout_marginTop="@dimen/notification_padding" android:layout_marginStart="@dimen/notification_icon_padding" /> - </com.android.launcher3.notification.NotificationMainView> -</merge>
\ No newline at end of file + </FrameLayout> +</com.android.launcher3.notification.NotificationMainView>
\ No newline at end of file diff --git a/res/layout/popup_container.xml b/res/layout/popup_container.xml index 18014bb1d0..9327287018 100644 --- a/res/layout/popup_container.xml +++ b/res/layout/popup_container.xml @@ -31,12 +31,9 @@ android:elevation="@dimen/deep_shortcuts_elevation" android:orientation="vertical"/> - <LinearLayout + <com.android.launcher3.notification.NotificationContainer android:id="@+id/notification_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" - android:background="?attr/popupColorPrimary" - android:elevation="@dimen/deep_shortcuts_elevation" - android:orientation="vertical"/> + android:visibility="gone"/> </com.android.launcher3.popup.PopupContainerWithArrow>
\ No newline at end of file diff --git a/res/layout/system_shortcut.xml b/res/layout/system_shortcut.xml index de091c51c7..331d2be3aa 100644 --- a/res/layout/system_shortcut.xml +++ b/res/layout/system_shortcut.xml @@ -18,7 +18,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res-auto" android:layout_width="@dimen/bg_popup_item_width" - android:layout_height="@dimen/bg_popup_item_height" + android:layout_height="wrap_content" + android:minHeight="@dimen/bg_popup_item_height" android:elevation="@dimen/deep_shortcuts_elevation" android:background="@drawable/middle_item_primary" android:theme="@style/PopupItem" > diff --git a/res/layout/system_shortcut_content.xml b/res/layout/system_shortcut_content.xml new file mode 100644 index 0000000000..feab13d318 --- /dev/null +++ b/res/layout/system_shortcut_content.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2021 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. +--> +<merge + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto" > + + <com.android.launcher3.BubbleTextView + style="@style/BaseIconUnBounded" + android:id="@+id/bubble_text" + android:background="?android:attr/selectableItemBackground" + android:gravity="start|center_vertical" + android:paddingTop="@dimen/bg_popup_item_vertical_padding" + android:paddingBottom="@dimen/bg_popup_item_vertical_padding" + android:minHeight="@dimen/bg_popup_item_height" + android:textAlignment="viewStart" + android:paddingStart="@dimen/deep_shortcuts_text_padding_start" + android:paddingEnd="@dimen/popup_padding_end" + android:textSize="14sp" + android:minLines="1" + android:maxLines="2" + android:ellipsize="end" + android:textColor="?android:attr/textColorPrimary" + launcher:iconDisplay="shortcut_popup" + launcher:layoutHorizontal="true" + android:focusable="false" /> + + <View + android:id="@+id/icon" + android:layout_width="@dimen/system_shortcut_icon_size" + android:layout_height="@dimen/system_shortcut_icon_size" + android:layout_marginStart="@dimen/system_shortcut_margin_start" + android:layout_gravity="start|center_vertical" + android:backgroundTint="?android:attr/textColorPrimary"/> +</merge> diff --git a/res/layout/work_apps_paused.xml b/res/layout/work_apps_paused.xml index ec34b47364..79bce70287 100644 --- a/res/layout/work_apps_paused.xml +++ b/res/layout/work_apps_paused.xml @@ -28,7 +28,7 @@ android:layout_marginTop="40dp" android:text="@string/work_apps_paused_title" android:textAlignment="center" - android:textSize="22sp" /> + android:textSize="18sp" /> <TextView android:layout_width="wrap_content" diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index bce71b70fc..cdf8322700 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Geen plek op hierdie tuisskerm nie"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Geen plek meer in die Gunstelinge-laai nie"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Programmelys"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Soekresultate"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lys persoonlike programme"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lys werkprogramme"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Verwyder"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Laat die program toe om die instellings en kortpaaie in Tuis te verander."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> word nie toegelaat om foonoproepe te maak nie"</string> <string name="gadget_error_text" msgid="740356548025791839">"Kan nie legstuk laai nie"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tik om opstelling te voltooi"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Legstukinstellings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tik om opstelling te voltooi"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dit is \'n stelselprogram en kan nie gedeïnstalleer word nie."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Wysig naam"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Het <xliff:g id="APP_NAME">%1$s</xliff:g> gedeaktiveer"</string> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 8923afc250..1228495dfb 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"በዚህ የመነሻ ማያ ገጽ ላይ ምንም ክፍል የለም"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"በተወዳጆች መሣቢያ ውስጥ ተጨማሪ ቦታ የለም"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"የመተግበሪያዎች ዝርዝር"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"የፍለጋ ውጤቶች"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"የግል መተግበሪያዎች ዝርዝር"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"የሥራ መተግበሪያዎች ዝርዝር"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"አስወግድ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"መተግብሪያው ቅንብሮችን እና አቋራጮችን በመነሻ ውስጥ እንዲቀይራቸው ያስችለዋል።"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> የስልክ ጥሪዎችን ለማድረግ አልተፈቀደለትም"</string> <string name="gadget_error_text" msgid="740356548025791839">"ምግብርን መጫን አልተቻለም"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ማዋቀርን ለመጨረስ መታ ያድርጉ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"የምግብር ቅንብሮች"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ማዋቀርን ለመጨረስ መታ ያድርጉ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ይህ የስርዓት መተግበሪያ ነው እና ማራገፍ አይቻልም።"</string> <string name="folder_hint_text" msgid="5174843001373488816">"ስም ያርትዑ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ተሰናክሏል"</string> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 2b8b9fa454..218029bdc3 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -77,6 +77,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ما مِن مساحة على هذه الشاشة الرئيسية."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"لا يوجد المزيد من الحقول في علبة المفضلة"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"قائمة التطبيقات"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"نتائج البحث"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"قائمة التطبيقات الشخصية"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"قائمة تطبيقات العمل"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"إزالة"</string> @@ -93,7 +94,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"للسماح للتطبيق بتغيير الإعدادات والاختصارات في الشاشة الرئيسية."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> غير مسموح به لإجراء مكالمات هاتفية"</string> <string name="gadget_error_text" msgid="740356548025791839">"يتعذّر تحميل الأداة."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"انقر لإكمال الإعداد."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"إعدادات الأداة"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"انقر لإكمال الإعداد."</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"هذا تطبيق نظام وتتعذر إزالته."</string> <string name="folder_hint_text" msgid="5174843001373488816">"تعديل الاسم"</string> <string name="disabled_app_label" msgid="6673129024321402780">"تم إيقاف <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 9bc08e3b6d..4cca0adfb8 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"এই গৃহ স্ক্ৰীনত খালী ঠাই নাই"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"পছন্দৰ ট্ৰে\'ত আৰু বেছি ঠাই নাই"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"এপৰ সূচী"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"সন্ধানৰ ফলাফল"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ব্যক্তিগত এপৰ তালিকা"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"কৰ্মস্থানৰ এপৰ তালিকা"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"আঁতৰাওক"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"এপটোক গৃহ পৃষ্ঠাত ছেটিং আৰু শ্বৰ্টকাটসমূহ সলনি কৰাৰ অনুমতি দিয়ে।"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g>ক ফ\'ন কলবোৰ কৰাৰ অনুমতি দিয়া হোৱা নাই"</string> <string name="gadget_error_text" msgid="740356548025791839">"ৱিজেট ল’ড কৰিব নোৱাৰি"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ছেটআপ সমাপ্ত কৰিবলৈ টিপক"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ৱিজেটৰ ছেটিং"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ছেটআপ সমাপ্ত কৰিবলৈ টিপক"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"এইটো এটা ছিষ্টেম এপ আৰু ইয়াক আনইনষ্টল কৰিব নোৱৰি"</string> <string name="folder_hint_text" msgid="5174843001373488816">"নাম সম্পাদনা কৰক"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> অক্ষম কৰা হ’ল"</string> @@ -94,8 +96,8 @@ <item quantity="other"><xliff:g id="APP_NAME_2">%1$s</xliff:g>ৰ <xliff:g id="NOTIFICATION_COUNT_3">%2$d</xliff:g>টা জাননী আছে</item> </plurals> <string name="default_scroll_format" msgid="7475544710230993317">"%2$dৰ %1$d পৃষ্ঠা"</string> - <string name="workspace_scroll_format" msgid="8458889198184077399">"গৃহ স্ক্ৰীণ %2$dৰ %1$d"</string> - <string name="workspace_new_page" msgid="257366611030256142">"গৃহ স্ক্ৰীণৰ নতুন পৃষ্ঠা"</string> + <string name="workspace_scroll_format" msgid="8458889198184077399">"গৃহ স্ক্ৰীন %2$dৰ %1$d"</string> + <string name="workspace_new_page" msgid="257366611030256142">"গৃহ স্ক্ৰীনৰ নতুন পৃষ্ঠা"</string> <string name="folder_opened" msgid="94695026776264709">"ফ’ল্ডাৰ খোলা হ’ল, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="4625795376335528256">"ফ\'ল্ডাৰ বন্ধ কৰিবলৈ টিপক"</string> <string name="folder_tap_to_rename" msgid="4017685068016979677">"সলনি কৰা নাম ছেভ কৰিবলৈ টিপক"</string> @@ -107,20 +109,20 @@ <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"ৱালপেপাৰ আৰু শৈলী"</string> <string name="settings_button_text" msgid="8873672322605444408">"গৃহ ছেটিং"</string> <string name="msg_disabled_by_admin" msgid="6898038085516271325">"আপোনাৰ প্ৰশাসকে অক্ষম কৰি ৰাখিছে"</string> - <string name="allow_rotation_title" msgid="7728578836261442095">"গৃহ স্ক্ৰীণ ঘূৰোৱাৰ অনুমতি দিয়ক"</string> + <string name="allow_rotation_title" msgid="7728578836261442095">"গৃহ স্ক্ৰীন ঘূৰোৱাৰ অনুমতি দিয়ক"</string> <string name="allow_rotation_desc" msgid="8662546029078692509">"ফ\'নটো যেতিয়া ঘূৰোৱা হয়"</string> <string name="notification_dots_title" msgid="9062440428204120317">"জাননী বিন্দু"</string> <string name="notification_dots_desc_on" msgid="1679848116452218908">"অন আছে"</string> <string name="notification_dots_desc_off" msgid="1760796511504341095">"অফ আছে"</string> <string name="title_missing_notification_access" msgid="7503287056163941064">"জাননী চাবলৈ অনুমতিৰ প্ৰয়োজন"</string> <string name="msg_missing_notification_access" msgid="281113995110910548">"জাননী সম্পৰ্কীয় বিন্দুবোৰ দেখুৱাবলৈ <xliff:g id="NAME">%1$s</xliff:g>ৰ বাবে এপৰ জাননীসমূহ অন কৰক"</string> - <string name="title_change_settings" msgid="1376365968844349552">"ছেটিংসমূহ সলনি কৰক"</string> + <string name="title_change_settings" msgid="1376365968844349552">"ছেটিং সলনি কৰক"</string> <string name="notification_dots_service_title" msgid="4284221181793592871">"জাননী বিন্দু দেখুৱাওক"</string> <string name="auto_add_shortcuts_label" msgid="3698776050751790653">"গৃহ স্ক্ৰীনত এপ্ চিহ্নসমূহ যোগ দিয়ক"</string> <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"নতুন এপসমূহৰ বাবে"</string> <string name="package_state_unknown" msgid="7592128424511031410">"অজ্ঞাত"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"আঁতৰাওক"</string> - <string name="abandoned_search" msgid="891119232568284442">"Search"</string> + <string name="abandoned_search" msgid="891119232568284442">"সন্ধান কৰক"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"এই এপটো ইনষ্টল কৰা হোৱা নাই"</string> <string name="abandoned_promise_explanation" msgid="3990027586878167529">"এই আইকনৰ এপটো ইনষ্টল কৰা হোৱা নাই। আপুনি এইটো আঁতৰাব পাৰে অথবা এপটো বিচাৰি মেনুৱেলভাৱে ইনষ্টল কৰিব পাৰে।"</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> ইনষ্টল কৰি থকা হৈছে, <xliff:g id="PROGRESS">%2$s</xliff:g> সম্পূৰ্ণ হৈছে"</string> @@ -128,9 +130,9 @@ <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> ইনষ্টল হোৱালৈ অপেক্ষা কৰি থকা হৈছে"</string> <string name="widgets_list" msgid="796804551140113767">"ৱিজেটৰ তালিকা"</string> <string name="widgets_list_closed" msgid="6141506579418771922">"ৱিজেটৰ তালিকা বন্ধ কৰা হ’ল"</string> - <string name="action_add_to_workspace" msgid="8902165848117513641">"গৃহ স্ক্ৰীণত যোগ কৰক"</string> + <string name="action_add_to_workspace" msgid="8902165848117513641">"গৃহ স্ক্ৰীনত যোগ দিয়ক"</string> <string name="action_move_here" msgid="2170188780612570250">"বস্তুটো ইয়ালৈ স্থানান্তৰ কৰক"</string> - <string name="item_added_to_workspace" msgid="4211073925752213539">"বস্তুটো গৃহ স্ক্ৰীণত যোগ কৰা হ’ল"</string> + <string name="item_added_to_workspace" msgid="4211073925752213539">"বস্তুটো গৃহ স্ক্ৰীনত যোগ কৰা হ’ল"</string> <string name="item_removed" msgid="851119963877842327">"বস্তুটো আঁতৰোৱা হ’ল"</string> <string name="undo" msgid="4151576204245173321">"আনডু কৰক"</string> <string name="action_move" msgid="4339390619886385032">"বস্তু স্থানান্তৰ কৰক"</string> @@ -143,7 +145,7 @@ <string name="added_to_folder" msgid="4793259502305558003">"বস্তুটো ফ\'ল্ডাৰত যোগ কৰা হ’ল"</string> <string name="create_folder_with" msgid="4050141361160214248">"<xliff:g id="NAME">%1$s</xliff:g>: ৰ জৰিয়তে ফ\'ল্ডাৰ সৃষ্টি কৰক"</string> <string name="folder_created" msgid="6409794597405184510">"ফ\'ল্ডাৰ সৃষ্টি কৰা হ’ল"</string> - <string name="action_move_to_workspace" msgid="1603837886334246317">"হ\'ম স্ক্ৰীণলৈ স্থানান্তৰ কৰক"</string> + <string name="action_move_to_workspace" msgid="1603837886334246317">"গৃহ স্ক্ৰীনলৈ স্থানান্তৰ কৰক"</string> <string name="action_resize" msgid="1802976324781771067">"আকাৰ সলনি কৰক"</string> <string name="action_increase_width" msgid="8773715375078513326">"প্ৰস্থ বৃদ্ধি কৰক"</string> <string name="action_increase_height" msgid="459390020612501122">"উচ্চতা বৃদ্ধি কৰক"</string> diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index f938c4dbaa..ec13d3cee2 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Bu Əsas ekranda yer qalmayıb"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Favoritlər-də yer yoxdur"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Tətbiq siyahısı"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Axtarış nəticələri"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Şəxsi tətbiqlərin siyahısı"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"İş tətbiqlərinin siyahısı"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Silin"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Tətbiqə Əsas Səhifədə ayarları və qısayolları dəyişməyə icazə verir."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqinə telefon zəngləri etmək üçün icazə verilmir"</string> <string name="gadget_error_text" msgid="740356548025791839">"Vidceti yükləmək olmur"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Ayarlamanı tamamlamaq üçün toxunun"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Vidcet ayarları"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Ayarlamanı tamamlamaq üçün toxunun"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Bu sistem tətbiqi olduğu üçün sistemdən silinə bilməz."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Adı redaktə edin"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> deaktiv edildi"</string> diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index b4f542e032..73db7dff39 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Nema prostora na ovom početnom ekranu"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Nema više prostora na traci Omiljeno"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista aplikacija"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultati pretrage"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista ličnih aplikacija"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista poslovnih aplikacija"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ukloni"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Dozvoljava aplikaciji da menja podešavanja i prečice na početnom ekranu."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nema dozvolu za upućivanje telefonskih poziva"</string> <string name="gadget_error_text" msgid="740356548025791839">"Učitavanje vidžeta nije uspelo"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Dodirnite da biste dovršili podešavanje"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Podešavanja vidžeta"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Dodirnite da biste dovršili podešavanje"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ovo je sistemska aplikacija i ne može da se deinstalira."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Izmenite naziv"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je onemogućena"</string> diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 3de26e8bde..96d71a2672 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"На галоўным экране няма месца"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"У латку \"Абранае\" больш няма месца"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Спіс праграм"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Вынікі пошуку"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Спіс персанальных праграм"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Спіс працоўных праграм"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Выдаліць"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Дазваляе праграме змяняць налады і ярлыкі на Галоўнай старонцы."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> не мае дазволу на здзяйсненне тэлефонных званкоў"</string> <string name="gadget_error_text" msgid="740356548025791839">"Не ўдаецца загрузіць віджэт"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Націсніце, каб завяршыць наладжванне"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Налады віджэта"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Націсніце, каб завяршыць наладжванне"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Гэта сістэмная праграма, яе нельга выдаліць."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Змяніць назву"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> адключана"</string> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 96e9d3121c..05eb63c077 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Няма място на този начален екран"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Няма повече място в областта с любимите"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Списък с приложения"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Резултати от търсенето"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Списък с лични приложения"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Списък със служебни приложения"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Премахване"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Разрешава на приложението да променя настройките и преките пътища в Начало."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> няма разрешение да извършва телефонни обаждания"</string> <string name="gadget_error_text" msgid="740356548025791839">"Приспособлението не може да се зареди"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Докоснете, за да завършите настройването"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Настройки за приспособленията"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Докоснете, за да завършите настройването"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Това е системно приложение и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Редактиране на името"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Деактивирахте <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index d39f82a0fa..db7ddcc7fa 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"এই হোম স্ক্রিনে আর জায়গা খালি নেই"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"পছন্দসই ট্রে-তে আর কোনো জায়গা নেই"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"অ্যাপ্লিকেশানগুলির তালিকা"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"সার্চ ফলাফল"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ব্যক্তিগত অ্যাপের তালিকা"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"কাজের অ্যাপের তালিকা"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"সরান"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"হোমে অ্যাপ্লিকেশানটিকে সেটিংস এবং শর্টকাটগুলি পরিবর্তন করতে দেয়৷"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ফোন কলগুলি করার জন্য <xliff:g id="APP_NAME">%1$s</xliff:g> এর অনুমতি নেই"</string> <string name="gadget_error_text" msgid="740356548025791839">"উইজেট লোড করা যাচ্ছে না"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"সেটআপ সম্পূর্ণ করতে ট্যাপ করুন"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"উইজেট সেটিংস"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"সেটআপ সম্পূর্ণ করতে ট্যাপ করুন"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"এটি একটি সিস্টেম অ্যাপ্লিকেশান এবং আনইনস্টল করা যাবে না৷"</string> <string name="folder_hint_text" msgid="5174843001373488816">"নাম এডিট করুন"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> অক্ষম করা হয়েছে"</string> diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 4b6ab9b64b..6bafbb6085 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Nema prostora na ovom početnom ekranu"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Nema više prostora u ladici Omiljeno"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista aplikacija"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultati pretraživanja"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista ličnih aplikacija"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista poslovnih aplikacija"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ukloni"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Dopušta aplikaciji promjenu postavki i prečica na početnom ekranu."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nema odobrenje da uspostavlja telefonske pozive"</string> <string name="gadget_error_text" msgid="740356548025791839">"Nije moguće učitati vidžet"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Dodirnite da završite postavljanje"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Postavke vidžeta"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Dodirnite da završite postavljanje"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ovo je sistemska aplikacija i ne može se deinstalirati."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Uređivanje naziva"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je onemogućena"</string> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index df30b436f3..394045da45 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No queda espai en aquesta pantalla d\'inici"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No hi ha més espai a la safata Preferits."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Llista d\'aplicacions"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultats de la cerca"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Llista d\'aplicacions personals"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Llista d\'aplicacions de treball"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Suprimeix"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permet que l\'aplicació canviï la configuració i les dreceres de la pantalla d\'inici."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> no té permís per fer trucades telefòniques"</string> <string name="gadget_error_text" msgid="740356548025791839">"No es pot carregar el widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Toca per finalitzar la configuració"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Configuració del widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Toca per finalitzar la configuració"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Aquesta aplicació és una aplicació del sistema i no es pot desinstal·lar."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edita el nom"</string> <string name="disabled_app_label" msgid="6673129024321402780">"S\'ha desactivat <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 7c6a76fabf..183a3bbcf1 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Na této ploše není místo"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Na panelu Oblíbené položky již není místo."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Seznam aplikací"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Výsledky vyhledávání"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Seznam osobních aplikací"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Seznam pracovních aplikací"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Odstranit"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Umožňuje aplikaci změnit nastavení a odkazy na ploše."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> nemá oprávnění telefonovat"</string> <string name="gadget_error_text" msgid="740356548025791839">"Widget se nepodařilo načíst"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Klepnutím dokončíte konfiguraci"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Nastavení widgetů"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Klepnutím dokončíte konfiguraci"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Toto je systémová aplikace a nelze ji odinstalovat."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Upravit název"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> je zakázána"</string> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index e06a686255..711d602078 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Der er ikke ledig plads på startskærmen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Der er ikke mere plads i bakken Favoritter"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Liste med apps"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Søgeresultater"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Liste over personlige apps"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Liste over apps til arbejdet"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Fjern"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Tillader, at appen ændrer indstillingerne og genvejene på startskærmen."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> har ikke tilladelse til at foretage telefonopkald"</string> <string name="gadget_error_text" msgid="740356548025791839">"Widgetten kan ikke indlæses"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tryk for at fuldføre konfigurationen"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget-indstillinger"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tryk for at fuldføre konfigurationen"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp, som ikke kan afinstalleres."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Rediger navn"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> er deaktiveret"</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index d83776caa3..4a3853f9b8 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Auf diesem Startbildschirm ist kein Platz mehr vorhanden"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ablage \"Favoriten\" ist voll."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Liste der Apps"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Suchergebnisse"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Liste der privaten Apps"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Liste der geschäftlichen Apps"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Entfernen"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Ermöglicht der App, die Einstellungen und Verknüpfungen auf dem Startbildschirm zu ändern"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> darf keine Telefonanrufe tätigen."</string> <string name="gadget_error_text" msgid="740356548025791839">"Widget kann nicht geladen werden"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tippen, um Einrichtung abzuschließen"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget-Einstellungen"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tippen, um Einrichtung abzuschließen"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dies ist eine Systemanwendung, die nicht deinstalliert werden kann."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Name bearbeiten"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> deaktiviert"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 13a0148611..cc9b6721bd 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Δεν υπάρχει χώρος σε αυτήν την αρχική οθόνη"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Δεν υπάρχει επιπλέον χώρος στην περιοχή Αγαπημένα"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Λίστα εφαρμογών"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Αποτελέσματα αναζήτησης"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Λίστα προσωπικών εφαρμογών"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Λίστα εφαρμογών εργασίας"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Κατάργηση"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Επιτρέπει στην εφαρμογή την αλλαγή των ρυθμίσεων και των συντομεύσεων στην Αρχική οθόνη."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> δεν επιτρέπεται να πραγματοποιεί τηλεφωνικές κλήσεις"</string> <string name="gadget_error_text" msgid="740356548025791839">"Δεν είναι δυνατή η φόρτωση του γραφικού στοιχείου"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Πατήστε για να ολοκληρώσετε τη ρύθμιση"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Ρυθμίσεις γραφικών στοιχείων"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Πατήστε για να ολοκληρώσετε τη ρύθμιση"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Αυτή είναι μια εφαρμογή συστήματος και δεν είναι δυνατή η κατάργηση της εγκατάστασής της."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Επεξεργασία ονόματος"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> είναι απενεργοποιημένη"</string> diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index aec1cbf5ce..674b738182 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No room on this home screen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personal apps list"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Work apps list"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remove"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Allows the app to change the settings and shortcuts in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string> <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tap to finish setup"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tap to finish setup"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Name"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Disabled <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index aec1cbf5ce..674b738182 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No room on this home screen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personal apps list"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Work apps list"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remove"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Allows the app to change the settings and shortcuts in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string> <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tap to finish setup"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tap to finish setup"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Name"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Disabled <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index aec1cbf5ce..674b738182 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No room on this home screen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personal apps list"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Work apps list"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remove"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Allows the app to change the settings and shortcuts in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string> <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tap to finish setup"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tap to finish setup"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Name"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Disabled <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index aec1cbf5ce..674b738182 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No room on this home screen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favourites tray"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personal apps list"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Work apps list"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remove"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Allows the app to change the settings and shortcuts in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string> <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tap to finish setup"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tap to finish setup"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Name"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Disabled <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 42aa24036c..4b54fe160b 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No room on this Home screen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"No more room in the Favorites tray"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Apps list"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Search results"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personal apps list"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Work apps list"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remove"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Allows the app to change the settings and shortcuts in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> is not allowed to make phone calls"</string> <string name="gadget_error_text" msgid="740356548025791839">"Can\'t load widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tap to finish setup"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget settings"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tap to finish setup"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"This is a system app and can\'t be uninstalled."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Name"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Disabled <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index eca881f1f2..75c81513e9 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No hay más espacio en esta pantalla principal"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"La bandeja de favoritos está llena."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de apps"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultados de la búsqueda"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de apps personales"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de apps del trabajo"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Quitar"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite que la aplicación cambie la configuración y los accesos directos de la pantalla principal."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> no puede realizar llamadas telefónicas"</string> <string name="gadget_error_text" msgid="740356548025791839">"No se puede cargar el widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Presiona para finalizar la configuración"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Configuración del widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Presiona para finalizar la configuración"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta es una aplicación del sistema y no se puede desinstalar."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Editar nombre"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Se inhabilitó <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index d82e92d135..f8be80ab4a 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"No queda espacio en la pantalla de inicio"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"La bandeja de favoritos está completa"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de aplicaciones"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultados de búsqueda"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de aplicaciones personales"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de aplicaciones del trabajo"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Quitar"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite que las aplicaciones cambien los ajustes y los accesos directos de la pantalla de inicio."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> no puede hacer llamadas"</string> <string name="gadget_error_text" msgid="740356548025791839">"No se puede cargar el widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Toca para finalizar la configuración"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Ajustes de widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Toca para finalizar la configuración"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta aplicación es del sistema y no se puede desinstalar."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Editar nombre"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Se ha inhabilitado <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> @@ -104,7 +106,7 @@ <string name="folder_name_format_exact" msgid="8626242716117004803">"Carpeta: <xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SIZE">%2$d</xliff:g> elementos)"</string> <string name="folder_name_format_overflow" msgid="4270108890534995199">"Carpeta: <xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SIZE">%2$d</xliff:g> o más elementos)"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string> - <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Estilo y fondo de pantalla"</string> + <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"Fondo de pantalla y estilo"</string> <string name="settings_button_text" msgid="8873672322605444408">"Ajustes de la pantalla de inicio"</string> <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Inhabilitado por el administrador"</string> <string name="allow_rotation_title" msgid="7728578836261442095">"Permitir rotación de la pantalla de inicio"</string> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index f8ef52b8b0..291080ae72 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Sellel avakuval pole ruumi"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Salves Lemmikud pole rohkem ruumi"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Rakenduste loend"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Otsingutulemused"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Isiklike rakenduste loend"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Töörakenduste loend"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Eemalda"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Võimaldab rakendusel muuta avaekraanil seadeid ja otseteid."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> pole lubatud helistada"</string> <string name="gadget_error_text" msgid="740356548025791839">"Vidinat ei saa laadida"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Puudutage seadistuse lõpuleviimiseks"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Vidina seaded"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Puudutage seadistuse lõpuleviimiseks"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"See on süsteemirakendus ja seda ei saa desinstallida."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Muuda nime"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Rakendus <xliff:g id="APP_NAME">%1$s</xliff:g> on keelatud"</string> diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index e87f6e6048..0642030ffa 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Ez dago tokirik hasierako pantailan"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ez dago toki gehiago Gogokoak erretiluan"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Aplikazioen zerrenda"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Bilaketa-emaitzak"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Aplikazio pertsonalen zerrenda"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Laneko aplikazioen zerrenda"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Kendu"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Hasierako pantailako ezarpenak eta lasterbideak aldatzeko baimena ematen die aplikazioei."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak ez du telefono-deiak egiteko baimenik"</string> <string name="gadget_error_text" msgid="740356548025791839">"Ezin da kargatu widgeta"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Konfiguratzen amaitzeko, sakatu hau"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widgetaren ezarpenak"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Sakatu konfiguratzen amaitzeko"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Sistema-aplikazioa da hau eta ezin da desinstalatu."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Editatu izena"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> desgaituta dago"</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 9cc78185d4..13c6f2bd38 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"فضای خالی در این صفحه اصلی وجود ندارد"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"فضای بیشتری در سینی موارد دلخواه وجود ندارد"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"فهرست برنامهها"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"نتایج جستجو"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"فهرست برنامههای شخصی"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"فهرست برنامههای کاری"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"برداشتن"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"به برنامه اجازه میدهد تنظیمات و میانبرها را در صفحه اصلی تغییر دهد."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> مجاز نیست تماس تلفنی برقرار کند"</string> <string name="gadget_error_text" msgid="740356548025791839">"ابزارک را نمیتوان بار کرد"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"برای تکمیل راهاندازی ضربه بزنید"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"تنظیمات ابزارک"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"برای تکمیل راهاندازی ضربه بزنید"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"این برنامه سیستمی است و حذف نصب نمیشود."</string> <string name="folder_hint_text" msgid="5174843001373488816">"ویرایش نام"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> غیرفعال شد"</string> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index e01ab255c6..8764e51f83 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Tällä aloitusnäytöllä ei ole tilaa"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Suosikit-valikossa ei ole enää tilaa"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Sovellusluettelo"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Hakutulokset"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Omat sovellukset ‑luettelo"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Työsovellusluettelo"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Poista"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Antaa sovelluksen muuttaa aloitusruudun asetuksia ja pikakuvakkeita."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei saa soittaa puheluita."</string> <string name="gadget_error_text" msgid="740356548025791839">"Widgetiä ei voi ladata"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Viimeistele asennus napauttamalla"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widgetin asetukset"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Viimeistele asennus napauttamalla"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Tämä on järjestelmäsovellus, eikä sitä voi poistaa."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Muokkaa nimeä"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> poistettiin käytöstä"</string> diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 6f9e995293..6d9dcfd513 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Pas d\'espace libre sur cet écran d\'accueil"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Il n\'y a plus d\'espace dans la zone des favoris"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Liste des applications"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Résultats de recherche"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Liste des applications personnelles"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Liste des applications professionnelles"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Supprimer"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permet à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"L\'application <xliff:g id="APP_NAME">%1$s</xliff:g> n\'est pas autorisée à faire des appels téléphoniques"</string> <string name="gadget_error_text" msgid="740356548025791839">"Impossible de charger le widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Touchez pour terminer la configuration"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Paramètres du widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Touchez pour terminer la configuration"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Impossible de désinstaller cette application, car il s\'agit d\'une application système."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Modifier le nom"</string> <string name="disabled_app_label" msgid="6673129024321402780">"L\'application <xliff:g id="APP_NAME">%1$s</xliff:g> est désactivée"</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 633ca2d094..a6723b8949 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Espace insuffisant sur cet écran d\'accueil"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Plus d\'espace disponible dans la zone de favoris."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Liste d\'applications"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Résultats de recherche"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Liste des applications personnelles"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Liste des applications professionnelles"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Supprimer"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permettre à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"L\'application <xliff:g id="APP_NAME">%1$s</xliff:g> n\'est pas autorisée à passer des appels téléphoniques."</string> <string name="gadget_error_text" msgid="740356548025791839">"Impossible de charger le widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Appuyez pour terminer la configuration"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Paramètres du widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Appuyez pour terminer la configuration"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Impossible de désinstaller cette application, car il s\'agit d\'une application système."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Modifier le nom"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> est désactivé."</string> diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index b9ae835ef6..aa225d9f30 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Non queda espazo nesta pantalla de inicio"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Non hai máis espazo na bandexa de favoritos"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de aplicacións"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultados da busca"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de aplicacións persoais"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de aplicacións de traballo"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Quitar"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite a unha aplicación cambiar a configuración e os atallos da pantalla de inicio."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> non ten permiso para facer chamadas telefónicas"</string> <string name="gadget_error_text" msgid="740356548025791839">"Non se puido cargar o widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Toca para rematar a configuración"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Configuración do widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Toca para rematar a configuración"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Esta aplicación é do sistema e non se pode desinstalar."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edita o nome"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Desactivouse <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 2a154bf52c..ae62c34535 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"આ હોમ સ્ક્રીન પર વધુ જગ્યા નથી"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"મનપસંદ ટ્રે પર વધુ જગ્યા નથી"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ઍપ્લિકેશનોની સૂચિ"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"શોધ પરિણામો"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"વ્યક્તિગત ઍપની સૂચિ"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"કાર્યસ્થળની ઍપની સૂચિ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"દૂર કરો"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ઍપને હોમમાં સેટિંગ અને શૉર્ટકટ બદલવાની મંજૂરી આપે છે."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ને ફોન કૉલ્સ કરવાની મંજૂરી નથી"</string> <string name="gadget_error_text" msgid="740356548025791839">"વિજેટ લોડ કરી શકાતું નથી"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"સેટઅપ પૂર્ણ કરવા માટે ટૅપ કરો"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"વિજેટ સેટિંગ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"સેટઅપ પૂર્ણ કરવા માટે ટૅપ કરો"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"આ એક સિસ્ટમ ઍપ્લિકેશન છે અને અનઇન્સ્ટોલ કરી શકાતી નથી."</string> <string name="folder_hint_text" msgid="5174843001373488816">"નામમાં ફેરફાર કરો"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> અક્ષમ કરી"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 53640fe2e9..af3a5bce3b 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"इस होम स्क्रीन पर जगह खाली नहीं है"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"पसंदीदा ट्रे में और जगह नहीं है"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ऐप्लिकेशन सूची"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"खोज के नतीजे"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"निजी ऐप्लिकेशन की सूची"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"काम से जुड़े ऐप्लिकेशन की सूची"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"हटाएं"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ऐप्लिकेशन को होम पेज में सेटिंग और शॉर्टकट बदलने देती है."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> को फ़ोन कॉल करने की अनुमति नहीं है"</string> <string name="gadget_error_text" msgid="740356548025791839">"विजेट को लोड नहीं किया जा सका"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"सेट अप पूरा करने के लिए टैप करें"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"विजेट की सेटिंग"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"सेट अप पूरा करने के लिए टैप करें"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"यह एक सिस्टम ऐप्लिकेशन है और इसे अनइंस्टॉल नहीं किया जा सकता."</string> <string name="folder_hint_text" msgid="5174843001373488816">"नाम में बदलाव करें"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> अक्षम है"</string> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index eb4456d525..db7a237a9c 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Na ovom početnom zaslonu više nema mjesta"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Nema više prostora na traci Favoriti"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Popis aplikacija"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultati pretraživanja"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Popis osobnih aplikacija"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Popis radnih aplikacija"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ukloni"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Aplikaciji omogućuje promjenu postavki i prečaca na početnom zaslonu."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nema dopuštenje za telefonske pozive"</string> <string name="gadget_error_text" msgid="740356548025791839">"Widget se ne može učitati"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Dodirnite da biste dovršili postavljanje"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Postavke widgeta"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Dodirnite da biste dovršili postavljanje"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ovo je aplikacija sustava i ne može se ukloniti."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Uređivanje naziva"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> onemogućena"</string> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 30b6f6f3f4..d6b2fef1fa 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Nincs több hely ezen a kezdőképernyőn"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Nincs több hely a Kedvencek tálcán"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Alkalmazások listája"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Keresési találatok"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Személyes alkalmazások listája"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Munkahelyi alkalmazások listája"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Törlés"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Lehetővé teszi az alkalmazás számára, hogy módosítsa a kezdőképernyő beállításait és parancsikonjait."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> nem kezdeményezhet telefonhívásokat"</string> <string name="gadget_error_text" msgid="740356548025791839">"Nem tölthető le a modul"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Koppintson a beállítás befejezéséhez"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Modulbeállítások"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Koppintson a beállítás befejezéséhez"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ez egy rendszeralkalmazás, és nem lehet eltávolítani."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Név módosítása"</string> <string name="disabled_app_label" msgid="6673129024321402780">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> letiltva"</string> diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index 5ca8744324..388cf2760e 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Հիմնական էկրանին ազատ տեղ չկա"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ընտրյալների ցուցակում այլևս ազատ տեղ չկա"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Հավելվածների ցանկ"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Որոնման արդյունքներ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Անձնական հավելվածների ցանկ"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Աշխատանքային հավելվածների ցանկ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Հեռացնել"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Ծրագրին թույլ է տալիս փոփոխել հիմնաէջի կարգավորումներն ու դյուրանցումները:"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածին չի թույլատրվում հեռախոսազանգեր կատարել"</string> <string name="gadget_error_text" msgid="740356548025791839">"Չհաջողվեց բեռնել վիջեթը"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Հպեք՝ կարգավորումն ավարտելու համար"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Վիջեթի կարգավորումներ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Հպեք՝ կարգավորումն ավարտելու համար"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Սա համակարգային ծրագիր է և չի կարող ապատեղադրվել:"</string> <string name="folder_hint_text" msgid="5174843001373488816">"Փոխել անունը"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածն անջատված է"</string> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 673a4460bf..4aafc5fe93 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Tidak ada ruang di Layar utama ini"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Tidak ada ruang tersisa di baki Favorit"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Daftar aplikasi"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Hasil penelusuran"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Daftar aplikasi pribadi"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Daftar aplikasi kantor"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Hapus"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Mengizinkan aplikasi mengubah setelan dan pintasan di layar Utama."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak diizinkan untuk melakukan panggilan telepon"</string> <string name="gadget_error_text" msgid="740356548025791839">"Tidak dapat memuat widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Ketuk untuk menyelesaikan penyiapan"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Setelan widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Ketuk untuk menyelesaikan penyiapan"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ini adalah aplikasi sistem dan tidak dapat dicopot pemasangannya."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Sunting Nama"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> dinonaktifkan"</string> diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index 1431e81d56..8c2d472a22 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Ekkert pláss á þessum heimaskjá"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ekki meira pláss í bakka fyrir uppáhald"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Forritalisti"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Leitarniðurstöður"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Listi yfir eigin forrit"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Listi yfir vinnuforrit"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Taka niður"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Leyfir forriti að breyta stillingum og flýtileiðum heimaskjás."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> hefur ekki leyfi til að hringja símtöl"</string> <string name="gadget_error_text" msgid="740356548025791839">"Ekki hægt að hlaða græju"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Ýttu til að ljúka við uppsetningu"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Græjustillingar"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Ýttu til að ljúka við uppsetningu"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Þetta er kerfisforrit sem ekki er hægt að fjarlægja."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Breyta nafni"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Óvirkt <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 71a3403835..cedcafa444 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Non c\'è più spazio nella schermata Home"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Spazio esaurito nella barra dei Preferiti"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Elenco di app"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Risultati di ricerca"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Elenco di app personali"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Elenco di app di lavoro"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Rimuovi"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Consente all\'app di modificare le impostazioni e le scorciatoie in Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"L\'app <xliff:g id="APP_NAME">%1$s</xliff:g> non è autorizzata a effettuare telefonate"</string> <string name="gadget_error_text" msgid="740356548025791839">"Impossibile caricare il widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tocca e completa configurazione"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Impostazioni widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tocca per completare la configurazione"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Questa è un\'app di sistema e non può essere disinstallata."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Modifica nome"</string> <string name="disabled_app_label" msgid="6673129024321402780">"App <xliff:g id="APP_NAME">%1$s</xliff:g> disattivata"</string> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index b5e41b61b9..14153f7abd 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"אין מקום במסך הבית הזה"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"אין עוד מקום במגש המועדפים"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"רשימת אפליקציות"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"תוצאות חיפוש"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"רשימת אפליקציות אישיות"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"רשימת אפליקציות עבודה"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"הסרה"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"מאפשר לאפליקציה לשנות את ההגדרות וקיצורי הדרך בדף הבית."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> אינו רשאי להתקשר"</string> <string name="gadget_error_text" msgid="740356548025791839">"לא ניתן לטעון את הווידג\'ט"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"צריך להקיש כדי לסיים את תהליך ההגדרה"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"הגדרות הווידג\'ט"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"צריך להקיש כדי לסיים את תהליך ההגדרה"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"זוהי אפליקציית מערכת ולא ניתן להסיר את התקנתה."</string> <string name="folder_hint_text" msgid="5174843001373488816">"עריכת השם"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> מושבתת"</string> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 84becd85bb..594f3405a6 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"このホーム画面には空きスペースがありません"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"お気に入りトレイに空きスペースがありません"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"アプリのリスト"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"検索結果"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"個人用アプリのリスト"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"仕事用アプリのリスト"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"削除"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ホームの設定とショートカットの変更をアプリに許可します。"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」から電話をかけることはできません"</string> <string name="gadget_error_text" msgid="740356548025791839">"ウィジェットを読み込めません"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"タップして設定を完了してください"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ウィジェットの設定"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"タップして設定を完了してください"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"このシステムアプリはアンインストールできません。"</string> <string name="folder_hint_text" msgid="5174843001373488816">"名前の編集"</string> <string name="disabled_app_label" msgid="6673129024321402780">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」は無効です"</string> diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 6b89b05a85..7cc364f621 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ამ მთავარ ეკრანზე ადგილი არ არის"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"რჩეულების თაროზე ადგილი არ არის"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"აპების სია"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ძიების შედეგები"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"პერსონალური აპების სია"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"სამსახურის აპების სია"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ამოშლა"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"აპისთვის მთავარი ეკრანის პარამეტრებისა და მალსახმობების შეცვლის უფლების მიცემა."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ს არ აქვს სატელეფონო ზარების განხორციელების უფლება"</string> <string name="gadget_error_text" msgid="740356548025791839">"ვიჯეტის ჩატვირთვა ვერ ხერხდება"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"შეეხეთ დაყენების დასასრულებლად"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ვიჯეტის პარამეტრები"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"შეეხეთ დაყენების დასასრულებლად"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ეს სისტემური აპია და მისი წაშლა შეუძლებელია."</string> <string name="folder_hint_text" msgid="5174843001373488816">"სახელის რედაქტირება"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> გაითიშა"</string> diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index dc1746e855..ebacc83f85 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Негізгі экранда бос орын қалмады."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Қалаулылар науасында орын қалмады"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Қолданбалар тізімі"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Іздеу нәтижелері"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Жеке қолданбалар тізімі"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Жұмыс қолданбаларының тізімі"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Алып тастау"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Қолданбаға Негізгі экрандағы параметрлер мен төте пернелерді өзгерту мүмкіндігін береді."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> арқылы телефон қоңырауларын соғуға рұқсат етілмеген"</string> <string name="gadget_error_text" msgid="740356548025791839">"Виджетті жүктеу мүмкін емес."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Реттеуді аяқтау үшін түртіңіз."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Виджет параметрлері"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Реттеуді аяқтау үшін түртіңіз."</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бұл жүйе қолданбасы, сондықтан оны алу мүмкін емес."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Атын өңдеу"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> өшірілді"</string> diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 8ff9112321..4ad70dfce6 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"គ្មានកន្លែងនៅលើអេក្រង់ដើមនេះទេ"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"គ្មានបន្ទប់ក្នុងថាសនិយមប្រើ"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"បញ្ជីកម្មវិធី"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"លទ្ធផលស្វែងរក"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"បញ្ជីកម្មវិធីផ្ទាល់ខ្លួន"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"បញ្ជីកម្មវិធីការងារ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"យកចេញ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"អនុញ្ញាតឲ្យកម្មវិធីប្ដូរការកំណត់ និងផ្លូវកាត់ក្នុងអេក្រង់ដើម។"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> មិនត្រូវបានអនុញ្ញាតឲ្យធ្វើការហៅទូរស័ព្ទទេ"</string> <string name="gadget_error_text" msgid="740356548025791839">"មិនអាចផ្ទុកធាតុក្រាហ្វិកបានទេ"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ចុចដើម្បីបញ្ចប់ការរៀបចំ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ការកំណត់ធាតុក្រាហ្វិក"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ចុចដើម្បីបញ្ចប់ការរៀបចំ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"នេះជាកម្មវិធីប្រព័ន្ធ មិនអាចលុបបានទេ។"</string> <string name="folder_hint_text" msgid="5174843001373488816">"កែឈ្មោះ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"បានបិទដំណើរការ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 3fa8ac76d3..707eb5cdf0 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ಈ ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ಮೆಚ್ಚಿನವುಗಳ ಟ್ರೇನಲ್ಲಿ ಹೆಚ್ಚಿನ ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ವೈಯಕ್ತಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"ಕೆಲಸದ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ತೆಗೆದುಹಾಕಿ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ಮುಖಪುಟದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳು ಮತ್ತು ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ಫೋನ್ ಕರೆಗಳನ್ನು ಮಾಡಲು <xliff:g id="APP_NAME">%1$s</xliff:g> ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ"</string> <string name="gadget_error_text" msgid="740356548025791839">"ವಿಜೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ವಿಜೆಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ಇದೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> <string name="folder_hint_text" msgid="5174843001373488816">"ಹೆಸರನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string> @@ -120,7 +122,7 @@ <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"ಅಪರಿಚಿತ"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ತೆಗೆದುಹಾಕಿ"</string> - <string name="abandoned_search" msgid="891119232568284442">"Search"</string> + <string name="abandoned_search" msgid="891119232568284442">"ಹುಡುಕಿ"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ಈ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ"</string> <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ಈ ಐಕಾನ್ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ. ನೀವು ಅದನ್ನು ತೆಗೆದುಹಾಕಬಹುದು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಹುಡುಕಬಹುದು ಮತ್ತು ಹಸ್ತಚಾಲಿತವಾಗಿ ಅದನ್ನು ಸ್ಥಾಪಿಸಬಹುದು."</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ, <xliff:g id="PROGRESS">%2$s</xliff:g> ಪೂರ್ಣಗೊಂಡಿದೆ"</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 05d77107bb..48ddc98737 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"홈 화면에 더 이상 공간이 없습니다."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"즐겨찾기 트레이에 더 이상 공간이 없습니다."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"앱 목록"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"검색결과"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"개인 앱 목록"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"업무용 앱 목록"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"삭제"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"앱이 홈에 있는 설정 및 바로가기를 변경할 수 있도록 합니다."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g>에서 전화를 걸 수 없습니다."</string> <string name="gadget_error_text" msgid="740356548025791839">"위젯을 로드할 수 없습니다."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"탭하여 설정을 완료하세요."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"위젯 설정"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"탭하여 설정을 완료하세요."</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"시스템 앱은 제거할 수 없습니다."</string> <string name="folder_hint_text" msgid="5174843001373488816">"이름 수정"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> 사용 안함"</string> diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index c21a9418a2..1b1ebef341 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Башкы экранда бош орун жок"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Тандамалдар тайпасында орун калган жок"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Колдонмолор тизмеси"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Табылган нерселер"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Жеке колдономолордун тизмеси"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Жумуш колдонмолорунун тизмеси"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Өчүрүү"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Колдонмого Үйдүн тууралоолорун жана тез чакырмаларын өзгөртүүгө уруксат берет."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> телефон чалууларды аткарууга уруксаты жок"</string> <string name="gadget_error_text" msgid="740356548025791839">"Виджет жүктөлбөй жатат"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Жөндөп бүтүрүү үчүн таптап коюңуз"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Виджеттин жөндөөлөрү"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Жөндөп бүтүү үчүн таптап коюңуз"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бул системдик колдонмо жана аны чечкенге болбойт."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Аталышын түзөтүү"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> өчүрүлгөн"</string> @@ -114,7 +116,7 @@ <string name="notification_dots_desc_off" msgid="1760796511504341095">"Өчүк"</string> <string name="title_missing_notification_access" msgid="7503287056163941064">"Эскертмелерге уруксат берилиши керек"</string> <string name="msg_missing_notification_access" msgid="281113995110910548">"Эскертме белгилерин көрсөтүү максатында, <xliff:g id="NAME">%1$s</xliff:g> үчүн колдонмонун билдирмелерин күйгүзүү керек"</string> - <string name="title_change_settings" msgid="1376365968844349552">"Жөндөөлөрдү өзгөртүү"</string> + <string name="title_change_settings" msgid="1376365968844349552">"Параметрлерди өзгөртүү"</string> <string name="notification_dots_service_title" msgid="4284221181793592871">"Билдирмелер белгилерин көрсөтүү"</string> <string name="auto_add_shortcuts_label" msgid="3698776050751790653">"Колдонмонун сүрөтчөсүн Башкы экранга кошуу"</string> <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Жаңы колдонмолор үчүн"</string> diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index 934229c64c..3698f627b0 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ບໍ່ມີບ່ອນຫວ່າງໃນໜ້າໂຮມສະກຣີນນີ້"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ບໍ່ມີບ່ອນຫວ່າງໃນຖາດສຳລັບເກັບສິ່ງທີ່ໃຊ້ເປັນປະຈຳ"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ລາຍຊື່ແອັບ"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ຜົນການຊອກຫາ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ລາຍຊື່ແອັບສ່ວນຕົວ"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"ລາຍຊື່ແອັບເຮັດວຽກ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ເອົາອອກ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ອະນຸຍາດໃຫ້ແອັບຯດັ່ງກ່າວ ປ່ຽນການຕັ້ງຄ່າ ແລະທາງລັດໃນໜ້າຫຼັກ."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໂທ"</string> <string name="gadget_error_text" msgid="740356548025791839">"ບໍ່ສາມາດໂຫຼດວິດເຈັດໄດ້"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ແຕະເພື່ອຕັ້ງຄ່າໃຫ້ແລ້ວ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ການຕັ້ງຄ່າວິດເຈັດ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ແຕະເພື່ອຕັ້ງຄ່າໃຫ້ແລ້ວ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ນີ້ແມ່ນແອັບຯຂອງລະບົບ ແລະບໍ່ສາມາດຖອນການຕິດຕັ້ງອອກໄດ້."</string> <string name="folder_hint_text" msgid="5174843001373488816">"ແກ້ໄຂຊື່"</string> <string name="disabled_app_label" msgid="6673129024321402780">"ປິດການນຳໃຊ້ <xliff:g id="APP_NAME">%1$s</xliff:g> ແລ້ວ"</string> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 0c3b91f183..854fc30b8b 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Šiame pagrindiniame ekrane nebėra vietos"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Mėgstamiausių dėkle nebėra vietos"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Programų sąrašas"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Paieškos rezultatai"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Asmeninių programų sąrašas"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Darbo programų sąrašas"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ištrinti"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Programai leidžiama keisti pagrindinio puslapio nustatymus ir sparčiuosius klavišus."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ neleidžiama skambinti"</string> <string name="gadget_error_text" msgid="740356548025791839">"Nepavyko įkelti valdiklio"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Palieskite, kad užbaigtumėte sąranką"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Valdiklio nustatymai"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Palieskite, kad užbaigtumėte sąranką"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Tai sistemos programa ir jos negalima pašalinti."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Pavadinimo redagavimas"</string> <string name="disabled_app_label" msgid="6673129024321402780">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ išjungta"</string> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 2f89a1f8b6..7f47f2675a 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Šajā sākuma ekrānā nav vietas"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Izlases joslā vairs nav vietas."</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lietotņu saraksts"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Meklēšanas rezultāti"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personīgo lietotņu saraksts"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Darba lietotņu saraksts"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Noņemt"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Ļauj lietotnei mainīt iestatījumus un saīsnes sākuma ekrānā."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Lietotnei <xliff:g id="APP_NAME">%1$s</xliff:g> nav atļauts veikt tālruņa zvanus."</string> <string name="gadget_error_text" msgid="740356548025791839">"Nevar ielādēt logrīku."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Pieskarieties, lai pabeigtu iestatīšanu."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Logrīka iestatījumi"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Pieskarieties, lai pabeigtu iestatīšanu"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Šī ir sistēmas lietotne, un to nevar atinstalēt."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Nosaukuma rediģēšana"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Lietotne <xliff:g id="APP_NAME">%1$s</xliff:g> ir atspējota"</string> diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 99e4adbc59..aebbf6f59f 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Нема простор на почетниов екран"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Нема повеќе простор на лентата „Омилени“"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Список со апликации"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Резултати од пребарување"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Список со лични апликации"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Список со апликации за работа"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Отстрани"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Овозможува апликацијата да ги менува подесувањата и кратенките на почетната страница."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> нема дозвола за телефонски повици"</string> <string name="gadget_error_text" msgid="740356548025791839">"Не може да се вчита виџетот"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Допрете за да го завршите поставувањето"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Поставки за виџет"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Допрете за да го завршите поставувањето"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ова е системска апликација и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Изменете го името"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> е оневозможена"</string> diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index f282bd1db4..9334cf8cdf 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ഈ ഹോം സ്ക്രീനിലിൽ ഇടമില്ല"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"പ്രിയപ്പെട്ടവയുടെ ട്രേയിൽ ഒഴിവൊന്നുമില്ല"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"അപ്ലിക്കേഷനുകളുടെ ലിസ്റ്റ്"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"തിരയൽ ഫലങ്ങൾ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"വ്യക്തിഗത ആപ്പുകളുടെ ലിസ്റ്റ്"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"ഔദ്യോഗിക ആപ്പുകളുടെ ലിസ്റ്റ്"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"നീക്കംചെയ്യുക"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ഹോമിലെ ക്രമീകരണങ്ങളും കുറുക്കുവഴികളും മാറ്റാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ഫോൺ കോൾ ചെയ്യാൻ <xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിനെ അനുവദിച്ചിട്ടില്ല"</string> <string name="gadget_error_text" msgid="740356548025791839">"വിജറ്റ് ലോഡ് ചെയ്യാനാകുന്നില്ല"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"സജ്ജീകരണം പൂർത്തിയാക്കാൻ ടാപ്പ് ചെയ്യുക"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"വിജറ്റ് ക്രമീകരണം"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"സജ്ജീകരണം പൂർത്തിയാക്കാൻ ടാപ്പ് ചെയ്യുക"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ഇതൊരു സിസ്റ്റം അപ്ലിക്കേഷനായതിനാൽ അൺഇൻസ്റ്റാളുചെയ്യാനാവില്ല."</string> <string name="folder_hint_text" msgid="5174843001373488816">"പേര് എഡിറ്റ് ചെയ്യുക"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> പ്രവർത്തനരഹിതമാക്കി"</string> @@ -120,7 +122,7 @@ <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"പുതിയ ആപ്പുകൾക്ക്"</string> <string name="package_state_unknown" msgid="7592128424511031410">"അജ്ഞാതം"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"നീക്കംചെയ്യുക"</string> - <string name="abandoned_search" msgid="891119232568284442">"Search"</string> + <string name="abandoned_search" msgid="891119232568284442">"തിരയുക"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ഈ അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്തിട്ടില്ല"</string> <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ഈ ഐക്കണുവേണ്ടി അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്തിട്ടില്ല. നിങ്ങൾക്കത് നീക്കംചെയ്യാനാകും അല്ലെങ്കിൽ അപ്ലിക്കേഷനുവേണ്ടി തിരഞ്ഞുകൊണ്ട് അത് സ്വമേധയാ ഇൻസ്റ്റാളുചെയ്യുക."</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> ഇൻസ്റ്റാൾ ചെയ്യുന്നു, <xliff:g id="PROGRESS">%2$s</xliff:g> പൂർത്തിയായി"</string> diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 3d00aea529..3e05cb410e 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Энэ үндсэн нүүрэнд зай байхгүй байна"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"\"Дуртай\" трей дээр өөр зай байхгүй байна"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Апп-н жагсаалт"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Хайлтын илэрц"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Хувийн аппын жагсаалт"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Ажлын аппын жагсаалт"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Арилгах"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Апп нь Нүүрэндэх товчлол болон тохиргоог өөрчилж чадна."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> утасны дуудлага хийх боломжгүй"</string> <string name="gadget_error_text" msgid="740356548025791839">"Жижиг хэрэгслийг ачаалах боломжгүй"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Тохируулгыг дуусгахын тулд товшино уу"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Виджетийн тохиргоо"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Тохируулгыг дуусгахын тулд товшино уу"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Энэ апп нь системийн апп ба устгах боломжгүй."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Нэр засах"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g>-г идэвхгүй болгосон"</string> diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 9e14926693..3eb3928c79 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"या होम स्क्रीनवर कोणतीही रूम नाही"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"आवडीच्या ट्रे मध्ये आणखी जागा नाही"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"अॅप्स सूची"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"शोध परिणाम"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"वैयक्तिक अॅप्स सूची"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"कामाच्या ठिकाणी वापरली जाणाऱ्या ॲप्सची सूची"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"काढा"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"मुख्यपृष्ठातील सेटिंग्ज आणि शॉर्टकट बदलण्यास अॅप ला अनुमती देते."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ला फोन कॉल करण्याची अनुमती नाही"</string> <string name="gadget_error_text" msgid="740356548025791839">"विजेट लोड करू शकत नाही"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"सेटअप पूर्ण करण्यासाठी टॅप करा"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"विजेटची सेटिंग्ज"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"सेटअप पूर्ण करण्यासाठी टॅप करा"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"हा सिस्टम अॅप आहे आणि अनइंस्टॉल केला जाऊ शकत नाही."</string> <string name="folder_hint_text" msgid="5174843001373488816">"नाव संपादित करा"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> अक्षम केला आहे"</string> @@ -120,7 +122,7 @@ <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"नवीन अॅप्ससाठी"</string> <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"काढा"</string> - <string name="abandoned_search" msgid="891119232568284442">"Search"</string> + <string name="abandoned_search" msgid="891119232568284442">"शोधा"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"हा अॅप इंस्टॉल केलेला नाही"</string> <string name="abandoned_promise_explanation" msgid="3990027586878167529">"या चिन्हासाठी अॅप इंस्टॉल केलेला नाही. तुम्ही ते काढू शकता किंवा अॅपचा शोध घेऊ शकता आणि त्यास व्यक्तिचलितपणे इंस्टॉल करू शकता."</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> इंस्टॉल करत आहे, <xliff:g id="PROGRESS">%2$s</xliff:g> पूर्ण झाले"</string> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index 48bff64a84..47cb808051 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Tiada ruang di skrin Utama ini"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Tiada ruang dalam dulang Kegemaran lagi"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Senarai apl"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Hasil carian"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Senarai apl peribadi"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Senarai apl kerja"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Alih keluar"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Membenarkan apl menukar tetapan dan pintasan di Laman Utama."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak dibenarkan membuat panggilan telefon"</string> <string name="gadget_error_text" msgid="740356548025791839">"Tidak dapat memuatkan widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Ketik untuk menyelesaikan persediaan"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Tetapan widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Ketik untuk menyelesaikan persediaan"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ini ialah apl sistem dan tidak boleh dinyahpasang."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edit Nama"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> dilumpuhkan"</string> diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index e05827346e..6f54dd4c08 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ဤပင်မစာမျက်နှာတွင် နေရာလွတ် မရှိတော့ပါ"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"အနှစ်သက်ဆုံးများ ထားရာတွင် နေရာလွတ် မကျန်တော့ပါ"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"အက်ပ်စာရင်း"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ရှာဖွေမှု ရလဒ်များ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"တစ်ကိုယ်ရေသုံး အက်ပ်စာရင်း"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"အလုပ်သုံး အက်ပ်စာရင်း"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ဖယ်ရှားမည်"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ပင်မမျက်နှာစာတွင် ရှိသော အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများ ကို အပ်ပလီကေးရှင်းအား ပြောင်းခွင့်ပြုခြင်း"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g>သည် ဖုန်းခေါ်ဆိုခွင့် မရှိပါ"</string> <string name="gadget_error_text" msgid="740356548025791839">"ဝိဂျက်ကို ဖွင့်၍မရပါ"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"စနစ်ထည့်သွင်းခြင်း အပြီးသတ်ရန် တို့ပါ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ဝိဂျက်ဆက်တင်များ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"စနစ်ထည့်သွင်းခြင်း အပြီးသတ်ရန် တို့ပါ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ဤအပ်ပလီကေးရှင်းမှာ စစ်စတန်ပိုင်းဆိုင်ရာ အပ်ပလီကေးရှင်းဖြစ်ပါသည်။ ထုတ်ပစ်၍ မရပါ"</string> <string name="folder_hint_text" msgid="5174843001373488816">"အမည်ကို တည်းဖြတ်ပါ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ကို ပိတ်ထားသည်"</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 0f7dae98ab..f204bb72b1 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Ingen ledig plass på denne startskjermen"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Favoritter-skuffen er full"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"App-liste"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Søkeresultater"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Personlige apper-liste"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Jobbapper-liste"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Fjern"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Lar appen endre innstillingene og snarveiene på startsiden."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> har ikke tillatelse til å ringe"</string> <string name="gadget_error_text" msgid="740356548025791839">"Kan ikke laste inn modulen"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Trykk for å fullføre konfigureringen"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Modulinnstillinger"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Trykk for å fullføre konfigureringen"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp som ikke kan avinstalleres."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Rediger navn"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Slo av <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 97c23ad2c9..98a364fd2a 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"यो होम स्क्रिनमा ठाउँ छैन"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"मन पर्ने ट्रे अब कुनै ठाँउ छैन"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"एपको सूची"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"खोज परिणामहरू"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"व्यक्तिगत अनुप्रयोगहरूको सूची"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"कार्यसम्बन्धी अनुप्रयोगहरूको सूची"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"हटाउनुहोस्"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"गृहमा एउटा एपलाई सेटिङ र सर्टकट बदल्न अनुमति दिनुहोस्।"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ले फोन कलहरू गर्न अनुमति छैन"</string> <string name="gadget_error_text" msgid="740356548025791839">"विजेट लोड गर्न सकिएन"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"सेटअप गर्ने प्रक्रिया पूरा गर्न ट्याप गर्नुहोस्"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"विजेटका सेटिङ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"सेटअप पूरा गर्न ट्याप गर्नुहोस्"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"यो प्रणाली एप हो र यसलाई स्थापना रद्द गर्न सकिँदैन।"</string> <string name="folder_hint_text" msgid="5174843001373488816">"नाम सम्पादन गर्नुहोस्"</string> <string name="disabled_app_label" msgid="6673129024321402780">"असक्षम पारिएको <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-night-v31/colors.xml b/res/values-night-v31/colors.xml new file mode 100644 index 0000000000..2c1bc90074 --- /dev/null +++ b/res/values-night-v31/colors.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?><!-- +/* +* Copyright (C) 2021 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> + <color name="home_settings_header_accent">@android:color/system_accent1_100</color> + <color name="home_settings_header_collapsed">@android:color/system_neutral1_700</color> + <color name="home_settings_header_expanded">@android:color/system_neutral1_900</color> + + <color name="home_settings_thumb_off_color">@android:color/system_neutral2_300</color> + <color name="home_settings_track_on_color">@android:color/system_accent2_700</color> + <color name="home_settings_track_off_color">@android:color/system_neutral1_700</color> +</resources>
\ No newline at end of file diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 05d2c7494a..4f35a2e5c2 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Er is geen ruimte op dit startscherm"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Geen ruimte meer in het vak \'Favorieten\'"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lijst met apps"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Zoekresultaten"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lijst met persoonlijke apps"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lijst met werk-apps"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Verwijderen"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"De app toestaan de instellingen en snelkoppelingen op de homepage te wijzigen."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> mag niet bellen"</string> <string name="gadget_error_text" msgid="740356548025791839">"Kan widget niet laden"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tik om het instellen af te ronden"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widgetinstellingen"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tik om instellen af te ronden"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dit is een systeemapp die niet kan worden verwijderd."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Naam bewerken"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> staat uit"</string> diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index b1d644551d..9ee1cf3bf7 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ଏହି ମୂଳସ୍କ୍ରିନରେ ଆଉ ଜାଗା ନାହିଁ"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ମନପସନ୍ଦ ଟ୍ରେରେ ଆଉ କୋଠରୀ ନାହିଁ"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ଆପ୍ ତାଲିକା"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ସନ୍ଧାନ ଫଳାଫଳ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ବ୍ୟକ୍ତିଗତ ଆପ୍ ତାଲିକା"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"କାର୍ଯ୍ୟକାରୀ ଆପ୍ ତାଲିକା"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ବାହାର କରନ୍ତୁ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ହୋମରେ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ଫୋନ୍ କଲ୍ କରିବାକୁ <xliff:g id="APP_NAME">%1$s</xliff:g>କୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ"</string> <string name="gadget_error_text" msgid="740356548025791839">"ୱିଜେଟ୍ ଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ସେଟ୍ ଅପ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ୱିଜେଟ ସେଟିଂସ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ସେଟଅପ ସମ୍ପୂର୍ଣ୍ଣ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ଏହା ଏକ ସିଷ୍ଟମ୍ ଆପ୍ ଅଟେ ଏବଂ ଏହା ଅନଇନଷ୍ଟଲ୍ କରାଯାଇ ପାରିବ ନାହିଁ।"</string> <string name="folder_hint_text" msgid="5174843001373488816">"ନାମ ସମ୍ପାଦନ କରନ୍ତୁ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ଅକ୍ଷମ କରାଗଲା"</string> @@ -120,7 +122,7 @@ <string name="auto_add_shortcuts_description" msgid="7117251166066978730">"ନୂଆ ଆପ୍ ପାଇଁ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"ଅଜଣା"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"କାଢ଼ି ଦିଅନ୍ତୁ"</string> - <string name="abandoned_search" msgid="891119232568284442">"Search"</string> + <string name="abandoned_search" msgid="891119232568284442">"ସନ୍ଧାନ କରନ୍ତୁ"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ଏହି ଆପ୍ ଇନଷ୍ଟଲ୍ ହୋଇନାହିଁ"</string> <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ଏହି ଆଇକନ୍ ପାଇଁ ଆପ୍ ଇନଷ୍ଟଲ୍ ହୋଇନାହିଁ। ଏହାକୁ ଆପଣ ଆପ୍ ପାଇଁ ବାହାର କରିପାରିବେ କିମ୍ୱା ସର୍ଚ୍ଚ କରି ପାରିବେ ଏବଂ ଏହାକୁ ମାନୁଆଲ୍ ଭାବରେ ଇନଷ୍ଟଲ୍ କରିପାରିବେ।"</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> ଇନଷ୍ଟଲ୍ କରାଯାଉଛି, <xliff:g id="PROGRESS">%2$s</xliff:g> ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି"</string> diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index f352e22f22..300fedc16f 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -47,7 +47,7 @@ <string name="widgets_and_shortcuts_count" msgid="7209136747878365116">"<xliff:g id="WIDGETS_COUNT">%1$s</xliff:g>, <xliff:g id="SHORTCUTS_COUNT">%2$s</xliff:g>"</string> <string name="widget_button_text" msgid="2880537293434387943">"ਵਿਜੇਟ"</string> <string name="widgets_full_sheet_search_bar_hint" msgid="8484659090860596457">"ਖੋਜੋ"</string> - <string name="widgets_full_sheet_cancel_button_description" msgid="5766167035728653605">"ਖੋਜ ਬਾਕਸ ਤੋਂ ਸਪੱਸ਼ਟ ਲਿਖਤ"</string> + <string name="widgets_full_sheet_cancel_button_description" msgid="5766167035728653605">"ਖੋਜ ਬਾਕਸ ਤੋਂ ਲਿਖਤ ਕਲੀਅਰ ਕਰੋ"</string> <string name="no_widgets_available" msgid="4337693382501046170">"ਵਿਜੇਟ ਜਾਂ ਸ਼ਾਰਟਕੱਟ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> <string name="no_search_results" msgid="3787956167293097509">"ਕੋਈ ਵੀ ਵਿਜੇਟ ਜਾਂ ਸ਼ਾਰਟਕੱਟ ਨਹੀਂ ਮਿਲਿਆ"</string> <string name="widgets_full_sheet_personal_tab" msgid="2743540105607120182">"ਨਿੱਜੀ"</string> @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਜਗ੍ਹਾ ਨਹੀਂ ਬਚੀ"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ਮਨਪਸੰਦ ਟ੍ਰੇ ਵਿੱਚ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ।"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ਐਪ ਸੂਚੀ"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ਖੋਜ ਨਤੀਜੇ"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ਨਿੱਜੀ ਐਪਾਂ ਦੀ ਸੂਚੀ"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"ਕਾਰਜ-ਸਥਾਨ ਸੰਬੰਧੀ ਐਪਾਂ ਦੀ ਸੂਚੀ"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ਹਟਾਓ"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਫ਼ੋਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ"</string> <string name="gadget_error_text" msgid="740356548025791839">"ਵਿਜੇਟ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"ਸੈੱਟਅੱਪ ਪੂਰਾ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ਵਿਜੇਟ ਸੈਟਿੰਗਾਂ"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"ਸੈੱਟਅੱਪ ਪੂਰਾ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ਇਹ ਇੱਕ ਸਿਸਟਮ ਐਪ ਹੈ ਅਤੇ ਇਸਨੂੰ ਅਣਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string> <string name="folder_hint_text" msgid="5174843001373488816">"ਨਾਮ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string> @@ -122,7 +124,7 @@ <string name="abandoned_clean_this" msgid="7610119707847920412">"ਹਟਾਓ"</string> <string name="abandoned_search" msgid="891119232568284442">"ਖੋਜੋ"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ਇਹ ਐਪ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string> - <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ਇਸ ਪ੍ਰਤੀਕ ਲਈ ਐਪ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ ਜਾਂ ਐਪ ਖੋਜ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸਨੂੰ ਮੈਨੂਅਲੀ ਸਥਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।"</string> + <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ਇਸ ਪ੍ਰਤੀਕ ਲਈ ਐਪ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤੀ ਹੋਈ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ ਜਾਂ ਐਪ ਨੂੰ ਹੱਥੀਂ ਖੋਜ ਕੇ ਉਸਨੂੰ ਸਥਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।"</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਸਥਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, <xliff:g id="PROGRESS">%2$s</xliff:g> ਪੂਰਾ ਹੋਇਆ"</string> <string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> ਡਾਉਨਲੋਡ ਹੋਰ ਰਿਹਾ ਹੈ, <xliff:g id="PROGRESS">%2$s</xliff:g> ਸੰਪੂਰਣ"</string> <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> ਸਥਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ"</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 1d5321b7e5..9f5f7d4be6 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Brak miejsca na tym ekranie głównym"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Brak miejsca w Ulubionych"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista aplikacji"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Wyniki wyszukiwania"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista aplikacji osobistych"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista aplikacji służbowych"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Usuń"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Umożliwia aplikacji zmianę ustawień i skrótów na ekranie głównym."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nie może wykonywać połączeń telefonicznych"</string> <string name="gadget_error_text" msgid="740356548025791839">"Nie udało się załadować widżetu"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Kliknij, aby dokończyć konfigurację"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Ustawienia widżetu"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Kliknij, aby dokończyć konfigurację"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"To aplikacja systemowa i nie można jej odinstalować."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edytuj nazwę"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> jest wyłączona"</string> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index f0ba02156a..636724969f 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Sem espaço neste ecrã principal."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Não existe mais espaço no tabuleiro de Favoritos"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de aplicações"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultados da pesquisa"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de aplicações pessoais"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de aplicações de trabalho"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remover"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite à app alterar as definições e os atalhos no Ecrã Principal."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"O <xliff:g id="APP_NAME">%1$s</xliff:g> não tem autorização para efetuar chamadas telefónicas"</string> <string name="gadget_error_text" msgid="740356548025791839">"Não é possível carregar o widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Toque para concluir a configuração"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Definições de widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Toque para concluir a configuração"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"É uma app de sistema e não pode ser desinstalada."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Edite o nome"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> desativado"</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 74bca02e82..453a8ef892 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Não há espaço nesta tela inicial"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Sem espaço na bandeja de favoritos"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de apps"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Resultados da pesquisa"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de apps pessoais"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de apps profissionais"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Remover"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite que o app altere as configurações e os atalhos na tela inicial."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> não tem permissão para fazer chamadas"</string> <string name="gadget_error_text" msgid="740356548025791839">"Não é possível carregar o widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Toque para concluir a configuração"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Configurações de widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Toque para concluir a configuração"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Este é um app do sistema e não pode ser desinstalado."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Editar nome"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> desativado"</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index c8791067d9..a72965b306 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Nu există spațiu liber pe acest ecran de pornire"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Spațiu epuizat în bara Preferate"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista de aplicații"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultatele căutării"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista de aplicații personale"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista de aplicații de serviciu"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Eliminați"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Permite aplicației să modifice setările și comenzile rapide din ecranul de pornire."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nu are permisiunea de a apela"</string> <string name="gadget_error_text" msgid="740356548025791839">"Widgetul nu poate fi încărcat"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Atingeți pentru a finaliza configurarea"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Setări pentru widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Atingeți pentru a finaliza configurarea"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Aceasta este o aplicație de sistem și nu poate fi dezinstalată."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Modificați numele"</string> <string name="disabled_app_label" msgid="6673129024321402780">"S-a dezactivat <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 241554261d..89c233e463 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"На главном экране нет свободного места."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"В разделе \"Избранное\" больше нет места"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Список приложений"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Результаты поиска"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Открыть список личных приложений"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Открыть список приложений для работы"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Удалить"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Приложение сможет изменять настройки и ярлыки на главном экране."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> не может делать телефонные звонки"</string> <string name="gadget_error_text" msgid="740356548025791839">"Не удается загрузить виджет."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Нажмите, чтобы завершить настройку."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Настройки виджета"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Нажмите, чтобы завершить настройку."</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Это системное приложение, его нельзя удалить."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Измените название"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> отключено"</string> diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index aefcae892c..5e58e489ea 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"මෙම මුල් තිරයේ ඉඩ නැත"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ප්රියතම දෑ ඇති තැටියේ තවත් ඉඩ නොමැත"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"යෙදුම් ලැයිස්තුව"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"සෙවීම් ප්රතිඵල"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"පෞද්ගලික යෙදුම් ලැයිස්තුව"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"වැඩ යෙදුම් ලැයිස්තුව"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ඉවත් කරන්න"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"මුල් පිටුවේ සැකසීම් සහ කෙටිමං ඉවත් කිරීමට යෙදුමට අවසර දෙයි."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> හට දුරකථන ඇමතුම් සිදු කිරීමට ඉඩ නොදේ"</string> <string name="gadget_error_text" msgid="740356548025791839">"විජට් පූරණය කළ නොහැකිය"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"පිහිටුවීම අවසන් කිරීමට තට්ටු කරන්න"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"විජට් සැකසීම්"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"පිහිටුවීම අවසන් කිරීමට තට්ටු කරන්න"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"මෙය පද්ධති යෙදුමක් වන අතර අස්ථාපනය කළ නොහැක."</string> <string name="folder_hint_text" msgid="5174843001373488816">"නම සංස්කරණය කරන්න"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> අබල කෙරිණි"</string> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 5ad3599c27..b2e270c0a0 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Na tejto ploche nie je miesto"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Na paneli Obľúbené položky už nie je miesto"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Zoznam aplikácií"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Výsledky vyhľadávania"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Zoznam osobných aplikácií"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Zoznam pracovných aplikácií"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Odstrániť"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Povoľuje aplikácii zmeniť nastavenia a odkazy na ploche."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g> nemá povolenie uskutočňovať telefonické hovory"</string> <string name="gadget_error_text" msgid="740356548025791839">"Miniaplikáciu sa nepodarilo načítať"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Nastavenie dokončíte klepnutím"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Nastavenia miniaplikácie"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Nastavenie dokončíte klepnutím"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Toto je systémová aplikácia a nedá sa odinštalovať."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Úprava názvu"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g> je deaktivovaná"</string> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 830d25360c..4c3126f16a 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Na tem začetnem zaslonu ni prostora."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"V vrstici za priljubljene ni več prostora"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Seznam aplikacij"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultati iskanja"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Seznam osebnih aplikacij"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Seznam delovnih aplikacij"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Odstrani"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Aplikaciji dovoli spreminjanje nastavitev in bližnjic na začetnem zaslonu."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> ni dovoljeno opravljanje klicev"</string> <string name="gadget_error_text" msgid="740356548025791839">"Pripomočka ni mogoče naložiti."</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Dotaknite se, da dokončate postopek nastavitve."</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Nastavitve pripomočka"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Dotaknite se, da dokončate postopek nastavitve."</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"To je sistemska aplikacija in je ni mogoče odstraniti."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Urejanje imena"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je onemogočena"</string> diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 9498d9674d..6bc2d2f04c 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Nuk ka vend në këtë ekran bazë"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Nuk ka më hapësirë në tabakanë \"Të preferuarat\""</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Lista e aplikacioneve"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Rezultatet e kërkimit"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Lista e aplikacioneve personale"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Lista e aplikacioneve të punës"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Hiqe"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Lejon aplikacionin të ndryshojë cilësimet dhe shkurtoret në ekranin bazë."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> nuk lejohet të kryejë telefonata"</string> <string name="gadget_error_text" msgid="740356548025791839">"S\'mund të ngarkohet miniaplikacioni"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Trokit për të përfunduar konfigurimin"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Cilësimet e miniaplikacionit"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Trokit për të përfunduar konfigurimin"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ky është aplikacion sistemi dhe nuk mund të çinstalohet."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Redakto emrin"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> u çaktivizua"</string> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 44829b05ee..8e07ba7603 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -71,6 +71,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Нема простора на овом почетном екрану"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Нема више простора на траци Омиљено"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Листа апликација"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Резултати претраге"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Листа личних апликација"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Листа пословних апликација"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Уклони"</string> @@ -87,7 +88,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Дозвољава апликацији да мења подешавања и пречице на почетном екрану."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> нема дозволу за упућивање телефонских позива"</string> <string name="gadget_error_text" msgid="740356548025791839">"Учитавање виџета није успело"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Додирните да бисте довршили подешавање"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Подешавања виџета"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Додирните да бисте довршили подешавање"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ово је системска апликација и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Измените назив"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Апликација <xliff:g id="APP_NAME">%1$s</xliff:g> је онемогућена"</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 19e40935b2..726d2ec676 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Det finns inte plats på den här startskärmen."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Favoritfältet är fullt"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Applista"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Sökresultat"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Listan Personliga appar"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Listan Jobbappar"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ta bort"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Tillåter att appen ändrar inställningar och genvägar på startsidan."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> har inte behörighet att ringa samtal"</string> <string name="gadget_error_text" msgid="740356548025791839">"Det gick inte att läsa in widgeten"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Tryck för att slutföra konfigureringen"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widgetinställningar"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Tryck för att slutföra konfigureringen"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Det här är en systemapp som inte kan avinstalleras."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Redigera namn"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> har inaktiverats"</string> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 43abecb9a2..2a9a18763e 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Hakuna nafasi kwenye Skrini hii ya kwanza"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Hakuna nafasi zaidi katika treya ya Vipendeleo"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Orodha ya programu"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Matokeo ya utafutaji"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Orodha ya programu za binafsi"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Orodha ya programu za kazini"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Ondoa"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Huruhusu programu kubadilisha mipangilio na njia za mkato katika skrini ya Mwanzo."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> hairuhusiwi kupiga simu"</string> <string name="gadget_error_text" msgid="740356548025791839">"Imeshindwa kupakia wijeti"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Gusa ili umalize kuweka mipangilio"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Mipangilio ya wijeti"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Gusa ili umalize kuweka mipangilio"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Hii ni programu ya mfumo na haiwezi kuondolewa."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Badilisha Jina"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> imezimwa"</string> diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index c4ee9ae523..d8ff289d4e 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"இந்த முகப்புத் திரையில் இடமில்லை"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"பிடித்தவை ட்ரேயில் இடமில்லை"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ஆப்ஸின் பட்டியல்"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"தேடல் முடிவுகள்"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"தனிப்பட்ட ஆப்ஸ் பட்டியல்"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"பணி ஆப்ஸ் பட்டியல்"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"அகற்று"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"முகப்பில் உள்ள அமைப்பு மற்றும் குறுக்குவழிகளை மாற்ற ஆப்ஸை அனுமதிக்கிறது."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ஃபோன் அழைப்புகள் செய்ய, <xliff:g id="APP_NAME">%1$s</xliff:g> அனுமதிக்கப்படவில்லை"</string> <string name="gadget_error_text" msgid="740356548025791839">"விட்ஜெட்டை ஏற்ற முடியவில்லை"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"அமைவை நிறைவுசெய்யத் தட்டவும்"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"விட்ஜெட் அமைப்புகள்"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"அமைவை நிறைவுசெய்யத் தட்டவும்"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"இது அமைப்பு ஆப்ஸ் என்பதால் நிறுவல் நீக்கம் செய்ய முடியாது."</string> <string name="folder_hint_text" msgid="5174843001373488816">"பெயரைத் திருத்துதல்"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> முடக்கப்பட்டது"</string> @@ -96,13 +98,13 @@ <string name="default_scroll_format" msgid="7475544710230993317">"பக்கம் %1$d / %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"முகப்புத் திரை %1$d of %2$d"</string> <string name="workspace_new_page" msgid="257366611030256142">"புதிய முகப்புத் திரை பக்கம்"</string> - <string name="folder_opened" msgid="94695026776264709">"திறக்கப்பட்டக் கோப்புறை, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> - <string name="folder_tap_to_close" msgid="4625795376335528256">"கோப்புறையை மூட, தட்டவும்"</string> + <string name="folder_opened" msgid="94695026776264709">"திறக்கப்பட்ட ஃபோல்டர், <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> + <string name="folder_tap_to_close" msgid="4625795376335528256">"ஃபோல்டரை மூட, தட்டவும்"</string> <string name="folder_tap_to_rename" msgid="4017685068016979677">"மாற்றிய பெயரைச் சேமிக்க, தட்டவும்"</string> - <string name="folder_closed" msgid="4100806530910930934">"கோப்புறை மூடப்பட்டது"</string> - <string name="folder_renamed" msgid="1794088362165669656">"கோப்புறை <xliff:g id="NAME">%1$s</xliff:g> என மறுபெயரிடப்பட்டது"</string> - <string name="folder_name_format_exact" msgid="8626242716117004803">"கோப்புறை: <xliff:g id="NAME">%1$s</xliff:g>, <xliff:g id="SIZE">%2$d</xliff:g> கோப்புகள்"</string> - <string name="folder_name_format_overflow" msgid="4270108890534995199">"கோப்புறை: <xliff:g id="NAME">%1$s</xliff:g>, <xliff:g id="SIZE">%2$d</xliff:g> அல்லது அதற்கு அதிகமான கோப்புகள்"</string> + <string name="folder_closed" msgid="4100806530910930934">"ஃபோல்டர் மூடப்பட்டது"</string> + <string name="folder_renamed" msgid="1794088362165669656">"ஃபோல்டர் <xliff:g id="NAME">%1$s</xliff:g> என மறுபெயரிடப்பட்டது"</string> + <string name="folder_name_format_exact" msgid="8626242716117004803">"ஃபோல்டர்: <xliff:g id="NAME">%1$s</xliff:g>, <xliff:g id="SIZE">%2$d</xliff:g> ஃபைல்கள்"</string> + <string name="folder_name_format_overflow" msgid="4270108890534995199">"ஃபோல்டர்: <xliff:g id="NAME">%1$s</xliff:g>, <xliff:g id="SIZE">%2$d</xliff:g> அல்லது அதற்கு அதிகமான ஃபைல்கள்"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"வால்பேப்பர்கள்"</string> <string name="styles_wallpaper_button_text" msgid="8216961355289236794">"வால்பேப்பர் & ஸ்டைல்"</string> <string name="settings_button_text" msgid="8873672322605444408">"முகப்பு அமைப்புகள்"</string> @@ -138,11 +140,11 @@ <string name="move_to_position" msgid="6750008980455459790">"நிலை <xliff:g id="NUMBER">%1$s</xliff:g>க்கு நகர்த்து"</string> <string name="move_to_hotseat_position" msgid="6295412897075147808">"விரும்பும் நிலை <xliff:g id="NUMBER">%1$s</xliff:g>க்கு நகர்த்து"</string> <string name="item_moved" msgid="4606538322571412879">"உருப்படி நகர்த்தப்பட்டது"</string> - <string name="add_to_folder" msgid="9040534766770853243">"இந்தக் கோப்புறையில் சேர்க்கும்: <xliff:g id="NAME">%1$s</xliff:g>"</string> - <string name="add_to_folder_with_app" msgid="4534929978967147231">"<xliff:g id="NAME">%1$s</xliff:g> உள்ள கோப்புறையில் சேர்க்கும்"</string> - <string name="added_to_folder" msgid="4793259502305558003">"கோப்புறையில் உருப்படி சேர்க்கப்பட்டது"</string> - <string name="create_folder_with" msgid="4050141361160214248">"இதனுடன் கோப்புறையை உருவாக்கும்: <xliff:g id="NAME">%1$s</xliff:g>"</string> - <string name="folder_created" msgid="6409794597405184510">"கோப்புறை உருவாக்கப்பட்டது"</string> + <string name="add_to_folder" msgid="9040534766770853243">"இந்த ஃபோல்டரில் சேர்க்கும்: <xliff:g id="NAME">%1$s</xliff:g>"</string> + <string name="add_to_folder_with_app" msgid="4534929978967147231">"<xliff:g id="NAME">%1$s</xliff:g> உள்ள ஃபோல்டரில் சேர்க்கும்"</string> + <string name="added_to_folder" msgid="4793259502305558003">"ஃபோல்டரில் உருப்படி சேர்க்கப்பட்டது"</string> + <string name="create_folder_with" msgid="4050141361160214248">"இதனுடன் ஃபோல்டரை உருவாக்கும்: <xliff:g id="NAME">%1$s</xliff:g>"</string> + <string name="folder_created" msgid="6409794597405184510">"ஃபோல்டர் உருவாக்கப்பட்டது"</string> <string name="action_move_to_workspace" msgid="1603837886334246317">"முகப்புத் திரைக்கு நகர்த்து"</string> <string name="action_resize" msgid="1802976324781771067">"அளவு மாற்று"</string> <string name="action_increase_width" msgid="8773715375078513326">"அகலத்தை அதிகரி"</string> diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index 68938883b1..a1718a747e 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -47,7 +47,7 @@ <string name="widgets_and_shortcuts_count" msgid="7209136747878365116">"<xliff:g id="WIDGETS_COUNT">%1$s</xliff:g>, <xliff:g id="SHORTCUTS_COUNT">%2$s</xliff:g>"</string> <string name="widget_button_text" msgid="2880537293434387943">"విడ్జెట్లు"</string> <string name="widgets_full_sheet_search_bar_hint" msgid="8484659090860596457">"సెర్చ్ చేయండి"</string> - <string name="widgets_full_sheet_cancel_button_description" msgid="5766167035728653605">"సెర్చ్ బాక్స్ నుండి టెక్స్ట్ను క్లియర్ చేయి"</string> + <string name="widgets_full_sheet_cancel_button_description" msgid="5766167035728653605">"సెర్చ్ బాక్స్ నుండి టెక్స్ట్ను క్లియర్ చేయండి"</string> <string name="no_widgets_available" msgid="4337693382501046170">"విడ్జెట్లు, షార్ట్కట్లు అందుబాటులో లేవు"</string> <string name="no_search_results" msgid="3787956167293097509">"విడ్జెట్లు లేదా షార్ట్కట్లు కనుగొనబడలేదు"</string> <string name="widgets_full_sheet_personal_tab" msgid="2743540105607120182">"వ్యక్తిగత గ్యాడ్జెట్స్"</string> @@ -58,19 +58,20 @@ <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"విడ్జెట్ సెట్టింగ్లను మార్చడానికి ట్యాప్ చేయండి"</string> <string name="widget_education_close_button" msgid="8676165703104836580">"అర్థమైంది"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"విడ్జెట్ సెట్టింగ్లను మార్చండి"</string> - <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"అప్లికేషన్లను శోధించండి"</string> + <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"యాప్ల కోసం సెర్చ్ చేయండి"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"అప్లికేషన్లను లోడ్ చేస్తోంది…"</string> <string name="all_apps_no_search_results" msgid="3200346862396363786">"\"<xliff:g id="QUERY">%1$s</xliff:g>\"కి సరిపోలే అప్లికేషన్లేవీ కనుగొనబడలేదు"</string> - <string name="all_apps_search_market_message" msgid="1366263386197059176">"మరిన్ని యాప్ల కోసం వెతుకు"</string> + <string name="all_apps_search_market_message" msgid="1366263386197059176">"మరిన్ని యాప్ల కోసం సెర్చ్ చేయండి"</string> <string name="label_application" msgid="8531721983832654978">"యాప్"</string> <string name="notifications_header" msgid="1404149926117359025">"నోటిఫికేషన్లు"</string> <string name="long_press_shortcut_to_add" msgid="5405328730817637737">"షార్ట్కట్ను తరలించడానికి తాకి & నొక్కి ఉంచు."</string> <string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"షార్ట్కట్ను తరలించడానికి లేదా అనుకూల చర్యలను ఉపయోగించడానికి రెండుసార్లు నొక్కండి & హోల్డ్ చేయండి."</string> <string name="out_of_space" msgid="6692471482459245734">"ఈ మొదటి స్క్రీన్లో స్థలం లేదు"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ఇష్టమైనవి ట్రేలో ఖాళీ లేదు"</string> - <string name="all_apps_button_label" msgid="8130441508702294465">"యాప్ల జాబితా"</string> - <string name="all_apps_button_personal_label" msgid="1315764287305224468">"వ్యక్తిగత యాప్ల జాబితా"</string> - <string name="all_apps_button_work_label" msgid="7270707118948892488">"కార్యాలయ యాప్ల జాబితా"</string> + <string name="all_apps_button_label" msgid="8130441508702294465">"యాప్ల లిస్ట్"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"సెర్చ్ ఫలితాలు"</string> + <string name="all_apps_button_personal_label" msgid="1315764287305224468">"వ్యక్తిగత యాప్ల లిస్ట్"</string> + <string name="all_apps_button_work_label" msgid="7270707118948892488">"కార్యాలయ యాప్ల లిస్ట్"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"తీసివేయి"</string> <string name="uninstall_drop_target_label" msgid="4722034217958379417">"అన్ఇన్స్టాల్ చేయి"</string> <string name="app_info_drop_target_label" msgid="692894985365717661">"యాప్ సమాచారం"</string> @@ -78,14 +79,15 @@ <string name="dismiss_prediction_label" msgid="3357562989568808658">"యాప్ను సూచించవద్దు"</string> <string name="pin_prediction" msgid="4196423321649756498">"సూచనను పిన్ చేయండి"</string> <string name="permlab_install_shortcut" msgid="5632423390354674437">"షార్ట్కట్లను ఇన్స్టాల్ చేయడం"</string> - <string name="permdesc_install_shortcut" msgid="923466509822011139">"వినియోగదారు ప్రమేయం లేకుండా సత్వరమార్గాలను జోడించడానికి యాప్ను అనుమతిస్తుంది."</string> - <string name="permlab_read_settings" msgid="1941457408239617576">"హోమ్ సెట్టింగ్లు మరియు సత్వరమార్గాలను చదవడం"</string> - <string name="permdesc_read_settings" msgid="5833423719057558387">"హోమ్లో సెట్టింగ్లు మరియు సత్వరమార్గాలను చదవడానికి యాప్ను అనుమతిస్తుంది."</string> - <string name="permlab_write_settings" msgid="3574213698004620587">"హోమ్ సెట్టింగ్లు మరియు సత్వరమార్గాలను వ్రాయడం"</string> - <string name="permdesc_write_settings" msgid="5440712911516509985">"హోమ్లో సెట్టింగ్లు మరియు సత్వరమార్గాలను మార్చడానికి యాప్ను అనుమతిస్తుంది."</string> + <string name="permdesc_install_shortcut" msgid="923466509822011139">"వినియోగదారు ప్రమేయం లేకుండా షార్ట్కట్లను జోడించడానికి యాప్ను అనుమతిస్తుంది."</string> + <string name="permlab_read_settings" msgid="1941457408239617576">"హోమ్ సెట్టింగ్లు మరియు షార్ట్కట్లను చదవడం"</string> + <string name="permdesc_read_settings" msgid="5833423719057558387">"హోమ్లో సెట్టింగ్లు మరియు షార్ట్కట్లను చదవడానికి యాప్ను అనుమతిస్తుంది."</string> + <string name="permlab_write_settings" msgid="3574213698004620587">"హోమ్ సెట్టింగ్లు మరియు షార్ట్కట్లను వ్రాయడం"</string> + <string name="permdesc_write_settings" msgid="5440712911516509985">"హోమ్లో సెట్టింగ్లు మరియు షార్ట్కట్లను మార్చడానికి యాప్ను అనుమతిస్తుంది."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"ఫోన్ కాల్స్ను చేసేందుకు <xliff:g id="APP_NAME">%1$s</xliff:g>కి అనుమతి లేదు"</string> <string name="gadget_error_text" msgid="740356548025791839">"విడ్జెట్ను లోడ్ చేయడం సాధ్యం కాలేదు"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"సెటప్ను పూర్తి చేయడానికి ట్యాప్ చేయండి"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"విడ్జెట్ సెట్టింగ్లు"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"సెటప్ను ముగించడానికి ట్యాప్ చేయండి"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ఇది సిస్టమ్ యాప్ మరియు దీన్ని అన్ఇన్స్టాల్ చేయడం సాధ్యపడదు."</string> <string name="folder_hint_text" msgid="5174843001373488816">"పేరును ఎడిట్ చేయండి"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> నిలిపివేయబడింది"</string> @@ -122,12 +124,12 @@ <string name="abandoned_clean_this" msgid="7610119707847920412">"తీసివేయి"</string> <string name="abandoned_search" msgid="891119232568284442">"సెర్చ్"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ఈ యాప్ ఇన్స్టాల్ చేయబడలేదు"</string> - <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ఈ చిహ్నం యొక్క యాప్ ఇన్స్టాల్ చేయబడలేదు. మీరు దీన్ని తీసివేయవచ్చు లేదా ఆ యాప్ కోసం శోధించి దాన్ని మాన్యువల్గా ఇన్స్టాల్ చేయవచ్చు."</string> + <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ఈ ఐకాన్కు చెందిన యాప్ ఇన్స్టాల్ చేయలేదు. మీరు దీన్ని తీసివేయవచ్చు లేదా ఆ యాప్ కోసం సెర్చ్ చేసి, దాన్ని మాన్యువల్గా ఇన్స్టాల్ చేయవచ్చు."</string> <string name="app_installing_title" msgid="5864044122733792085">"<xliff:g id="NAME">%1$s</xliff:g>ను ఇన్స్టాల్ చేయడం, <xliff:g id="PROGRESS">%2$s</xliff:g> పూర్తయింది"</string> <string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> డౌన్లోడ్ అవుతోంది, <xliff:g id="PROGRESS">%2$s</xliff:g> పూర్తయింది"</string> <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> ఇన్స్టాల్ కావడానికి వేచి ఉంది"</string> - <string name="widgets_list" msgid="796804551140113767">"విడ్జెట్ల జాబితా"</string> - <string name="widgets_list_closed" msgid="6141506579418771922">"విడ్జెట్ల జాబితా మూసివేయబడింది"</string> + <string name="widgets_list" msgid="796804551140113767">"విడ్జెట్ల లిస్ట్"</string> + <string name="widgets_list_closed" msgid="6141506579418771922">"విడ్జెట్ల లిస్ట్ మూసివేయబడింది"</string> <string name="action_add_to_workspace" msgid="8902165848117513641">"హోమ్ స్క్రీన్కు జోడించండి"</string> <string name="action_move_here" msgid="2170188780612570250">"అంశాన్ని ఇక్కడికి తరలించు"</string> <string name="item_added_to_workspace" msgid="4211073925752213539">"అంశం హోమ్స్క్రీన్కి జోడించబడింది"</string> @@ -141,7 +143,7 @@ <string name="add_to_folder" msgid="9040534766770853243">"ఈ ఫోల్డర్కి జోడించండి: <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="add_to_folder_with_app" msgid="4534929978967147231">"<xliff:g id="NAME">%1$s</xliff:g> గల ఫోల్డర్కు జోడించు"</string> <string name="added_to_folder" msgid="4793259502305558003">"అంశం ఫోల్డర్కు జోడించబడింది"</string> - <string name="create_folder_with" msgid="4050141361160214248">"ఈ పేరుతో ఫోల్డర్ను సృష్టించండి: <xliff:g id="NAME">%1$s</xliff:g>"</string> + <string name="create_folder_with" msgid="4050141361160214248">"ఈ పేరుతో ఫోల్డర్ను క్రియేట్ చేయండి: <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="folder_created" msgid="6409794597405184510">"ఫోల్డర్ సృష్టించబడింది"</string> <string name="action_move_to_workspace" msgid="1603837886334246317">"హోమ్స్క్రీన్కు తరలించు"</string> <string name="action_resize" msgid="1802976324781771067">"పరిమాణం మార్చు"</string> @@ -150,7 +152,7 @@ <string name="action_decrease_width" msgid="1374549771083094654">"వెడల్పును తగ్గించు"</string> <string name="action_decrease_height" msgid="282377193880900022">"ఎత్తును తగ్గించు"</string> <string name="widget_resized" msgid="9130327887929620">"విడ్జెట్ పరిమాణం వెడల్పు <xliff:g id="NUMBER_0">%1$s</xliff:g>కి, ఎత్తు <xliff:g id="NUMBER_1">%2$s</xliff:g>కి మార్చబడింది"</string> - <string name="action_deep_shortcut" msgid="2864038805849372848">"సత్వరమార్గాలు"</string> + <string name="action_deep_shortcut" msgid="2864038805849372848">"షార్ట్కట్స్"</string> <string name="shortcuts_menu_with_notifications_description" msgid="2676582286544232849">"షార్ట్కట్లు మరియు నోటిఫికేషన్లు"</string> <string name="action_dismiss_notification" msgid="5909461085055959187">"తీసివేయి"</string> <string name="accessibility_close" msgid="2277148124685870734">"మూసివేస్తుంది"</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index fe4468649d..a3f68719a9 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"ไม่มีที่ว่างในหน้าจอหลักนี้"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"ไม่มีพื้นที่เหลือในถาดรายการโปรด"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"รายชื่อแอป"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"ผลการค้นหา"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"รายการแอปส่วนตัว"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"รายการแอปสำหรับทำงาน"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"นำออก"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"อนุญาตให้แอปเปลี่ยนการตั้งค่าและทางลัดในหน้าแรก"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ไม่ได้รับอนุญาตให้โทรออก"</string> <string name="gadget_error_text" msgid="740356548025791839">"โหลดวิดเจ็ตไม่ได้"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"แตะเพื่อสิ้นสุดการตั้งค่า"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"การตั้งค่าวิดเจ็ต"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"แตะเพื่อสิ้นสุดการตั้งค่า"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"นี่เป็นแอประบบและไม่สามารถถอนการติดตั้งได้"</string> <string name="folder_hint_text" msgid="5174843001373488816">"แก้ไขชื่อ"</string> <string name="disabled_app_label" msgid="6673129024321402780">"ปิดใช้ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 726241ad53..c2065e3222 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Walang espasyo sa Home screen na ito"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Wala nang lugar sa tray ng Mga Paborito"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Listahan ng mga app"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Mga resulta ng paghahanap"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Listahan ng mga personal na app"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Listahan ng mga app sa trabaho"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Alisin"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Pinapayagan ang app na baguhin ang mga setting at shortcut sa Home."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Hindi pinahihintulutang tumawag ang <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="gadget_error_text" msgid="740356548025791839">"Hindi ma-load ang widget"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"I-tap para tapusin ang pag-set up"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Mga setting ng widget"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"I-tap para tapusin ang pag-set up"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Isa itong app ng system at hindi maaaring i-uninstall."</string> <string name="folder_hint_text" msgid="5174843001373488816">"I-edit ang Pangalan"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Naka-disable ang <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 0c6a498adb..534130da17 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Bu Ana ekranda yer yok"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Favoriler tepsisinde başka yer kalmadı"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Uygulamalar listesi"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Arama sonuçları"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Kişisel uygulamalar listesi"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"İş uygulamaları listesi"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Kaldır"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Uygulamaya, Ana ekrandaki ayarları ve kısayolları değiştirme izni verir."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> uygulamasının telefon etmesine izin verilmiyor"</string> <string name="gadget_error_text" msgid="740356548025791839">"Widget yüklenemiyor"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Kurulumu tamamlamak için dokunun"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Widget ayarları"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Kurulumu tamamlamak için dokunun"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Bu bir sistem uygulamasıdır ve yüklemesi kaldırılamaz."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Adı Düzenle"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> devre dışı"</string> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 3e5233079e..7431479026 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -73,6 +73,7 @@ <string name="out_of_space" msgid="6692471482459245734">"На головному екрані немає місця"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"В області \"Вибране\" немає місця"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Список додатків"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Результати пошуку"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Список особистих додатків"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Список робочих додатків"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Видалити"</string> @@ -89,7 +90,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Дозволяє програмі змінювати налаштування та ярлики на головному екрані."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"Додаток <xliff:g id="APP_NAME">%1$s</xliff:g> не має дозволу телефонувати"</string> <string name="gadget_error_text" msgid="740356548025791839">"Не вдається завантажити віджет"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Торкніться, щоб завершити налаштування"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Налаштування віджета"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Торкніться, щоб завершити налаштування"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Це системна програма, її неможливо видалити."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Редагувати назву"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> вимкнено"</string> diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index a44a376f55..4e5b8ada35 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"اس ہوم اسکرین پر کوئی گنجائش نہیں ہے"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"پسندیدہ ٹرے میں مزید کوئی گنجائش نہیں ہے"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"ایپس کی فہرست"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"تلاش کے نتائج"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"ذاتی ایپس کی فہرست"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"دفتری ایپس کی فہرست"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"ہٹائیں"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"ایپ کو ہوم میں ترتیبات اور شارٹ کٹس کو تبدیل کرنے کی اجازت دیتا ہے۔"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> کو فون کالیں کرنے کی اجازت نہیں ہے"</string> <string name="gadget_error_text" msgid="740356548025791839">"ویجیٹ لوڈ نہیں کیا جا سکتا"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"سیٹ اپ مکمل کرنے کے لیے تھپتھپائیں"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"ویجیٹ کی ترتیبات"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"سیٹ اپ مکمل کرنے کیلئے تھپتھپائیں"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"یہ ایک سسٹم ایپ ہے اور اسے اَن انسٹال نہیں کیا جا سکتا ہے۔"</string> <string name="folder_hint_text" msgid="5174843001373488816">"نام میں ترمیم کریں"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> غیر فعال ہے"</string> diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 0cac80ff65..3f11515a63 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Bosh ekranda joy qolmadi."</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ajratilganlarda birorta ham xona yo‘q"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Ilovalar ro‘yxati"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Qidiruv natijalari"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Shaxsiy ilovalar ro‘yxati"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Ishga oid ilovalar ro‘yxati"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Olib tashlash"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Ilovaga \"Uy\" ekranidagi yorliqlar va sozlamalrni o‘zgartirish uchun ruxsat beradi."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasiga qo‘ng‘iroqlarni amalga oshirishga ruxsat berilmagan"</string> <string name="gadget_error_text" msgid="740356548025791839">"Vidjet yuklanmadi"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Sozlashni yakunlash uchun bosing"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Vidjet sozlamalari"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Sozlashni yakunlash uchun bosing"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Bu tizim ilovasi, shuning uchun o‘chirib bo‘lmaydi."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Nomini tahrirlash"</string> <string name="disabled_app_label" msgid="6673129024321402780">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasi o‘chirib qo‘yildi"</string> diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml index d73ee57080..c2ebeffe66 100644 --- a/res/values-v31/colors.xml +++ b/res/values-v31/colors.xml @@ -42,6 +42,16 @@ <color name="folder_dot_color">@android:color/system_accent2_50</color> + <color name="home_settings_header_accent">@android:color/system_accent1_600</color> + <color name="home_settings_header_collapsed">@android:color/system_neutral1_100</color> + <color name="home_settings_header_expanded">@android:color/system_neutral1_50</color> + + <color name="home_settings_state_on_color">@android:color/system_accent1_100</color> + <color name="home_settings_state_off_color">@android:color/system_accent2_100</color> + <color name="home_settings_thumb_off_color">@android:color/system_neutral2_100</color> + <color name="home_settings_track_on_color">@android:color/system_accent1_600</color> + <color name="home_settings_track_off_color">@android:color/system_neutral2_600</color> + <color name="workspace_accent_color_light">@android:color/system_accent1_100</color> <color name="workspace_accent_color_dark">@android:color/system_accent2_600</color> </resources> diff --git a/res/values-v31/config.xml b/res/values-v31/config.xml new file mode 100644 index 0000000000..afb9e6d9e8 --- /dev/null +++ b/res/values-v31/config.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 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> + <bool name="home_settings_icon_space_reserved">false</bool> + <bool name="home_settings_allow_divider">false</bool> +</resources>
\ No newline at end of file diff --git a/res/values-v31/styles.xml b/res/values-v31/styles.xml new file mode 100644 index 0000000000..0d2fce0307 --- /dev/null +++ b/res/values-v31/styles.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +* Copyright (C) 2021 The Android Open Source Project +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +--> + +<resources> + + <style name="HomeSettings.Theme" parent="@android:style/Theme.DeviceDefault.Settings"> + <item name="android:listPreferredItemPaddingEnd">16dp</item> + <item name="android:listPreferredItemPaddingStart">24dp</item> + <item name="android:navigationBarColor">@android:color/transparent</item> + <item name="android:statusBarColor">@android:color/transparent</item> + <item name="android:switchStyle">@style/HomeSettings.SwitchStyle</item> + <item name="android:textAppearanceListItem">@style/HomeSettings.PreferenceTitle</item> + <item name="android:windowActionBar">false</item> + <item name="android:windowNoTitle">true</item> + <item name="preferenceTheme">@style/HomeSettings.PreferenceTheme</item> + </style> + + <style name="HomeSettings.PreferenceTheme" parent="@style/PreferenceThemeOverlay"> + <item name="preferenceCategoryStyle">@style/HomeSettings.CategoryStyle</item> + <item name="preferenceCategoryTitleTextAppearance">@style/HomeSettings.CategoryTitle</item> + <item name="preferenceFragmentCompatStyle">@style/HomeSettings.FragmentCompatStyle</item> + <item name="preferenceScreenStyle">@style/HomeSettings.PreferenceScreenStyle</item> + <item name="preferenceStyle">@style/HomeSettings.PreferenceStyle</item> + <item name="switchPreferenceStyle">@style/HomeSettings.SwitchPreferenceStyle</item> + </style> + + <style name="HomeSettings.CategoryStyle" parent="@style/Preference.Category.Material"> + <item name="allowDividerAbove">@bool/home_settings_allow_divider</item> + <item name="allowDividerBelow">@bool/home_settings_allow_divider</item> + <item name="iconSpaceReserved">@bool/home_settings_icon_space_reserved</item> + </style> + + <style name="HomeSettings.PreferenceStyle" parent="@style/Preference.Material"> + <item name="iconSpaceReserved">@bool/home_settings_icon_space_reserved</item> + </style> + + <style name="HomeSettings.PreferenceScreenStyle" + parent="@style/Preference.PreferenceScreen.Material"> + <item name="iconSpaceReserved">@bool/home_settings_icon_space_reserved</item> + </style> + + <style name="HomeSettings.SwitchPreferenceStyle" + parent="@style/Preference.SwitchPreference.Material"> + <item name="iconSpaceReserved">@bool/home_settings_icon_space_reserved</item> + </style> + + <style name="HomeSettings.SwitchStyle" + parent="@android:style/Widget.Material.CompoundButton.Switch"> + <item name="android:switchMinWidth">52dp</item> + <item name="android:thumb">@drawable/home_settings_switch_thumb</item> + <item name="android:track">@drawable/home_settings_switch_track</item> + </style> + + <style name="HomeSettings.PreferenceTitle" + parent="@android:style/TextAppearance.Material.Subhead"> + <item name="android:fontFamily">google-sans</item> + <item name="android:textSize">20sp</item> + </style> + + <style name="HomeSettings.CategoryTitle" parent="@android:style/TextAppearance.Material.Body2"> + <item name="android:fontFamily">google-sans-text-medium</item> + </style> + + <style name="HomeSettings.CollapsingToolbar" parent="@style/Theme.MaterialComponents.DayNight"> + <item name="colorAccent">@color/home_settings_header_accent</item> + <item name="colorPrimary">@color/home_settings_header_expanded</item> + <item name="elevationOverlayColor">?attr/colorPrimary</item> + <item name="elevationOverlayEnabled">true</item> + </style> + + <style name="HomeSettings.CollapsedToolbarTitle" + parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"> + <item name="android:fontFamily">google-sans</item> + </style> + + <style name="HomeSettings.ExpandedToolbarTitle" parent="HomeSettings.CollapsedToolbarTitle"> + <item name="android:textSize">36sp</item> + </style> +</resources>
\ No newline at end of file diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index ba9670aea1..6ab04af95d 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Không còn khoảng trống trên Màn hình chính này"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Không còn chỗ trong khay Mục yêu thích"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Danh sách ứng dụng"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Kết quả tìm kiếm"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Danh sách ứng dụng cá nhân"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Danh sách ứng dụng công việc"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Xóa"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Cho phép ứng dụng thay đổi cài đặt và lối tắt trên Màn hình chính."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> không được phép thực hiện cuộc gọi điện thoại"</string> <string name="gadget_error_text" msgid="740356548025791839">"Không thể tải tiện ích"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Nhấn để hoàn tất quá trình thiết lập"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Cài đặt tiện ích"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Nhấn để hoàn tất thiết lập"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Đây là ứng dụng hệ thống và không thể gỡ cài đặt."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Chỉnh sửa tên"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Đã vô hiệu hóa <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 8fda4ef050..b02890ca64 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"此主屏幕上已没有空间"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"收藏栏已满"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"应用列表"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"搜索结果"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"个人应用列表"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"工作应用列表"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"移除"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"允许应用更改主屏幕中的设置和快捷方式。"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"不允许使用“<xliff:g id="APP_NAME">%1$s</xliff:g>”拨打电话"</string> <string name="gadget_error_text" msgid="740356548025791839">"无法加载微件"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"点按即可完成设置"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"微件设置"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"点按即可完成设置"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"这是系统应用,无法卸载。"</string> <string name="folder_hint_text" msgid="5174843001373488816">"修改名称"</string> <string name="disabled_app_label" msgid="6673129024321402780">"已停用<xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 5887ed627f..d6013451f6 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"這個主畫面沒有空間了"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"我的收藏寄存區沒有足夠空間"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"應用程式清單"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"搜尋結果"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"個人應用程式清單"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"工作應用程式清單"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"移除"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"允許應用程式更改主畫面中的設定和捷徑。"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"不允許 <xliff:g id="APP_NAME">%1$s</xliff:g> 撥打電話"</string> <string name="gadget_error_text" msgid="740356548025791839">"無法載入小工具"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"輕按即可完成設定"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"小工具設定"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"輕按即可完成設定"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,無法將其解除安裝。"</string> <string name="folder_hint_text" msgid="5174843001373488816">"編輯名稱"</string> <string name="disabled_app_label" msgid="6673129024321402780">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」已停用"</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index a65a7526d8..74850f4807 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"這個主畫面已無空間"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"「我的最愛」匣已無可用空間"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"應用程式清單"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"搜尋結果"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"個人應用程式清單"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"辦公應用程式清單"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"移除"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"允許應用程式變更主畫面中的設定和捷徑。"</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> 無法撥打電話"</string> <string name="gadget_error_text" msgid="740356548025791839">"無法載入小工具"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"輕觸即可完成設定"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"小工具設定"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"輕觸即可完成設定"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,不可解除安裝。"</string> <string name="folder_hint_text" msgid="5174843001373488816">"編輯名稱"</string> <string name="disabled_app_label" msgid="6673129024321402780">"已停用 <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 9b590e7b6b..e3414a67af 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -69,6 +69,7 @@ <string name="out_of_space" msgid="6692471482459245734">"Asikho isikhala kulesi sikrini sasekhaya"</string> <string name="hotseat_out_of_space" msgid="7448809638125333693">"Asisekho isikhala kwitreyi lezintandokazi"</string> <string name="all_apps_button_label" msgid="8130441508702294465">"Uhlu lwezinhlelo zokusebenza"</string> + <string name="all_apps_search_results" msgid="5889367432531296759">"Imiphumela yosesho"</string> <string name="all_apps_button_personal_label" msgid="1315764287305224468">"Uhlu lwezinhlelo zokusebenza zomuntu siqu"</string> <string name="all_apps_button_work_label" msgid="7270707118948892488">"Uhlu lwezinhlelo zokusebenza zomsebenzi"</string> <string name="remove_drop_target_label" msgid="7812859488053230776">"Susa"</string> @@ -85,7 +86,8 @@ <string name="permdesc_write_settings" msgid="5440712911516509985">"Ivumela uhlelo lokusebenza ukuthi lushintshe izilungiselelo nezinqamuleli Ekhaya."</string> <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ayivunyelwe ukwenza amakholi wefoni"</string> <string name="gadget_error_text" msgid="740356548025791839">"Ayikwazi ukulayisha iwijethi"</string> - <string name="gadget_setup_text" msgid="1745356155479272374">"Thepha ukuze uqede ukusetha"</string> + <string name="gadget_setup_text" msgid="8348374825537681407">"Amasethingi ewijethi"</string> + <string name="gadget_complete_setup_text" msgid="309040266978007925">"Thepha ukuze uqede ukusetha"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa."</string> <string name="folder_hint_text" msgid="5174843001373488816">"Hlela igama"</string> <string name="disabled_app_label" msgid="6673129024321402780">"Kukhutshaziwe <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> diff --git a/res/values/config.xml b/res/values/config.xml index 04c359ede3..72959b2d5c 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -34,6 +34,9 @@ <!-- View tag key used to determine if we should fade in the child views.. --> <string name="popup_container_iterate_children" translatable="false">popup_container_iterate_children</string> + <!-- config used to determine if header protection is supported in AllApps --> + <bool name="config_header_protection_supported">false</bool> + <!-- Workspace --> <!-- The duration (in ms) of the fade animation on the object outlines, used when we are dragging objects around on the home screen. --> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index f434644996..a1e4cd9bb4 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -109,6 +109,7 @@ <dimen name="all_apps_tip_bottom_margin">8dp</dimen> <!-- The size of corner radius of the arrow in the arrow toast. --> <dimen name="arrow_toast_corner_radius">2dp</dimen> + <dimen name="arrow_toast_elevation">2dp</dimen> <dimen name="arrow_toast_arrow_width">10dp</dimen> <!-- Search bar in All Apps --> @@ -196,6 +197,7 @@ <dimen name="drop_target_text_size">16sp</dimen> <dimen name="drop_target_shadow_elevation">2dp</dimen> <dimen name="drop_target_bar_margin_horizontal">4dp</dimen> + <dimen name="drop_target_button_drawable_padding">8dp</dimen> <!-- the distance an icon must be dragged before button drop targets accept it --> <dimen name="drag_distanceThreshold">30dp</dimen> @@ -241,6 +243,7 @@ <dimen name="bg_popup_padding">2dp</dimen> <dimen name="bg_popup_item_width">216dp</dimen> <dimen name="bg_popup_item_height">56dp</dimen> + <dimen name="bg_popup_item_vertical_padding">12dp</dimen> <dimen name="pre_drag_view_scale">6dp</dimen> <!-- an icon with shortcuts must be dragged this far before the container is removed. --> <dimen name="deep_shortcuts_start_drag_threshold">16dp</dimen> @@ -271,6 +274,8 @@ <!-- Notifications --> <dimen name="bg_round_rect_radius">8dp</dimen> + <dimen name="notification_max_trans">8dp</dimen> + <dimen name="notification_space">8dp</dimen> <dimen name="notification_padding">16dp</dimen> <dimen name="notification_padding_top">18dp</dimen> <dimen name="notification_header_text_size">14sp</dimen> @@ -331,4 +336,5 @@ <dimen name="search_row_icon_size">48dp</dimen> <dimen name="search_row_small_icon_size">32dp</dimen> <dimen name="padded_rounded_button_padding">8dp</dimen> + </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index d1774e5a03..d7a2d47e7c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -153,6 +153,7 @@ <!-- All applications label --> <string name="all_apps_button_label">Apps list</string> + <string name="all_apps_search_results">Search results</string> <string name="all_apps_button_personal_label">Personal apps list</string> <string name="all_apps_button_work_label">Work apps list</string> @@ -199,8 +200,11 @@ <!-- Error text that lets a user know that the widget can't load. --> <string name="gadget_error_text">Can\'t load widget</string> + <!-- Button text. This button lets a user change a widget's settings. --> + <string name="gadget_setup_text">Widget settings</string> + <!-- Instructional text to encourage a user to finish setting up the widget. --> - <string name="gadget_setup_text">Tap to finish setup</string> + <string name="gadget_complete_setup_text">Tap to finish setup</string> <!-- Text to inform the user that they can't uninstall a system application --> <string name="uninstall_system_app_text">This is a system app and can\'t be uninstalled.</string> diff --git a/res/values/styles.xml b/res/values/styles.xml index d30b80c813..b7661b9798 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -147,18 +147,18 @@ <style name="AppTheme.Dark.DarkMainColor" parent="@style/LauncherTheme.Dark.DarkMainColor" /> <style name="AppTheme.Dark.DarkText" parent="@style/LauncherTheme.Dark.DarkText" /> - <style name="HomeSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings"> + <style name="HomeSettings.Theme" parent="@android:style/Theme.DeviceDefault.Settings"> <item name="android:navigationBarColor">?android:colorPrimaryDark</item> <item name="android:windowActionBar">false</item> <item name="android:windowNoTitle">true</item> - <item name="preferenceTheme">@style/HomeSettingsPreferenceTheme</item> + <item name="preferenceTheme">@style/HomeSettings.PreferenceTheme</item> </style> - <style name="HomeSettingsPreferenceTheme" parent="@style/PreferenceThemeOverlay.v14.Material"> - <item name="preferenceFragmentCompatStyle">@style/HomeSettingsFragmentCompatStyle</item> + <style name="HomeSettings.PreferenceTheme" parent="@style/PreferenceThemeOverlay.v14.Material"> + <item name="preferenceFragmentCompatStyle">@style/HomeSettings.FragmentCompatStyle</item> </style> - <style name="HomeSettingsFragmentCompatStyle" parent="@style/PreferenceFragment.Material"> + <style name="HomeSettings.FragmentCompatStyle" parent="@style/PreferenceFragment.Material"> <item name="android:layout">@layout/home_settings</item> </style> @@ -259,7 +259,7 @@ <!-- Drop targets --> <style name="DropTargetButtonBase" parent="@android:style/TextAppearance.DeviceDefault"> - <item name="android:drawablePadding">8dp</item> + <item name="android:drawablePadding">@dimen/drop_target_button_drawable_padding</item> <item name="android:padding">14dp</item> <item name="android:textColor">@color/drop_target_text</item> <item name="android:textSize">@dimen/drop_target_text_size</item> diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java index 61b5564941..bc4c982e4e 100644 --- a/src/com/android/launcher3/ButtonDropTarget.java +++ b/src/com/android/launcher3/ButtonDropTarget.java @@ -66,6 +66,8 @@ public abstract class ButtonDropTarget extends TextView private final int mDragDistanceThreshold; /** The size of the drawable shown in the drop target. */ private final int mDrawableSize; + /** The padding, in pixels, between the text and drawable. */ + private final int mDrawablePadding; protected CharSequence mText; protected Drawable mDrawable; @@ -85,6 +87,8 @@ public abstract class ButtonDropTarget extends TextView Resources resources = getResources(); mDragDistanceThreshold = resources.getDimensionPixelSize(R.dimen.drag_distanceThreshold); mDrawableSize = resources.getDimensionPixelSize(R.dimen.drop_target_text_size); + mDrawablePadding = resources.getDimensionPixelSize( + R.dimen.drop_target_button_drawable_padding); } @Override @@ -303,6 +307,8 @@ public abstract class ButtonDropTarget extends TextView mTextVisible = isVisible; setText(newText); setCompoundDrawablesRelative(mDrawable, null, null, null); + int drawablePadding = mTextVisible ? mDrawablePadding : 0; + setCompoundDrawablePadding(drawablePadding); } } diff --git a/src/com/android/launcher3/ExtendedEditText.java b/src/com/android/launcher3/ExtendedEditText.java index a4e1af6fb3..21bc479c22 100644 --- a/src/com/android/launcher3/ExtendedEditText.java +++ b/src/com/android/launcher3/ExtendedEditText.java @@ -99,8 +99,18 @@ public class ExtendedEditText extends EditText { } } - // inherited class can override to change the appearance of the edit text. - public void show() {} + /** + * Sets whether EditText background should be visible + * @param maxAlpha defines the maximum alpha the background should animates to + */ + public void setBackgroundVisibility(boolean visible, float maxAlpha) {} + + /** + * Returns whether a visible background is set on EditText + */ + public boolean getBackgroundVisibility() { + return getBackground() != null; + } public void showKeyboard() { mShowImeAfterFirstLayout = !showSoftInput(); diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 099f256982..5fb862ee95 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -218,7 +218,8 @@ import java.util.stream.Stream; * Default launcher application. */ public class Launcher extends StatefulActivity<LauncherState> implements LauncherExterns, - Callbacks, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin> { + Callbacks, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin>, + LauncherOverlayCallbacks { public static final String TAG = "Launcher"; public static final ActivityTracker<Launcher> ACTIVITY_TRACKER = new ActivityTracker<>(); @@ -619,7 +620,7 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche @Override public void setLauncherOverlay(LauncherOverlay overlay) { if (overlay != null) { - overlay.setOverlayCallbacks(new LauncherOverlayCallbacksImpl()); + overlay.setOverlayCallbacks(this); } mWorkspace.setLauncherOverlay(overlay); } @@ -1123,12 +1124,15 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche mAppWidgetHost.setActivityResumed(false); } - class LauncherOverlayCallbacksImpl implements LauncherOverlayCallbacks { - - public void onScrollChanged(float progress) { - if (mWorkspace != null) { - mWorkspace.onOverlayScrollChanged(progress); - } + /** + * {@code LauncherOverlayCallbacks} scroll amount. + * Indicates transition progress to -1 screen. + * @param progress From 0 to 1. + */ + @Override + public void onScrollChanged(float progress) { + if (mWorkspace != null) { + mWorkspace.onOverlayScrollChanged(progress); } } diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index eef3980f96..545f4c3999 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -72,6 +72,7 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.CancellationException; import java.util.concurrent.Executor; +import java.util.function.Consumer; import java.util.function.Supplier; /** @@ -376,7 +377,13 @@ public class LauncherModel extends LauncherApps.Callback implements InstallSessi loaderResults.bindWidgets(); return true; } else { - startLoaderForResults(loaderResults); + stopLoader(); + mLoaderTask = new LoaderTask( + mApp, mBgAllAppsList, mBgDataModel, mModelDelegate, loaderResults); + + // Always post the loader task, instead of running directly + // (even on same thread) so that we exit any nested synchronized blocks + MODEL_EXECUTOR.post(mLoaderTask); } } } @@ -399,25 +406,17 @@ public class LauncherModel extends LauncherApps.Callback implements InstallSessi } } - public void startLoaderForResults(LoaderResults results) { - synchronized (mLock) { - stopLoader(); - mLoaderTask = new LoaderTask( - mApp, mBgAllAppsList, mBgDataModel, mModelDelegate, results); - - // Always post the loader task, instead of running directly (even on same thread) so - // that we exit any nested synchronized blocks - MODEL_EXECUTOR.post(mLoaderTask); - } - } - - public void startLoaderForResultsIfNotLoaded(LoaderResults results) { + /** + * Loads the model if not loaded + * @param callback called with the data model upon successful load or null on model thread. + */ + public void loadAsync(Consumer<BgDataModel> callback) { synchronized (mLock) { - if (!isModelLoaded()) { - Log.d(TAG, "Workspace not loaded, loading now"); - startLoaderForResults(results); + if (!mModelLoaded && !mIsLoaderTaskRunning) { + startLoader(); } } + MODEL_EXECUTOR.post(() -> callback.accept(isModelLoaded() ? mBgDataModel : null)); } @Override diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java index 519b63d58e..bebbf4f622 100644 --- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java +++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java @@ -31,7 +31,7 @@ import android.view.ViewGroup; import com.android.launcher3.CellLayout.ContainerType; import com.android.launcher3.folder.FolderIcon; import com.android.launcher3.views.ActivityContext; -import com.android.launcher3.widget.LauncherAppWidgetHostView; +import com.android.launcher3.widget.NavigableAppWidgetHostView; public class ShortcutAndWidgetContainer extends ViewGroup implements FolderIcon.FolderIconParent { static final String TAG = "ShortcutAndWidgetContainer"; @@ -104,9 +104,9 @@ public class ShortcutAndWidgetContainer extends ViewGroup implements FolderIcon. public void setupLp(View child) { CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams(); - if (child instanceof LauncherAppWidgetHostView) { + if (child instanceof NavigableAppWidgetHostView) { DeviceProfile profile = mActivity.getDeviceProfile(); - ((LauncherAppWidgetHostView) child).getWidgetInset(profile, mTempRect); + ((NavigableAppWidgetHostView) child).getWidgetInset(profile, mTempRect); lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX, mCountY, profile.appWidgetScale.x, profile.appWidgetScale.y, mBorderSpacing, mTempRect); } else { @@ -129,8 +129,8 @@ public class ShortcutAndWidgetContainer extends ViewGroup implements FolderIcon. CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams(); final DeviceProfile dp = mActivity.getDeviceProfile(); - if (child instanceof LauncherAppWidgetHostView) { - ((LauncherAppWidgetHostView) child).getWidgetInset(dp, mTempRect); + if (child instanceof NavigableAppWidgetHostView) { + ((NavigableAppWidgetHostView) child).getWidgetInset(dp, mTempRect); lp.setup(mCellWidth, mCellHeight, invertLayoutHorizontally(), mCountX, mCountY, dp.appWidgetScale.x, dp.appWidgetScale.y, mBorderSpacing, mTempRect); } else { @@ -178,16 +178,16 @@ public class ShortcutAndWidgetContainer extends ViewGroup implements FolderIcon. */ public void layoutChild(View child) { CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams(); - if (child instanceof LauncherAppWidgetHostView) { - LauncherAppWidgetHostView lahv = (LauncherAppWidgetHostView) child; + if (child instanceof NavigableAppWidgetHostView) { + NavigableAppWidgetHostView nahv = (NavigableAppWidgetHostView) child; // Scale and center the widget to fit within its cells. DeviceProfile profile = mActivity.getDeviceProfile(); float scaleX = profile.appWidgetScale.x; float scaleY = profile.appWidgetScale.y; - lahv.setScaleToFit(Math.min(scaleX, scaleY)); - lahv.setTranslationForCentering(-(lp.width - (lp.width * scaleX)) / 2.0f, + nahv.setScaleToFit(Math.min(scaleX, scaleY)); + nahv.setTranslationForCentering(-(lp.width - (lp.width * scaleX)) / 2.0f, -(lp.height - (lp.height * scaleY)) / 2.0f); } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 5bdc4022c2..2bb4e5c711 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -687,8 +687,9 @@ public class Workspace extends PagedView<WorkspacePageIndicator> CellLayout finalScreen = mWorkspaceScreens.get(finalScreenId); // If the final screen is empty, convert it to the extra empty screen - if (finalScreen.getShortcutsAndWidgets().getChildCount() == 0 && - !finalScreen.isDropPending()) { + if (finalScreen != null + && finalScreen.getShortcutsAndWidgets().getChildCount() == 0 + && !finalScreen.isDropPending()) { mWorkspaceScreens.remove(finalScreenId); mScreenOrder.removeValue(finalScreenId); diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index d2c71b2afe..e779ee80ea 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -59,6 +59,7 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget.DragObject; +import com.android.launcher3.ExtendedEditText; import com.android.launcher3.Insettable; import com.android.launcher3.InsettableFrameLayout; import com.android.launcher3.R; @@ -118,7 +119,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private SpannableStringBuilder mSearchQueryBuilder = null; protected boolean mUsingTabs; - private boolean mSearchModeWhileUsingTabs = false; + private boolean mIsSearching; + private boolean mHasWorkApps; protected RecyclerViewFastScroller mTouchHandler; protected final Point mFastScrollerOffset = new Point(); @@ -132,6 +134,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private final float mHeaderThreshold; private ScrimView mScrimView; private int mHeaderColor; + private int mTabsProtectionAlpha; public AllAppsContainerView(Context context) { this(context, null); @@ -189,7 +192,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo int currentPage = state.getInt(BUNDLE_KEY_CURRENT_PAGE, 0); if (currentPage != 0 && mViewPager != null) { mViewPager.setCurrentPage(currentPage); - rebindAdapters(true); + rebindAdapters(); } else { reset(true); } @@ -243,9 +246,10 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo break; } } + mHasWorkApps = hasWorkApps; if (!mAH[AdapterHolder.MAIN].appsList.hasFilter()) { - rebindAdapters(hasWorkApps); - if (hasWorkApps) { + rebindAdapters(); + if (mHasWorkApps) { resetWorkProfile(); } } @@ -322,6 +326,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mViewPager.getNextPage() == 0 ? R.string.all_apps_button_personal_label : R.string.all_apps_button_work_label; + } else if (mIsSearching) { + descriptionRes = R.string.all_apps_search_results; } else { descriptionRes = R.string.all_apps_button_label; } @@ -370,7 +376,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo }); mHeader = findViewById(R.id.all_apps_header); - rebindAdapters(mUsingTabs, true /* force */); + rebindAdapters(true /* force */); mSearchContainer = findViewById(R.id.search_container_all_apps); mSearchUiManager = (SearchUiManager) mSearchContainer; @@ -439,11 +445,12 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } } - private void rebindAdapters(boolean showTabs) { - rebindAdapters(showTabs, false /* force */); + private void rebindAdapters() { + rebindAdapters(false /* force */); } - protected void rebindAdapters(boolean showTabs, boolean force) { + protected void rebindAdapters(boolean force) { + boolean showTabs = mHasWorkApps && !mIsSearching; if (showTabs == mUsingTabs && !force) { return; } @@ -454,7 +461,6 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mAllAppsStore.unregisterIconContainer(mAH[AdapterHolder.WORK].recyclerView); if (mUsingTabs) { - setupWorkToggle(); mAH[AdapterHolder.MAIN].setup(mViewPager.getChildAt(0), mPersonalMatcher); mAH[AdapterHolder.WORK].setup(mViewPager.getChildAt(1), mWorkMatcher); mAH[AdapterHolder.WORK].recyclerView.setId(R.id.apps_list_view_work); @@ -485,6 +491,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } private void setupWorkToggle() { + removeWorkToggle(); if (Utilities.ATLEAST_P) { mWorkModeSwitch = (WorkModeSwitch) mLauncher.getLayoutInflater().inflate( R.layout.work_mode_fab, this, false); @@ -497,10 +504,20 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } } + private void removeWorkToggle() { + if (mWorkModeSwitch == null) return; + if (mWorkModeSwitch.getParent() == this) { + this.removeView(mWorkModeSwitch); + } + mWorkModeSwitch = null; + } + private void replaceRVContainer(boolean showTabs) { for (int i = 0; i < mAH.length; i++) { - if (mAH[i].recyclerView != null) { - mAH[i].recyclerView.setLayoutManager(null); + AllAppsRecyclerView rv = mAH[i].recyclerView; + if (rv != null) { + rv.setLayoutManager(null); + rv.setAdapter(null); } } View oldView = getRecyclerViewContainer(); @@ -517,8 +534,10 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mViewPager = (AllAppsPagedView) newView; mViewPager.initParentViews(this); mViewPager.getPageIndicator().setOnActivePageChangedListener(this); + setupWorkToggle(); } else { mViewPager = null; + removeWorkToggle(); } } @@ -537,14 +556,6 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mWorkModeSwitch.setWorkTabVisible(currentActivePage == AdapterHolder.WORK && mAllAppsStore.hasModelFlag( FLAG_HAS_SHORTCUT_PERMISSION | FLAG_QUIET_MODE_CHANGE_PERMISSION)); - - if (currentActivePage == AdapterHolder.WORK) { - if (mWorkModeSwitch.getParent() == null) { - addView(mWorkModeSwitch); - } - } else { - removeView(mWorkModeSwitch); - } } } @@ -621,18 +632,15 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo for (int i = 0; i < mAH.length; i++) { mAH[i].adapter.setLastSearchQuery(query); } - if (mUsingTabs) { - mSearchModeWhileUsingTabs = true; - rebindAdapters(false); // hide tabs - } + mIsSearching = true; + rebindAdapters(); mHeader.setCollapsed(true); } public void onClearSearchResult() { - if (mSearchModeWhileUsingTabs) { - rebindAdapters(true); // show tabs - mSearchModeWhileUsingTabs = false; - } + mIsSearching = false; + rebindAdapters(); + getActiveRecyclerView().scrollToTop(); } public void onSearchResultsChanged() { @@ -706,13 +714,12 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mHeaderPaint.setColor(mHeaderColor); mHeaderPaint.setAlpha((int) (getAlpha() * Color.alpha(mHeaderColor))); if (mHeaderPaint.getColor() != mScrimColor && mHeaderPaint.getColor() != 0) { - int bottom = mUsingTabs && mHeader.mHeaderCollapsed ? mHeader.getVisibleBottomBound() - : mSearchContainer.getBottom(); - canvas.drawRect(0, 0, canvas.getWidth(), bottom + getTranslationY(), - mHeaderPaint); - - if (FeatureFlags.ENABLE_DEVICE_SEARCH.get() && getTranslationY() == 0) { - mSearchUiManager.getEditText().setBackground(null); + int bottom = (int) (mSearchContainer.getBottom() + getTranslationY()); + canvas.drawRect(0, 0, canvas.getWidth(), bottom, mHeaderPaint); + int tabsHeight = getFloatingHeaderView().getPeripheralProtectionHeight(); + if (mTabsProtectionAlpha > 0 && tabsHeight != 0) { + mHeaderPaint.setAlpha((int) (getAlpha() * mTabsProtectionAlpha)); + canvas.drawRect(0, bottom, canvas.getWidth(), bottom + tabsHeight, mHeaderPaint); } } } @@ -792,18 +799,29 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo protected void updateHeaderScroll(int scrolledOffset) { - float prog = Math.max(0, Math.min(1, (float) scrolledOffset / mHeaderThreshold)); + + float prog = Utilities.boundToRange((float) scrolledOffset / mHeaderThreshold, 0f, 1f); int viewBG = ColorUtils.blendARGB(mScrimColor, mHeaderProtectionColor, prog); int headerColor = ColorUtils.setAlphaComponent(viewBG, (int) (getSearchView().getAlpha() * 255)); - if (headerColor != mHeaderColor) { + int tabsAlpha = mHeader.getPeripheralProtectionHeight() == 0 ? 0 + : (int) (Utilities.boundToRange( + (scrolledOffset + mHeader.mSnappedScrolledY) / mHeaderThreshold, 0f, 1f) + * 255); + if (headerColor != mHeaderColor || mTabsProtectionAlpha != tabsAlpha) { mHeaderColor = headerColor; - getSearchView().setBackgroundColor(viewBG); - getFloatingHeaderView().setHeaderColor(viewBG); + mTabsProtectionAlpha = tabsAlpha; invalidateHeader(); - if (scrolledOffset == 0 && mSearchUiManager.getEditText() != null) { - mSearchUiManager.getEditText().show(); + } + if (mSearchUiManager.getEditText() != null) { + ExtendedEditText editText = mSearchUiManager.getEditText(); + boolean bgVisible = editText.getBackgroundVisibility(); + if (scrolledOffset == 0 && !mIsSearching) { + bgVisible = true; + } else if (scrolledOffset > mHeaderThreshold) { + bgVisible = false; } + editText.setBackgroundVisibility(bgVisible, 1 - prog); } } @@ -811,7 +829,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo * redraws header protection */ public void invalidateHeader() { - if (mScrimView != null && FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { + if (mScrimView != null && mHeader.isHeaderProtectionSupported()) { mScrimView.invalidate(); } } diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 2c84a3d4b9..bddbbd00b2 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -63,6 +63,13 @@ public class AllAppsRecyclerView extends BaseRecyclerView { private final SparseIntArray mCachedScrollPositions = new SparseIntArray(); private final AllAppsFastScrollHelper mFastScrollHelper; + + private final AdapterDataObserver mObserver = new RecyclerView.AdapterDataObserver() { + public void onChanged() { + mCachedScrollPositions.clear(); + } + }; + // The empty-search result background private AllAppsBackgroundDrawable mEmptySearchBackground; private int mEmptySearchBackgroundTopOffset; @@ -247,12 +254,13 @@ public class AllAppsRecyclerView extends BaseRecyclerView { @Override public void setAdapter(Adapter adapter) { + if (getAdapter() != null) { + getAdapter().unregisterAdapterDataObserver(mObserver); + } super.setAdapter(adapter); - adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { - public void onChanged() { - mCachedScrollPositions.clear(); - } - }); + if (adapter != null) { + adapter.registerAdapterDataObserver(mObserver); + } } @Override diff --git a/src/com/android/launcher3/allapps/FloatingHeaderView.java b/src/com/android/launcher3/allapps/FloatingHeaderView.java index 8ea83d56ac..debb5b20c1 100644 --- a/src/com/android/launcher3/allapps/FloatingHeaderView.java +++ b/src/com/android/launcher3/allapps/FloatingHeaderView.java @@ -17,9 +17,6 @@ package com.android.launcher3.allapps; import android.animation.ValueAnimator; import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; import android.util.ArrayMap; @@ -50,11 +47,10 @@ public class FloatingHeaderView extends LinearLayout implements ValueAnimator.AnimatorUpdateListener, PluginListener<AllAppsRow>, Insettable, OnHeightUpdatedListener { - private final Rect mClip = new Rect(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE); + private final Rect mRVClip = new Rect(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE); + private final Rect mHeaderClip = new Rect(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE); private final ValueAnimator mAnimator = ValueAnimator.ofInt(0, 0); - private final ValueAnimator mHeaderAnimator = ValueAnimator.ofInt(0, 1).setDuration(100); private final Point mTempOffset = new Point(); - private final Paint mBGPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private final RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() { @Override @@ -82,19 +78,19 @@ public class FloatingHeaderView extends LinearLayout implements } }; - private final int mHeaderTopPadding; - protected final Map<AllAppsRow, PluginHeaderRow> mPluginRows = new ArrayMap<>(); + private final int mHeaderTopPadding; + private final boolean mHeaderProtectionSupported; + protected ViewGroup mTabLayout; private AllAppsRecyclerView mMainRV; private AllAppsRecyclerView mWorkRV; private AllAppsRecyclerView mCurrentRV; private ViewGroup mParent; public boolean mHeaderCollapsed; - private int mSnappedScrolledY; + protected int mSnappedScrolledY; private int mTranslationY; - private int mHeaderColor; private boolean mForwardToRecyclerView; @@ -120,6 +116,8 @@ public class FloatingHeaderView extends LinearLayout implements super(context, attrs); mHeaderTopPadding = context.getResources() .getDimensionPixelSize(R.dimen.all_apps_header_top_padding); + mHeaderProtectionSupported = context.getResources().getBoolean( + R.bool.config_header_protection_supported); } @Override @@ -138,7 +136,6 @@ public class FloatingHeaderView extends LinearLayout implements } mFixedRows = rows.toArray(new FloatingHeaderRow[rows.size()]); mAllRows = mFixedRows; - mHeaderAnimator.addUpdateListener(valueAnimator -> invalidate()); } @Override @@ -285,7 +282,7 @@ public class FloatingHeaderView extends LinearLayout implements mHeaderCollapsed = false; } mTranslationY = currentScrollY; - } else if (!mHeaderCollapsed) { + } else { mTranslationY = currentScrollY - mSnappedScrolledY - mMaxTranslation; // update state vars @@ -295,31 +292,10 @@ public class FloatingHeaderView extends LinearLayout implements } else if (mTranslationY <= -mMaxTranslation) { // hide or stay hidden mHeaderCollapsed = true; mSnappedScrolledY = -mMaxTranslation; - mHeaderAnimator.setCurrentFraction(0); - mHeaderAnimator.start(); } } } - /** - * Set current header protection background color - */ - public void setHeaderColor(int color) { - mHeaderColor = color; - invalidate(); - } - - @Override - protected void dispatchDraw(Canvas canvas) { - if (mHeaderCollapsed && !mCollapsed && mTabLayout.getVisibility() == VISIBLE - && mHeaderColor != Color.TRANSPARENT && FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { - mBGPaint.setColor(mHeaderColor); - mBGPaint.setAlpha((int) (255 * mHeaderAnimator.getAnimatedFraction())); - canvas.drawRect(0, 0, getWidth(), getHeight() + mTranslationY, mBGPaint); - } - super.dispatchDraw(canvas); - } - protected void applyVerticalMove() { int uncappedTranslationY = mTranslationY; mTranslationY = Math.max(mTranslationY, -mMaxTranslation); @@ -336,11 +312,15 @@ public class FloatingHeaderView extends LinearLayout implements } mTabLayout.setTranslationY(mTranslationY); - mClip.top = mMaxTranslation + mTranslationY; + + int clipHeight = mHeaderTopPadding - getPaddingBottom(); + mRVClip.top = mTabsHidden ? clipHeight : 0; + mHeaderClip.top = clipHeight; // clipping on a draw might cause additional redraw - mMainRV.setClipBounds(mClip); + setClipBounds(mHeaderClip); + mMainRV.setClipBounds(mRVClip); if (mWorkRV != null) { - mWorkRV.setClipBounds(mClip); + mWorkRV.setClipBounds(mRVClip); } } @@ -421,6 +401,10 @@ public class FloatingHeaderView extends LinearLayout implements return false; } + public boolean isHeaderProtectionSupported() { + return mHeaderProtectionSupported; + } + @Override public boolean hasOverlappingRendering() { return false; @@ -444,10 +428,19 @@ public class FloatingHeaderView extends LinearLayout implements } /** - * Returns visible height of FloatingHeaderView contents + * Returns visible height of FloatingHeaderView contents requiring header protection */ - public int getVisibleBottomBound() { - return getBottom() + mTranslationY; + public int getPeripheralProtectionHeight() { + if (!mHeaderProtectionSupported) { + return 0; + } + + // we only want to show protection when work tab is available and header is either + // collapsed or animating to/from collapsed state + if (mTabsHidden || !mHeaderCollapsed) { + return 0; + } + return Math.max(getHeight() - getPaddingTop() + mTranslationY, 0); } } diff --git a/src/com/android/launcher3/allapps/LauncherAllAppsContainerView.java b/src/com/android/launcher3/allapps/LauncherAllAppsContainerView.java index f64b7cbd6c..b6dcec679b 100644 --- a/src/com/android/launcher3/allapps/LauncherAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/LauncherAllAppsContainerView.java @@ -22,7 +22,6 @@ import android.view.MotionEvent; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; -import com.android.launcher3.statemanager.StateManager.StateListener; /** * AllAppsContainerView with launcher specific callbacks @@ -31,8 +30,6 @@ public class LauncherAllAppsContainerView extends AllAppsContainerView { private final Launcher mLauncher; - private StateListener<LauncherState> mWorkTabListener; - public LauncherAllAppsContainerView(Context context) { this(context, null); } @@ -75,14 +72,6 @@ public class LauncherAllAppsContainerView extends AllAppsContainerView { } @Override - public void setupHeader() { - super.setupHeader(); - if (mWorkTabListener != null && !mUsingTabs) { - mLauncher.getStateManager().removeStateListener(mWorkTabListener); - } - } - - @Override public void onActivePageChanged(int currentActivePage) { super.onActivePageChanged(currentActivePage); } diff --git a/src/com/android/launcher3/allapps/WorkModeSwitch.java b/src/com/android/launcher3/allapps/WorkModeSwitch.java index a800d34758..5d3af08b46 100644 --- a/src/com/android/launcher3/allapps/WorkModeSwitch.java +++ b/src/com/android/launcher3/allapps/WorkModeSwitch.java @@ -51,6 +51,7 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi @Nullable private KeyboardInsetAnimationCallback mKeyboardInsetAnimationCallback; + private boolean mWorkTabVisible; public WorkModeSwitch(Context context) { this(context, null, 0); @@ -91,11 +92,10 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi */ public void setWorkTabVisible(boolean workTabVisible) { clearAnimation(); - if (workTabVisible) { + mWorkTabVisible = workTabVisible; + if (workTabVisible && mWorkEnabled) { setEnabled(true); - if (mWorkEnabled) { - setVisibility(VISIBLE); - } + setVisibility(VISIBLE); setAlpha(0); animate().alpha(1).start(); } else { @@ -105,7 +105,7 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi @Override public void onClick(View view) { - if (Utilities.ATLEAST_P) { + if (Utilities.ATLEAST_P && mWorkTabVisible) { setEnabled(false); Launcher.fromContext(getContext()).getStatsLogManager().logger().log( LAUNCHER_TURN_OFF_WORK_APPS_TAP); @@ -137,7 +137,7 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi @Override public WindowInsets onApplyWindowInsets(WindowInsets insets) { - if (Utilities.ATLEAST_R) { + if (Utilities.ATLEAST_R && mWorkTabVisible) { setTranslationY(0); if (insets.isVisible(WindowInsets.Type.ime())) { Insets keyboardInsets = insets.getInsets(WindowInsets.Type.ime()); diff --git a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java index 79718fb6df..0137e2a2c0 100644 --- a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java +++ b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java @@ -18,8 +18,10 @@ package com.android.launcher3.allapps.search; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ALLAPPS_FOCUSED_ITEM_SELECTED_WITH_IME; import android.text.Editable; +import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.TextWatcher; +import android.text.style.SuggestionSpan; import android.view.KeyEvent; import android.view.View; import android.view.View.OnFocusChangeListener; @@ -47,6 +49,7 @@ public class AllAppsSearchBarController protected SearchCallback<AdapterItem> mCallback; protected ExtendedEditText mInput; protected String mQuery; + private String[] mTextConversions; protected SearchAlgorithm<AdapterItem> mSearchAlgorithm; @@ -78,7 +81,20 @@ public class AllAppsSearchBarController @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - // Do nothing + mTextConversions = extractTextConversions(s); + } + + private static String[] extractTextConversions(CharSequence text) { + if (text instanceof SpannableStringBuilder) { + SpannableStringBuilder spanned = (SpannableStringBuilder) text; + SuggestionSpan[] suggestionSpans = + spanned.getSpans(0, text.length(), SuggestionSpan.class); + if (suggestionSpans != null && suggestionSpans.length > 0) { + spanned.removeSpan(suggestionSpans[0]); + return suggestionSpans[0].getSuggestions(); + } + } + return null; } @Override @@ -89,7 +105,7 @@ public class AllAppsSearchBarController mCallback.clearSearchResult(); } else { mSearchAlgorithm.cancel(false); - mSearchAlgorithm.doSearch(mQuery, mCallback); + mSearchAlgorithm.doSearch(mQuery, mTextConversions, mCallback); } } @@ -154,4 +170,4 @@ public class AllAppsSearchBarController public boolean isSearchFieldFocused() { return mInput.isFocused(); } -}
\ No newline at end of file +} diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index f066dc1e02..e0769dbfb5 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -181,7 +181,7 @@ public final class FeatureFlags { + "Ignored if ENABLE_SMARTSPACE_UNIVERSAL is enabled."); public static final BooleanFlag ENABLE_SMARTSPACE_FEEDBACK = getDebugFlag( - "ENABLE_SMARTSPACE_FEEDBACK", true, + "ENABLE_SMARTSPACE_FEEDBACK", false, "Adds a menu option to send feedback for Enhanced Smartspace."); public static final BooleanFlag ENABLE_SMARTSPACE_DISMISS = getDebugFlag( @@ -254,6 +254,10 @@ public final class FeatureFlags { "ENABLE_WALLPAPER_SCRIM", false, "Enables scrim over wallpaper for text protection."); + public static final BooleanFlag WIDGETS_IN_LAUNCHER_PREVIEW = getDebugFlag( + "WIDGETS_IN_LAUNCHER_PREVIEW", true, + "Enables widgets in Launcher preview for the Wallpaper app."); + public static void initialize(Context context) { synchronized (sDebugFlags) { for (DebugFlag flag : sDebugFlags) { diff --git a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java index 7a31ea01b5..fb25954e1d 100644 --- a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java +++ b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java @@ -29,6 +29,7 @@ import android.annotation.TargetApi; import android.app.Fragment; import android.app.WallpaperColors; import android.app.WallpaperManager; +import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; import android.content.Context; @@ -87,8 +88,11 @@ import com.android.launcher3.util.IntArray; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.BaseDragLayer; +import com.android.launcher3.widget.BaseLauncherAppWidgetHostView; +import com.android.launcher3.widget.LauncherAppWidgetHost; import com.android.launcher3.widget.LauncherAppWidgetProviderInfo; import com.android.launcher3.widget.LocalColorExtractor; +import com.android.launcher3.widget.NavigableAppWidgetHostView; import com.android.launcher3.widget.custom.CustomWidgetManager; import java.util.ArrayList; @@ -207,6 +211,7 @@ public class LauncherPreviewRenderer extends ContextWrapper private final Hotseat mHotseat; private final CellLayout mWorkspace; private final SparseIntArray mWallpaperColorResources; + private final AppWidgetHost mAppWidgetHost; public LauncherPreviewRenderer(Context context, InvariantDeviceProfile idp, @@ -273,6 +278,9 @@ public class LauncherPreviewRenderer extends ContextWrapper } else { mWallpaperColorResources = null; } + mAppWidgetHost = FeatureFlags.WIDGETS_IN_LAUNCHER_PREVIEW.get() + ? new LauncherPreviewAppWidgetHost(context) + : null; } /** Populate preview and render it. */ @@ -372,9 +380,20 @@ public class LauncherPreviewRenderer extends ContextWrapper private void inflateAndAddWidgets( LauncherAppWidgetInfo info, LauncherAppWidgetProviderInfo providerInfo) { - AppWidgetHostView view = new AppWidgetHostView(mContext); - view.setAppWidget(-1, providerInfo); - view.updateAppWidget(null); + AppWidgetHostView view; + if (FeatureFlags.WIDGETS_IN_LAUNCHER_PREVIEW.get()) { + view = mAppWidgetHost.createView(mContext, info.appWidgetId, providerInfo); + } else { + view = new NavigableAppWidgetHostView(this) { + @Override + protected boolean shouldAllowDirectClick() { + return false; + } + }; + view.setAppWidget(-1, providerInfo); + view.updateAppWidget(null); + } + view.setTag(info); if (mWallpaperColorResources != null) { @@ -504,4 +523,31 @@ public class LauncherPreviewRenderer extends ContextWrapper return true; } } + + private class LauncherPreviewAppWidgetHost extends AppWidgetHost { + + private LauncherPreviewAppWidgetHost(Context context) { + super(context, LauncherAppWidgetHost.APPWIDGET_HOST_ID); + } + + @Override + protected AppWidgetHostView onCreateView( + Context context, + int appWidgetId, + AppWidgetProviderInfo appWidget) { + return new LauncherPreviewAppWidgetHostView(LauncherPreviewRenderer.this); + } + } + + private static class LauncherPreviewAppWidgetHostView extends BaseLauncherAppWidgetHostView { + + private LauncherPreviewAppWidgetHostView(Context context) { + super(context); + } + + @Override + protected boolean shouldAllowDirectClick() { + return false; + } + } } diff --git a/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java b/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java index df493599ed..3b140a06bd 100644 --- a/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java +++ b/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java @@ -49,7 +49,6 @@ import com.android.launcher3.model.GridSizeMigrationTask; import com.android.launcher3.model.GridSizeMigrationTaskV2; import com.android.launcher3.model.LoaderTask; import com.android.launcher3.model.ModelDelegate; -import com.android.launcher3.model.ModelPreload; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.RunnableList; import com.android.launcher3.util.Themes; @@ -174,18 +173,13 @@ public class PreviewSurfaceRenderer { } }.run(); } else { - new ModelPreload() { - - @Override - public void onComplete(boolean isSuccess) { - if (isSuccess) { - MAIN_EXECUTOR.execute(() -> - renderView(inflationContext, getBgDataModel(), null)); - } else { - Log.e(TAG, "Model loading failed"); - } + LauncherAppState.getInstance(inflationContext).getModel().loadAsync(dataModel -> { + if (dataModel != null) { + MAIN_EXECUTOR.execute(() -> renderView(inflationContext, dataModel, null)); + } else { + Log.e(TAG, "Model loading failed"); } - }.start(inflationContext); + }); } } diff --git a/src/com/android/launcher3/model/ModelPreload.java b/src/com/android/launcher3/model/ModelPreload.java deleted file mode 100644 index 756b7da759..0000000000 --- a/src/com/android/launcher3/model/ModelPreload.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2018 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.launcher3.model; - -import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; - -import android.content.Context; -import android.util.Log; - -import androidx.annotation.WorkerThread; - -import com.android.launcher3.LauncherAppState; -import com.android.launcher3.LauncherModel; -import com.android.launcher3.LauncherModel.ModelUpdateTask; -import com.android.launcher3.model.BgDataModel.Callbacks; - -import java.util.concurrent.Executor; - -/** - * Utility class to preload LauncherModel - */ -public class ModelPreload implements ModelUpdateTask { - - private static final String TAG = "ModelPreload"; - - private LauncherAppState mApp; - private LauncherModel mModel; - private BgDataModel mBgDataModel; - private AllAppsList mAllAppsList; - - @Override - public final void init(LauncherAppState app, LauncherModel model, BgDataModel dataModel, - AllAppsList allAppsList, Executor uiExecutor) { - mApp = app; - mModel = model; - mBgDataModel = dataModel; - mAllAppsList = allAppsList; - } - - @Override - public final void run() { - mModel.startLoaderForResultsIfNotLoaded( - new LoaderResults(mApp, mBgDataModel, mAllAppsList, new Callbacks[0])); - MODEL_EXECUTOR.post(() -> { - Log.d(TAG, "Preload completed : " + mModel.isModelLoaded()); - onComplete(mModel.isModelLoaded()); - }); - } - - public BgDataModel getBgDataModel() { - return mBgDataModel; - } - - /** - * Called when the task is complete - */ - @WorkerThread - public void onComplete(boolean isSuccess) { } - - public void start(Context context) { - LauncherAppState.getInstance(context).getModel().enqueueModelUpdateTask(this); - } -}
\ No newline at end of file diff --git a/src/com/android/launcher3/model/PackageInstallStateChangedTask.java b/src/com/android/launcher3/model/PackageInstallStateChangedTask.java index 9889a8065d..b74d0fc482 100644 --- a/src/com/android/launcher3/model/PackageInstallStateChangedTask.java +++ b/src/com/android/launcher3/model/PackageInstallStateChangedTask.java @@ -21,7 +21,6 @@ import android.content.pm.PackageManager; import com.android.launcher3.LauncherAppState; import com.android.launcher3.model.data.AppInfo; import com.android.launcher3.model.data.ItemInfo; -import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.LauncherAppWidgetInfo; import com.android.launcher3.pm.PackageInstallInfo; import com.android.launcher3.util.InstantAppResolver; @@ -73,13 +72,7 @@ public class PackageInstallStateChangedTask extends BaseModelUpdateTask { dataModel.forAllWorkspaceItemInfos(mInstallInfo.user, si -> { if (si.hasPromiseIconUi() && mInstallInfo.packageName.equals(si.getTargetPackage())) { - int installProgress = mInstallInfo.progress; - - si.setProgressLevel(installProgress, PackageInstallInfo.STATUS_INSTALLING); - if (mInstallInfo.state == PackageInstallInfo.STATUS_FAILED) { - // Mark this info as broken. - si.runtimeStatusFlags &= ~ItemInfoWithIcon.FLAG_INSTALL_SESSION_ACTIVE; - } + si.setProgressLevel(mInstallInfo); updates.add(si); } }); diff --git a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java index 6813b972ab..a74c02fb01 100644 --- a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java +++ b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java @@ -24,6 +24,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.icons.BitmapInfo; import com.android.launcher3.icons.FastBitmapDrawable; +import com.android.launcher3.logging.FileLog; import com.android.launcher3.pm.PackageInstallInfo; import com.android.launcher3.util.PackageManagerHelper; @@ -179,6 +180,12 @@ public abstract class ItemInfoWithIcon extends ItemInfo { */ public void setProgressLevel(PackageInstallInfo installInfo) { setProgressLevel(installInfo.progress, installInfo.state); + + if (installInfo.state == PackageInstallInfo.STATUS_FAILED) { + FileLog.d(TAG, + "Icon info: " + this + " marked broken with install info: " + installInfo, + new Exception()); + } } /** diff --git a/src/com/android/launcher3/notification/NotificationContainer.java b/src/com/android/launcher3/notification/NotificationContainer.java new file mode 100644 index 0000000000..9eb05cd40f --- /dev/null +++ b/src/com/android/launcher3/notification/NotificationContainer.java @@ -0,0 +1,283 @@ +/* + * Copyright (C) 2021 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.launcher3.notification; + +import static com.android.launcher3.anim.Interpolators.scrollInterpolatorForVelocity; +import static com.android.launcher3.touch.SingleAxisSwipeDetector.HORIZONTAL; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.content.Context; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.util.FloatProperty; +import android.view.MotionEvent; +import android.view.View; +import android.widget.FrameLayout; + +import com.android.launcher3.R; +import com.android.launcher3.anim.AnimationSuccessListener; +import com.android.launcher3.popup.PopupContainerWithArrow; +import com.android.launcher3.touch.BaseSwipeDetector; +import com.android.launcher3.touch.OverScroll; +import com.android.launcher3.touch.SingleAxisSwipeDetector; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * Class to manage the notification UI in a {@link PopupContainerWithArrow}. + * + * - Has two {@link NotificationMainView} that represent the top two notifications + * - Handles dismissing a notification + */ +public class NotificationContainer extends FrameLayout implements SingleAxisSwipeDetector.Listener { + + private static final FloatProperty<NotificationContainer> DRAG_TRANSLATION_X = + new FloatProperty<NotificationContainer>("notificationProgress") { + @Override + public void setValue(NotificationContainer view, float transX) { + view.setDragTranslationX(transX); + } + + @Override + public Float get(NotificationContainer view) { + return view.mDragTranslationX; + } + }; + + private static final Rect sTempRect = new Rect(); + + private final SingleAxisSwipeDetector mSwipeDetector; + private final List<NotificationInfo> mNotificationInfos = new ArrayList<>(); + private boolean mIgnoreTouch = false; + + private final ObjectAnimator mContentTranslateAnimator; + private float mDragTranslationX = 0; + + private final NotificationMainView mPrimaryView; + private final NotificationMainView mSecondaryView; + private PopupContainerWithArrow mPopupContainer; + + public NotificationContainer(Context context) { + this(context, null, 0); + } + + public NotificationContainer(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public NotificationContainer(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + mSwipeDetector = new SingleAxisSwipeDetector(getContext(), this, HORIZONTAL); + mSwipeDetector.setDetectableScrollConditions(SingleAxisSwipeDetector.DIRECTION_BOTH, false); + mContentTranslateAnimator = ObjectAnimator.ofFloat(this, DRAG_TRANSLATION_X, 0); + + mPrimaryView = (NotificationMainView) View.inflate(getContext(), + R.layout.notification_content, null); + mSecondaryView = (NotificationMainView) View.inflate(getContext(), + R.layout.notification_content, null); + mSecondaryView.setAlpha(0); + + addView(mSecondaryView); + addView(mPrimaryView); + + } + + public void setPopupView(PopupContainerWithArrow popupView) { + mPopupContainer = popupView; + } + + /** + * Returns true if we should intercept the swipe. + */ + public boolean onInterceptSwipeEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + sTempRect.set(getLeft(), getTop(), getRight(), getBottom()); + mIgnoreTouch = !sTempRect.contains((int) ev.getX(), (int) ev.getY()); + if (!mIgnoreTouch) { + mPopupContainer.getParent().requestDisallowInterceptTouchEvent(true); + } + } + if (mIgnoreTouch) { + return false; + } + if (mPrimaryView.getNotificationInfo() == null) { + // The notification hasn't been populated yet. + return false; + } + + mSwipeDetector.onTouchEvent(ev); + return mSwipeDetector.isDraggingOrSettling(); + } + + /** + * Returns true when we should handle the swipe. + */ + public boolean onSwipeEvent(MotionEvent ev) { + if (mIgnoreTouch) { + return false; + } + if (mPrimaryView.getNotificationInfo() == null) { + // The notification hasn't been populated yet. + return false; + } + return mSwipeDetector.onTouchEvent(ev); + } + + /** + * Applies the list of @param notificationInfos to this container. + */ + public void applyNotificationInfos(final List<NotificationInfo> notificationInfos) { + mNotificationInfos.clear(); + if (notificationInfos.isEmpty()) { + mPrimaryView.applyNotificationInfo(null); + mSecondaryView.applyNotificationInfo(null); + return; + } + mNotificationInfos.addAll(notificationInfos); + + NotificationInfo mainNotification = notificationInfos.get(0); + mPrimaryView.applyNotificationInfo(mainNotification); + mSecondaryView.applyNotificationInfo(notificationInfos.size() > 1 + ? notificationInfos.get(1) + : null); + } + + /** + * Trims the notifications. + * @param notificationKeys List of all valid notification keys. + */ + public void trimNotifications(final List<String> notificationKeys) { + Iterator<NotificationInfo> iterator = mNotificationInfos.iterator(); + while (iterator.hasNext()) { + if (!notificationKeys.contains(iterator.next().notificationKey)) { + iterator.remove(); + } + } + + NotificationInfo primaryInfo = mNotificationInfos.size() > 0 + ? mNotificationInfos.get(0) + : null; + NotificationInfo secondaryInfo = mNotificationInfos.size() > 1 + ? mNotificationInfos.get(1) + : null; + + mPrimaryView.applyNotificationInfo(primaryInfo); + mSecondaryView.applyNotificationInfo(secondaryInfo); + + mPrimaryView.onPrimaryDrag(0); + mSecondaryView.onSecondaryDrag(0); + } + + private void setDragTranslationX(float translationX) { + mDragTranslationX = translationX; + + float progress = translationX / getWidth(); + mPrimaryView.onPrimaryDrag(progress); + if (mSecondaryView.getNotificationInfo() == null) { + mSecondaryView.setAlpha(0f); + } else { + mSecondaryView.onSecondaryDrag(progress); + } + } + + // SingleAxisSwipeDetector.Listener's + @Override + public void onDragStart(boolean start, float startDisplacement) { + mPopupContainer.showArrow(false); + } + + @Override + public boolean onDrag(float displacement) { + if (!mPrimaryView.canChildBeDismissed()) { + displacement = OverScroll.dampedScroll(displacement, getWidth()); + } + + float progress = displacement / getWidth(); + mPrimaryView.onPrimaryDrag(progress); + if (mSecondaryView.getNotificationInfo() == null) { + mSecondaryView.setAlpha(0f); + } else { + mSecondaryView.onSecondaryDrag(progress); + } + mContentTranslateAnimator.cancel(); + return true; + } + + @Override + public void onDragEnd(float velocity) { + final boolean willExit; + final float endTranslation; + final float startTranslation = mPrimaryView.getTranslationX(); + final float width = getWidth(); + + if (!mPrimaryView.canChildBeDismissed()) { + willExit = false; + endTranslation = 0; + } else if (mSwipeDetector.isFling(velocity)) { + willExit = true; + endTranslation = velocity < 0 ? -width : width; + } else if (Math.abs(startTranslation) > width / 2f) { + willExit = true; + endTranslation = (startTranslation < 0 ? -width : width); + } else { + willExit = false; + endTranslation = 0; + } + + long duration = BaseSwipeDetector.calculateDuration(velocity, + (endTranslation - startTranslation) / width); + + mContentTranslateAnimator.removeAllListeners(); + mContentTranslateAnimator.setDuration(duration) + .setInterpolator(scrollInterpolatorForVelocity(velocity)); + mContentTranslateAnimator.setFloatValues(startTranslation, endTranslation); + + NotificationMainView current = mPrimaryView; + mContentTranslateAnimator.addListener(new AnimationSuccessListener() { + @Override + public void onAnimationSuccess(Animator animator) { + mSwipeDetector.finishedScrolling(); + if (willExit) { + current.onChildDismissed(); + } + mPopupContainer.showArrow(true); + } + }); + mContentTranslateAnimator.start(); + } + + /** + * Animates the background color to a new color. + * @param color The color to change to. + * @param animatorSetOut The AnimatorSet where we add the color animator to. + */ + public void updateBackgroundColor(int color, AnimatorSet animatorSetOut) { + mPrimaryView.updateBackgroundColor(color, animatorSetOut); + mSecondaryView.updateBackgroundColor(color, animatorSetOut); + } + + /** + * Updates the header with a new @param notificationCount. + */ + public void updateHeader(int notificationCount) { + mPrimaryView.updateHeader(notificationCount); + mSecondaryView.updateHeader(notificationCount - 1); + } +} diff --git a/src/com/android/launcher3/notification/NotificationItemView.java b/src/com/android/launcher3/notification/NotificationItemView.java deleted file mode 100644 index af943a6933..0000000000 --- a/src/com/android/launcher3/notification/NotificationItemView.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (C) 2017 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.launcher3.notification; - -import android.animation.AnimatorSet; -import android.content.Context; -import android.graphics.Outline; -import android.graphics.Rect; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.MarginLayoutParams; -import android.view.ViewOutlineProvider; -import android.widget.TextView; - -import com.android.launcher3.R; -import com.android.launcher3.popup.PopupContainerWithArrow; -import com.android.launcher3.util.Themes; - -import java.util.ArrayList; -import java.util.List; - -/** - * Utility class to manage notification UI - */ -public class NotificationItemView { - - private static final Rect sTempRect = new Rect(); - - private final Context mContext; - private final PopupContainerWithArrow mPopupContainer; - private final ViewGroup mRootView; - - private final TextView mHeaderCount; - private final NotificationMainView mMainView; - - private final View mHeader; - - private View mGutter; - - private boolean mIgnoreTouch = false; - private List<NotificationInfo> mNotificationInfos = new ArrayList<>(); - - public NotificationItemView(PopupContainerWithArrow container, ViewGroup rootView) { - mPopupContainer = container; - mRootView = rootView; - mContext = container.getContext(); - - mHeaderCount = container.findViewById(R.id.notification_count); - mMainView = container.findViewById(R.id.main_view); - - mHeader = container.findViewById(R.id.header); - - float radius = Themes.getDialogCornerRadius(mContext); - rootView.setClipToOutline(true); - rootView.setOutlineProvider(new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), radius); - } - }); - } - - /** - * Animates the background color to a new color. - * @param color The color to change to. - * @param animatorSetOut The AnimatorSet where we add the color animator to. - */ - public void updateBackgroundColor(int color, AnimatorSet animatorSetOut) { - mMainView.updateBackgroundColor(color, animatorSetOut); - } - - public void addGutter() { - if (mGutter == null) { - mGutter = mPopupContainer.inflateAndAdd(R.layout.notification_gutter, mRootView); - } - } - - public void inverseGutterMargin() { - MarginLayoutParams lp = (MarginLayoutParams) mGutter.getLayoutParams(); - int top = lp.topMargin; - lp.topMargin = lp.bottomMargin; - lp.bottomMargin = top; - } - - public void removeAllViews() { - mRootView.removeView(mMainView); - mRootView.removeView(mHeader); - if (mGutter != null) { - mRootView.removeView(mGutter); - } - } - - /** - * Updates the header text. - * @param notificationCount The number of notifications. - */ - public void updateHeader(int notificationCount) { - final String text; - final int visibility; - if (notificationCount <= 1) { - text = ""; - visibility = View.INVISIBLE; - } else { - text = String.valueOf(notificationCount); - visibility = View.VISIBLE; - - } - mHeaderCount.setText(text); - mHeaderCount.setVisibility(visibility); - } - - public boolean onInterceptTouchEvent(MotionEvent ev) { - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - sTempRect.set(mRootView.getLeft(), mRootView.getTop(), - mRootView.getRight(), mRootView.getBottom()); - mIgnoreTouch = !sTempRect.contains((int) ev.getX(), (int) ev.getY()); - if (!mIgnoreTouch) { - mPopupContainer.getParent().requestDisallowInterceptTouchEvent(true); - } - } - if (mIgnoreTouch) { - return false; - } - if (mMainView.getNotificationInfo() == null) { - // The notification hasn't been populated yet. - return false; - } - - return false; - } - - public void applyNotificationInfos(final List<NotificationInfo> notificationInfos) { - mNotificationInfos.clear(); - if (notificationInfos.isEmpty()) { - return; - } - mNotificationInfos.addAll(notificationInfos); - - NotificationInfo mainNotification = notificationInfos.get(0); - mMainView.applyNotificationInfo(mainNotification, false); - } - - public void trimNotifications(final List<String> notificationKeys) { - NotificationInfo currentMainNotificationInfo = mMainView.getNotificationInfo(); - boolean shouldUpdateMainNotification = !notificationKeys.contains( - currentMainNotificationInfo.notificationKey); - - if (shouldUpdateMainNotification) { - int size = notificationKeys.size(); - NotificationInfo nextNotification = null; - // We get the latest notification by finding the notification after the one that was - // just dismissed. - for (int i = 0; i < size; ++i) { - if (currentMainNotificationInfo == mNotificationInfos.get(i) && i + 1 < size) { - nextNotification = mNotificationInfos.get(i + 1); - break; - } - } - if (nextNotification != null) { - mMainView.applyNotificationInfo(nextNotification, true); - } - } - } -} diff --git a/src/com/android/launcher3/notification/NotificationMainView.java b/src/com/android/launcher3/notification/NotificationMainView.java index b8aa8246fb..f9ff8a6e56 100644 --- a/src/com/android/launcher3/notification/NotificationMainView.java +++ b/src/com/android/launcher3/notification/NotificationMainView.java @@ -16,62 +16,70 @@ package com.android.launcher3.notification; +import static com.android.launcher3.Utilities.mapToRange; +import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NOTIFICATION_DISMISSED; import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; +import android.graphics.Outline; +import android.graphics.Rect; +import android.graphics.drawable.GradientDrawable; import android.os.Build; import android.text.TextUtils; import android.util.AttributeSet; -import android.util.FloatProperty; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; +import android.view.ViewOutlineProvider; +import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.Nullable; + import com.android.launcher3.Launcher; import com.android.launcher3.R; +import com.android.launcher3.Utilities; import com.android.launcher3.model.data.ItemInfo; -import com.android.launcher3.touch.SingleAxisSwipeDetector; +import com.android.launcher3.util.Themes; /** * A {@link android.widget.FrameLayout} that contains a single notification, * e.g. icon + title + text. */ @TargetApi(Build.VERSION_CODES.N) -public class NotificationMainView extends FrameLayout { - - private static final FloatProperty<NotificationMainView> CONTENT_TRANSLATION = - new FloatProperty<NotificationMainView>("contentTranslation") { - @Override - public void setValue(NotificationMainView view, float v) { - view.setContentTranslation(v); - } - - @Override - public Float get(NotificationMainView view) { - return view.mTextAndBackground.getTranslationX(); - } - }; +public class NotificationMainView extends LinearLayout { // This is used only to track the notification view, so that it can be properly logged. public static final ItemInfo NOTIFICATION_ITEM_INFO = new ItemInfo(); + // Value when the primary notification main view will be gone (zero alpha). + private static final float PRIMARY_GONE_PROGRESS = 0.7f; + private static final float PRIMARY_MIN_PROGRESS = 0.40f; + private static final float PRIMARY_MAX_PROGRESS = 0.60f; + private static final float SECONDARY_MIN_PROGRESS = 0.30f; + private static final float SECONDARY_MAX_PROGRESS = 0.50f; + private static final float SECONDARY_CONTENT_MAX_PROGRESS = 0.6f; + private NotificationInfo mNotificationInfo; - private ViewGroup mTextAndBackground; private int mBackgroundColor; private TextView mTitleView; private TextView mTextView; private View mIconView; - private SingleAxisSwipeDetector mSwipeDetector; + private View mHeader; + private View mMainView; + + private TextView mHeaderCount; + private final Rect mOutline = new Rect(); - private final ColorDrawable mColorDrawable; + // Space between notifications during swipe + private final int mNotificationSpace; + private final int mMaxTransX; + private final int mMaxElevation; + + private final GradientDrawable mBackground; public NotificationMainView(Context context) { this(context, null, 0); @@ -82,28 +90,77 @@ public class NotificationMainView extends FrameLayout { } public NotificationMainView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); + this(context, attrs, defStyle, 0); + } + + public NotificationMainView(Context context, AttributeSet attrs, int defStyle, int defStylRes) { + super(context, attrs, defStyle, defStylRes); + + float outlineRadius = Themes.getDialogCornerRadius(context); + + mBackground = new GradientDrawable(); + mBackground.setColor(Themes.getAttrColor(context, R.attr.popupColorPrimary)); + mBackground.setCornerRadius(outlineRadius); + setBackground(mBackground); + + mMaxElevation = getResources().getDimensionPixelSize(R.dimen.deep_shortcuts_elevation); + setElevation(mMaxElevation); + + mMaxTransX = getResources().getDimensionPixelSize(R.dimen.notification_max_trans); + mNotificationSpace = getResources().getDimensionPixelSize(R.dimen.notification_space); - mColorDrawable = new ColorDrawable(Color.TRANSPARENT); + setClipToOutline(true); + setOutlineProvider(new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + outline.setRoundRect(mOutline, outlineRadius); + } + }); + } + + /** + * Updates the header text. + * @param notificationCount The number of notifications. + */ + public void updateHeader(int notificationCount) { + final String text; + final int visibility; + if (notificationCount <= 1) { + text = ""; + visibility = View.INVISIBLE; + } else { + text = String.valueOf(notificationCount); + visibility = View.VISIBLE; + + } + mHeaderCount.setText(text); + mHeaderCount.setVisibility(visibility); } @Override protected void onFinishInflate() { super.onFinishInflate(); - mTextAndBackground = findViewById(R.id.text_and_background); - mTitleView = mTextAndBackground.findViewById(R.id.title); - mTextView = mTextAndBackground.findViewById(R.id.text); + ViewGroup textAndBackground = findViewById(R.id.text_and_background); + mTitleView = textAndBackground.findViewById(R.id.title); + mTextView = textAndBackground.findViewById(R.id.text); mIconView = findViewById(R.id.popup_item_icon); + mHeaderCount = findViewById(R.id.notification_count); + + mHeader = findViewById(R.id.header); + mMainView = findViewById(R.id.main_view); + } - ColorDrawable colorBackground = (ColorDrawable) mTextAndBackground.getBackground(); - updateBackgroundColor(colorBackground.getColor()); + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + mOutline.set(0, 0, getWidth(), getHeight()); + invalidateOutline(); } private void updateBackgroundColor(int color) { mBackgroundColor = color; - mColorDrawable.setColor(color); - mTextAndBackground.setBackground(mColorDrawable); + mBackground.setColor(color); if (mNotificationInfo != null) { mIconView.setBackground(mNotificationInfo.getIconForBackground(getContext(), mBackgroundColor)); @@ -128,8 +185,11 @@ public class NotificationMainView extends FrameLayout { /** * Sets the content of this view, animating it after a new icon shifts up if necessary. */ - public void applyNotificationInfo(NotificationInfo mainNotification, boolean animate) { - mNotificationInfo = mainNotification; + public void applyNotificationInfo(NotificationInfo notificationInfo) { + mNotificationInfo = notificationInfo; + if (notificationInfo == null) { + return; + } NotificationListener listener = NotificationListener.getInstanceIfConnected(); if (listener != null) { listener.setNotificationsShown(new String[] {mNotificationInfo.notificationKey}); @@ -149,25 +209,112 @@ public class NotificationMainView extends FrameLayout { if (mNotificationInfo.intent != null) { setOnClickListener(mNotificationInfo); } - setContentTranslation(0); + // Add a stub ItemInfo so that logging populates the correct container and item types // instead of DEFAULT_CONTAINERTYPE and DEFAULT_ITEMTYPE, respectively. setTag(NOTIFICATION_ITEM_INFO); - if (animate) { - ObjectAnimator.ofFloat(mTextAndBackground, ALPHA, 0, 1).setDuration(150).start(); + } + + /** + * Sets the alpha of only the child views. + */ + public void setContentAlpha(float alpha) { + mHeader.setAlpha(alpha); + mMainView.setAlpha(alpha); + } + + /** + * Sets the translation of only the child views. + */ + public void setContentTranslationX(float transX) { + mHeader.setTranslationX(transX); + mMainView.setTranslationX(transX); + } + + /** + * Updates the alpha, content alpha, and elevation of this view. + * + * @param progress Range from [0, 1] or [-1, 0] + * When 0: Full alpha + * When 1/-1: zero alpha + */ + public void onPrimaryDrag(float progress) { + float absProgress = Math.abs(progress); + final int width = getWidth(); + + float min = PRIMARY_MIN_PROGRESS; + float max = PRIMARY_MAX_PROGRESS; + + if (absProgress < min) { + setAlpha(1f); + setContentAlpha(1); + setElevation(mMaxElevation); + } else if (absProgress < max) { + setAlpha(1f); + setContentAlpha(mapToRange(absProgress, min, max, 1f, 0f, LINEAR)); + setElevation(Utilities.mapToRange(absProgress, min, max, mMaxElevation, 0, LINEAR)); + } else { + setAlpha(mapToRange(absProgress, max, PRIMARY_GONE_PROGRESS, 1f, 0f, LINEAR)); + setContentAlpha(0f); + setElevation(0f); } + + setTranslationX(width * progress); } - public void setContentTranslation(float translation) { - mTextAndBackground.setTranslationX(translation); - mIconView.setTranslationX(translation); + /** + * Updates the alpha, content alpha, elevation, and clipping of this view. + * @param progress Range from [0, 1] or [-1, 0] + * When 0: Smallest clipping, zero alpha + * When 1/-1: Full clip, full alpha + */ + public void onSecondaryDrag(float progress) { + final float absProgress = Math.abs(progress); + + float min = SECONDARY_MIN_PROGRESS; + float max = SECONDARY_MAX_PROGRESS; + float contentMax = SECONDARY_CONTENT_MAX_PROGRESS; + + if (absProgress < min) { + setAlpha(0f); + setContentAlpha(0); + setElevation(0f); + } else if (absProgress < max) { + setAlpha(mapToRange(absProgress, min, max, 0, 1f, LINEAR)); + setContentAlpha(0f); + setElevation(0f); + } else { + setAlpha(1f); + setContentAlpha(absProgress > contentMax + ? 1f + : mapToRange(absProgress, max, contentMax, 0, 1f, LINEAR)); + setElevation(Utilities.mapToRange(absProgress, max, 1, 0, mMaxElevation, LINEAR)); + } + + final int width = getWidth(); + int crop = (int) (width * absProgress); + int space = (int) (absProgress > PRIMARY_GONE_PROGRESS + ? mapToRange(absProgress, PRIMARY_GONE_PROGRESS, 1f, mNotificationSpace, 0, LINEAR) + : mNotificationSpace); + if (progress < 0) { + mOutline.left = Math.max(0, getWidth() - crop + space); + mOutline.right = getWidth(); + } else { + mOutline.right = Math.min(getWidth(), crop - space); + mOutline.left = 0; + } + + float contentTransX = mMaxTransX * (1f - absProgress); + setContentTranslationX(progress < 0 + ? contentTransX + : -contentTransX); + invalidateOutline(); } - public NotificationInfo getNotificationInfo() { + public @Nullable NotificationInfo getNotificationInfo() { return mNotificationInfo; } - public boolean canChildBeDismissed() { return mNotificationInfo != null && mNotificationInfo.dismissable; } diff --git a/src/com/android/launcher3/pm/PackageInstallInfo.java b/src/com/android/launcher3/pm/PackageInstallInfo.java index fad904f968..1797c1fc81 100644 --- a/src/com/android/launcher3/pm/PackageInstallInfo.java +++ b/src/com/android/launcher3/pm/PackageInstallInfo.java @@ -57,4 +57,28 @@ public final class PackageInstallInfo { public static PackageInstallInfo fromState(int state, String packageName, UserHandle user) { return new PackageInstallInfo(packageName, state, 0 /* progress */, user); } + + + @Override + public String toString() { + return getClass().getSimpleName() + "(" + dumpProperties() + ")"; + } + + private String dumpProperties() { + return "componentName=" + componentName + + "packageName=" + packageName + + " state=" + stateToString() + + " progress=" + progress + + " user=" + user; + } + + private String stateToString() { + switch (state) { + case STATUS_INSTALLED : return "STATUS_INSTALLED"; + case STATUS_INSTALLING : return "STATUS_INSTALLING"; + case STATUS_INSTALLED_DOWNLOADING : return "STATUS_INSTALLED_DOWNLOADING"; + case STATUS_FAILED : return "STATUS_FAILED"; + default : return "INVALID STATE"; + } + } } diff --git a/src/com/android/launcher3/popup/ArrowPopup.java b/src/com/android/launcher3/popup/ArrowPopup.java index a534ee3eb4..5d3ba75bc0 100644 --- a/src/com/android/launcher3/popup/ArrowPopup.java +++ b/src/com/android/launcher3/popup/ArrowPopup.java @@ -487,6 +487,13 @@ public abstract class ArrowPopup<T extends StatefulActivity<LauncherState>> return getMeasuredWidth() - mArrowOffsetHorizontal - mArrowWidth; } + /** + * @param show If true, shows arrow (when applicable), otherwise hides arrow. + */ + public void showArrow(boolean show) { + mArrow.setVisibility(show && shouldAddArrow() ? VISIBLE : INVISIBLE); + } + private void addArrow() { getPopupContainer().addView(mArrow); mArrow.setX(getX() + getArrowLeft()); diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java index 18f263a8ec..bc3419aa81 100644 --- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java +++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java @@ -58,8 +58,8 @@ import com.android.launcher3.dragndrop.DraggableView; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.WorkspaceItemInfo; +import com.android.launcher3.notification.NotificationContainer; import com.android.launcher3.notification.NotificationInfo; -import com.android.launcher3.notification.NotificationItemView; import com.android.launcher3.notification.NotificationKeyData; import com.android.launcher3.popup.PopupDataProvider.PopupDataChangeListener; import com.android.launcher3.shortcuts.DeepShortcutView; @@ -92,9 +92,8 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> private final int mStartDragThreshold; private BubbleTextView mOriginalIcon; - private NotificationItemView mNotificationItemView; private int mNumNotifications; - private ViewGroup mNotificationContainer; + private NotificationContainer mNotificationContainer; private ViewGroup mWidgetContainer; @@ -128,8 +127,8 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> if (ev.getAction() == MotionEvent.ACTION_DOWN) { mInterceptTouchDown.set(ev.getX(), ev.getY()); } - if (mNotificationItemView != null - && mNotificationItemView.onInterceptTouchEvent(ev)) { + if (mNotificationContainer != null + && mNotificationContainer.onInterceptSwipeEvent(ev)) { return true; } // Stop sending touch events to deep shortcut views if user moved beyond touch slop. @@ -138,6 +137,14 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> } @Override + public boolean onTouchEvent(MotionEvent ev) { + if (mNotificationContainer != null) { + return mNotificationContainer.onSwipeEvent(ev) || super.onTouchEvent(ev); + } + return super.onTouchEvent(ev); + } + + @Override protected boolean isOfType(int type) { return (type & TYPE_ACTION_POPUP) != 0; } @@ -172,8 +179,8 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> @Override protected void setChildColor(View view, int color, AnimatorSet animatorSetOut) { super.setChildColor(view, color, animatorSetOut); - if (view.getId() == R.id.notification_container && mNotificationItemView != null) { - mNotificationItemView.updateBackgroundColor(color, animatorSetOut); + if (view.getId() == R.id.notification_container && mNotificationContainer != null) { + mNotificationContainer.updateBackgroundColor(color, animatorSetOut); } } @@ -232,13 +239,6 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> mNotificationContainer); } - @Override - protected void onInflationComplete(boolean isReversed) { - if (isReversed && mNotificationItemView != null) { - mNotificationItemView.inverseGutterMargin(); - } - } - @TargetApi(Build.VERSION_CODES.P) public void populateAndShow(final BubbleTextView originalIcon, int shortcutCount, final List<NotificationKeyData> notificationKeys, List<SystemShortcut> systemShortcuts) { @@ -261,9 +261,10 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> if (mNotificationContainer == null) { mNotificationContainer = findViewById(R.id.notification_container); mNotificationContainer.setVisibility(VISIBLE); + mNotificationContainer.setPopupView(this); + } else { + mNotificationContainer.setVisibility(GONE); } - View.inflate(getContext(), R.layout.notification_content, mNotificationContainer); - mNotificationItemView = new NotificationItemView(this, mNotificationContainer); updateNotificationHeader(); } int viewsToFlip = getChildCount(); @@ -274,10 +275,6 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> if (hasDeepShortcuts) { mDeepShortcutContainer.setVisibility(View.VISIBLE); - if (mNotificationItemView != null) { - mNotificationItemView.addGutter(); - } - for (int i = shortcutCount; i > 0; i--) { DeepShortcutView v = inflateAndAdd(R.layout.deep_shortcut, mDeepShortcutContainer); v.getLayoutParams().width = containerWidth; @@ -309,10 +306,6 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> } else { mDeepShortcutContainer.setVisibility(View.GONE); if (!systemShortcuts.isEmpty()) { - if (mNotificationItemView != null) { - mNotificationItemView.addGutter(); - } - for (SystemShortcut shortcut : systemShortcuts) { initializeSystemShortcut(R.layout.system_shortcut, this, shortcut); } @@ -355,13 +348,13 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> } public void applyNotificationInfos(List<NotificationInfo> notificationInfos) { - if (mNotificationItemView != null) { - mNotificationItemView.applyNotificationInfos(notificationInfos); + if (mNotificationContainer != null) { + mNotificationContainer.applyNotificationInfos(notificationInfos); } } private void updateHiddenShortcuts() { - int allowedCount = mNotificationItemView != null + int allowedCount = mNotificationContainer != null ? MAX_SHORTCUTS_IF_NOTIFICATIONS : MAX_SHORTCUTS; int total = mShortcuts.size(); @@ -447,8 +440,8 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> private void updateNotificationHeader() { ItemInfoWithIcon itemInfo = (ItemInfoWithIcon) mOriginalIcon.getTag(); DotInfo dotInfo = mLauncher.getDotInfoForItem(itemInfo); - if (mNotificationItemView != null && dotInfo != null) { - mNotificationItemView.updateHeader(dotInfo.getNotificationCount()); + if (mNotificationContainer != null && dotInfo != null) { + mNotificationContainer.updateHeader(dotInfo.getNotificationCount()); } } @@ -590,20 +583,18 @@ public class PopupContainerWithArrow<T extends StatefulActivity<LauncherState>> @Override public void trimNotifications(Map<PackageUserKey, DotInfo> updatedDots) { - if (mNotificationItemView == null) { + if (mNotificationContainer == null) { return; } ItemInfo originalInfo = (ItemInfo) mOriginalIcon.getTag(); DotInfo dotInfo = updatedDots.get(PackageUserKey.fromItemInfo(originalInfo)); if (dotInfo == null || dotInfo.getNotificationKeys().size() == 0) { // No more notifications, remove the notification views and expand all shortcuts. - mNotificationItemView.removeAllViews(); - mNotificationItemView = null; mNotificationContainer.setVisibility(GONE); updateHiddenShortcuts(); assignMarginsAndBackgrounds(PopupContainerWithArrow.this); } else { - mNotificationItemView.trimNotifications( + mNotificationContainer.trimNotifications( NotificationKeyData.extractKeysOnly(dotInfo.getNotificationKeys())); } } diff --git a/src/com/android/launcher3/search/SearchAlgorithm.java b/src/com/android/launcher3/search/SearchAlgorithm.java index a1720c733b..96a15f4912 100644 --- a/src/com/android/launcher3/search/SearchAlgorithm.java +++ b/src/com/android/launcher3/search/SearchAlgorithm.java @@ -28,6 +28,13 @@ public interface SearchAlgorithm<T> { void doSearch(String query, SearchCallback<T> callback); /** + * Performs search with {@code query} and the {@code suggestedQueries}/ + */ + default void doSearch(String query, String[] suggestedQueries, SearchCallback<T> callback) { + doSearch(query, callback); + } + + /** * Cancels any active request. */ void cancel(boolean interruptActiveRequests); diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java index 915e140aaf..f348a339fd 100644 --- a/src/com/android/launcher3/settings/SettingsActivity.java +++ b/src/com/android/launcher3/settings/SettingsActivity.java @@ -62,8 +62,9 @@ public class SettingsActivity extends FragmentActivity SharedPreferences.OnSharedPreferenceChangeListener{ /** List of fragments that can be hosted by this activity. */ - private static final List<String> VALID_PREFERENCE_FRAGMENTS = Collections.singletonList( - DeveloperOptionsFragment.class.getName()); + private static final List<String> VALID_PREFERENCE_FRAGMENTS = + !Utilities.IS_DEBUG_DEVICE ? Collections.emptyList() + : Collections.singletonList(DeveloperOptionsFragment.class.getName()); private static final String DEVELOPER_OPTIONS_KEY = "pref_developer_options"; private static final String FLAGS_PREFERENCE_KEY = "flag_toggler"; diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java index 1eb79ad550..4c0bfde682 100644 --- a/src/com/android/launcher3/views/ScrimView.java +++ b/src/com/android/launcher3/views/ScrimView.java @@ -25,23 +25,27 @@ import android.graphics.drawable.ColorDrawable; import android.util.AttributeSet; import android.view.View; +import androidx.annotation.NonNull; import androidx.core.graphics.ColorUtils; import com.android.launcher3.BaseActivity; import com.android.launcher3.Insettable; import com.android.launcher3.util.SystemUiController; +import java.util.ArrayList; + /** * Simple scrim which draws a flat color */ public class ScrimView extends View implements Insettable { private static final float STATUS_BAR_COLOR_FORCE_UPDATE_THRESHOLD = 0.9f; + private final ArrayList<Runnable> mOpaquenessListeners = new ArrayList<>(1); private SystemUiController mSystemUiController; - private ScrimDrawingController mDrawingController; private int mBackgroundColor; private boolean mIsVisible = true; + private boolean mLastDispatchedOpaqueness; public ScrimView(Context context, AttributeSet attrs) { super(context, attrs); @@ -60,6 +64,7 @@ public class ScrimView extends View implements Insettable { @Override protected boolean onSetAlpha(int alpha) { updateSysUiColors(); + dispatchVisibilityListenersIfNeeded(); return super.onSetAlpha(alpha); } @@ -67,6 +72,7 @@ public class ScrimView extends View implements Insettable { public void setBackgroundColor(int color) { mBackgroundColor = color; updateSysUiColors(); + dispatchVisibilityListenersIfNeeded(); super.setBackgroundColor(color); } @@ -74,6 +80,7 @@ public class ScrimView extends View implements Insettable { public void onVisibilityAggregated(boolean isVisible) { super.onVisibilityAggregated(isVisible); mIsVisible = isVisible; + dispatchVisibilityListenersIfNeeded(); } public boolean isFullyOpaque() { @@ -108,6 +115,17 @@ public class ScrimView extends View implements Insettable { } } + private void dispatchVisibilityListenersIfNeeded() { + boolean fullyOpaque = isFullyOpaque(); + if (mLastDispatchedOpaqueness == fullyOpaque) { + return; + } + mLastDispatchedOpaqueness = fullyOpaque; + for (int i = 0; i < mOpaquenessListeners.size(); i++) { + mOpaquenessListeners.get(i).run(); + } + } + private SystemUiController getSystemUiController() { if (mSystemUiController == null) { mSystemUiController = BaseActivity.fromContext(getContext()).getSystemUiController(); @@ -136,6 +154,22 @@ public class ScrimView extends View implements Insettable { } /** + * Registers a listener to be notified of whether the scrim is occluding other UI elements. + * @see #isFullyOpaque() + */ + public void addOpaquenessListener(@NonNull Runnable listener) { + mOpaquenessListeners.add(listener); + } + + /** + * Removes previously registered listener. + * @see #addOpaquenessListener(Runnable) + */ + public void removeOpaquenessListener(@NonNull Runnable listener) { + mOpaquenessListeners.remove(listener); + } + + /** * A Utility interface allowing for other surfaces to draw on ScrimView */ public interface ScrimDrawingController { diff --git a/src/com/android/launcher3/widget/BaseLauncherAppWidgetHostView.java b/src/com/android/launcher3/widget/BaseLauncherAppWidgetHostView.java new file mode 100644 index 0000000000..2742882b1f --- /dev/null +++ b/src/com/android/launcher3/widget/BaseLauncherAppWidgetHostView.java @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2021 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.launcher3.widget; + +import android.content.Context; +import android.graphics.Outline; +import android.graphics.Rect; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewOutlineProvider; +import android.widget.RemoteViews; + +import androidx.annotation.UiThread; + +import com.android.launcher3.R; +import com.android.launcher3.util.Executors; + +/** + * Launcher AppWidgetHostView with support for rounded corners and a fallback View. + */ +public abstract class BaseLauncherAppWidgetHostView extends NavigableAppWidgetHostView { + + protected final LayoutInflater mInflater; + + private final Rect mEnforcedRectangle = new Rect(); + private final float mEnforcedCornerRadius; + private final ViewOutlineProvider mCornerRadiusEnforcementOutline = new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + if (mEnforcedRectangle.isEmpty() || mEnforcedCornerRadius <= 0) { + outline.setEmpty(); + } else { + outline.setRoundRect(mEnforcedRectangle, mEnforcedCornerRadius); + } + } + }; + + public BaseLauncherAppWidgetHostView(Context context) { + super(context); + + setExecutor(Executors.THREAD_POOL_EXECUTOR); + + mInflater = LayoutInflater.from(context); + mEnforcedCornerRadius = RoundedCornerEnforcement.computeEnforcedRadius(getContext()); + } + + @Override + protected View getErrorView() { + return mInflater.inflate(R.layout.appwidget_error, this, false); + } + + /** + * Fall back to error layout instead of showing widget. + */ + public void switchToErrorView() { + // Update the widget with 0 Layout id, to reset the view to error view. + updateAppWidget(new RemoteViews(getAppWidgetInfo().provider.getPackageName(), 0)); + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + try { + super.onLayout(changed, left, top, right, bottom); + } catch (final RuntimeException e) { + post(this::switchToErrorView); + } + + enforceRoundedCorners(); + } + + @UiThread + private void resetRoundedCorners() { + setOutlineProvider(ViewOutlineProvider.BACKGROUND); + setClipToOutline(false); + } + + @UiThread + private void enforceRoundedCorners() { + if (mEnforcedCornerRadius <= 0 || !RoundedCornerEnforcement.isRoundedCornerEnabled()) { + resetRoundedCorners(); + return; + } + View background = RoundedCornerEnforcement.findBackground(this); + if (background == null + || RoundedCornerEnforcement.hasAppWidgetOptedOut(this, background)) { + resetRoundedCorners(); + return; + } + RoundedCornerEnforcement.computeRoundedRectangle(this, + background, + mEnforcedRectangle); + setOutlineProvider(mCornerRadiusEnforcementOutline); + setClipToOutline(true); + } + + /** Returns the corner radius currently enforced, in pixels. */ + public float getEnforcedCornerRadius() { + return mEnforcedCornerRadius; + } + + /** Returns true if the corner radius are enforced for this App Widget. */ + public boolean hasEnforcedCornerRadius() { + return getClipToOutline(); + } +} diff --git a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java index 63bc416fa4..fb6de9fb5e 100644 --- a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java @@ -20,19 +20,16 @@ import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.content.res.Configuration; import android.graphics.Canvas; -import android.graphics.Outline; import android.graphics.Rect; import android.graphics.RectF; import android.os.Handler; import android.os.SystemClock; import android.util.SparseBooleanArray; import android.util.SparseIntArray; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; -import android.view.ViewOutlineProvider; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.AdapterView; import android.widget.Advanceable; @@ -40,7 +37,6 @@ import android.widget.RemoteViews; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.annotation.UiThread; import com.android.launcher3.CheckLongPressHelper; import com.android.launcher3.Launcher; @@ -51,7 +47,6 @@ import com.android.launcher3.dragndrop.DragLayer; import com.android.launcher3.keyboard.ViewGroupFocusHelper; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.LauncherAppWidgetInfo; -import com.android.launcher3.util.Executors; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BaseDragLayer.TouchCompleteListener; import com.android.launcher3.widget.dragndrop.AppWidgetHostViewDragListener; @@ -61,7 +56,7 @@ import java.util.List; /** * {@inheritDoc} */ -public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView +public class LauncherAppWidgetHostView extends BaseLauncherAppWidgetHostView implements TouchCompleteListener, View.OnLongClickListener, LocalColorExtractor.Listener { @@ -76,8 +71,6 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView // Maximum duration for which updates can be deferred. private static final long UPDATE_LOCK_TIMEOUT_MILLIS = 1000; - protected final LayoutInflater mInflater; - private final CheckLongPressHelper mLongPressHelper; protected final Launcher mLauncher; private final Workspace mWorkspace; @@ -101,18 +94,6 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView private final Rect mWidgetSizeAtDrag = new Rect(); private final RectF mTempRectF = new RectF(); - private final Rect mEnforcedRectangle = new Rect(); - private final float mEnforcedCornerRadius; - private final ViewOutlineProvider mCornerRadiusEnforcementOutline = new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - if (mEnforcedRectangle.isEmpty() || mEnforcedCornerRadius <= 0) { - outline.setEmpty(); - } else { - outline.setRoundRect(mEnforcedRectangle, mEnforcedCornerRadius); - } - } - }; private final Object mUpdateLock = new Object(); private final ViewGroupFocusHelper mDragLayerRelativeCoordinateHelper; private long mDeferUpdatesUntilMillis = 0; @@ -126,18 +107,15 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView mLauncher = Launcher.getLauncher(context); mWorkspace = mLauncher.getWorkspace(); mLongPressHelper = new CheckLongPressHelper(this, this); - mInflater = LayoutInflater.from(context); setAccessibilityDelegate(mLauncher.getAccessibilityDelegate()); setBackgroundResource(R.drawable.widget_internal_focus_bg); - setExecutor(Executors.THREAD_POOL_EXECUTOR); if (Utilities.ATLEAST_Q && Themes.getAttrBoolean(mLauncher, R.attr.isWorkspaceDarkText)) { setOnLightBackground(true); } mColorExtractor = LocalColorExtractor.newInstance(getContext()); mColorExtractor.setListener(this); - mEnforcedCornerRadius = RoundedCornerEnforcement.computeEnforcedRadius(getContext()); mDragLayerRelativeCoordinateHelper = new ViewGroupFocusHelper(mLauncher.getDragLayer()); } @@ -169,11 +147,6 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView } @Override - protected View getErrorView() { - return mInflater.inflate(R.layout.appwidget_error, this, false); - } - - @Override public void updateAppWidget(RemoteViews remoteViews) { synchronized (mUpdateLock) { if (isDeferringUpdates()) { @@ -329,28 +302,12 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView } } - public void switchToErrorView() { - // Update the widget with 0 Layout id, to reset the view to error view. - updateAppWidget(new RemoteViews(getAppWidgetInfo().provider.getPackageName(), 0)); - } - @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - try { - super.onLayout(changed, left, top, right, bottom); - } catch (final RuntimeException e) { - post(new Runnable() { - @Override - public void run() { - switchToErrorView(); - } - }); - } + super.onLayout(changed, left, top, right, bottom); mIsScrollable = checkScrollableRecursively(this); updateColorExtraction(); - - enforceRoundedCorners(); } /** Starts the drag mode. */ @@ -564,40 +521,4 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView } return false; } - - @UiThread - private void resetRoundedCorners() { - setOutlineProvider(ViewOutlineProvider.BACKGROUND); - setClipToOutline(false); - } - - @UiThread - private void enforceRoundedCorners() { - if (mEnforcedCornerRadius <= 0 || !RoundedCornerEnforcement.isRoundedCornerEnabled()) { - resetRoundedCorners(); - return; - } - View background = RoundedCornerEnforcement.findBackground(this); - if (background == null - || RoundedCornerEnforcement.hasAppWidgetOptedOut(this, background)) { - resetRoundedCorners(); - return; - } - RoundedCornerEnforcement.computeRoundedRectangle(this, - background, - mEnforcedRectangle); - setOutlineProvider(mCornerRadiusEnforcementOutline); - setClipToOutline(true); - } - - /** Returns the corner radius currently enforced, in pixels. */ - public float getEnforcedCornerRadius() { - return mEnforcedCornerRadius; - } - - /** Returns true if the corner radius are enforced for this App Widget. */ - public boolean hasEnforcedCornerRadius() { - return getClipToOutline(); - } - } diff --git a/src/com/android/launcher3/widget/NavigableAppWidgetHostView.java b/src/com/android/launcher3/widget/NavigableAppWidgetHostView.java index 6163b5199c..d12fe74637 100644 --- a/src/com/android/launcher3/widget/NavigableAppWidgetHostView.java +++ b/src/com/android/launcher3/widget/NavigableAppWidgetHostView.java @@ -26,7 +26,6 @@ import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; -import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Reorderable; import com.android.launcher3.dragndrop.DraggableView; @@ -59,7 +58,7 @@ public abstract class NavigableAppWidgetHostView extends AppWidgetHostView @ViewDebug.ExportedProperty(category = "launcher") private boolean mChildrenFocused; - protected final BaseActivity mActivity; + protected final ActivityContext mActivity; public NavigableAppWidgetHostView(Context context) { super(context); diff --git a/src/com/android/launcher3/widget/PendingAppWidgetHostView.java b/src/com/android/launcher3/widget/PendingAppWidgetHostView.java index d3a019001d..b6bb6aa389 100644 --- a/src/com/android/launcher3/widget/PendingAppWidgetHostView.java +++ b/src/com/android/launcher3/widget/PendingAppWidgetHostView.java @@ -85,7 +85,7 @@ public class PendingAppWidgetHostView extends LauncherAppWidgetHostView setBackgroundResource(R.drawable.pending_widget_bg); setWillNotDraw(false); - updateAppWidget(null); + super.updateAppWidget(null); setOnClickListener(ItemClickHandler.INSTANCE); if (info.pendingItemInfo == null) { @@ -268,8 +268,8 @@ public class PendingAppWidgetHostView extends LauncherAppWidgetHostView if (availableWidth > 0) { // Recreate the setup text. mSetupTextLayout = new StaticLayout( - getResources().getText(R.string.gadget_setup_text), mPaint, availableWidth, - Layout.Alignment.ALIGN_CENTER, 1, 0, true); + getResources().getText(R.string.gadget_complete_setup_text), mPaint, + availableWidth, Layout.Alignment.ALIGN_CENTER, 1, 0, true); int textHeight = mSetupTextLayout.getHeight(); // Extra icon size due to the setting icon |