diff options
115 files changed, 1343 insertions, 1899 deletions
diff --git a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java index 94159416a..d9bfc30eb 100644 --- a/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java +++ b/WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java @@ -1147,6 +1147,6 @@ public class WallpaperPickerActivity extends WallpaperCropActivity { return true; // Check if the user has specifically enabled rotation via preferences. - return Utilities.isAllowRotationPrefEnabled(getApplicationContext()); + return Utilities.isAllowRotationPrefEnabled(getApplicationContext(), true); } } diff --git a/res/drawable/all_apps_search_bg.xml b/res/drawable/all_apps_search_bg.xml index 57eb5825e..a09f88fd4 100644 --- a/res/drawable/all_apps_search_bg.xml +++ b/res/drawable/all_apps_search_bg.xml @@ -14,10 +14,7 @@ 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"> - <solid android:color="@color/quantum_panel_bg_color" /> - <corners - android:topLeftRadius="2dp" - android:topRightRadius="2dp" /> -</shape>
\ No newline at end of file +<inset xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/quantum_panel" + android:insetTop="@dimen/container_bounds_minus_quantum_panel_padding_inset" + android:insetBottom="@dimen/container_bounds_minus_quantum_panel_padding_inset" />
\ No newline at end of file diff --git a/res/layout-sw600dp/all_apps.xml b/res/layout-sw600dp/all_apps.xml deleted file mode 100644 index 368e6abdd..000000000 --- a/res/layout-sw600dp/all_apps.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2015 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<com.android.launcher3.allapps.AllAppsContainerView - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/apps_view" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:padding="@dimen/all_apps_container_inset" - android:descendantFocusability="afterDescendants"> - <include - layout="@layout/all_apps_reveal" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> - <include - layout="@layout/all_apps_container" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> -</com.android.launcher3.allapps.AllAppsContainerView>
\ No newline at end of file diff --git a/res/layout/all_apps.xml b/res/layout/all_apps.xml index b907c34f1..1bf54eefb 100644 --- a/res/layout/all_apps.xml +++ b/res/layout/all_apps.xml @@ -21,15 +21,37 @@ android:id="@+id/apps_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:descendantFocusability="afterDescendants"> - <include - layout="@layout/all_apps_reveal" + android:orientation="vertical"> + + <!-- Both android:focusable and android:focusableInTouchMode are needed for + the view to get focus change events. --> + <FrameLayout + android:id="@+id/search_box_container" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> - <include - layout="@layout/all_apps_container" + android:layout_height="wrap_content" + android:focusable="true" + android:focusableInTouchMode="true" + android:visibility="gone" /> + + <FrameLayout + android:id="@+id/content" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> + android:layout_height="0dp" + android:layout_weight="1"> + <FrameLayout + android:id="@+id/all_apps_reveal" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:focusable="false" + android:elevation="2dp" + android:visibility="invisible" /> + <include + layout="@layout/all_apps_container" + android:id="@+id/all_apps_container" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:visibility="gone" /> + </FrameLayout> </com.android.launcher3.allapps.AllAppsContainerView>
\ No newline at end of file diff --git a/res/layout/all_apps_container.xml b/res/layout/all_apps_container.xml index fc77cd31f..5801a0e8e 100644 --- a/res/layout/all_apps_container.xml +++ b/res/layout/all_apps_container.xml @@ -14,95 +14,35 @@ See the License for the specific language governing permissions and limitations under the License. --> +<!-- Both android:focusable and android:focusableInTouchMode are needed for + the view to get focus change events. --> <com.android.launcher3.allapps.AllAppsRecyclerViewContainerView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/apps_list" android:layout_width="match_parent" android:layout_height="match_parent" android:elevation="15dp" - android:focusableInTouchMode="true" - android:visibility="gone" > + android:focusable="true" + android:focusableInTouchMode="true"> <com.android.launcher3.allapps.AllAppsRecyclerView - android:id="@+id/apps_list_view" + android:id="@+id/collection" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal|top" - android:layout_marginTop="@dimen/all_apps_search_bar_height" android:clipToPadding="false" - android:descendantFocusability="afterDescendants" - android:focusable="true" /> + android:focusable="true" + android:descendantFocusability="afterDescendants" /> <LinearLayout android:id="@+id/prediction_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/all_apps_search_bar_height" - android:paddingBottom="@dimen/all_apps_prediction_bar_bottom_padding" + android:paddingTop="@dimen/all_apps_prediction_bar_top_bottom_padding" + android:paddingBottom="@dimen/all_apps_prediction_bar_top_bottom_padding" android:orientation="horizontal" - android:descendantFocusability="afterDescendants" android:focusable="true" + android:descendantFocusability="afterDescendants" android:visibility="invisible" > </LinearLayout> - <!-- We always want the search bar on top, so it goes last. --> - - <FrameLayout - android:id="@+id/header" - android:layout_width="match_parent" - android:layout_height="@dimen/all_apps_search_bar_height" - android:background="@drawable/all_apps_search_bg" > - - <LinearLayout - android:id="@+id/app_search_container" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:visibility="invisible" > - - <ImageView - android:id="@+id/dismiss_search_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="start|center_vertical" - android:layout_marginLeft="4dp" - android:layout_marginStart="4dp" - android:contentDescription="@string/all_apps_button_label" - android:paddingBottom="13dp" - android:paddingTop="13dp" - android:src="@drawable/ic_arrow_back_grey" /> - - <com.android.launcher3.allapps.AllAppsSearchEditView - android:id="@+id/apps_search_box" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@android:color/transparent" - android:focusableInTouchMode="true" - android:gravity="fill_horizontal" - android:hint="@string/all_apps_search_bar_hint" - android:imeOptions="actionDone|flagNoExtractUi" - android:maxLines="1" - android:paddingBottom="16dp" - android:paddingLeft="8dp" - android:paddingTop="16dp" - android:scrollHorizontally="true" - android:singleLine="true" - android:textColor="#4c4c4c" - android:textColorHint="#9c9c9c" - android:textSize="16sp" /> - </LinearLayout> - - <ImageView - android:id="@+id/search_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="end|center_vertical" - android:layout_marginEnd="6dp" - android:layout_marginRight="6dp" - android:contentDescription="@string/all_apps_search_bar_hint" - android:paddingBottom="13dp" - android:paddingTop="13dp" - android:src="@drawable/ic_search_grey" /> - </FrameLayout> - </com.android.launcher3.allapps.AllAppsRecyclerViewContainerView>
\ No newline at end of file diff --git a/res/layout/all_apps_reveal.xml b/res/layout/all_apps_reveal.xml deleted file mode 100644 index 5f4665642..000000000 --- a/res/layout/all_apps_reveal.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2015 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/apps_view_transition_overlay" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" - android:elevation="2dp" - android:visibility="invisible" - android:focusable="false" />
\ No newline at end of file diff --git a/res/layout/all_apps_search_bar.xml b/res/layout/all_apps_search_bar.xml new file mode 100644 index 000000000..8d75b15a6 --- /dev/null +++ b/res/layout/all_apps_search_bar.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/all_apps_search_bg" > + + <LinearLayout + android:id="@+id/search_container" + android:layout_width="match_parent" + android:layout_height="@dimen/all_apps_search_bar_height" + android:layout_gravity="start|center_vertical" + android:orientation="horizontal" + android:visibility="invisible" > + + <ImageView + android:id="@+id/dismiss_search_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="4dp" + android:layout_marginStart="4dp" + android:contentDescription="@string/all_apps_button_label" + android:paddingBottom="13dp" + android:paddingTop="13dp" + android:src="@drawable/ic_arrow_back_grey" /> + + <com.android.launcher3.allapps.AllAppsSearchEditView + android:id="@+id/search_box_input" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@android:color/transparent" + android:focusableInTouchMode="true" + android:gravity="fill_horizontal|center_vertical" + android:hint="@string/all_apps_search_bar_hint" + android:inputType="text|textNoSuggestions|textCapWords" + android:imeOptions="actionDone|flagNoExtractUi" + android:maxLines="1" + android:paddingLeft="8dp" + android:scrollHorizontally="true" + android:singleLine="true" + android:textColor="#4c4c4c" + android:textColorHint="#9c9c9c" + android:textSize="16sp" /> + </LinearLayout> + + <ImageView + android:id="@+id/search_button" + android:layout_width="wrap_content" + android:layout_height="@dimen/all_apps_search_bar_height" + android:layout_gravity="end|center_vertical" + android:layout_marginEnd="6dp" + android:layout_marginRight="6dp" + android:contentDescription="@string/all_apps_search_bar_hint" + android:paddingBottom="13dp" + android:paddingTop="13dp" + android:src="@drawable/ic_search_grey" /> +</FrameLayout>
\ No newline at end of file diff --git a/res/layout/widgets_view.xml b/res/layout/widgets_view.xml index a1a62b32a..c27e79bbd 100644 --- a/res/layout/widgets_view.xml +++ b/res/layout/widgets_view.xml @@ -21,25 +21,29 @@ android:id="@+id/widgets_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingTop="@dimen/widget_container_inset" - android:paddingBottom="@dimen/widget_container_inset" + android:orientation="vertical" android:descendantFocusability="afterDescendants"> <FrameLayout - android:id="@+id/widgets_reveal_view" + android:id="@+id/content" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" - android:elevation="2dp" - android:focusable="false" - android:visibility="invisible" /> + android:layout_height="match_parent"> + <FrameLayout + android:id="@+id/widgets_reveal_view" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:focusable="false" + android:elevation="2dp" + android:visibility="invisible" /> <com.android.launcher3.widget.WidgetsRecyclerView android:id="@+id/widgets_list_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@drawable/quantum_panel_dark" + android:layout_gravity="center" android:elevation="15dp" android:visibility="gone" /> + </FrameLayout> </com.android.launcher3.widget.WidgetsContainerView>
\ No newline at end of file diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 0f90c4d82..397e759ad 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Tuis"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Program is nie geïnstalleer nie."</string> <string name="activity_not_available" msgid="7456344436509528827">"Program is nie beskikbaar nie"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Stel op"</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="6617836969016293992">"Naamlose vouer"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Tuisskerm %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Bladsy %1$d van %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Tuisskerm %1$d van %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Welkom"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Muurpapiere, legstukke en instellings"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Raak en hou agtergrond om te pasmaak"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"HET DIT"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Vouer oopgemaak, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Raak om vouer toe te maak"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Raak om hernoem te stoor"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Legstukke"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Muurpapiere"</string> <string name="settings_button_text" msgid="8119458837558863227">"Instellings"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Wag tans…"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Laai tans af…"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installeer tans…"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nie teruggestel nie"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Verwyder almal"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwyder"</string> <string name="abandoned_search" msgid="891119232568284442">"Soek"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Hierdie program is nie geïnstalleer nie"</string> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 52fb95e6c..87aa07163 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"ማስጀመሪያ3"</string> - <string name="home" msgid="7658288663002113681">"መነሻ"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"መተግበሪያ አልተጫነም።"</string> <string name="activity_not_available" msgid="7456344436509528827">"መተግበሪያ አይገኝም"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ማዋቀሪያ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ይህ የስርዓት መተግበሪያ ነው እና ማራገፍ አይቻልም።"</string> <string name="folder_hint_text" msgid="6617836969016293992">"ስም-አልባ አቃፊ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"መነሻ ማያ ገጽ %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"ገጽ %1$d ከ%2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"መነሻ ማያ ገጽ %1$d ከ%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"እንኳን በደህና መጡ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"የግድግዳ ወረቀቶች፣ ንዑስ ፕሮግራሞች እና ቅንብሮች"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ለማበጀት ጀርባውን ነክተው ይያዙት"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ገባኝ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"እሺ"</string> <string name="folder_opened" msgid="94695026776264709">"አቃፊ ተከፍቷል፣ <xliff:g id="WIDTH">%1$d</xliff:g> በ<xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"አቃፊን ለመዝጋት ይንኩ"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"ዳግም የተሰየመውን ለማስቀመጥ ይንኩ"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ፍርግሞች"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"የግድግዳ ወረቀቶች"</string> <string name="settings_button_text" msgid="8119458837558863227">"ቅንብሮች"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"በመጠበቅ ላይ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"በማውረድ ላይ"</string> - <string name="package_state_installing" msgid="7588193972189849870">"በመጫን ላይ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"የማይታወቅ"</string> - <string name="package_state_error" msgid="7672093962724223588">"ወደነበረበት አልተመለሰም"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"ሁሉንም አስወግድ"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"አስወግድ"</string> <string name="abandoned_search" msgid="891119232568284442">"ፈልግ"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ይህ መተግበሪያ አልተጫነም"</string> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 02e4ee862..eee003df6 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"الرئيسية"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"لم يتم تثبيت التطبيق."</string> <string name="activity_not_available" msgid="7456344436509528827">"التطبيق ليس متاحًا"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"الإعداد"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"هذا تطبيق نظام وتتعذر إزالته."</string> <string name="folder_hint_text" msgid="6617836969016293992">"مجلد بدون اسم"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"الشاشة الرئيسية %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"الصفحة %1$d من %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"الشاشة الرئيسية %1$d من %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"مرحبًا"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"الخلفيات والأدوات والإعدادات"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"المس مع الاستمرار الخلفية لتخصيصها"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"حسنًا"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"موافق"</string> <string name="folder_opened" msgid="94695026776264709">"تم فتح المجلد، بمقاس <xliff:g id="WIDTH">%1$d</xliff:g> في <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"المس لإغلاق المجلد"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"المس لحفظ إعادة التسمية"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"الأدوات"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"الخلفيات"</string> <string name="settings_button_text" msgid="8119458837558863227">"الإعدادات"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"انتظار"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"جارٍ التنزيل"</string> - <string name="package_state_installing" msgid="7588193972189849870">"جارٍ التثبيت"</string> <string name="package_state_unknown" msgid="7592128424511031410">"غير معروفة"</string> - <string name="package_state_error" msgid="7672093962724223588">"استعادة مخفقة"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"إزالة الكل"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"إزالة"</string> <string name="abandoned_search" msgid="891119232568284442">"بحث"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"لم يتم تثبيت هذا التطبيق"</string> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index cff5c783f..b918603ee 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Начало"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Приложението не е инсталирано."</string> <string name="activity_not_available" msgid="7456344436509528827">"Приложението не е налично"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Настройване"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Това е системно приложение и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Папка без име"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Начален екран %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Страница %1$d от %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Начален екран %1$d от %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Добре дошли"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тапети, приспособления и настройки"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Докоснете и задръжте фона за персонализиране"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"РАЗБРАХ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ОK"</string> <string name="folder_opened" msgid="94695026776264709">"Папката е отворена – <xliff:g id="WIDTH">%1$d</xliff:g> на <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Докоснете, за да затворите папката"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Докоснете, за да запазите новото име"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Приспособления"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string> <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Изчаква"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Изтегля се"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Инсталира се"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Няма информация"</string> - <string name="package_state_error" msgid="7672093962724223588">"Не е възстановено"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Премахване на всички"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Премахване"</string> <string name="abandoned_search" msgid="891119232568284442">"Търсене"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Това приложение не е инсталирано"</string> diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 14a93a21b..8387932c1 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"লঞ্চার৩"</string> - <string name="home" msgid="7658288663002113681">"হোম"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"অ্যাপ্লিকেশান ইনস্টল করা নেই৷"</string> <string name="activity_not_available" msgid="7456344436509528827">"অ্যাপ্লিকেশান অনুপলব্ধ"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"সেটআপ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"এটি একটি সিস্টেম অ্যাপ্লিকেশান এবং আনইনস্টল করা যাবে না৷"</string> <string name="folder_hint_text" msgid="6617836969016293992">"নামবিহীন ফোল্ডার"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"%1$d নম্বর হোম স্ক্রীন"</string> <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="first_run_cling_title" msgid="2459738000155917941">"স্বাগতম"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ওয়ালপেপার, উইজেট এবং সেটিংস"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"কাস্টমাইজ করার জন্য পটভূমি স্পর্শ করে ধরে থাকুন"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"বুঝেছি"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ঠিক আছে"</string> <string name="folder_opened" msgid="94695026776264709">"ফোল্ডার খোলা হয়েছে, <xliff:g id="WIDTH">%1$d</xliff:g> বাই <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ফোল্ডার বন্ধ করতে স্পর্শ করুন"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"পুনঃনামকরণ সংরক্ষণ করতে স্পর্শ করুন"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"উইজেটগুলি"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"ওয়ালপেপারগুলি"</string> <string name="settings_button_text" msgid="8119458837558863227">"সেটিংস"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"প্রতীক্ষা"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ডাউনলোড হচ্ছে"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ইনস্টল করা হচ্ছে"</string> <string name="package_state_unknown" msgid="7592128424511031410">"অজানা"</string> - <string name="package_state_error" msgid="7672093962724223588">"পুনঃস্থাপন করা যায়নি"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"সবগুলি সরান"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"সরান"</string> <string name="abandoned_search" msgid="891119232568284442">"অনুসন্ধান"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"এই অ্যাপ্লিকেশানটি ইন্সটল করা নাই"</string> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 4d38c8164..69ace8ec7 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Inici"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"L\'aplicació no s\'ha instal·lat."</string> <string name="activity_not_available" msgid="7456344436509528827">"L\'aplicació no està disponible."</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Carpeta sense nom"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla d\'inici %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Pàgina %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla d\'inici %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Us donem la benvinguda"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fons de pantalla, widgets i configuració"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén premut el fons per fer personalitzacions."</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"D\'ACORD"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"D\'acord"</string> <string name="folder_opened" msgid="94695026776264709">"S\'ha obert la carpeta, <xliff:g id="WIDTH">%1$d</xliff:g> per <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca per tancar la carpeta"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca per desar el canvi de nom"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fons de pantalla"</string> <string name="settings_button_text" msgid="8119458837558863227">"Configuració"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"En espera"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"S\'està baixant"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instal·lant"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Desconegut"</string> - <string name="package_state_error" msgid="7672093962724223588">"No restaurat"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Suprimeix-ho tot"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Suprimeix"</string> <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Aquesta aplicació no està instal·lada"</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 57598f70f..7606a4a6b 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Plocha"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikace není nainstalována."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikace není k dispozici."</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavení"</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="6617836969016293992">"Složka bez názvu"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Plocha %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Strana %1$d z %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Plocha %1$d z %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Vítejte"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, widgety a nastavení"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pozadí můžete přizpůsobit klepnutím a podržením"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ROZUMÍM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Složka otevřena, rozměry <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="1884479294466410023">"Dotykem složku zavřete"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotykem uložíte změnu názvu"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgety"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string> <string name="settings_button_text" msgid="8119458837558863227">"Nastavení"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Čekání"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Stahování"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalace"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Neznámé"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nebylo obnoveno"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstranit vše"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstranit"</string> <string name="abandoned_search" msgid="891119232568284442">"Hledat"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Tato aplikace není nainstalována"</string> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 36f345526..b64d20fc4 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Startskærm"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installeret."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgængelig"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurer"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp, som ikke kan afinstalleres."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Unavngiven mappe"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Startskærm %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Side %1$d ud af %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Startskærm %1$d ud af %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Velkommen"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Baggrunde, widgets og indstillinger"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tryk på baggrunden, og hold fingeren nede for at tilpasse den"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK, FORSTÅET"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Mappen er åben, <xliff:g id="WIDTH">%1$d</xliff:g> gange <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Tryk for at lukke mappen"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tryk for at gemme det nye navn"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Baggrunde"</string> <string name="settings_button_text" msgid="8119458837558863227">"Indstillinger"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Afventer"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Downloader"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installerer"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Ukendt"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ikke gendannet"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Slet alle"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string> <string name="abandoned_search" msgid="891119232568284442">"Søg"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Denne app er ikke installeret"</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 1b9bc9e1b..d64ae45d0 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Startseite"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"App ist nicht installiert."</string> <string name="activity_not_available" msgid="7456344436509528827">"App nicht verfügbar"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Einrichten"</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="6617836969016293992">"Unbenannter Ordner"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Startbildschirm %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Seite %1$d von %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Startbildschirm %1$d von %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Hallo!"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Hintergründe, Widgets & Einstellungen"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Berühren und halten Sie den Hintergrund, um ihn anzupassen."</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Ordner geöffnet, <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="1884479294466410023">"Ordner durch Berühren schließen"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Umbenennung durch Berühren speichern"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Hintergründe"</string> <string name="settings_button_text" msgid="8119458837558863227">"Einstellungen"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Warten"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Download läuft"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installation"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Unbekannt"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nicht wiederhergestellt"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Alle entfernen"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Entfernen"</string> <string name="abandoned_search" msgid="891119232568284442">"Suchen"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Diese App ist nicht installiert"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 69a1e7794..8cd2ac900 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Αρχική σελίδα"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Η εφαρμογή δεν έχει εγκατασταθεί."</string> <string name="activity_not_available" msgid="7456344436509528827">"Η εφαρμογή δεν είναι διαθέσιμη"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Ρύθμιση"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Αυτή είναι μια εφαρμογή συστήματος και δεν είναι δυνατή η κατάργηση της εγκατάστασής της."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Φάκελος χωρίς όνομα"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Αρχική οθόνη %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Σελίδα %1$d από %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Αρχική οθόνη %1$d από %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Καλώς ορίσατε"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ταπετσαρίες, γραφικά στοιχεία και ρυθμίσεις"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Αγγίξτε παρατεταμένα το παρασκήνιο για προσαρμογή"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ΕΓΙΝΕ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Άνοιγμα φακέλου, <xliff:g id="WIDTH">%1$d</xliff:g> επί <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Αγγίξτε για να κλείσετε τον φάκελο"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Αγγίξτε για να αποθηκεύσετε το νέο όνομα"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Γραφικά στοιχεία"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Ταπετσαρίες"</string> <string name="settings_button_text" msgid="8119458837558863227">"Ρυθμίσεις"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Αναμονή"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Λήψη "</string> - <string name="package_state_installing" msgid="7588193972189849870">"Εγκατάσταση"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Άγνωστο"</string> - <string name="package_state_error" msgid="7672093962724223588">"Δεν ανακτήθηκε"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Κατάργηση όλων"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Κατάργηση"</string> <string name="abandoned_search" msgid="891119232568284442">"Αναζήτηση"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Αυτή η εφαρμογή δεν είναι εγκατεστημένη"</string> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index cb25fd9be..30d626d8c 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Home"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string> <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Unnamed Folder"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d of %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d of %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Welcome"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, & settings"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch & hold background to customise"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Touch to close folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Touch to save rename"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string> <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Waiting"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Downloading"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installing"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string> - <string name="package_state_error" msgid="7672093962724223588">"Not restored"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Remove All"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string> <string name="abandoned_search" msgid="891119232568284442">"Search"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"This app is not installed"</string> diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index cb25fd9be..30d626d8c 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Home"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string> <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Unnamed Folder"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d of %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d of %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Welcome"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, & settings"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch & hold background to customise"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Touch to close folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Touch to save rename"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string> <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Waiting"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Downloading"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installing"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string> - <string name="package_state_error" msgid="7672093962724223588">"Not restored"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Remove All"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string> <string name="abandoned_search" msgid="891119232568284442">"Search"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"This app is not installed"</string> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 36f32a722..5e2d87c83 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Pantalla principal"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"No se instaló la aplicación."</string> <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible."</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Carpeta sin nombre"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla principal %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla principal %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenido"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos, widgets y configuración"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén presionado el fondo para personalizarlo"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDIDO"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string> <string name="folder_opened" msgid="94695026776264709">"Carpeta abierta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para cerrar la carpeta."</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para guardar el nuevo nombre."</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string> <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Pendiente"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string> - <string name="package_state_error" msgid="7672093962724223588">"No restaurado"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todo"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string> <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación no está instalada"</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 6dcfba4a4..1bf1d769f 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Home"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"La aplicación no está instalada."</string> <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Carpeta sin nombre"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla de inicio %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla de inicio %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Te damos la bienvenida"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos de pantalla, widgets y ajustes"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén pulsado el fondo para personalizarlo"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDIDO"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string> <string name="folder_opened" msgid="94695026776264709">"Carpeta abierta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para cerrar la carpeta"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para cambiar el nuevo nombre"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string> <string name="settings_button_text" msgid="8119458837558863227">"Ajustes"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Esperando"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string> - <string name="package_state_error" msgid="7672093962724223588">"No restaurado"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todo"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string> <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación no está instalada"</string> diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index c56bc6986..b1c13d76b 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Avaekraan"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Rakendus pole installitud."</string> <string name="activity_not_available" msgid="7456344436509528827">"Rakendus ei ole saadaval"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Seadistamine"</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="6617836969016293992">"Nimetu kaust"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Avaekraan %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Leht %1$d/%2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Avaekraan %1$d/%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Tere tulemast"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Taustapildid, vidinad ja seaded"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Kohandamiseks puudutage ja hoidke tausta all"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SELGE"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Kaust on avatud, <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="1884479294466410023">"Puudutage kausta sulgemiseks"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Puudutage uue nime salvestamiseks"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Vidinad"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustapildid"</string> <string name="settings_button_text" msgid="8119458837558863227">"Seaded"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Ootamine"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Allalaadimine"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installimine"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Teadmata"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ei taastatud"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Eemalda kõik"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eemalda"</string> <string name="abandoned_search" msgid="891119232568284442">"Otsing"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"See rakendus ei ole installitud"</string> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index bc9520675..afed3b548 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="8424725141379931883">"Käivitaja"</string> - <string name="home" msgid="5921706419368316758">"Kodu"</string> <string name="folder_name" msgid="8551881338202938211"></string> <string name="wallpaper_instructions" msgid="4215640646180727542">"Määra taustapilt"</string> <string name="pick_wallpaper" msgid="5630222540525626723">"Taustapildid"</string> @@ -43,10 +42,8 @@ <string name="gadget_error_text" msgid="8359351016167075858">"Probleem vidina laadimisel"</string> <string name="uninstall_system_app_text" msgid="6429814133777046491">"See on süsteemirakendus ja seda ei saa desinstallida."</string> <string name="folder_hint_text" msgid="8633351560105748141">"Nimeta kaust"</string> - <string name="workspace_description_format" msgid="2968608205939373034">"Avakuva %1$d"</string> <string name="default_scroll_format" msgid="4057140866420001240">"Leht %1$d/%2$d"</string> <string name="workspace_scroll_format" msgid="1704767047951143301">"Avakuva %1$d/%2$d"</string> - <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string> <string name="folder_opened" msgid="1262064100943801533">"Kaust on avatud, <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="1335478160661137579">"Puudutage kausta sulgemiseks"</string> <string name="folder_tap_to_rename" msgid="5201612989905472442">"Puudutage uue nime salvestamiseks"</string> diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml index 781f262ea..51ff5083f 100644 --- a/res/values-eu-rES/strings.xml +++ b/res/values-eu-rES/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Abiarazlea3"</string> - <string name="home" msgid="7658288663002113681">"Hasiera"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikazioa instalatu gabe dago."</string> <string name="activity_not_available" msgid="7456344436509528827">"Ez dago erabilgarri aplikazioa"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurazioa"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Sistema-aplikazioa da hau eta ezin da desinstalatu."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Izenik gabeko karpeta"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"%1$d hasierako pantaila"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d/%2$d orria"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d/%2$d hasierako pantaila"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Ongi etorri"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Horma-paperak, widgetak eta ezarpenak"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pertsonalizatzeko, eduki ukituta atzeko planoa"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ADOS"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Ados"</string> <string name="folder_opened" msgid="94695026776264709">"Karpeta ireki da: <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="1884479294466410023">"Karpeta ixteko, uki ezazu"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Karpetaren izen berria gordetzeko, uki ezazu"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgetak"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Horma-paperak"</string> <string name="settings_button_text" msgid="8119458837558863227">"Ezarpenak"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Zain"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Deskargatzen"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalatzen"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Ezezaguna"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ez da leheneratu"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Kendu guztiak"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Kendu"</string> <string name="abandoned_search" msgid="891119232568284442">"Bilatu"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplikazio hau ez dago instalatuta"</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index bf3a04f5c..76ffc9d19 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"صفحه اصلی"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"برنامه نصب نشده است."</string> <string name="activity_not_available" msgid="7456344436509528827">"برنامه در دسترس نیست"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"تنظیم"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"این برنامه سیستمی است و حذف نصب نمیشود."</string> <string name="folder_hint_text" msgid="6617836969016293992">"پوشه بینام"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"صفحه اصلی %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"صفحه %1$d از %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"صفحه اصلی %1$d از %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"خوش آمدید"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"کاغذدیواریها، ابزارکها و تنظیمات"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"برای سفارشی کردن، پسزمینه را لمس کنید و نگهدارید"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"متوجه شدم"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"تأیید"</string> <string name="folder_opened" msgid="94695026776264709">"پوشه باز شده، <xliff:g id="WIDTH">%1$d</xliff:g> در <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"برای بستن پوشه لمس کنید"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"برای ذخیره تغییر نام لمس کنید"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ابزارکها"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"کاغذدیواریها"</string> <string name="settings_button_text" msgid="8119458837558863227">"تنظیمات"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"در حال انتظار"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"در حال دانلود"</string> - <string name="package_state_installing" msgid="7588193972189849870">"در حال نصب"</string> <string name="package_state_unknown" msgid="7592128424511031410">"نامشخص"</string> - <string name="package_state_error" msgid="7672093962724223588">"بازیابی نشد"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"حذف همه"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"حذف"</string> <string name="abandoned_search" msgid="891119232568284442">"جستجو"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"این برنامه نصب نشده است."</string> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index da298be8c..44630c8ab 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Aloitusruutu"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Sovellusta ei ole asennettu."</string> <string name="activity_not_available" msgid="7456344436509528827">"Sovellus ei ole käytettävissä"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Asetus"</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="6617836969016293992">"Nimetön kansio"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Aloitusruutu %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Sivu %1$d / %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Aloitusruutu %1$d/%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Tervetuloa"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Taustakuvat, widgetit ja asetukset"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Muokkaa taustaa koskettamalla ja painamalla pitkään"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SELVÄ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Kansio avattu, koko <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="1884479294466410023">"Sulje kansio koskettamalla"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tallenna uudella nimellä koskettamalla"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgetit"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustakuvat"</string> <string name="settings_button_text" msgid="8119458837558863227">"Asetukset"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Odottaa"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Ladataan"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Asennetaan"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Tuntematon"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ei palautettu"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Poista kaikki"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Poista"</string> <string name="abandoned_search" msgid="891119232568284442">"Haku"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Sovellusta ei ole asennettu"</string> diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index cc4d2a958..f11b34da7 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Lanceur3"</string> - <string name="home" msgid="7658288663002113681">"Accueil"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string> <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Dossier sans nom"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Écran d\'accueil %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d sur %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Écran d\'accueil %1$d sur %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenue"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fonds d\'écran, widgets et paramètres"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Maintenez le doigt sur le fond d\'écran pour personnaliser"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"J\'ai compris"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Dossier ouvert, <xliff:g id="WIDTH">%1$d</xliff:g> par <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toucher pour fermer le dossier"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toucher pour enregistrer le nouveau nom"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string> <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"En attente"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Téléchargement..."</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installation…"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string> - <string name="package_state_error" msgid="7672093962724223588">"Non restauré"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Tout supprimer"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string> <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Cette application n\'est pas installée"</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 826e17251..692c2ba29 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Accueil"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string> <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Dossier sans nom"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Écran d\'accueil %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Page %1$d sur %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Écran d\'accueil %1$d sur %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bienvenue"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fonds d\'écran, widgets et paramètres"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Appuyez de manière prolongée sur l\'arrière-plan pour le personnaliser."</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Dossier ouvert, <xliff:g id="WIDTH">%1$d</xliff:g> par <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Appuyez pour fermer le dossier."</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Appuyez pour enregistrer le nouveau nom."</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string> <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"En attente"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Téléchargement…"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installation…"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string> - <string name="package_state_error" msgid="7672093962724223588">"Non restauré"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Tout supprimer"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string> <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Cette application n\'est pas installée"</string> diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml index 8cd568654..0684bdc22 100644 --- a/res/values-gl-rES/strings.xml +++ b/res/values-gl-rES/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Inicio"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"A aplicación non está instalada"</string> <string name="activity_not_available" msgid="7456344436509528827">"A aplicación non está dispoñible"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Cartafol sen nome"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Pantalla de inicio %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Páxina %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Pantalla de inicio %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Dámosche a benvida"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos pantalla, widgets e configuración"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Mantén tocado o segundo plano para personalizar"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"DE ACORDO"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Aceptar"</string> <string name="folder_opened" msgid="94695026776264709">"Abriuse o cartafol, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toca para pechar o cartafol"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toca para gardar o cambio de nome"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string> <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"En espera"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Descargando"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Descoñecido"</string> - <string name="package_state_error" msgid="7672093962724223588">"Non restaurado"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminar todas"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string> <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación non está instalada"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 49feb66cb..c36cc7462 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"होम"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"एप्लिकेशन इंस्टॉल नहीं है."</string> <string name="activity_not_available" msgid="7456344436509528827">"ऐप्स उपलब्ध नहीं है"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"यह एक सिस्टम ऐप्लिकेशन है और इसे अनइंस्टॉल नहीं किया जा सकता."</string> <string name="folder_hint_text" msgid="6617836969016293992">"अनामित फ़ोल्डर"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"होम स्क्रीन %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"स्वागत है"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वॉलपेपर, शॉर्टकट और सेटिंग"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"पृष्ठभूमि कस्टमाइज़ करने के लिए स्पर्श करके रखें"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"समझ लिया"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ठीक"</string> <string name="folder_opened" msgid="94695026776264709">"फ़ोल्डर खोला गया, <xliff:g id="WIDTH">%1$d</xliff:g> गुणा <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"फ़ोल्डर बंद करने के लिए स्पर्श करें"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"बदला गया नाम सहेजने के लिए स्पर्श करें"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"शॉर्टकट"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string> <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"प्रतीक्षा में"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड हो रहा है"</string> - <string name="package_state_installing" msgid="7588193972189849870">"इंस्टॉल हो रहा है"</string> <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string> - <string name="package_state_error" msgid="7672093962724223588">"पुन:स्थापित नहीं हुआ"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"सभी निकालें"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"निकालें"</string> <string name="abandoned_search" msgid="891119232568284442">"खोजें"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"यह ऐप्स इंस्टॉल नहीं है"</string> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index c43d2f40b..016d7eb2d 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Pokretač3"</string> - <string name="home" msgid="7658288663002113681">"Početna"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija nije instalirana."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija nije dostupna"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Neimenovana mapa"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Početni zaslon %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Stranica %1$d od %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Početni zaslon %1$d od %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Dobro došli"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Pozadinske slike, widgeti i postavke"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Dodirnite i zadržite pozadinu radi prilagodbe"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SHVAĆAM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"U redu"</string> <string name="folder_opened" msgid="94695026776264709">"Mapa je otvorena, <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="1884479294466410023">"Dodirnite da biste zatvorili mapu"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dodirnite da biste spremili preimenovanje"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgeti"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Pozadinske slike"</string> <string name="settings_button_text" msgid="8119458837558863227">"Postavke"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Čekanje"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Preuzimanje"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instaliranje"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Nepoznato"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nije vraćeno"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Ukloni sve"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Ukloni"</string> <string name="abandoned_search" msgid="891119232568284442">"Traži"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacija nije instalirana"</string> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index ef804a4d8..9074c176f 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Főoldal"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Az alkalmazás nincs telepítve."</string> <string name="activity_not_available" msgid="7456344436509528827">"Az alkalmazás nem érhető el"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Beállítás"</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="6617836969016293992">"Névtelen mappa"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"%1$d. kezdőképernyő"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%2$d/%1$d. oldal"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"%2$d/%1$d. kezdőképernyő"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Üdvözöljük!"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Háttérképek, modulok és beállítások"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Érintse meg és tartsa lenyomva a személyre szabáshoz"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"MEGÉRTETTEM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Mappa megnyitva – szélesség: <xliff:g id="WIDTH">%1$d</xliff:g>; magasság: <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Érintse meg a mappa bezárásához"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Érintse meg az átnevezés mentéséhez"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Modulok"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Háttérképek"</string> <string name="settings_button_text" msgid="8119458837558863227">"Beállítások"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Várakozik"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Letöltés alatt"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Települ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Ismeretlen"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nincs visszaállítva"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Az összes eltávolítása"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eltávolítás"</string> <string name="abandoned_search" msgid="891119232568284442">"Keresés"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Az alkalmazás nincs telepítve"</string> diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml index cbc5585da..ea4b2a1ed 100644 --- a/res/values-hy-rAM/strings.xml +++ b/res/values-hy-rAM/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Հիմնական"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Ծրագիրը տեղադրված չէ:"</string> <string name="activity_not_available" msgid="7456344436509528827">"Հավելվածը հասանելի չէ"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Կարգավորում"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Սա համակարգային ծրագիր է և չի կարող ապատեղադրվել:"</string> <string name="folder_hint_text" msgid="6617836969016293992">"Անանուն թղթապանակ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Հիմնական էկրան %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Էջ %1$d՝ %2$d-ից"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Հիմնական էկրան %1$d` %2$d-ից"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Բարի գալուստ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Պաստառներ, վիջեթներ և կարգավորումներ"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Հարմարեցնելու համար հպեք և պահեք հետնաշերտի վրա"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ՀԱՍԿԱՆԱԼԻ Է"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Լավ"</string> <string name="folder_opened" msgid="94695026776264709">"Թղթապանակը բաց է, <xliff:g id="WIDTH">%1$d</xliff:g>-ից <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Հպեք՝ թղթապանակը փակելու համար"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Հպեք՝ վերանվանումը պահելու համար"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Վիջեթներ"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Պաստառներ"</string> <string name="settings_button_text" msgid="8119458837558863227">"Կարգավորումներ"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Առկախ է"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Ներբեռնվում է"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Տեղադրվում է"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Անհայտ է"</string> - <string name="package_state_error" msgid="7672093962724223588">"Չի վերականգնվել"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Հեռացնել բոլորը"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Հեռացնել"</string> <string name="abandoned_search" msgid="891119232568284442">"Գտնել"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Այս ծրագիրը տեղադրված չէ:"</string> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index ea9ebb594..edefc4435 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Layar Utama"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikasi tidak dipasang."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikasi tidak tersedia"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Siapkan"</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="6617836969016293992">"Folder Tanpa Nama"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Layar utama %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Laman %1$d dari %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Layar utama %1$d dari %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Selamat Datang"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpaper, widget, & setelan"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh & tahan latar belakang untuk menyesuaikan"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"MENGERTI"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Oke"</string> <string name="folder_opened" msgid="94695026776264709">"Folder dibuka, <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="1884479294466410023">"Sentuh untuk menutup folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Sentuh untuk menyimpan ganti nama"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpaper"</string> <string name="settings_button_text" msgid="8119458837558863227">"Setelan"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Menunggu"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Mengunduh"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Memasang"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Tidak dikenal"</string> - <string name="package_state_error" msgid="7672093962724223588">"Tak dipulihkan"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Buang Semua"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Buang"</string> <string name="abandoned_search" msgid="891119232568284442">"Telusuri"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplikasi ini belum terpasang"</string> diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml index 41e43b597..70f87e46f 100644 --- a/res/values-is-rIS/strings.xml +++ b/res/values-is-rIS/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Heim"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Forritið er ekki uppsett."</string> <string name="activity_not_available" msgid="7456344436509528827">"Forritið er ekki í boði"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Uppsetning"</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="6617836969016293992">"Ónefnd mappa"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Heimaskjár %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Síða %1$d af %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Heimaskjár %1$d af %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Komdu fagnandi"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Veggfóður, græjur og stillingar"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Haltu fingri á bakgrunninum til að sérsníða hann"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ÉG SKIL"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Í lagi"</string> <string name="folder_opened" msgid="94695026776264709">"Mappa opnuð, <xliff:g id="WIDTH">%1$d</xliff:g> sinnum <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Snertu til að loka möppunni"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Snertu til að staðfesta nýtt heiti"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Græjur"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Veggfóður"</string> <string name="settings_button_text" msgid="8119458837558863227">"Stillingar"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Bíður"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Sækir"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Setur upp"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Óþekkt"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ekki endurheimt"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Fjarlægja öll"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjarlægja"</string> <string name="abandoned_search" msgid="891119232568284442">"Leita"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Þetta forrit er ekki uppsett"</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 6307fff8f..6ad1ed4d2 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Home page"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"App non installata."</string> <string name="activity_not_available" msgid="7456344436509528827">"App non disponibile"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Cartella senza nome"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Schermata Home %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d di %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Schermata Home %1$d di %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Benvenuto"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Sfondi, widget e impostazioni"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tocca lo sfondo e tieni premuto per personalizzare"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Cartella aperta, <xliff:g id="WIDTH">%1$d</xliff:g> per <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Tocca per chiudere la cartella"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tocca per salvare nuovo nome"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Sfondi"</string> <string name="settings_button_text" msgid="8119458837558863227">"Impostazioni"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"In attesa"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Download..."</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installazione..."</string> <string name="package_state_unknown" msgid="7592128424511031410">"Sconosciuto"</string> - <string name="package_state_error" msgid="7672093962724223588">"Non ripristinato"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Rimuovi tutto"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Rimuovi"</string> <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"L\'app non è installata"</string> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 479be106c..3e3fe3391 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"דף הבית"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"האפליקציה לא מותקנת."</string> <string name="activity_not_available" msgid="7456344436509528827">"האפליקציה אינה זמינה"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"הגדר"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"זוהי אפליקציית מערכת ולא ניתן להסיר את התקנתה."</string> <string name="folder_hint_text" msgid="6617836969016293992">"תיקיה ללא שם"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"מסך דף הבית %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"דף %1$d מתוך %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"מסך דף הבית %1$d מתוך %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"ברוכים הבאים"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"טפטים, ווידג\'טים והגדרות"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"גע והחזק ברקע לביצוע התאמה אישית"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"הבנתי"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"אישור"</string> <string name="folder_opened" msgid="94695026776264709">"תיקיה פתוחה, <xliff:g id="WIDTH">%1$d</xliff:g> על <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"גע כדי לסגור את התיקיה"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"גע כדי לשמור את שינוי השם"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"רכיבי ווידג\'ט"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"טפטים"</string> <string name="settings_button_text" msgid="8119458837558863227">"הגדרות"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"ממתין"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"מוריד"</string> - <string name="package_state_installing" msgid="7588193972189849870">"מתקין"</string> <string name="package_state_unknown" msgid="7592128424511031410">"לא ידוע"</string> - <string name="package_state_error" msgid="7672093962724223588">"לא שוחזרה"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"הסר את הכל"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"הסר"</string> <string name="abandoned_search" msgid="891119232568284442">"חפש"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"אפליקציה זו אינה מותקנת"</string> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index aa700aa54..1fc9aca00 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"ホーム"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"このアプリはインストールされていません。"</string> <string name="activity_not_available" msgid="7456344436509528827">"このアプリは使用できません"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"セットアップ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"このシステムアプリはアンインストールできません。"</string> <string name="folder_hint_text" msgid="6617836969016293992">"名前のないフォルダ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ホーム画面: %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d/%2$dページ"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"ホーム画面: %1$d/%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"ようこそ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"壁紙、ウィジェット、設定"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"カスタマイズするにはバックグラウンドを押し続けます"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</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="1884479294466410023">"タップしてフォルダを閉じます"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"タップして名前の変更を保存します"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ウィジェット"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"壁紙"</string> <string name="settings_button_text" msgid="8119458837558863227">"設定"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"待機中"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ダウンロード中"</string> - <string name="package_state_installing" msgid="7588193972189849870">"インストール中"</string> <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string> - <string name="package_state_error" msgid="7672093962724223588">"復元失敗"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"すべて削除"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"削除"</string> <string name="abandoned_search" msgid="891119232568284442">"検索"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"このアプリはインストールされていません"</string> diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index 79434c0f1..4a93b9a16 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"მთავარი"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"აპი არ არის დაყენებული."</string> <string name="activity_not_available" msgid="7456344436509528827">"აპი მიუწვდომელია"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"დაყენება"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ეს სისტემური აპია და მისი წაშლა შეუძლებელია."</string> <string name="folder_hint_text" msgid="6617836969016293992">"უსახელო საქაღალდე"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"მთავარი ეკრანი %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"გვერდი %1$d %2$d-დან"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"მთავარი ეკრანი %1$d, %2$d-დან"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"მოგესალმებით"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ფონები, ვიჯეტები, & პარამეტრები"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"მოსარგებად შეეხეთ & დააყოვნეთ ფონზე"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"გასაგებია"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"კარგი"</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="1884479294466410023">"შეეხეთ საქაღალდის დასახურად"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"შეეხეთ ახალი სახელის შესანახად"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ვიჯეტები"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"ფონები"</string> <string name="settings_button_text" msgid="8119458837558863227">"პარამეტრები"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"მოცდა..."</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ჩამოტვირთვა..."</string> - <string name="package_state_installing" msgid="7588193972189849870">"ინსტალაცია..."</string> <string name="package_state_unknown" msgid="7592128424511031410">"უცნობი"</string> - <string name="package_state_error" msgid="7672093962724223588">"არ აღდგა"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"ყველას ამოშლა"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ამოშლა"</string> <string name="abandoned_search" msgid="891119232568284442">"ძიება"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ეს აპი დაყენებული არ არის"</string> diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml index 8a0c6277f..40de75307 100644 --- a/res/values-kk-rKZ/strings.xml +++ b/res/values-kk-rKZ/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Негізгі"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Қолданба орнатылмаған."</string> <string name="activity_not_available" msgid="7456344436509528827">"Қолданба қол жетімді емес"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Орнату"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бұл жүйе қолданбасы, сондықтан оны алу мүмкін емес."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Атауы жоқ қалта"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"%1$d негізгі экран"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d бет, барлығы %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d негізгі экран, барлығы %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Қош келдіңіз"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тұсқағаздар, виджеттер және параметрлер"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Теңшеу үшін фонды түртіп, ұстап тұрыңыз"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ТҮСІНДІМ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Жарайды"</string> <string name="folder_opened" msgid="94695026776264709">"Қалта ашылды, <xliff:g id="WIDTH">%1$d</xliff:g> және <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Қалтаны жабу үшін түртіңіз"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Өзгертілген атауын сақтау үшін түртіңіз"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виджеттер"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Артқы фондар"</string> <string name="settings_button_text" msgid="8119458837558863227">"Параметрлер"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Күтілуде"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Жүктелуде"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Орнатылуда"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Белгісіз"</string> - <string name="package_state_error" msgid="7672093962724223588">"Қалп. кел-меді"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Барлығын алып тастау"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып тастау"</string> <string name="abandoned_search" msgid="891119232568284442">"Іздеу"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Бұл қолданба орнатылмаған"</string> diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml index a61be73cd..1cd8fe29b 100644 --- a/res/values-km-rKH/strings.xml +++ b/res/values-km-rKH/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"ដើម"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"មិនបានដំឡើងកម្មវិធី។"</string> <string name="activity_not_available" msgid="7456344436509528827">"មិនមានកម្មវិធី"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"រៀបចំ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"នេះជាកម្មវិធីប្រព័ន្ធ មិនអាចលុបបានទេ។"</string> <string name="folder_hint_text" msgid="6617836969016293992">"ថតគ្មានឈ្មោះ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"អេក្រង់ដើម %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"ទំព័រ %1$d នៃ %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"អេក្រង់ដើម %1$d នៃ %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"សូមស្វាគមន៍"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ផ្ទាំងរូបភាព,ធាតុក្រាហ្វិក & ការកំណត់"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ប៉ះ & សង្កត់ផ្ទៃខាងក្រោយដើម្បីប្ដូរតាមតម្រូវការ"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"យល់ហើយ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"យល់ព្រម"</string> <string name="folder_opened" msgid="94695026776264709">"បានបើកថត <xliff:g id="WIDTH">%1$d</xliff:g> ដោយ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ប៉ះ ដើម្បីបិទថត"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"ប៉ះ ដើម្បីរក្សាទុកការប្ដូរឈ្មោះ"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ធាតុក្រាហ្វិក"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"ផ្ទាំងរូបភាព"</string> <string name="settings_button_text" msgid="8119458837558863227">"ការកំណត់"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"រង់ចាំ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ទាញយក"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ដំឡើង"</string> <string name="package_state_unknown" msgid="7592128424511031410">"មិនស្គាល់"</string> - <string name="package_state_error" msgid="7672093962724223588">"មិនបានស្តារ"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"លុបចេញទាំងអស់"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"លុបចេញ"</string> <string name="abandoned_search" msgid="891119232568284442">"ស្វែងរក"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"មិនបានដំឡើងកម្មវិធីនេះ"</string> diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml index 9680cb694..a823528df 100644 --- a/res/values-kn-rIN/strings.xml +++ b/res/values-kn-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"ಲಾಂಚರ್3"</string> - <string name="home" msgid="7658288663002113681">"ಮುಖಪುಟ"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"</string> <string name="activity_not_available" msgid="7456344436509528827">"ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿಲ್ಲ"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ಸೆಟಪ್"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ಇದೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> <string name="folder_hint_text" msgid="6617836969016293992">"ಹೆಸರಿಲ್ಲದ ಫೋಲ್ಡರ್"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ಮುಖಪುಟದ ಪರದೆ %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"ಸುಸ್ವಾಗತ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ವಾಲ್ಪೇಪರ್ಗಳು, ವಿಜೆಟ್ಗಳು, & ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಹಿನ್ನೆಲೆಯನ್ನು ಸ್ಪರ್ಶಿಸಿ & ಒತ್ತಿ ಹಿಡಿಯಿರಿ"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ಅರ್ಥವಾಯಿತು"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ಸರಿ"</string> <string name="folder_opened" msgid="94695026776264709">"ಫೋಲ್ಡರ್ ತೆರೆಯಲಾಗಿದೆ, <xliff:g id="WIDTH">%1$d</xliff:g> ಬೈ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ಫೋಲ್ಡರ್ ಮುಚ್ಚಲು ಸ್ಪರ್ಶಿಸಿ"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"ಮರುಹೆಸರನ್ನು ಉಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ವಿಜೆಟ್ಗಳು"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"ವಾಲ್ಪೇಪರ್ಗಳು"</string> <string name="settings_button_text" msgid="8119458837558863227">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"ಅಜ್ಞಾತ"</string> - <string name="package_state_error" msgid="7672093962724223588">"ಇನ್ನೂ ಪುನಃಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"ಎಲ್ಲವನ್ನೂ ತೆಗೆದುಹಾಕಿ"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ತೆಗೆದುಹಾಕಿ"</string> <string name="abandoned_search" msgid="891119232568284442">"ಹುಡುಕು"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ಈ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ"</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 7e924cb19..628900aba 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"홈"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"앱이 설치되지 않았습니다."</string> <string name="activity_not_available" msgid="7456344436509528827">"앱을 사용할 수 없음"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"설정"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"시스템 앱은 제거할 수 없습니다."</string> <string name="folder_hint_text" msgid="6617836969016293992">"이름이 없는 폴더"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"홈 화면 %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"페이지 %1$d/%2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"홈 화면 %1$d/%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"환영합니다."</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"배경화면, 위젯, 설정"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"백그라운드를 길게 터치하여 맞춤설정합니다."</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"확인"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"확인"</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="1884479294466410023">"터치하여 폴더를 닫음"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"터치하여 바꾼 이름을 저장"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"위젯"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"배경화면"</string> <string name="settings_button_text" msgid="8119458837558863227">"설정"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"대기 중"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"다운로드 중"</string> - <string name="package_state_installing" msgid="7588193972189849870">"설치 중"</string> <string name="package_state_unknown" msgid="7592128424511031410">"알 수 없음"</string> - <string name="package_state_error" msgid="7672093962724223588">"복원되지 않음"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"모두 삭제"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"삭제"</string> <string name="abandoned_search" msgid="891119232568284442">"검색"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"이 앱이 설치되어 있지 않음"</string> diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml index 39cbee2a6..865db3b3a 100644 --- a/res/values-ky-rKG/strings.xml +++ b/res/values-ky-rKG/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Үйгө"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Колдонмо орнотулган эмес."</string> <string name="activity_not_available" msgid="7456344436509528827">"Колдонмо жеткиликтүү эмес"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Орнотуу"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Бул системдик колдонмо жана аны чечкенге болбойт."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Аты жок фолдер"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Үй экраны %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"Кош келиңиз"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тушкагаздар, виджеттер & жөндөөлөр"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Өзгөчөлөштүрүү үчүн фонго тийип & коё бербей туруңуз"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ТҮШҮНДҮМ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Фолдер ачылды, туурасы <xliff:g id="WIDTH">%1$d</xliff:g>, бийиктиги <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Фолдерди жабыш үчүн тийиңиз"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Тийип, аттын өзгөртүлүшүн сактаңыз"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виджеттер"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Тушкагаздар"</string> <string name="settings_button_text" msgid="8119458837558863227">"Тууралоолор"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Күтүүдө"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Жүктөлп алнууда"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Орнотулууда"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Белгисиз"</string> - <string name="package_state_error" msgid="7672093962724223588">"Калыбн келт. жок"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Баарын алып салуу"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып салуу"</string> <string name="abandoned_search" msgid="891119232568284442">"Издөө"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Бул колдонмо орнотулган эмес"</string> diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml index aa45950f0..b3c467693 100644 --- a/res/values-lo-rLA/strings.xml +++ b/res/values-lo-rLA/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"ໜ້າຫຼັກ"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"ແອັບຯບໍ່ໄດ້ຖືກຕິດຕັ້ງ."</string> <string name="activity_not_available" msgid="7456344436509528827">"ແອັບຯໃຊ້ບໍ່ໄດ້"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ຕິດຕັ້ງ"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ນີ້ແມ່ນແອັບຯຂອງລະບົບ ແລະບໍ່ສາມາດຖອນການຕິດຕັ້ງອອກໄດ້."</string> <string name="folder_hint_text" msgid="6617836969016293992">"ໂຟນເດີຍັງບໍ່ຖືກຕັ້ງຊື່"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ໜ້າຈໍຫຼັກ %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"ໜ້າ %1$d ຈາກ %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"ໜ້າຈໍຫຼັກ %1$d ໃນ %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"ຍິນດີຕ້ອນຮັບ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ຮູບພື້ນຫຼັງ, ວິດເຈັດ, & ການຕັ້ງຄ່າ"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ແຕະທີ່ພາບພື້ນຫລັງຄ້າງໄວ້ເພື່ອປັບແຕ່ງ"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ເຂົ້າໃຈແລ້ວ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ຕົກລົງ"</string> <string name="folder_opened" msgid="94695026776264709">"ເປີດໂຟນເດີແລ້ວ, <xliff:g id="WIDTH">%1$d</xliff:g> ຄູນ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ສຳພັດເພື່ອປິດໂຟນເດີ"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"ສຳພັດເພື່ອບັນທຶກການປ່ຽນຊື່"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ວິດເຈັດ"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"ພາບພື້ນຫຼັງ"</string> <string name="settings_button_text" msgid="8119458837558863227">"ການຕັ້ງຄ່າ"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"ກຳລັງລໍຖ້າ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ກຳລັງດາວໂຫລດ"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ກຳລັງຕິດຕັ້ງ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"ບໍ່ຮູ້ຈັກ"</string> - <string name="package_state_error" msgid="7672093962724223588">"ບໍ່ໄດ້ກູ້ຂໍ້ມູນມາເທື່ອ"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"ລຶບທັງໝົດ"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ລຶບ"</string> <string name="abandoned_search" msgid="891119232568284442">"ຊອກຫາ"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ແອັບຯນີ້ຍັງບໍ່ໄດ້ຕິດຕັ້ງເທື່ອ"</string> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 3dd9fc9ec..a6d5edc6b 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Pagrindinis"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Programa neįdiegta."</string> <string name="activity_not_available" msgid="7456344436509528827">"Programa nepasiekiama"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Sąranka"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Tai sistemos programa ir jos negalima pašalinti."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Aplankas be pavadinimo"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"%1$d pagrindinis ekranas"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d psl. iš %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d pagrindinis ekranas iš %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Sveiki"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ekrano fonai, valdikliai ir nustatymai"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Jei norite tinkinti, palieskite ir palaikykite foną"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SUPRATAU"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Gerai"</string> <string name="folder_opened" msgid="94695026776264709">"Atidarytas aplankas, <xliff:g id="WIDTH">%1$d</xliff:g> ir <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Palieskite, kad uždarytumėte aplanką"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Palieskite, kad išsaugotumėte naują pavadinimą"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Valdikliai"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Ekrano fonai"</string> <string name="settings_button_text" msgid="8119458837558863227">"Nustatymai"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Laukiama"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Atsisiunčiama"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Diegiama"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Nežinoma"</string> - <string name="package_state_error" msgid="7672093962724223588">"Neatkurta"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Pašalinti viską"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Pašalinti"</string> <string name="abandoned_search" msgid="891119232568284442">"Ieškoti"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ši programa neįdiegta"</string> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 07ed9ece4..fdbee78ed 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Sākums"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Lietotne nav instalēta."</string> <string name="activity_not_available" msgid="7456344436509528827">"Lietotne nav pieejama."</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Notiek iestatīšana"</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="6617836969016293992">"Mape bez nosaukuma"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Sākuma ekrāns: %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d. lapa no %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Sākuma ekrāns: %1$d no %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Laipni lūdzam!"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fona tapetes, logrīki un iestatījumi"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Lai pielāgotu, pieskarieties fonam un turiet to nospiestu."</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SAPRATU!"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Labi"</string> <string name="folder_opened" msgid="94695026776264709">"Atvērta mape: <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="1884479294466410023">"Pieskarieties, lai aizvērtu mapi."</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Pieskarieties, lai saglabātu pārdēvēto nosaukumu."</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Logrīki"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Fona tapetes"</string> <string name="settings_button_text" msgid="8119458837558863227">"Iestatījumi"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Gaida"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Lejupielādē"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalē"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Nezināma"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nav atjaunota"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Noņemt visas"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Noņemt"</string> <string name="abandoned_search" msgid="891119232568284442">"Meklēt"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Šī lietotne nav instalēta"</string> diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml index 4e7c52573..f6df54dd3 100644 --- a/res/values-mk-rMK/strings.xml +++ b/res/values-mk-rMK/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Почетна страница"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Апликацијата не е инсталирана."</string> <string name="activity_not_available" msgid="7456344436509528827">"Апликацијата не е достапна"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Поставување"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ова е системска апликација и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Неименувана папка"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Екран на почетна страница %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Страница %1$d од %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Екран на почетна страница %1$d од %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Добредојдовте"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тапети, додатоци и поставки"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Допрете и задржете на заднината за да приспособите"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"СФАТИВ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Во ред"</string> <string name="folder_opened" msgid="94695026776264709">"Отворена е папка, <xliff:g id="WIDTH">%1$d</xliff:g> на <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Допри за да се затвори папката"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Допри за да се зачува преименувањето"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виџети"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string> <string name="settings_button_text" msgid="8119458837558863227">"Подесувања"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"На чекање"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Се презема"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Се инсталира"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string> - <string name="package_state_error" msgid="7672093962724223588">"Не е обновено"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Отстрани ги сите"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Отстрани"</string> <string name="abandoned_search" msgid="891119232568284442">"Барај"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Апликацијата не е инсталирана"</string> diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml index d1338b6b5..de37f47c4 100644 --- a/res/values-ml-rIN/strings.xml +++ b/res/values-ml-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"ഹോം"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്തിട്ടില്ല."</string> <string name="activity_not_available" msgid="7456344436509528827">"അപ്ലിക്കേഷൻ ലഭ്യമല്ല"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"സജ്ജീകരിക്കുക"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ഇതൊരു സിസ്റ്റം അപ്ലിക്കേഷനായതിനാൽ അൺഇൻസ്റ്റാളുചെയ്യാനാവില്ല."</string> <string name="folder_hint_text" msgid="6617836969016293992">"പേരുനൽകാത്ത ഫോൾഡർ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ഹോം സ്ക്രീൻ %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"പേജ് %1$d / %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"ഹോം സ്ക്രീൻ %1$d / %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"സ്വാഗതം"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"വാൾപേപ്പറുകൾ, വിജറ്റുകൾ, ക്രമീകരണങ്ങൾ എന്നിവ"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ഇഷ്ടാനുസൃതമാക്കുന്നതിന് പശ്ചാത്തലം സ്പർശിച്ചുപിടിക്കുക"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"മനസ്സിലായി"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ശരി"</string> <string name="folder_opened" msgid="94695026776264709">"ഫോൾഡർ തുറന്നു, <xliff:g id="WIDTH">%1$d</xliff:g> / <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ഫോൾഡർ അടയ്ക്കാൻ സ്പർശിക്കുക"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"പേരുമാറ്റം സംരക്ഷിക്കുന്നതിന് സ്പർശിക്കുക"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"വിജറ്റുകൾ"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"വാൾപേപ്പറുകൾ"</string> <string name="settings_button_text" msgid="8119458837558863227">"ക്രമീകരണങ്ങൾ"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"കാത്തിരിക്കുന്നു"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ഡൗൺലോഡുചെയ്യുന്നു"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ഇൻസ്റ്റാൾ ചെയ്യുന്നു"</string> <string name="package_state_unknown" msgid="7592128424511031410">"അജ്ഞാതം"</string> - <string name="package_state_error" msgid="7672093962724223588">"പുനഃസ്ഥാപിച്ചിട്ടില്ല"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"എല്ലാം നീക്കം ചെയ്യുക"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"നീക്കംചെയ്യുക"</string> <string name="abandoned_search" msgid="891119232568284442">"തിരയുക"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ഈ അപ്ലിക്കേഷൻ ഇൻസ്റ്റാളുചെയ്തിട്ടില്ല"</string> diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml index 6639e6df1..27b166d3b 100644 --- a/res/values-mn-rMN/strings.xml +++ b/res/values-mn-rMN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Нүүр"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Апп суугаагүй байна."</string> <string name="activity_not_available" msgid="7456344436509528827">"Апп-г ашиглах боломжгүй"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Тохируулга"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Энэ апп нь системийн апп ба устгах боломжгүй."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Нэргүй фолдер"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Нүүр дэлгэц %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"Тавтай морилно уу"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Дэвсгэр зураг, виджет, & тохиргоо"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Тааруулахын тулд арын дэлгэцэнд хүрээд & барина уу"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"Ойлголоо"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Тийм"</string> <string name="folder_opened" msgid="94695026776264709">"<xliff:g id="WIDTH">%1$d</xliff:g> <xliff:g id="HEIGHT">%2$d</xliff:g> фолдер нээгдэв"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Фолдер хаах бол хүрнэ үү"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Шинэ нэрийг хадгалах бол хүрнэ үү"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виджет"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Ханын зураг"</string> <string name="settings_button_text" msgid="8119458837558863227">"Тохиргоо"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Хүлээж байна"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Татаж авч байна"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Суулгаж байна"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Тодорхойгүй"</string> - <string name="package_state_error" msgid="7672093962724223588">"Сэргээгээгүй"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Бүгдийг устгах"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Устгах"</string> <string name="abandoned_search" msgid="891119232568284442">"Хайх"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Энэ апп-г суулгаагүй байна"</string> diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml index 0d61ff3ca..ad75e8842 100644 --- a/res/values-mr-rIN/strings.xml +++ b/res/values-mr-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"मुख्यपृष्ठ"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"अॅप स्थापित केलेला नाही."</string> <string name="activity_not_available" msgid="7456344436509528827">"अॅप उपलब्ध नाही"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"हा सिस्टम अॅप आहे आणि विस्थापित केला जाऊ शकत नाही."</string> <string name="folder_hint_text" msgid="6617836969016293992">"अनामित फोल्डर"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"मुख्य स्क्रीन %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"सुस्वागतम"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वॉलपेपर, विजेट आणि सेटिंग्ज"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"सानुकूल करण्यासाठी पार्श्वभूमीस स्पर्श करा आणि धरुन ठेवा"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"समजले"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ठीक"</string> <string name="folder_opened" msgid="94695026776264709">"फोल्डर उघडले, <xliff:g id="WIDTH">%1$d</xliff:g> बाय <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"फोल्डर बंद करण्यासाठी स्पर्श करा"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"नवे नाव जतन करण्यासाठी स्पर्श करा"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"विजेट"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string> <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग्ज"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"प्रतीक्षारत"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड करत आहे"</string> - <string name="package_state_installing" msgid="7588193972189849870">"स्थापित करत आहे"</string> <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string> - <string name="package_state_error" msgid="7672093962724223588">"पुनर्स्थापित झाले नाही"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"सर्व काढा"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"काढा"</string> <string name="abandoned_search" msgid="891119232568284442">"शोधा"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"हा अॅप स्थापित केलेला नाही"</string> diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index a9344f5b5..e2b8e162c 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Laman Utama"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Apl tidak dipasang."</string> <string name="activity_not_available" msgid="7456344436509528827">"Apl tidak tersedia"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Folder Tanpa Nama"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Skrin Laman Utama %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Halaman %1$d daripada %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Skrin Laman Utama %1$d daripada %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Selamat datang"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Kertas dinding, widget & tetapan"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh & tahan latar belakang untuk memperibadikan"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"FAHAM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Sentuh untuk menutup folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Sentuh untuk menyimpan penamaan semula"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widget"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Kertas dinding"</string> <string name="settings_button_text" msgid="8119458837558863227">"Tetapan"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Menunggu"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Memuat turun"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Memasang"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Tidak diketahui"</string> - <string name="package_state_error" msgid="7672093962724223588">"Tak dipulihkan"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Buang Semua"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Alih keluar"</string> <string name="abandoned_search" msgid="891119232568284442">"Carian"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Apl ini tidak dipasang"</string> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index de274d7d7..7335605c8 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="8424725141379931883">"Pelancar"</string> - <string name="home" msgid="5921706419368316758">"Laman Utama"</string> <string name="folder_name" msgid="8551881338202938211"></string> <string name="wallpaper_instructions" msgid="4215640646180727542">"Tetapkan kertas dinding"</string> <string name="pick_wallpaper" msgid="5630222540525626723">"Kertas dinding"</string> @@ -43,10 +42,8 @@ <string name="gadget_error_text" msgid="8359351016167075858">"Masalah memuatkan widget"</string> <string name="uninstall_system_app_text" msgid="6429814133777046491">"Ini adalah aplikasi sistem dan tidak boleh dinyahpasang."</string> <string name="folder_hint_text" msgid="8633351560105748141">"Folder Tanpa Nama"</string> - <string name="workspace_description_format" msgid="2968608205939373034">"Skrin utama %1$d"</string> <string name="default_scroll_format" msgid="4057140866420001240">"Halaman %1$d dari %2$d"</string> <string name="workspace_scroll_format" msgid="1704767047951143301">"Skrin utama %1$d dari %2$d"</string> - <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string> <string name="folder_opened" msgid="1262064100943801533">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1335478160661137579">"Sentuh untuk menutup folder"</string> <string name="folder_tap_to_rename" msgid="5201612989905472442">"Sentuh untuk menyimpan penamaan semula"</string> diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml index fc3f4a4d1..7589f75c1 100644 --- a/res/values-my-rMM/strings.xml +++ b/res/values-my-rMM/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher၃"</string> - <string name="home" msgid="7658288663002113681">"ပင်မစာမျက်နှာ"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"အပ်ပလီကေးရှင်း မထည့်သွင်းထားပါ"</string> <string name="activity_not_available" msgid="7456344436509528827">"App လက်လှမ်း မမှီပါ"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"စဖွင့်သတ်မှတ်ရန်"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ဤအပ်ပလီကေးရှင်းမှာ စစ်စတန်ပိုင်းဆိုင်ရာ အပ်ပလီကေးရှင်းဖြစ်ပါသည်။ ထုတ်ပစ်၍ မရပါ"</string> <string name="folder_hint_text" msgid="6617836969016293992">"အမည်မရှိအကန့်"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ပင်မစာမျက်နှာ %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"စာမျက်နှာ %1$d မှ %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"ပင်မစာမျက်နှာ %1$d မှ %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"မင်္ဂလာပါ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"နောက်ခံများ၊ ဝီဂျက်များ& ဆက်တင်များ"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"နောက်ခံကို စိတ်တိုင်းကျ ပြုလုပ်ရန် ထိလျက် & ကိုင်ထားပါ"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ရပြီ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ကောင်းပြီ"</string> <string name="folder_opened" msgid="94695026776264709">"ဖွင့်ထားသောအကန့်, <xliff:g id="WIDTH">%1$d</xliff:g> နှင့် <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"အကန့်ကို ပိတ်ရန် ဖိကိုင်ပါ"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"အမည်ပြောင်းခြင်း အတည်ပြုရန် ဖိကိုင်ပါ"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ဝဒ်ဂျက်များ"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"နောက်ခံများ"</string> <string name="settings_button_text" msgid="8119458837558863227">"အပြင်အဆင်များ"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"စောင့်နေ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ဒေါင်းလုဒ် လုပ်နေ"</string> - <string name="package_state_installing" msgid="7588193972189849870">"တပ်ဆင်နေ"</string> <string name="package_state_unknown" msgid="7592128424511031410">"မသိရ"</string> - <string name="package_state_error" msgid="7672093962724223588">"ပြန်မဖေါ်ခဲ့"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"အားလုံး ဖယ်ရှားရန်"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ဖယ်ရှားရန်"</string> <string name="abandoned_search" msgid="891119232568284442">"ရှာဖွေရန်"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"App မတပ်ဆင်ရသေးပါ"</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 386019ce6..df9ec93e5 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Startside"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installert."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgjengelig"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Konfigurering"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Dette er en systemapp som ikke kan avinstalleres."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Mappe uten navn"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Startside %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Side %1$d av %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Startside %1$d av %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Velkommen"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Bakgrunner, moduler og innstillinger"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Trykk og hold på bakgrunnen for å tilpasse den"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"SKJØNNER"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Mappen er åpnet – <xliff:g id="WIDTH">%1$d</xliff:g> ganger <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Trykk for å lukke mappen"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Trykk for å lagre det nye navnet"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Moduler"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunner"</string> <string name="settings_button_text" msgid="8119458837558863227">"Innstillinger"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Venter …"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Laster ned …"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installerer …"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Ukjent"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ikke gjenoppr."</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Fjern alle"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string> <string name="abandoned_search" msgid="891119232568284442">"Søk"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Denne appen er ikke installert"</string> diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml index 9efc04fd6..4398334cf 100644 --- a/res/values-ne-rNP/strings.xml +++ b/res/values-ne-rNP/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"गृह"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"अनुप्रयोग स्थापित छैन।"</string> <string name="activity_not_available" msgid="7456344436509528827">"अनुप्रयोग उपलब्ध छैन"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"सेटअप"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"यो प्रणाली अनुप्रयोग हो र यसलाई स्थापना रद्द गर्न सकिँदैन।"</string> <string name="folder_hint_text" msgid="6617836969016293992">"बेनाम फोल्डर"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"गृह स्क्रिन %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"पृष्ठ %2$d को %1$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"गृह स्क्रिन %2$d को %2$d"</string> <!-- String.format failed for translation --> @@ -60,7 +58,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वालपेपरहरू, विजेट; सेटिङहरू"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"छुनुहोस् ; अनुकूलन पृष्ठभूमि होल्ड गर्नुहोस्"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"बुझियो"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ठिक छ"</string> <string name="folder_opened" msgid="94695026776264709">"फोल्डर खुल्यो <xliff:g id="WIDTH">%1$d</xliff:g> बाट <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"फोल्डर बन्द गर्नको लागि टच गर्नुहोस्"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"पुन: नामाकरण बचत गर्न टच गर्नुहोस्।"</string> @@ -70,12 +67,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"विजेटहरू"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"वालपेपरहरु"</string> <string name="settings_button_text" msgid="8119458837558863227">"सेटिंङहरू"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"पर्खँदै"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"डाउनलोड हुँदै"</string> - <string name="package_state_installing" msgid="7588193972189849870">"स्थापना गर्दै"</string> <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string> - <string name="package_state_error" msgid="7672093962724223588">"पुनर्स्थापित भएन"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"सबै हटाउनुहोस्"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"हटाउनुहोस्"</string> <string name="abandoned_search" msgid="891119232568284442">"खोजी गर्नुहोस्"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"यो अनुप्रयोग स्थापित छैन"</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index d9b6aea2e..8a82624b3 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Startpagina"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"App is niet geïnstalleerd."</string> <string name="activity_not_available" msgid="7456344436509528827">"App is niet beschikbaar"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Configuratie"</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="6617836969016293992">"Naamloze map"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Startscherm %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d van %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Startscherm %1$d van %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Welkom"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Achtergronden, widgets en instellingen"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Blijf de achtergrond aanraken om deze aan te passen"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Map geopend, <xliff:g id="WIDTH">%1$d</xliff:g> bij <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Raak dit aan om de map te sluiten"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Raak dit aan om de gewijzigde naam op te slaan"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Achtergronden"</string> <string name="settings_button_text" msgid="8119458837558863227">"Instellingen"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Wachten"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Downloaden"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installeren"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string> - <string name="package_state_error" msgid="7672093962724223588">"Niet hersteld"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Alles verwijderen"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwijderen"</string> <string name="abandoned_search" msgid="891119232568284442">"Zoeken"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Deze app is niet geïnstalleerd"</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 5506781bb..94da2a52c 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Ekran główny"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikacja nie jest zainstalowana."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacja niedostępna"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Konfiguracja"</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="6617836969016293992">"Folder bez nazwy"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Ekran główny %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Strona %1$d z %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Ekran główny %1$d z %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Witamy"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, widżety i ustawienia"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Kliknij i przytrzymaj tło, by dostosować"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Folder otwarty, <xliff:g id="WIDTH">%1$d</xliff:g> na <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Kliknij, by zamknąć folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Kliknij, by zapisać zmianę nazwy"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widżety"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string> <string name="settings_button_text" msgid="8119458837558863227">"Ustawienia"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Oczekiwanie"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Pobieranie"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalowanie"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Brak informacji"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nie przywrócono"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Usuń wszystkie"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Usuń"</string> <string name="abandoned_search" msgid="891119232568284442">"Szukaj"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacja nie jest zainstalowana"</string> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index db2f793ae..ef1fa6f4e 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Iniciador3"</string> - <string name="home" msgid="7658288663002113681">"Ecrã principal"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"A aplicação não está instalada."</string> <string name="activity_not_available" msgid="7456344436509528827">"A aplicação não está disponível"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Configuração"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"É uma aplicação de sistema e não pode ser desinstalada."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Pasta sem nome"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Ecrã principal %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Ecrã principal %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bem-vindo(a)"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Imagens de fundo, widgets e definições"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Toque sem soltar no fundo para personalizar"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"COMPREENDI"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Pasta aberta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toque para fechar a pasta"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toque para guardar o nome novo"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagens de fundo"</string> <string name="settings_button_text" msgid="8119458837558863227">"Definições"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"A aguardar"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"A transferir "</string> - <string name="package_state_installing" msgid="7588193972189849870">"A instalar"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string> - <string name="package_state_error" msgid="7672093962724223588">"Não restaurado"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Remover todos"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string> <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicação não está instalada"</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 7172b24e7..8c592c191 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Início"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"O app não está instalado."</string> <string name="activity_not_available" msgid="7456344436509528827">"O app não está disponível"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Pasta sem nome"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Tela inicial %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Página %1$d de %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Tela inicial %1$d de %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bem-vindo"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Plano de fundo, widgets e configurações"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Toque e mantenha pressionado o segundo plano para personalizar"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ENTENDI"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Ok"</string> <string name="folder_opened" msgid="94695026776264709">"Pasta aberta, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Toque para fechar a pasta"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Toque para salvar o novo nome"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Planos de fundo"</string> <string name="settings_button_text" msgid="8119458837558863227">"Configurações"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Aguardando"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Transferindo"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Instalando"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string> - <string name="package_state_error" msgid="7672093962724223588">"Não restaurado"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Remover tudo"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string> <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Este app não está instalado"</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index b2da9fba4..1bcaa5a82 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Ecran de pornire"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplicația nu este instalată."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplicația nu este disponibilă"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Configurați"</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="6617836969016293992">"Dosar fără nume"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Ecran de pornire %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Pagina %1$d din %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Ecranul de pornire %1$d din %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Bun venit"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Imagini de fundal, widgeturi și setări"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Atingeți lung fundalul pentru a-l personaliza"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"AM ÎNȚELES"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Dosar deschis, <xliff:g id="WIDTH">%1$d</xliff:g> pe <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Atingeți pentru a închide dosarul"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Atingeți pentru a salva redenumirea"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgeturi"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagini de fundal"</string> <string name="settings_button_text" msgid="8119458837558863227">"Setări"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"În așteptare"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Se descarcă"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Se instalează"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Necunoscut"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nerestabilit"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Eliminați-le pe toate"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminați"</string> <string name="abandoned_search" msgid="891119232568284442">"Căutați"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Aplicația nu este instalată"</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index c0a8d023b..c5eb1c27d 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Главный экран"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Приложение удалено"</string> <string name="activity_not_available" msgid="7456344436509528827">"Приложение недоступно"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Настройка"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Это системное приложение, его нельзя удалить."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Папка без названия"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Главный экран %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Стр. %1$d из %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Главные экран %1$d из %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Добро пожаловать!"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Обои, виджеты и настройки"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Чтобы выполнить настройку, коснитесь фона и удерживайте его"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ОК"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ОК"</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="1884479294466410023">"Нажмите, чтобы закрыть папку"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Нажмите, чтобы подтвердить переименование"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виджеты"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Обои"</string> <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Ожидается"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Скачивается"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Устанавливается"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Неизвестно"</string> - <string name="package_state_error" msgid="7672093962724223588">"Не восстановлен"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Удалить все"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Удалить"</string> <string name="abandoned_search" msgid="891119232568284442">"Найти"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Приложение не установлено"</string> diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml index 3b8d81134..fcfa71739 100644 --- a/res/values-si-rLK/strings.xml +++ b/res/values-si-rLK/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"මුල් පිටුව"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"යෙදුම ස්ථාපනය කර නැත."</string> <string name="activity_not_available" msgid="7456344436509528827">"යෙදුම නොතිබේ"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ස්ථාපනය කරන්න"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"මෙය පද්ධති යෙදුමක් වන අතර අස්ථාපනය කළ නොහැක."</string> <string name="folder_hint_text" msgid="6617836969016293992">"නම් නොකළ ෆෝල්ඩරය"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"මුල් පිටු තිරය %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"සාදරයෙන් පිළිගනිමු"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"වෝල්පේපර, විජට්, සහ සැකසීම්"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"පසුබිම අභිරුචිකරණය කිරීමට ස්පර්ශ කර අල්ලා සිටින්න"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"තේරුණා"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"හරි"</string> <string name="folder_opened" msgid="94695026776264709">"ෆෝල්ඩරය විවෘත විය, <xliff:g id="WIDTH">%1$d</xliff:g> හි <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"ෆෝල්ඩරය වැසීමට ස්පර්ශ කරන්න"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"නැවත නම් කිරීම සුරැකීමට ස්පර්ශ කරන්න"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"විජට්"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"වෝල්පේපර"</string> <string name="settings_button_text" msgid="8119458837558863227">"සැකසීම්"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"රැඳී සිටිමින්"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"බාගනිමින්"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ස්ථාපනය කරමින්"</string> <string name="package_state_unknown" msgid="7592128424511031410">"නොදනී"</string> - <string name="package_state_error" msgid="7672093962724223588">"ප්රතිස්ථාපනය කළේ නැත"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"සියල්ල ඉවත් කරන්න"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ඉවත් කරන්න"</string> <string name="abandoned_search" msgid="891119232568284442">"සොයන්න"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"මෙම යෙදුම ස්ථාපනය කර නොමැත"</string> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 8cfb99227..7b20ba41a 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Plocha"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikácia nie je nainštalovaná."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikácia nie je k dispozícii"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavenie"</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="6617836969016293992">"Nepomenovaný priečinok"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Plocha %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Stránka %1$d z %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Plocha %1$d z %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Vitajte!"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Pozadia, miniaplikácie a nastavenia"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Ak si chcete pozadie prispôsobiť, klepnite naň a podržte ho"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ROZUMIEM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Otvorený priečinok, <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="1884479294466410023">"Dotykom zavriete priečinok"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotykom premenovanie uložíte"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Miniaplikácie"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string> <string name="settings_button_text" msgid="8119458837558863227">"Nastavenia"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Čaká sa"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Sťahovanie"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Inštalácia"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Neznáme"</string> - <string name="package_state_error" msgid="7672093962724223588">"Nebolo obnovené"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstrániť všetky"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrániť"</string> <string name="abandoned_search" msgid="891119232568284442">"Vyhľadať"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Táto aplikácia nie je nainštalovaná"</string> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 63a4bac03..ae8c071fa 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Zaganjalnik3"</string> - <string name="home" msgid="7658288663002113681">"Začetni zaslon"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija ni nameščena."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija ni na voljo"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Nastavitev"</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="6617836969016293992">"Neimenovana mapa"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Začetni zaslon %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Stran %1$d od %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Začetni zaslon %1$d od %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Pozdravljeni"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Ozadja, pripomočki in nastavitve"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Za prilagajanje se dotaknite ozadja in ga pridržite"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"V REDU"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"V redu"</string> <string name="folder_opened" msgid="94695026776264709">"Mapa je odprta, <xliff:g id="WIDTH">%1$d</xliff:g> krat <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Dotaknite se, da zaprete mapo"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Dotaknite se, da shranite preimenovanje"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Pripomočki"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Ozadja"</string> <string name="settings_button_text" msgid="8119458837558863227">"Nastavitve"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Čakanje"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Prenašanje"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Nameščanje"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Neznano"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ni obnovljen"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Odstrani vse"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrani"</string> <string name="abandoned_search" msgid="891119232568284442">"Iskanje"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ta aplikacija ni nameščena."</string> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 955c44cc9..744fe37a1 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Почетна"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Апликација није инсталирана."</string> <string name="activity_not_available" msgid="7456344436509528827">"Апликација није доступна"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Подешавање"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Ово је системска апликација и не може да се деинсталира."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Неименовани директоријум"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Почетни екран %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%1$d. страница од %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"%1$d. почетни екран од %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Добро дошли"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Позадине, виџети и подешавања"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Додирните и задржите позадину да бисте прилагодили"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ВАЖИ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Потврди"</string> <string name="folder_opened" msgid="94695026776264709">"Директоријум је отворен, <xliff:g id="WIDTH">%1$d</xliff:g> пута <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Додирните да бисте затворили директоријум"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Додирните да бисте сачували промену имена"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Виџети"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Позадине"</string> <string name="settings_button_text" msgid="8119458837558863227">"Подешавања"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Чека се"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Преузима се"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Инсталира се"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string> - <string name="package_state_error" msgid="7672093962724223588">"Није враћено"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Уклони све"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Уклони"</string> <string name="abandoned_search" msgid="891119232568284442">"Претражи"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ова апликација није инсталирана"</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 636cabc1f..cb1a42986 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Startskärm"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Appen är inte installerad."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen är inte tillgänglig"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Konfiguration"</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="6617836969016293992">"Namnlös mapp"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Startskärmen %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Sidan %1$d av %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Startskärmen %1$d av %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Välkommen"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Bakgrunder, widgetar och inställningar"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Tryck länge på bakgrunden om du vill anpassa den"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Mappen är öppen, <xliff:g id="WIDTH">%1$d</xliff:g> gånger <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Tryck om du vill stänga mappen"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Tryck om du vill spara det nya namnet"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widgetar"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunder"</string> <string name="settings_button_text" msgid="8119458837558863227">"Inställningar"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Väntar"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Hämtas"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Installerar"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Okänt"</string> - <string name="package_state_error" msgid="7672093962724223588">"Inte återställt"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Ta bort alla"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Ta bort"</string> <string name="abandoned_search" msgid="891119232568284442">"Sök"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Appen är inte installerad"</string> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 6a2abcc5f..5283e47c9 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Kizindua3"</string> - <string name="home" msgid="7658288663002113681">"Mwanzo"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Programu haijasakinishwa."</string> <string name="activity_not_available" msgid="7456344436509528827">"Programu haipatikani"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Sanidi"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Hii ni programu ya mfumo na haiwezi kuondolewa."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Folda isiyo na jina"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Skrini ya mwazo %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Ukurasa%1$d wa %2$d"</string> <!-- String.format failed for translation --> <!-- no translation found for workspace_scroll_format (8458889198184077399) --> @@ -59,7 +57,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Mandhari, wijeti, na mipangilio"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Gusa na ushikilie mandhari ili uweke mapendeleo"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NIMEELEWA"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"SAWA"</string> <string name="folder_opened" msgid="94695026776264709">"Folda imefunguliwa, <xliff:g id="WIDTH">%1$d</xliff:g> kwa <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Gusa ili ufunge folda"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Gusa ili uhifadhi jina jipya"</string> @@ -69,12 +66,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Wijeti"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Mandhari"</string> <string name="settings_button_text" msgid="8119458837558863227">"Mipangilio"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Inasubiri"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Inapakua"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Inasakinisha"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Yasiyojulikana"</string> - <string name="package_state_error" msgid="7672093962724223588">"Haijarejeshwa"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Ondoa Zote"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Ondoa"</string> <string name="abandoned_search" msgid="891119232568284442">"Tafuta"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Programu hii haijasakinishwa"</string> diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml index daa98ef0b..2651fbb3f 100644 --- a/res/values-sw600dp/dimens.xml +++ b/res/values-sw600dp/dimens.xml @@ -16,7 +16,6 @@ <resources> <!-- All Apps --> - <dimen name="all_apps_container_inset">18dp</dimen> <dimen name="all_apps_grid_view_start_margin">0dp</dimen> <dimen name="all_apps_grid_section_text_size">26sp</dimen> <dimen name="all_apps_icon_top_bottom_padding">12dp</dimen> diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml index 9c7e699df..a610bf82d 100644 --- a/res/values-ta-rIN/strings.xml +++ b/res/values-ta-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"லாஞ்சர்3"</string> - <string name="home" msgid="7658288663002113681">"முகப்பு"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"பயன்பாடு நிறுவப்படவில்லை."</string> <string name="activity_not_available" msgid="7456344436509528827">"பயன்பாடு இல்லை"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"அமைவு"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"இது அமைப்பு பயன்பாடு என்பதால் நிறுவல் நீக்கம் செய்ய முடியாது."</string> <string name="folder_hint_text" msgid="6617836969016293992">"பெயரிடப்படாத கோப்புறை"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"முகப்புத் திரை %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"வரவேற்கிறோம்"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"வால்பேப்பர்கள், விட்ஜெட்கள் & அமைப்புகள்"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"தனிப்பயனாக்க, பின்னணியைத் தொட்டுப் பிடிக்கவும்"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"புரிந்தது"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"சரி"</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="1884479294466410023">"கோப்புறையை மூட, தொடவும்"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"மறுபெயரிட்டதைச் சேமிக்க, தொடவும்"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ஷார்ட்கட்ஸ்"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"வால்பேப்பர்கள்"</string> <string name="settings_button_text" msgid="8119458837558863227">"அமைப்பு"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"காத்திருக்கிறது"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"பதிவிறக்குகிறது"</string> - <string name="package_state_installing" msgid="7588193972189849870">"நிறுவுகிறது"</string> <string name="package_state_unknown" msgid="7592128424511031410">"தெரியாதது"</string> - <string name="package_state_error" msgid="7672093962724223588">"மீட்டெடுக்க முடியாது"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"அனைத்தையும் அகற்று"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"அகற்று"</string> <string name="abandoned_search" msgid="891119232568284442">"தேடு"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"பயன்பாடு நிறுவப்படவில்லை"</string> diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml index 19e45e799..e3fd8e405 100644 --- a/res/values-te-rIN/strings.xml +++ b/res/values-te-rIN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"లాంచర్3"</string> - <string name="home" msgid="7658288663002113681">"హోమ్"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"అనువర్తనం ఇన్స్టాల్ చేయబడలేదు."</string> <string name="activity_not_available" msgid="7456344436509528827">"అనువర్తనం అందుబాటులో లేదు"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"సెటప్ చేయి"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"ఇది సిస్టమ్ అనువర్తనం మరియు దీన్ని అన్ఇన్స్టాల్ చేయడం సాధ్యపడదు."</string> <string name="folder_hint_text" msgid="6617836969016293992">"పేరు లేని ఫోల్డర్"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"హోమ్ స్క్రీన్ %1$d"</string> <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="first_run_cling_title" msgid="2459738000155917941">"స్వాగతం"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"వాల్పేపర్లు, విడ్జెట్లు & సెట్టింగ్లు"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"అనుకూలీకరించడానికి నేపథ్యాన్ని నొక్కి & ఉంచండి"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"అర్థమైంది"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"సరే"</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="1884479294466410023">"ఫోల్డర్ను మూసివేయడానికి తాకండి"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"పేరు మార్పును సేవ్ చేయడానికి తాకండి"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"విడ్జెట్లు"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"వాల్పేపర్లు"</string> <string name="settings_button_text" msgid="8119458837558863227">"సెట్టింగ్లు"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"వేచి ఉంది"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"డౌన్లోడ్ చేస్తోంది"</string> - <string name="package_state_installing" msgid="7588193972189849870">"ఇన్స్టాల్ చేస్తోంది"</string> <string name="package_state_unknown" msgid="7592128424511031410">"తెలియదు"</string> - <string name="package_state_error" msgid="7672093962724223588">"పునరుద్ధరించబడలేదు"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"అన్నీ తీసివేయి"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"తీసివేయి"</string> <string name="abandoned_search" msgid="891119232568284442">"శోధించు"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ఈ అనువర్తనం ఇన్స్టాల్ చేయబడలేదు"</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 262788544..72d2d4bad 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"หน้าแรก"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"ไม่ได้ติดตั้งแอป"</string> <string name="activity_not_available" msgid="7456344436509528827">"แอปไม่พร้อมใช้งาน"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ตั้งค่า"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"นี่เป็นแอประบบและไม่สามารถถอนการติดตั้งได้"</string> <string name="folder_hint_text" msgid="6617836969016293992">"โฟลเดอร์ที่ไม่มีชื่อ"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"หน้าจอหลัก %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"หน้า %1$d จาก %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"หน้าจอหลัก %1$d จาก %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"ยินดีต้อนรับ"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"วอลเปเปอร์ วิดเจ็ต และการตั้งค่า"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"แตะพื้นหลังค้างไว้เพื่อกำหนดค่า"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"รับทราบ"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ตกลง"</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="1884479294466410023">"แตะเพื่อปิดโฟลเดอร์"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"แตะเพื่อบันทึกการเปลี่ยนชื่อ"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"วิดเจ็ต"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"วอลเปเปอร์"</string> <string name="settings_button_text" msgid="8119458837558863227">"การตั้งค่า"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"กำลังรอ"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"กำลังดาวน์โหลด"</string> - <string name="package_state_installing" msgid="7588193972189849870">"กำลังติดตั้ง"</string> <string name="package_state_unknown" msgid="7592128424511031410">"ไม่รู้จัก"</string> - <string name="package_state_error" msgid="7672093962724223588">"ไม่ได้คืนค่า"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"ลบทั้งหมด"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ลบ"</string> <string name="abandoned_search" msgid="891119232568284442">"ค้นหา"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"ไม่ได้ติดตั้งแอปนี้"</string> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 5356aa596..948139bda 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Home"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Hindi naka-install ang app."</string> <string name="activity_not_available" msgid="7456344436509528827">"Hindi available ang app"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"I-setup"</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="6617836969016293992">"Walang Pangalang Folder"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Home screen %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Pahina %1$d ng %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Home screen %1$d ng %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Maligayang Pagdating"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Mga wallpaper, widget at setting"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Pindutin nang matagal ang background upang i-customize"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NAKUHA KO"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Binuksan ang folder, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Pindutin upang isara ang folder"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Pindutin upang i-save ang pagpapalit ng pangalan"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Mga Widget"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Mga Wallpaper"</string> <string name="settings_button_text" msgid="8119458837558863227">"Mga Setting"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Naghihintay"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Nagda-download"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Nag-i-install"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Hindi kilala"</string> - <string name="package_state_error" msgid="7672093962724223588">"Hindi naibalik"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Alisin Lahat"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Alisin"</string> <string name="abandoned_search" msgid="891119232568284442">"Maghanap"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Hindi naka-install ang app na ito"</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 24e7815d5..b9add4e20 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Ana ekran"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Uygulama yüklü değil."</string> <string name="activity_not_available" msgid="7456344436509528827">"Uygulama kullanılamıyor"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Kurulum"</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="6617836969016293992">"Adsız Klasör"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Ana ekran %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Sayfa %1$d / %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Ana ekran %1$d / %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Hoş geldiniz"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Duvar kağıtları, widget\'lar ve ayarlar"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Özelleştirmek için arka plana dokunun ve basılı tutun"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"TAMAM"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"Tamam"</string> <string name="folder_opened" msgid="94695026776264709">"Klasör açıldı, <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="1884479294466410023">"Klasörü kapatmak için dokunun"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Yeni adı kaydetmek için dokunun"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Widget\'lar"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Duvar Kağıtları"</string> <string name="settings_button_text" msgid="8119458837558863227">"Ayarlar"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Bekliyor"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"İndiriliyor"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Yükleniyor"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Bilinmiyor"</string> - <string name="package_state_error" msgid="7672093962724223588">"Geri yüklenmedi"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Tümünü Kaldır"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Kaldır"</string> <string name="abandoned_search" msgid="891119232568284442">"Ara"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Bu uygulama yüklü değil"</string> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 75a2a6091..a1eead8b8 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Головний екран"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Додаток видалено."</string> <string name="activity_not_available" msgid="7456344436509528827">"Додаток недоступний"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Налаштування"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Це системна програма, її неможливо видалити."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Папка без назви"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Головний екран %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Сторінка %1$d з %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Головний екран %1$d з %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Вітаємо"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Фонові малюнки, віджети й налаштування"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Натисніть і втримуйте фон, щоб налаштувати робочу область"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ЗРОЗУМІЛО"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OК"</string> <string name="folder_opened" msgid="94695026776264709">"Папку відкрито (<xliff:g id="WIDTH">%1$d</xliff:g> х <xliff:g id="HEIGHT">%2$d</xliff:g>)"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Торкніться, щоб закрити папку"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Торкніться, щоб зберегти нову назву"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Віджети"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Фонові малюнки"</string> <string name="settings_button_text" msgid="8119458837558863227">"Налаштування"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Очікування"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Завантаження"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Встановлення"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Невідомо"</string> - <string name="package_state_error" msgid="7672093962724223588">"Не відновлено"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Видалити всі"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Видалити"</string> <string name="abandoned_search" msgid="891119232568284442">"Шукати"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Цей додаток не встановлено"</string> diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml index 70549246e..efad22861 100644 --- a/res/values-ur-rPK/strings.xml +++ b/res/values-ur-rPK/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"ہوم"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"ایپ انسٹال نہیں ہے۔"</string> <string name="activity_not_available" msgid="7456344436509528827">"ایپ دستیاب نہیں ہے"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"ترتیب دیں"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"یہ ایک سسٹم ایپ ہے اور اسے اَن انسٹال نہیں کیا جا سکتا ہے۔"</string> <string name="folder_hint_text" msgid="6617836969016293992">"بلا نام فولڈر"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"ہوم اسکرین %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"صفحہ %1$d از %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"ہوم اسکرین %1$d از %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"خوش آمدید"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"وال پیپرز، ویجیٹس اور ترتیبات"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"حسب ضرورت بنانے کیلئے پس منظر کو ٹچ کریں اور دبائے رکھیں"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"سمجھ آ گئی"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"ٹھیک ہے"</string> <string name="folder_opened" msgid="94695026776264709">"فولڈر کھولا گیا، <xliff:g id="WIDTH">%1$d</xliff:g> × <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"فولڈر بند کرنے کیلئے ٹچ کریں"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"نام کی تبدیلی محفوظ کرنے کیلئے ٹچ کریں"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"ویجیٹس"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"وال پیپرز"</string> <string name="settings_button_text" msgid="8119458837558863227">"ترتیبات"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"منتظر"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"ڈاؤن لوڈ کیا جا رہا ہے"</string> - <string name="package_state_installing" msgid="7588193972189849870">"انسٹال کیا جا رہا ہے"</string> <string name="package_state_unknown" msgid="7592128424511031410">"نامعلوم"</string> - <string name="package_state_error" msgid="7672093962724223588">"بحال نہیں ہوا"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"سبھی کو ہٹا دیں"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"ہٹائیں"</string> <string name="abandoned_search" msgid="891119232568284442">"تلاش کریں"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"یہ ایپ انسٹال کردہ نہیں ہے"</string> diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml index a5c461321..b594e7db2 100644 --- a/res/values-uz-rUZ/strings.xml +++ b/res/values-uz-rUZ/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Ishga tushirgich3"</string> - <string name="home" msgid="7658288663002113681">"Uy"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Ilova o‘rnatilmadi."</string> <string name="activity_not_available" msgid="7456344436509528827">"Ilova mavjud emas"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Sozlash"</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="6617836969016293992">"Nomsiz jild"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Uy ekrani %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"%2$ddan %1$d ta sahifa"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Uy ekrani %2$ddan %1$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Xush kelibsiz"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Orqa fon rasmlari, vidjet va sozlamalar"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Orqa fonni moslashtirish uchun uni bosing va ushlab turing"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Jild ochildi, <xliff:g id="WIDTH">%1$d</xliff:g> ga <xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Jildni yopish uchun bosing"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"O‘zgartirilgan nomni saqlash uchun bosing"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Vidjetlar"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Orqa fon rasmlari"</string> <string name="settings_button_text" msgid="8119458837558863227">"Sozlamalar"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Kutilmoqda"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Yuklab olinmoqda"</string> - <string name="package_state_installing" msgid="7588193972189849870">"O‘rnatilmoqda"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Noma’lum"</string> - <string name="package_state_error" msgid="7672093962724223588">"Qayta tiklanmadi"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Barchasini o‘chirish"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"O‘chirish"</string> <string name="abandoned_search" msgid="891119232568284442">"Qidirish"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ushbu ilova o‘rnatilmagan"</string> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 45bfa4cd2..278bb5484 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"Màn hình chính"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Ứng dụng chưa được cài đặt."</string> <string name="activity_not_available" msgid="7456344436509528827">"Ứng dụng không có sẵn"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"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="6617836969016293992">"Thư mục chưa đặt tên"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Màn hình chính %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Trang %1$d / %2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Màn hình chính %1$d / %2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Chào mừng"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Hình nền, tiện ích và cài đặt"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Chạm và giữ nền để tùy chỉnh"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"OK"</string> <string name="folder_opened" msgid="94695026776264709">"Đã mở thư mục, <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="1884479294466410023">"Chạm để đóng thư mục"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Chạm để lưu tên mới"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Tiện ích con"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Hình nền"</string> <string name="settings_button_text" msgid="8119458837558863227">"Cài đặt"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Đang đợi"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Đang tải xuống"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Đang cài đặt"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Không xác định"</string> - <string name="package_state_error" msgid="7672093962724223588">"Không được khôi phục"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Xóa tất cả"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Xóa"</string> <string name="abandoned_search" msgid="891119232568284442">"Tìm kiếm"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Ứng dụng này chưa được cài đặt"</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index c8ca12d08..9cd26b946 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"主屏"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"未安装该应用。"</string> <string name="activity_not_available" msgid="7456344436509528827">"应用不可用"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"设置"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"这是系统应用,无法卸载。"</string> <string name="folder_hint_text" msgid="6617836969016293992">"未命名文件夹"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"主屏幕%1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"第%1$d页,共%2$d页"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"主屏幕:第%1$d屏,共%2$d屏"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"欢迎使用"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"壁纸、小部件和设置"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"触摸并按住背景,即可进行个性化设置"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"确定"</string> <string name="folder_opened" msgid="94695026776264709">"文件夹已打开,大小为<xliff:g id="WIDTH">%1$d</xliff:g>×<xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"触摸可关闭文件夹"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"触摸可保存新名称"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"小部件"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"壁纸"</string> <string name="settings_button_text" msgid="8119458837558863227">"设置"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"正在等待"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"正在下载"</string> - <string name="package_state_installing" msgid="7588193972189849870">"正在安装"</string> <string name="package_state_unknown" msgid="7592128424511031410">"未知"</string> - <string name="package_state_error" msgid="7672093962724223588">"无法还原"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string> <string name="abandoned_search" msgid="891119232568284442">"搜索"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"未安装此应用"</string> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 132df1417..052e8a0a1 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"主畫面"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"尚未安裝應用程式。"</string> <string name="activity_not_available" msgid="7456344436509528827">"目前無法使用這個應用程式"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"設定"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,無法將其解除安裝。"</string> <string name="folder_hint_text" msgid="6617836969016293992">"未命名的資料夾"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"主畫面 %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"第 %1$d 頁,共 %2$d 頁"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"主畫面 %1$d,共 %2$d 個"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"歡迎"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"桌布、小工具和設定"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"輕觸並按住背景即可自訂"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"確定"</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="1884479294466410023">"輕觸即可關閉資料夾"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"輕觸即可儲存新改的名稱"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"小工具"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string> <string name="settings_button_text" msgid="8119458837558863227">"設定"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"等候中"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"下載中"</string> - <string name="package_state_installing" msgid="7588193972189849870">"安裝中"</string> <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string> - <string name="package_state_error" msgid="7672093962724223588">"無法還原"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string> <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"尚未安裝這個應用程式"</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index d1e41fb6b..b6b5c4eb5 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Launcher3"</string> - <string name="home" msgid="7658288663002113681">"主螢幕"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"應用程式未安裝。"</string> <string name="activity_not_available" msgid="7456344436509528827">"應用程式目前無法使用"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"設定"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"這是系統應用程式,不可解除安裝。"</string> <string name="folder_hint_text" msgid="6617836969016293992">"未命名的資料夾"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"主螢幕 %1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"第 %1$d 頁,共 %2$d 頁"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"主螢幕:第 %1$d 頁,共 %2$d 頁"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"歡迎使用"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"桌布、小工具和設定"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"輕觸並按住背景即可自訂"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"知道了"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"確定"</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="1884479294466410023">"輕觸即可關閉資料夾"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"輕觸即可儲存新名稱"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"小工具"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string> <string name="settings_button_text" msgid="8119458837558863227">"設定"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"等待中"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"下載中…"</string> - <string name="package_state_installing" msgid="7588193972189849870">"安裝中"</string> <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string> - <string name="package_state_error" msgid="7672093962724223588">"無法還原"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"全部移除"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string> <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"尚未安裝這個應用程式"</string> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 73852bfc6..2dbd72237 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -20,7 +20,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="application_name" msgid="5181331383435256801">"Isiqalisi3"</string> - <string name="home" msgid="7658288663002113681">"Ikhaya"</string> <string name="folder_name" msgid="7371454440695724752"></string> <string name="activity_not_found" msgid="8071924732094499514">"Uhlelo lokusebenza alufakiwe."</string> <string name="activity_not_available" msgid="7456344436509528827">"Uhlelo lokusebenza alutholakali"</string> @@ -46,7 +45,6 @@ <string name="gadget_setup_text" msgid="8274003207686040488">"Ukumisa"</string> <string name="uninstall_system_app_text" msgid="4172046090762920660">"Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa."</string> <string name="folder_hint_text" msgid="6617836969016293992">"Ifolda engenagama"</string> - <string name="workspace_description_format" msgid="2950174241104043327">"Isikrini sasekhaya esingu-%1$d"</string> <string name="default_scroll_format" msgid="7475544710230993317">"Ikhasi elingu-%1$d kwangu-%2$d"</string> <string name="workspace_scroll_format" msgid="8458889198184077399">"Isikrini sasekhaya esingu-%1$d se-%2$d"</string> <string name="first_run_cling_title" msgid="2459738000155917941">"Siyakwamukela"</string> @@ -57,7 +55,6 @@ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Izithombe zangemuva, amawijethi, nezilungiselelo"</string> <string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Thinta uphinde ubambe ingemuva ukuze wenze ngokwezifiso"</string> <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NGIYITHOLILE"</string> - <string name="cling_dismiss" msgid="8962359497601507581">"KULUNGILE"</string> <string name="folder_opened" msgid="94695026776264709">"Ifolda ivuliwe, <xliff:g id="WIDTH">%1$d</xliff:g> nge-<xliff:g id="HEIGHT">%2$d</xliff:g>"</string> <string name="folder_tap_to_close" msgid="1884479294466410023">"Thinta ukuze uvale ifolda"</string> <string name="folder_tap_to_rename" msgid="9191075570492871147">"Thinta ukuze ulondoloze ukuqamba kabusha"</string> @@ -67,12 +64,7 @@ <string name="widget_button_text" msgid="2880537293434387943">"Amawijethi"</string> <string name="wallpaper_button_text" msgid="8404103075899945851">"Izithombe zangemuva"</string> <string name="settings_button_text" msgid="8119458837558863227">"Izilungiselelo"</string> - <string name="package_state_enqueued" msgid="6227252464303085641">"Ilindile"</string> - <string name="package_state_downloading" msgid="4088770468458724721">"Iyalanda"</string> - <string name="package_state_installing" msgid="7588193972189849870">"Iyafaka"</string> <string name="package_state_unknown" msgid="7592128424511031410">"Akwaziwa"</string> - <string name="package_state_error" msgid="7672093962724223588">"Ayibuyiselwe"</string> - <string name="abandoned_clean_all" msgid="5256770727689657618">"Susa konke"</string> <string name="abandoned_clean_this" msgid="7610119707847920412">"Susa"</string> <string name="abandoned_search" msgid="891119232568284442">"Sesha"</string> <string name="abandoned_promises_title" msgid="7096178467971716750">"Lolu hlelo lokusebenza alifakiwe"</string> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 2184eadb3..da56d9049 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -51,20 +51,21 @@ <!-- All Apps --> <!-- Note: This needs to match the fixed insets for the search box. --> - <dimen name="container_fixed_bounds_inset">8dp</dimen> + <dimen name="container_bounds_inset">8dp</dimen> + <!-- Notes: container_bounds_inset - quantum_panel_outer_padding --> + <dimen name="container_bounds_minus_quantum_panel_padding_inset">4dp</dimen> - <dimen name="all_apps_container_inset">8dp</dimen> - <dimen name="all_apps_grid_view_start_margin">56dp</dimen> + <dimen name="all_apps_grid_view_start_margin">0dp</dimen> <dimen name="all_apps_grid_section_y_offset">8dp</dimen> <dimen name="all_apps_grid_section_text_size">24sp</dimen> - <dimen name="all_apps_search_bar_height">52dp</dimen> + <dimen name="all_apps_search_bar_height">48dp</dimen> <dimen name="all_apps_search_bar_prediction_bar_padding">8dp</dimen> <dimen name="all_apps_icon_top_bottom_padding">8dp</dimen> <dimen name="all_apps_icon_width_gap">24dp</dimen> - <dimen name="all_apps_prediction_bar_bottom_padding">16dp</dimen> + <dimen name="all_apps_prediction_bar_top_bottom_padding">16dp</dimen> <dimen name="all_apps_fast_scroll_bar_width">4dp</dimen> - <dimen name="all_apps_fast_scroll_scrubber_touch_inset">-16dp</dimen> + <dimen name="all_apps_fast_scroll_scrubber_touch_inset">-24dp</dimen> <dimen name="all_apps_fast_scroll_popup_size">72dp</dimen> <dimen name="all_apps_fast_scroll_text_size">48dp</dimen> @@ -117,7 +118,7 @@ <!-- Sizes for managed profile badges --> <dimen name="profile_badge_size">24dp</dimen> - <dimen name="profile_badge_margin">4dp</dimen> + <dimen name="profile_badge_margin">5dp</dimen> <dimen name="profile_badge_minimum_top">2dp</dimen> <!-- Shadows and outlines --> diff --git a/src/com/android/launcher3/AppInfo.java b/src/com/android/launcher3/AppInfo.java index 9c87ced54..c95d5585a 100644 --- a/src/com/android/launcher3/AppInfo.java +++ b/src/com/android/launcher3/AppInfo.java @@ -25,6 +25,7 @@ import android.util.Log; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.util.ComponentKey; import java.util.ArrayList; import java.util.Arrays; @@ -137,6 +138,10 @@ public class AppInfo extends ItemInfo { return new ShortcutInfo(this); } + public ComponentKey toComponentKey() { + return new ComponentKey(componentName, user); + } + public static Intent makeLaunchIntent(Context context, LauncherActivityInfoCompat info, UserHandleCompat user) { long serialNumber = UserManagerCompat.getInstance(context).getSerialNumberForUser(user); diff --git a/src/com/android/launcher3/BaseContainerView.java b/src/com/android/launcher3/BaseContainerView.java index bd1c625e3..4b7b97775 100644 --- a/src/com/android/launcher3/BaseContainerView.java +++ b/src/com/android/launcher3/BaseContainerView.java @@ -19,16 +19,25 @@ package com.android.launcher3; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; -import android.widget.FrameLayout; +import android.widget.LinearLayout; /** * A base container view, which supports resizing. */ -public class BaseContainerView extends FrameLayout implements Insettable { +public abstract class BaseContainerView extends LinearLayout implements Insettable { - protected Rect mInsets = new Rect(); - protected Rect mFixedBounds = new Rect(); - protected int mFixedBoundsContainerInset; + // The window insets + private Rect mInsets = new Rect(); + // The bounds of the search bar. Only the left, top, right are used to inset the + // search bar and the height is determined by the measurement of the layout + private Rect mSearchBarBounds = new Rect(); + // The bounds of the container + protected Rect mContentBounds = new Rect(); + // The padding to apply to the container to achieve the bounds + protected Rect mContentPadding = new Rect(); + // The inset to apply to the edges and between the search bar and the container + private int mContainerBoundsInset; + private boolean mHasSearchBar; public BaseContainerView(Context context) { this(context, null); @@ -40,62 +49,73 @@ public class BaseContainerView extends FrameLayout implements Insettable { public BaseContainerView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - mFixedBoundsContainerInset = context.getResources().getDimensionPixelSize( - R.dimen.container_fixed_bounds_inset); + mContainerBoundsInset = getResources().getDimensionPixelSize(R.dimen.container_bounds_inset); } @Override final public void setInsets(Rect insets) { mInsets.set(insets); - onUpdateBackgrounds(); - onUpdatePaddings(); + updateBackgroundAndPaddings(); + } + + protected void setHasSearchBar() { + mHasSearchBar = true; } /** - * Sets the fixed bounds for this container view. + * Sets the search bar bounds for this container view to match. */ - final public void setFixedBounds(Rect fixedBounds) { - if (!fixedBounds.isEmpty() && !fixedBounds.equals(mFixedBounds)) { - mFixedBounds.set(fixedBounds); - if (Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) { - mFixedBounds.top = mInsets.top; - mFixedBounds.bottom = mInsets.bottom; - } - // To ensure that the child RecyclerView has the full width to handle touches right to - // the edge of the screen, we only apply the top and bottom padding to the bounds - mFixedBounds.top += mFixedBoundsContainerInset; - mFixedBounds.bottom += mFixedBoundsContainerInset; - onFixedBoundsUpdated(); - } + final public void setSearchBarBounds(Rect bounds) { + mSearchBarBounds.set(bounds); + // Post the updates since they can trigger a relayout, and this call can be triggered from // a layout pass itself. post(new Runnable() { @Override public void run() { - onUpdateBackgrounds(); - onUpdatePaddings(); + updateBackgroundAndPaddings(); } }); } /** - * Update the UI in response to a change in the fixed bounds. + * Update the backgrounds and padding in response to a change in the bounds or insets. */ - protected void onFixedBoundsUpdated() { - // Do nothing - } + protected void updateBackgroundAndPaddings() { + Rect padding; + Rect searchBarBounds = new Rect(mSearchBarBounds); + if (mSearchBarBounds.isEmpty()) { + // Use the normal bounds + padding = new Rect(mInsets.left + mContainerBoundsInset, + (mHasSearchBar ? 0 : (mInsets.top + mContainerBoundsInset)), + mInsets.right + mContainerBoundsInset, + mInsets.bottom + mContainerBoundsInset); - /** - * Update the paddings in response to a change in the bounds or insets. - */ - protected void onUpdatePaddings() { - // Do nothing + // Special case -- we have the search bar, but no specific bounds, so just give it + // the inset bounds without a height. + searchBarBounds.set(mInsets.left + mContainerBoundsInset, + mInsets.top + mContainerBoundsInset, + getMeasuredWidth() - (mInsets.right + mContainerBoundsInset), 0); + } else { + // Use the search bounds, if there is a search bar, the bounds will contain + // the offsets for the insets so we can ignore that + padding = new Rect(mSearchBarBounds.left, + (mHasSearchBar ? 0 : (mInsets.top + mContainerBoundsInset)), + getMeasuredWidth() - mSearchBarBounds.right, + mInsets.bottom + mContainerBoundsInset); + } + if (!padding.equals(mContentPadding) || !searchBarBounds.equals(mSearchBarBounds)) { + mContentPadding.set(padding); + mContentBounds.set(padding.left, padding.top, + getMeasuredWidth() - padding.right, + getMeasuredHeight() - padding.bottom); + mSearchBarBounds.set(searchBarBounds); + onUpdateBackgroundAndPaddings(mSearchBarBounds, padding); + } } /** - * Update the backgrounds in response to a change in the bounds or insets. + * To be implemented by container views to update themselves when the bounds changes. */ - protected void onUpdateBackgrounds() { - // Do nothing - } + protected abstract void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding); }
\ No newline at end of file diff --git a/src/com/android/launcher3/BaseRecyclerView.java b/src/com/android/launcher3/BaseRecyclerView.java index a207d9a12..140c28c0c 100644 --- a/src/com/android/launcher3/BaseRecyclerView.java +++ b/src/com/android/launcher3/BaseRecyclerView.java @@ -16,6 +16,8 @@ package com.android.launcher3; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.content.Context; import android.content.res.Resources; @@ -89,9 +91,7 @@ public class BaseRecyclerView extends RecyclerView private int mLastY; private int mScrollbarWidth; private int mScrollbarInset; - private Rect mBackgroundPadding = new Rect(); - - + protected Rect mBackgroundPadding = new Rect(); public BaseRecyclerView(Context context) { this(context, null); @@ -230,6 +230,10 @@ public class BaseRecyclerView extends RecyclerView return false; } + public void updateBackgroundPadding(Rect padding) { + mBackgroundPadding.set(padding); + } + @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); @@ -290,6 +294,13 @@ public class BaseRecyclerView extends RecyclerView } /** + * Returns the fast scroller alpha. + */ + public float getFastScrollerAlpha() { + return mFastScrollAlpha; + } + + /** * Maps the touch (from 0..1) to the adapter position that should be visible. * <p>Override in each subclass of this base class. */ @@ -306,13 +317,38 @@ public class BaseRecyclerView extends RecyclerView /** * Animates the visibility of the fast scroller popup. */ - private void animateFastScrollerVisibility(boolean visible) { + private void animateFastScrollerVisibility(final boolean visible) { ObjectAnimator anim = ObjectAnimator.ofFloat(this, "fastScrollerAlpha", visible ? 1f : 0f); anim.setDuration(visible ? 200 : 150); + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + if (visible) { + onFastScrollingStart(); + } + } + + @Override + public void onAnimationEnd(Animator animation) { + if (!visible) { + onFastScrollingEnd(); + } + } + }); anim.start(); } /** + * To be overridden by subclasses. + */ + protected void onFastScrollingStart() {} + + /** + * To be overridden by subclasses. + */ + protected void onFastScrollingEnd() {} + + /** * Invalidates the fast scroller popup. */ protected void invalidateFastScroller(Rect bounds) { @@ -340,9 +376,10 @@ public class BaseRecyclerView extends RecyclerView // Calculate the position for the fast scroller popup Rect bgBounds = mFastScrollerBg.getBounds(); if (Utilities.isRtl(getResources())) { - x = mBackgroundPadding.left + getScrollBarSize(); + x = mBackgroundPadding.left + (2 * getScrollbarWidth()); } else { - x = getWidth() - getPaddingRight() - getScrollBarSize() - bgBounds.width(); + x = getWidth() - mBackgroundPadding.right - (2 * getScrollbarWidth()) - + bgBounds.width(); } y = mLastY - (int) (FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR * bgBounds.height()); y = Math.max(getPaddingTop(), Math.min(y, getHeight() - getPaddingBottom() - diff --git a/src/com/android/launcher3/ClickShadowView.java b/src/com/android/launcher3/ClickShadowView.java index 42fafe275..e31d7f7f6 100644 --- a/src/com/android/launcher3/ClickShadowView.java +++ b/src/com/android/launcher3/ClickShadowView.java @@ -96,12 +96,14 @@ public class ClickShadowView extends View { float drawableWidth = view.getIcon().getBounds().width(); setTranslationX(leftShift + + viewParent.getTranslationX() + view.getCompoundPaddingLeft() * view.getScaleX() + (iconHSpace - drawableWidth) * view.getScaleX() / 2 /* drawable gap */ + iconWidth * (1 - view.getScaleX()) / 2 /* gap due to scale */ - mShadowPadding /* extra shadow size */ ); setTranslationY(topShift + + viewParent.getTranslationY() + view.getPaddingTop() * view.getScaleY() /* drawable gap */ + view.getHeight() * (1 - view.getScaleY()) / 2 /* gap due to scale */ - mShadowPadding /* extra shadow size */ diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 9c59dab53..a50540d26 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -223,26 +223,22 @@ public class DeviceProfile { folderCellHeightPx = cellHeightPx + edgeMarginPx; folderBackgroundOffset = -edgeMarginPx; folderIconSizePx = iconSizePx + 2 * -folderBackgroundOffset; - - updateAppsViewNumCols(res, 0); } - public boolean updateAppsViewNumCols(Resources res, int containerWidth) { + /** + * @param recyclerViewWidth the available width of the AllAppsRecyclerView + */ + public void updateAppsViewNumCols(Resources res, int recyclerViewWidth) { int appsViewLeftMarginPx = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin); int allAppsCellWidthGap = res.getDimensionPixelSize(R.dimen.all_apps_icon_width_gap); - int availableAppsWidthPx = (containerWidth > 0) ? containerWidth : availableWidthPx; + int availableAppsWidthPx = (recyclerViewWidth > 0) ? recyclerViewWidth : availableWidthPx; int numAppsCols = (availableAppsWidthPx - appsViewLeftMarginPx) / (allAppsIconSizePx + allAppsCellWidthGap); int numPredictiveAppCols = Math.max(inv.minAllAppsPredictionColumns, numAppsCols); - if ((numAppsCols != allAppsNumCols) || - (numPredictiveAppCols != allAppsNumPredictiveCols)) { - allAppsNumCols = numAppsCols; - allAppsNumPredictiveCols = numPredictiveAppCols; - return true; - } - return false; + allAppsNumCols = numAppsCols; + allAppsNumPredictiveCols = numPredictiveAppCols; } /** Returns the search bar top offset */ diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index d52191bf1..3596b71d2 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -36,7 +36,6 @@ import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentCallbacks2; import android.content.ComponentName; -import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -48,7 +47,6 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; -import android.database.ContentObserver; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -99,7 +97,7 @@ import android.widget.Toast; import com.android.launcher3.DropTarget.DragObject; import com.android.launcher3.PagedView.PageSwitchListener; import com.android.launcher3.allapps.AllAppsContainerView; -import com.android.launcher3.allapps.AppSearchManager; +import com.android.launcher3.allapps.AllAppsSearchBarController; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; @@ -138,9 +136,6 @@ public class Launcher extends Activity static final String TAG = "Launcher"; static final boolean LOGD = false; - // Temporary flag - static final boolean DISABLE_ALL_APPS_SEARCH_INTEGRATION = true; - static final boolean PROFILE_STARTUP = false; static final boolean DEBUG_WIDGETS = true; static final boolean DEBUG_STRICT_MODE = false; @@ -244,7 +239,6 @@ public class Launcher extends Activity private final BroadcastReceiver mCloseSystemDialogsReceiver = new CloseSystemDialogsIntentReceiver(); - private final ContentObserver mWidgetObserver = new AppWidgetResetObserver(); private LayoutInflater mInflater; @@ -441,7 +435,6 @@ public class Launcher extends Activity LauncherAppState.setApplicationContext(getApplicationContext()); LauncherAppState app = LauncherAppState.getInstance(); - LauncherAppState.getLauncherProvider().setLauncherProviderChangeListener(this); // Load configuration-specific DeviceProfile mDeviceProfile = getResources().getConfiguration().orientation @@ -481,8 +474,6 @@ public class Launcher extends Activity setupViews(); mDeviceProfile.layout(this); - registerContentObservers(); - lockAllApps(); mSavedState = savedInstanceState; @@ -515,7 +506,7 @@ public class Launcher extends Activity // In case we are on a device with locked rotation, we should look at preferences to check // if the user has specifically allowed rotation. if (!mRotationEnabled) { - mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext()); + mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext(), false); } // On large interfaces, or on devices that a user has specifically enabled screen rotation, @@ -562,59 +553,45 @@ public class Launcher extends Activity public boolean setLauncherCallbacks(LauncherCallbacks callbacks) { mLauncherCallbacks = callbacks; - mLauncherCallbacks.setLauncherAppsCallback(new Launcher.LauncherAppsCallbacks() { - @Override - public void onAllAppsBoundsChanged(Rect bounds) { - if (LOGD) { - Log.d(TAG, "onAllAppsBoundsChanged(Rect): " + bounds); - } - mAppsView.setFixedBounds(bounds); - mWidgetsView.setFixedBounds(bounds); - } - - @Override - public void dismissAllApps() { - if (!DISABLE_ALL_APPS_SEARCH_INTEGRATION) { - // Dismiss All Apps if we aren't already paused/invisible - if (!mPaused) { - showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, true, - null /* onCompleteRunnable */, false /* notifyLauncherCallbacks */); - } - } - } - - @Override - public void setSearchManager(AppSearchManager manager) { - mAppsView.setSearchManager(manager); - } - }); mLauncherCallbacks.setLauncherSearchCallback(new Launcher.LauncherSearchCallbacks() { - private boolean mImportanceStored = false; + private boolean mWorkspaceImportanceStored = false; + private boolean mHotseatImportanceStored = false; private int mWorkspaceImportanceForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO; private int mHotseatImportanceForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO; @Override public void onSearchOverlayOpened() { - if (mImportanceStored) { + if (mWorkspaceImportanceStored || mHotseatImportanceStored) { return; } // The underlying workspace and hotseat are temporarily suppressed by the search // overlay. So they sholudn't be accessible. - mWorkspaceImportanceForAccessibility = mWorkspace.getImportantForAccessibility(); - mHotseatImportanceForAccessibility = mHotseat.getImportantForAccessibility(); - mWorkspace.setImportantForAccessibility( - View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); - mHotseat.setImportantForAccessibility( - View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); - mImportanceStored = true; + if (mWorkspace != null) { + mWorkspaceImportanceForAccessibility = + mWorkspace.getImportantForAccessibility(); + mWorkspace.setImportantForAccessibility( + View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + mWorkspaceImportanceStored = true; + } + if (mHotseat != null) { + mHotseatImportanceForAccessibility = mHotseat.getImportantForAccessibility(); + mHotseat.setImportantForAccessibility( + View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + mHotseatImportanceStored = true; + } } @Override public void onSearchOverlayClosed() { - mWorkspace.setImportantForAccessibility(mWorkspaceImportanceForAccessibility); - mHotseat.setImportantForAccessibility(mHotseatImportanceForAccessibility); - mImportanceStored = false; + if (mWorkspaceImportanceStored && mWorkspace != null) { + mWorkspace.setImportantForAccessibility(mWorkspaceImportanceForAccessibility); + } + if (mHotseatImportanceStored && mHotseat != null) { + mHotseat.setImportantForAccessibility(mHotseatImportanceForAccessibility); + } + mWorkspaceImportanceStored = false; + mHotseatImportanceStored = false; } }); return true; @@ -627,6 +604,14 @@ public class Launcher extends Activity } } + /** + * Updates the bounds of all the overlays to match the new fixed bounds. + */ + public void updateOverlayBounds(Rect newBounds) { + mAppsView.setSearchBarBounds(newBounds); + mWidgetsView.setSearchBarBounds(newBounds); + } + /** To be overridden by subclasses to hint to Launcher that we have custom content */ protected boolean hasCustomContentToLeft() { if (mLauncherCallbacks != null) { @@ -1001,16 +986,6 @@ public class Launcher extends Activity } mOnResumeState = State.NONE; - // Restore the apps state if we are in all apps - if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) { - // Otherwise, notify the callbacks if we are in all apps mode - if (mState == State.APPS) { - if (mLauncherCallbacks != null) { - mLauncherCallbacks.onAllAppsShown(); - } - } - } - // Background was set to gradient in onPause(), restore to transparent if in all apps. setWorkspaceBackground(mState == State.WORKSPACE ? WORKSPACE_BACKGROUND_GRADIENT : WORKSPACE_BACKGROUND_TRANSPARENT); @@ -1156,17 +1131,20 @@ public class Launcher extends Activity * Updates launcher to the available space that AllApps can take so as not to overlap with * any other views. */ + @Deprecated public void onAllAppsBoundsChanged(Rect bounds); /** * Called to dismiss all apps if it is showing. */ + @Deprecated public void dismissAllApps(); /** * Sets the search manager to be used for app search. */ - public void setSearchManager(AppSearchManager manager); + @Deprecated + public void setSearchManager(Object manager); } public interface LauncherSearchCallbacks { @@ -1452,14 +1430,14 @@ public class Launcher extends Activity mSearchDropTargetBar = (SearchDropTargetBar) mDragLayer.findViewById(R.id.search_drop_target_bar); - // Setup Apps + // Setup Apps and Widgets mAppsView = (AllAppsContainerView) findViewById(R.id.apps_view); - if (isAllAppsSearchOverridden()) { - mAppsView.hideHeaderBar(); - } - - // Setup AppsCustomize mWidgetsView = (WidgetsContainerView) findViewById(R.id.widgets_view); + if (mLauncherCallbacks != null && mLauncherCallbacks.getAllAppsSearchBarController() != null) { + mAppsView.setSearchBarController(mLauncherCallbacks.getAllAppsSearchBarController()); + } else { + mAppsView.setSearchBarController(mAppsView.newDefaultAppSearchController()); + } // Setup the drag controller (drop targets have to be added in reverse order in priority) dragController.setDragScoller(mWorkspace); @@ -2045,7 +2023,6 @@ public class Launcher extends Activity TextKeyListener.getInstance().release(); - getContentResolver().unregisterContentObserver(mWidgetObserver); unregisterReceiver(mCloseSystemDialogsReceiver); mDragLayer.clearAllResizeFrames(); @@ -2414,16 +2391,6 @@ public class Launcher extends Activity sFolders.remove(folder.id); } - /** - * Registers various content observers. The current implementation registers - * only a favorites observer to keep track of the favorites applications. - */ - private void registerContentObservers() { - ContentResolver resolver = getContentResolver(); - resolver.registerContentObserver(LauncherProvider.CONTENT_APPWIDGET_RESET_URI, - true, mWidgetObserver); - } - @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { @@ -2480,9 +2447,10 @@ public class Launcher extends Activity } /** - * Re-listen when widgets are reset. + * Re-listen when widget host is reset. */ - @Thunk void onAppWidgetReset() { + @Override + public void onAppWidgetHostReset() { if (mAppWidgetHost != null) { mAppWidgetHost.startListening(); } @@ -2850,17 +2818,8 @@ public class Launcher extends Activity public void updateInteraction(Workspace.State fromState, Workspace.State toState) { // Only update the interacting state if we are transitioning to/from a view with an // overlay - boolean fromStateWithOverlay; - boolean toStateWithOverlay; - if (Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION) { - fromStateWithOverlay = fromState != Workspace.State.NORMAL; - toStateWithOverlay = toState != Workspace.State.NORMAL; - } else { - fromStateWithOverlay = fromState != Workspace.State.NORMAL && - fromState != Workspace.State.NORMAL_HIDDEN; - toStateWithOverlay = toState != Workspace.State.NORMAL && - toState != Workspace.State.NORMAL_HIDDEN; - } + boolean fromStateWithOverlay = fromState != Workspace.State.NORMAL; + boolean toStateWithOverlay = toState != Workspace.State.NORMAL; if (toStateWithOverlay) { onInteractionBegin(); } else if (fromStateWithOverlay) { @@ -2976,7 +2935,7 @@ public class Launcher extends Activity return false; } - private boolean startActivitySafely(View v, Intent intent, Object tag) { + @Thunk boolean startActivitySafely(View v, Intent intent, Object tag) { boolean success = false; if (mIsSafeModeEnabled && !Utilities.isSystemApp(this, intent)) { Toast.makeText(this, R.string.safemode_shortcut_error, Toast.LENGTH_SHORT).show(); @@ -3304,21 +3263,19 @@ public class Launcher extends Activity } public void showWorkspace(boolean animated) { - showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null, - true); + showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, null); } public void showWorkspace(boolean animated, Runnable onCompleteRunnable) { showWorkspace(WorkspaceStateTransitionAnimation.SCROLL_TO_CURRENT_PAGE, animated, - onCompleteRunnable, true); + onCompleteRunnable); } protected void showWorkspace(int snapToPage, boolean animated) { - showWorkspace(snapToPage, animated, null, true); + showWorkspace(snapToPage, animated, null); } - void showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable, - boolean notifyLauncherCallbacks) { + void showWorkspace(int snapToPage, boolean animated, Runnable onCompleteRunnable) { boolean changed = mState != State.WORKSPACE || mWorkspace.getState() != Workspace.State.NORMAL; if (changed) { @@ -3350,12 +3307,6 @@ public class Launcher extends Activity // Send an accessibility event to announce the context change getWindow().getDecorView() .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); - if (notifyLauncherCallbacks) { - // Dismiss all apps when the workspace is shown - if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) { - mLauncherCallbacks.onAllAppsHidden(); - } - } } } @@ -3415,10 +3366,7 @@ public class Launcher extends Activity } if (toState == State.APPS) { - mStateTransitionAnimation.startAnimationToAllApps(animated); - if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) { - mLauncherCallbacks.onAllAppsShown(); - } + mStateTransitionAnimation.startAnimationToAllApps(mState, animated); } else { mStateTransitionAnimation.startAnimationToWidgets(animated); } @@ -3442,9 +3390,10 @@ public class Launcher extends Activity * new state. */ public Animator startWorkspaceStateChangeAnimation(Workspace.State toState, int toPage, - boolean animated, HashMap<View, Integer> layerViews) { + boolean animated, boolean hasOverlaySearchBar, HashMap<View, Integer> layerViews) { Workspace.State fromState = mWorkspace.getState(); - Animator anim = mWorkspace.setStateWithAnimation(toState, toPage, animated, layerViews); + Animator anim = mWorkspace.setStateWithAnimation(toState, toPage, animated, + hasOverlaySearchBar, layerViews); updateInteraction(fromState, toState); return anim; } @@ -3466,14 +3415,6 @@ public class Launcher extends Activity final Runnable onCompleteRunnable) { if (mState != State.APPS_SPRING_LOADED && mState != State.WIDGETS_SPRING_LOADED) return; - if (successfulDrop) { - // We need to trigger all apps hidden to notify search to update itself before the - // delayed call to showWorkspace below - if (!Launcher.DISABLE_ALL_APPS_SEARCH_INTEGRATION && mLauncherCallbacks != null) { - mLauncherCallbacks.onAllAppsHidden(); - } - } - mHandler.postDelayed(new Runnable() { @Override public void run() { @@ -3617,20 +3558,6 @@ public class Launcher extends Activity } /** - * Receives notifications whenever the appwidgets are reset. - */ - private class AppWidgetResetObserver extends ContentObserver { - public AppWidgetResetObserver() { - super(new Handler()); - } - - @Override - public void onChange(boolean selfChange) { - onAppWidgetReset(); - } - } - - /** * If the activity is currently paused, signal that we need to run the passed Runnable * in onResume. * @@ -4457,20 +4384,6 @@ public class Launcher extends Activity return null; } - /** - * Returns whether the launcher callbacks overrides search in all apps. - */ - @Thunk boolean isAllAppsSearchOverridden() { - if (DISABLE_ALL_APPS_SEARCH_INTEGRATION) { - return false; - } - - if (mLauncherCallbacks != null) { - return mLauncherCallbacks.overrideAllAppsSearch(); - } - return false; - } - private boolean shouldRunFirstRunActivity() { return !ActivityManager.isRunningInTestHarness() && !mSharedPrefs.getBoolean(FIRST_RUN_ACTIVITY_DISPLAYED, false); diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 540bdf814..0565d3f4b 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -84,7 +84,7 @@ public class LauncherAppState { mInvariantDeviceProfile = new InvariantDeviceProfile(sContext); mIconCache = new IconCache(sContext, mInvariantDeviceProfile); - mWidgetCache = new WidgetPreviewLoader(sContext, mInvariantDeviceProfile, mIconCache); + mWidgetCache = new WidgetPreviewLoader(sContext, mIconCache); mAppFilter = AppFilter.loadByName(sContext.getString(R.string.app_filter_class)); mBuildInfo = BuildInfo.loadByName(sContext.getString(R.string.build_info_class)); @@ -125,6 +125,7 @@ public class LauncherAppState { } LauncherModel setLauncher(Launcher launcher) { + getLauncherProvider().setLauncherProviderChangeListener(launcher); mModel.initialize(launcher); mAccessibilityDelegate = ((launcher != null) && Utilities.isLmpOrAbove()) ? new LauncherAccessibilityDelegate(launcher) : null; diff --git a/src/com/android/launcher3/LauncherCallbacks.java b/src/com/android/launcher3/LauncherCallbacks.java index 70e400bca..e73275400 100644 --- a/src/com/android/launcher3/LauncherCallbacks.java +++ b/src/com/android/launcher3/LauncherCallbacks.java @@ -7,6 +7,7 @@ import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.ViewGroup; +import com.android.launcher3.allapps.AllAppsSearchBarController; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -51,12 +52,9 @@ public interface LauncherCallbacks { public void onLauncherProviderChange(); public void finishBindingItems(final boolean upgradePath); public void onClickAllAppsButton(View v); - public void onAllAppsShown(); - public void onAllAppsHidden(); public void bindAllApplications(ArrayList<AppInfo> apps); public void onClickFolderIcon(View v); public void onClickAppShortcut(View v); - @Deprecated public void onClickPagedViewIcon(View v); public void onClickWallpaperPicker(View v); @@ -89,10 +87,11 @@ public interface LauncherCallbacks { public View getIntroScreen(); public boolean shouldMoveToDefaultScreenOnHomeIntent(); public boolean hasSettings(); + @Deprecated public ComponentName getWallpaperPickerComponent(); public boolean overrideWallpaperDimensions(); public boolean isLauncherPreinstalled(); - public boolean overrideAllAppsSearch(); + public AllAppsSearchBarController getAllAppsSearchBarController(); public List<ComponentName> getPredictedApps(); /** @@ -114,14 +113,6 @@ public interface LauncherCallbacks { Launcher.LauncherOverlayCallbacks callbacks); /** - * Sets the callbacks to allow any extensions to callback to the launcher. - * - * @param callbacks A set of callbacks to the Launcher, is actually a LauncherAppsCallback, but - * for implementation purposes is passed around as an object. - */ - public void setLauncherAppsCallback(Object callbacks); - - /** * Sets the callbacks to allow reacting the actions of search overlays of the launcher. * * @param callbacks A set of callbacks to the Launcher, is actually a LauncherSearchCallback, diff --git a/src/com/android/launcher3/LauncherExtension.java b/src/com/android/launcher3/LauncherExtension.java index 09a105bcc..fafb070ec 100644 --- a/src/com/android/launcher3/LauncherExtension.java +++ b/src/com/android/launcher3/LauncherExtension.java @@ -11,6 +11,7 @@ import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.ViewGroup; +import com.android.launcher3.allapps.AllAppsSearchBarController; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -125,14 +126,6 @@ public class LauncherExtension extends Launcher { } @Override - public void onAllAppsShown() { - } - - @Override - public void onAllAppsHidden() { - } - - @Override public void bindAllApplications(ArrayList<AppInfo> apps) { } @@ -255,8 +248,8 @@ public class LauncherExtension extends Launcher { } @Override - public boolean overrideAllAppsSearch() { - return false; + public AllAppsSearchBarController getAllAppsSearchBarController() { + return null; } @Override @@ -285,11 +278,6 @@ public class LauncherExtension extends Launcher { } @Override - public void setLauncherAppsCallback(Object callbacks) { - // Do nothing - } - - @Override public void setLauncherSearchCallback(Object callbacks) { // Do nothing } diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index 9b52a80c9..3ebc30737 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -81,16 +81,7 @@ public class LauncherProvider extends ContentProvider { private static final String RESTRICTION_PACKAGE_NAME = "workspace.configuration.package.name"; - private LauncherProviderChangeListener mListener; - - /** - * {@link Uri} triggered at any registered {@link android.database.ContentObserver} when - * {@link AppWidgetHost#deleteHost()} is called during database creation. - * Use this to recall {@link AppWidgetHost#startListening()} if needed. - */ - static final Uri CONTENT_APPWIDGET_RESET_URI = - Uri.parse("content://" + AUTHORITY + "/appWidgetReset"); - + @Thunk LauncherProviderChangeListener mListener; @Thunk DatabaseHelper mOpenHelper; @Override @@ -109,6 +100,7 @@ public class LauncherProvider extends ContentProvider { public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) { mListener = listener; + mOpenHelper.mListener = mListener; } @Override @@ -463,6 +455,7 @@ public class LauncherProvider extends ContentProvider { SQLiteDatabase.deleteDatabase(dbFile); } mOpenHelper = new DatabaseHelper(getContext()); + mOpenHelper.mListener = mListener; } private static class DatabaseHelper extends SQLiteOpenHelper implements LayoutParserCallback { @@ -473,6 +466,8 @@ public class LauncherProvider extends ContentProvider { private boolean mNewDbCreated = false; + @Thunk LauncherProviderChangeListener mListener; + DatabaseHelper(Context context) { super(context, LauncherFiles.LAUNCHER_DB, null, DATABASE_VERSION); mContext = context; @@ -492,17 +487,6 @@ public class LauncherProvider extends ContentProvider { return mNewDbCreated; } - /** - * Send notification that we've deleted the {@link AppWidgetHost}, - * probably as part of the initial database creation. The receiver may - * want to re-call {@link AppWidgetHost#startListening()} to ensure - * callbacks are correctly set. - */ - private void sendAppWidgetResetNotify() { - final ContentResolver resolver = mContext.getContentResolver(); - resolver.notifyChange(CONTENT_APPWIDGET_RESET_URI, null); - } - @Override public void onCreate(SQLiteDatabase db) { if (LOGD) Log.d(TAG, "creating new launcher database"); @@ -546,7 +530,22 @@ public class LauncherProvider extends ContentProvider { // Database was just created, so wipe any previous widgets if (mAppWidgetHost != null) { mAppWidgetHost.deleteHost(); - sendAppWidgetResetNotify(); + + /** + * Send notification that we've deleted the {@link AppWidgetHost}, + * probably as part of the initial database creation. The receiver may + * want to re-call {@link AppWidgetHost#startListening()} to ensure + * callbacks are correctly set. + */ + new MainThreadExecutor().execute(new Runnable() { + + @Override + public void run() { + if (mListener != null) { + mListener.onAppWidgetHostReset(); + } + } + }); } // Fresh and clean launcher DB. @@ -554,7 +553,7 @@ public class LauncherProvider extends ContentProvider { setFlagEmptyDbCreated(); // When a new DB is created, remove all previously stored managed profile information. - ManagedProfileHeuristic.processAllUsers(Collections.EMPTY_LIST, mContext); + ManagedProfileHeuristic.processAllUsers(Collections.<UserHandleCompat>emptyList(), mContext); } private void addWorkspacesTable(SQLiteDatabase db) { diff --git a/src/com/android/launcher3/LauncherProviderChangeListener.java b/src/com/android/launcher3/LauncherProviderChangeListener.java index 5b5c6c5ab..1b78e9c18 100644 --- a/src/com/android/launcher3/LauncherProviderChangeListener.java +++ b/src/com/android/launcher3/LauncherProviderChangeListener.java @@ -10,4 +10,6 @@ public interface LauncherProviderChangeListener { public void onLauncherProviderChange(); public void onSettingsChanged(String settings, boolean value); + + public void onAppWidgetHostReset(); } diff --git a/src/com/android/launcher3/LauncherStateTransitionAnimation.java b/src/com/android/launcher3/LauncherStateTransitionAnimation.java index a006d141b..e94a2ac0b 100644 --- a/src/com/android/launcher3/LauncherStateTransitionAnimation.java +++ b/src/com/android/launcher3/LauncherStateTransitionAnimation.java @@ -129,7 +129,7 @@ public class LauncherStateTransitionAnimation { /** * Starts an animation to the apps view. */ - public void startAnimationToAllApps(final boolean animated) { + public void startAnimationToAllApps(final Launcher.State fromState, final boolean animated) { final AllAppsContainerView toView = mLauncher.getAppsView(); PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() { private int[] mAllAppsToPanelDelta; @@ -137,7 +137,6 @@ public class LauncherStateTransitionAnimation { @Override public void onRevealViewVisible(View revealView, View contentView, View allAppsButtonView) { - toView.setBackground(null); // Get the y delta between the center of the page and the center of the all apps // button mAllAppsToPanelDelta = Utilities.getCenterDeltaInScreenSpace(revealView, @@ -173,9 +172,9 @@ public class LauncherStateTransitionAnimation { }; } }; + // Only animate the search bar if animating from spring loaded mode back to all apps startAnimationToOverlay(Workspace.State.NORMAL_HIDDEN, toView, toView.getContentView(), - toView.getRevealView(), animated, - !mLauncher.isAllAppsSearchOverridden() /* hideSearchBar */, cb); + toView.getRevealView(), toView.getSearchBarView(), animated, true, cb); } /** @@ -188,7 +187,6 @@ public class LauncherStateTransitionAnimation { @Override public void onRevealViewVisible(View revealView, View contentView, View allAppsButtonView) { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark)); } @Override public float getMaterialRevealViewFinalAlpha(View revealView) { @@ -200,8 +198,8 @@ public class LauncherStateTransitionAnimation { } }; startAnimationToOverlay(Workspace.State.OVERVIEW_HIDDEN, toView, - toView.getContentView(), toView.getRevealView(), animated, true /* hideSearchBar */, - cb); + toView.getContentView(), toView.getRevealView(), null, animated, + true /* hideSearchBar */, cb); } /** @@ -217,10 +215,10 @@ public class LauncherStateTransitionAnimation { } if (fromState == Launcher.State.APPS || fromState == Launcher.State.APPS_SPRING_LOADED) { - startAnimationToWorkspaceFromAllApps(fromState, toWorkspaceState, toWorkspacePage, + startAnimationToWorkspaceFromAllApps(toWorkspaceState, toWorkspacePage, animated, onCompleteRunnable); } else { - startAnimationToWorkspaceFromWidgets(fromState, toWorkspaceState, toWorkspacePage, + startAnimationToWorkspaceFromWidgets(toWorkspaceState, toWorkspacePage, animated, onCompleteRunnable); } } @@ -230,8 +228,9 @@ public class LauncherStateTransitionAnimation { */ @SuppressLint("NewApi") private void startAnimationToOverlay(final Workspace.State toWorkspaceState, final View toView, - final View contentView, final View revealView, final boolean animated, - final boolean hideSearchBar, final PrivateTransitionCallbacks pCb) { + final View contentView, final View revealView, final View overlaySearchBarView, + final boolean animated, final boolean hideSearchBar, + final PrivateTransitionCallbacks pCb) { final Resources res = mLauncher.getResources(); final boolean material = Utilities.isLmpOrAbove(); final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime); @@ -252,7 +251,7 @@ public class LauncherStateTransitionAnimation { // Create the workspace animation. // NOTE: this call apparently also sets the state for the workspace if !animated Animator workspaceAnim = mLauncher.startWorkspaceStateChangeAnimation(toWorkspaceState, -1, - animated, layerViews); + animated, overlaySearchBarView != null /* hasOverlaySearchBar */, layerViews); if (animated && initialized) { mStateAnimation = LauncherAnimUtils.createAnimatorSet(); @@ -297,6 +296,15 @@ public class LauncherStateTransitionAnimation { layerViews.put(revealView, BUILD_AND_SET_LAYER); mStateAnimation.play(panelAlphaAndDrift); + if (overlaySearchBarView != null) { + overlaySearchBarView.setAlpha(0f); + ObjectAnimator searchBarAlpha = ObjectAnimator.ofFloat(overlaySearchBarView, "alpha", 0f, 1f); + searchBarAlpha.setDuration(100); + searchBarAlpha.setInterpolator(new AccelerateInterpolator(1.5f)); + layerViews.put(overlaySearchBarView, BUILD_AND_SET_LAYER); + mStateAnimation.play(searchBarAlpha); + } + // Setup the animation for the content view contentView.setVisibility(View.VISIBLE); contentView.setAlpha(0f); @@ -426,9 +434,8 @@ public class LauncherStateTransitionAnimation { /** * Starts and animation to the workspace from the apps view. */ - private void startAnimationToWorkspaceFromAllApps(final Launcher.State fromState, - final Workspace.State toWorkspaceState, final int toWorkspacePage, - final boolean animated, final Runnable onCompleteRunnable) { + private void startAnimationToWorkspaceFromAllApps(final Workspace.State toWorkspaceState, + final int toWorkspacePage, final boolean animated, final Runnable onCompleteRunnable) { AllAppsContainerView appsView = mLauncher.getAppsView(); PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() { int[] mAllAppsToPanelDelta; @@ -479,24 +486,23 @@ public class LauncherStateTransitionAnimation { }; } }; + // Only animate the search bar if animating to spring loaded mode from all apps startAnimationToWorkspaceFromOverlay(toWorkspaceState, toWorkspacePage, appsView, - appsView.getContentView(), appsView.getRevealView(), animated, onCompleteRunnable, - cb); + appsView.getContentView(), appsView.getRevealView(), appsView.getSearchBarView(), + animated, onCompleteRunnable, cb); } /** * Starts and animation to the workspace from the widgets view. */ - private void startAnimationToWorkspaceFromWidgets(final Launcher.State fromState, - final Workspace.State toWorkspaceState, final int toWorkspacePage, - final boolean animated, final Runnable onCompleteRunnable) { + private void startAnimationToWorkspaceFromWidgets(final Workspace.State toWorkspaceState, + final int toWorkspacePage, final boolean animated, final Runnable onCompleteRunnable) { final WidgetsContainerView widgetsView = mLauncher.getWidgetsView(); final Resources res = mLauncher.getResources(); PrivateTransitionCallbacks cb = new PrivateTransitionCallbacks() { @Override public void onRevealViewVisible(View revealView, View contentView, View allAppsButtonView) { - revealView.setBackground(res.getDrawable(R.drawable.quantum_panel_dark)); } @Override public float getMaterialRevealViewFinalYDrift(View revealView) { @@ -518,7 +524,7 @@ public class LauncherStateTransitionAnimation { } }; startAnimationToWorkspaceFromOverlay(toWorkspaceState, toWorkspacePage, widgetsView, - widgetsView.getContentView(), widgetsView.getRevealView(), animated, + widgetsView.getContentView(), widgetsView.getRevealView(), null, animated, onCompleteRunnable, cb); } @@ -527,8 +533,8 @@ public class LauncherStateTransitionAnimation { */ private void startAnimationToWorkspaceFromOverlay(final Workspace.State toWorkspaceState, final int toWorkspacePage, final View fromView, final View contentView, - final View revealView, final boolean animated, final Runnable onCompleteRunnable, - final PrivateTransitionCallbacks pCb) { + final View revealView, final View overlaySearchBarView, final boolean animated, + final Runnable onCompleteRunnable, final PrivateTransitionCallbacks pCb) { final Resources res = mLauncher.getResources(); final boolean material = Utilities.isLmpOrAbove(); final int revealDuration = res.getInteger(R.integer.config_overlayRevealTime); @@ -549,7 +555,8 @@ public class LauncherStateTransitionAnimation { // Create the workspace animation. // NOTE: this call apparently also sets the state for the workspace if !animated Animator workspaceAnim = mLauncher.startWorkspaceStateChangeAnimation(toWorkspaceState, - toWorkspacePage, animated, layerViews); + toWorkspacePage, animated, overlaySearchBarView != null /* hasOverlaySearchBar */, + layerViews); if (animated && initialized) { mStateAnimation = LauncherAnimUtils.createAnimatorSet(); @@ -633,6 +640,16 @@ public class LauncherStateTransitionAnimation { itemsAlpha.setInterpolator(decelerateInterpolator); mStateAnimation.play(itemsAlpha); + if (overlaySearchBarView != null) { + overlaySearchBarView.setAlpha(1f); + ObjectAnimator searchAlpha = ObjectAnimator.ofFloat(overlaySearchBarView, "alpha", 1f, 0f); + searchAlpha.setDuration(material ? 100 : 150); + searchAlpha.setInterpolator(decelerateInterpolator); + searchAlpha.setStartDelay(material ? 0 : itemsAlphaStagger + SINGLE_FRAME_DELAY); + layerViews.put(overlaySearchBarView, BUILD_AND_SET_LAYER); + mStateAnimation.play(searchAlpha); + } + if (material) { // Animate the all apps button float finalRadius = pCb.getMaterialRevealViewStartFinalRadius(); @@ -681,6 +698,9 @@ public class LauncherStateTransitionAnimation { contentView.setTranslationY(0); contentView.setAlpha(1); } + if (overlaySearchBarView != null) { + overlaySearchBarView.setAlpha(1f); + } // This can hold unnecessary references to views. mStateAnimation = null; diff --git a/src/com/android/launcher3/LauncherTransitionable.java b/src/com/android/launcher3/LauncherTransitionable.java index 9442abcde..49af6928a 100644 --- a/src/com/android/launcher3/LauncherTransitionable.java +++ b/src/com/android/launcher3/LauncherTransitionable.java @@ -16,13 +16,10 @@ package com.android.launcher3; -import android.view.View; - /** * An interface to get callbacks during a launcher transition. */ public interface LauncherTransitionable { - View getContent(); void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean toWorkspace); void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace); void onLauncherTransitionStep(Launcher l, float t); diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 4a85b448f..3d00034cc 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -1045,7 +1045,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc public void removeViewAt(int index) { // XXX: We should find a better way to hook into this before the view // gets removed form its parent... - removeViewAt(index); + removeMarkerForView(index); super.removeViewAt(index); } @Override diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 6c300c524..3b06c2093 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -99,9 +99,10 @@ public final class Utilities { return Log.isLoggable(propertyName, Log.VERBOSE); } - public static boolean isAllowRotationPrefEnabled(Context context) { + public static boolean isAllowRotationPrefEnabled(Context context, boolean multiProcess) { SharedPreferences sharedPrefs = context.getSharedPreferences( - LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE); + LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE | (multiProcess ? + Context.MODE_MULTI_PROCESS : 0)); boolean allowRotationPref = sharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false); return sForceEnableRotation || allowRotationPref; } diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index cfeced2df..629387ed0 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -27,6 +27,7 @@ import android.os.AsyncTask; import android.os.Handler; import android.util.Log; import android.util.LongSparseArray; + import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; @@ -55,8 +56,10 @@ public class WidgetPreviewLoader { /** * Weak reference objects, do not prevent their referents from being made finalizable, * finalized, and then reclaimed. + * Note: synchronized block used for this variable is expensive and the block should always + * be posted to a background thread. */ - @Thunk Set<Bitmap> mUnusedBitmaps = + @Thunk final Set<Bitmap> mUnusedBitmaps = Collections.newSetFromMap(new WeakHashMap<Bitmap, Boolean>()); private final Context mContext; @@ -64,19 +67,20 @@ public class WidgetPreviewLoader { private final UserManagerCompat mUserManager; private final AppWidgetManagerCompat mManager; private final CacheDb mDb; - private final InvariantDeviceProfile mDeviceProfile; + private final int mProfileBadgeMargin; private final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor(); @Thunk final Handler mWorkerHandler; - public WidgetPreviewLoader(Context context, InvariantDeviceProfile inv, IconCache iconCache) { + public WidgetPreviewLoader(Context context, IconCache iconCache) { mContext = context; mIconCache = iconCache; mManager = AppWidgetManagerCompat.getInstance(context); mUserManager = UserManagerCompat.getInstance(context); mDb = new CacheDb(context); mWorkerHandler = new Handler(LauncherModel.getWorkerLooper()); - mDeviceProfile = inv; + mProfileBadgeMargin = context.getResources() + .getDimensionPixelSize(R.dimen.profile_badge_margin); } /** @@ -401,7 +405,7 @@ public class WidgetPreviewLoader { } // Draw the scaled preview into the final bitmap - int x = (preview.getWidth() - previewWidth) / 2; + int x = (preview.getWidth() - previewWidth - mProfileBadgeMargin) / 2; if (widgetPreviewExists) { drawable.setBounds(x, 0, x + previewWidth, previewHeight); drawable.draw(c); @@ -445,7 +449,8 @@ public class WidgetPreviewLoader { } catch (Resources.NotFoundException e) { } c.setBitmap(null); } - return mManager.getBadgeBitmap(info, preview, Math.min(preview.getHeight(), previewHeight)); + int imageHeight = Math.min(preview.getHeight(), previewHeight + mProfileBadgeMargin); + return mManager.getBadgeBitmap(info, preview, imageHeight); } private Bitmap generateShortcutPreview( @@ -535,7 +540,7 @@ public class WidgetPreviewLoader { */ public class PreviewLoadRequest { - private final PreviewLoadTask mTask; + @Thunk final PreviewLoadTask mTask; public PreviewLoadRequest(PreviewLoadTask task) { mTask = task; @@ -552,10 +557,15 @@ public class WidgetPreviewLoader { // in the tasks's onCancelled() call, and if cancelled while the task is writing to // disk, it will be cancelled in the task's onPostExecute() call. if (mTask.mBitmapToRecycle != null) { - synchronized (mUnusedBitmaps) { - mUnusedBitmaps.add(mTask.mBitmapToRecycle); - } - mTask.mBitmapToRecycle = null; + mWorkerHandler.post(new Runnable() { + @Override + public void run() { + synchronized (mUnusedBitmaps) { + mUnusedBitmaps.add(mTask.mBitmapToRecycle); + } + mTask.mBitmapToRecycle = null; + } + }); } } } @@ -658,14 +668,19 @@ public class WidgetPreviewLoader { } @Override - protected void onCancelled(Bitmap preview) { + protected void onCancelled(final Bitmap preview) { // If we've cancelled while the task is running, then can return the bitmap to the // recycled set immediately. Otherwise, it will be recycled after the preview is written // to disk. if (preview != null) { - synchronized (mUnusedBitmaps) { - mUnusedBitmaps.add(preview); - } + mWorkerHandler.post(new Runnable() { + @Override + public void run() { + synchronized (mUnusedBitmaps) { + mUnusedBitmaps.add(preview); + } + } + }); } } } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 19195b421..76f872bae 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1998,10 +1998,10 @@ public class Workspace extends PagedView * to that new state. */ public Animator setStateWithAnimation(State toState, int toPage, boolean animated, - HashMap<View, Integer> layerViews) { + boolean hasOverlaySearchBar, HashMap<View, Integer> layerViews) { // Create the animation to the new state Animator workspaceAnim = mStateTransitionAnimation.getAnimationToState(getState(), - toState, toPage, animated, layerViews); + toState, toPage, animated, hasOverlaySearchBar, layerViews); // Update the current state mState = toState; @@ -2100,11 +2100,6 @@ public class Workspace extends PagedView } } - @Override - public View getContent() { - return this; - } - /** * Returns the drawable for the given text view. */ diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index e360e889b..13e4a59f1 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -122,6 +122,52 @@ class ZoomInInterpolator implements TimeInterpolator { } /** + * Stores the transition states for convenience. + */ +class TransitionStates { + + // Raw states + final boolean oldStateIsNormal; + final boolean oldStateIsSpringLoaded; + final boolean oldStateIsNormalHidden; + final boolean oldStateIsOverviewHidden; + final boolean oldStateIsOverview; + + final boolean stateIsNormal; + final boolean stateIsSpringLoaded; + final boolean stateIsNormalHidden; + final boolean stateIsOverviewHidden; + final boolean stateIsOverview; + + // Convenience members + final boolean workspaceToAllApps; + final boolean overviewToAllApps; + final boolean allAppsToWorkspace; + final boolean workspaceToOverview; + final boolean overviewToWorkspace; + + public TransitionStates(final Workspace.State fromState, final Workspace.State toState) { + oldStateIsNormal = (fromState == Workspace.State.NORMAL); + oldStateIsSpringLoaded = (fromState == Workspace.State.SPRING_LOADED); + oldStateIsNormalHidden = (fromState == Workspace.State.NORMAL_HIDDEN); + oldStateIsOverviewHidden = (fromState == Workspace.State.OVERVIEW_HIDDEN); + oldStateIsOverview = (fromState == Workspace.State.OVERVIEW); + + stateIsNormal = (toState == Workspace.State.NORMAL); + stateIsSpringLoaded = (toState == Workspace.State.SPRING_LOADED); + stateIsNormalHidden = (toState == Workspace.State.NORMAL_HIDDEN); + stateIsOverviewHidden = (toState == Workspace.State.OVERVIEW_HIDDEN); + stateIsOverview = (toState == Workspace.State.OVERVIEW); + + workspaceToOverview = (oldStateIsNormal && stateIsOverview); + workspaceToAllApps = (oldStateIsNormal && stateIsNormalHidden); + overviewToWorkspace = (oldStateIsOverview && stateIsNormal); + overviewToAllApps = (oldStateIsOverview && stateIsOverviewHidden); + allAppsToWorkspace = (stateIsNormalHidden && stateIsNormal); + } +} + +/** * Manages the animations between each of the workspace states. */ public class WorkspaceStateTransitionAnimation { @@ -175,9 +221,17 @@ public class WorkspaceStateTransitionAnimation { } public AnimatorSet getAnimationToState(Workspace.State fromState, Workspace.State toState, - int toPage, boolean animated, - HashMap<View, Integer> layerViews) { - getAnimation(fromState, toState, toPage, animated, layerViews); + int toPage, boolean animated, boolean hasOverlaySearchBar, + HashMap<View, Integer> layerViews) { + AccessibilityManager am = (AccessibilityManager) + mLauncher.getSystemService(Context.ACCESSIBILITY_SERVICE); + final boolean accessibilityEnabled = am.isEnabled(); + TransitionStates states = new TransitionStates(fromState, toState); + int duration = getAnimationDuration(states); + animateWorkspace(states, toPage, animated, duration, layerViews, + accessibilityEnabled); + animateSearchBar(states, animated, duration, hasOverlaySearchBar, layerViews, + accessibilityEnabled); return mStateAnimator; } @@ -186,15 +240,37 @@ public class WorkspaceStateTransitionAnimation { } /** - * Starts a transition animation for the workspace. + * Reinitializes the arrays that we need for the animations on each page. */ - private void getAnimation(final Workspace.State fromState, final Workspace.State toState, - int toPage, final boolean animated, - final HashMap<View, Integer> layerViews) { - AccessibilityManager am = (AccessibilityManager) - mLauncher.getSystemService(Context.ACCESSIBILITY_SERVICE); - final boolean accessibilityEnabled = am.isEnabled(); + private void reinitializeAnimationArrays() { + final int childCount = mWorkspace.getChildCount(); + if (mLastChildCount == childCount) return; + mOldBackgroundAlphas = new float[childCount]; + mOldAlphas = new float[childCount]; + mNewBackgroundAlphas = new float[childCount]; + mNewAlphas = new float[childCount]; + } + + /** + * Returns the proper animation duration for a transition. + */ + private int getAnimationDuration(TransitionStates states) { + if (states.workspaceToAllApps || states.overviewToAllApps) { + return mAllAppsTransitionTime; + } else if (states.workspaceToOverview || states.overviewToWorkspace) { + return mOverviewTransitionTime; + } else { + return mOverlayTransitionTime; + } + } + + /** + * Starts a transition animation for the workspace. + */ + private void animateWorkspace(final TransitionStates states, int toPage, final boolean animated, + final int duration, final HashMap<View, Integer> layerViews, + final boolean accessibilityEnabled) { // Reinitialize animation arrays for the current workspace state reinitializeAnimationArrays(); @@ -205,32 +281,12 @@ public class WorkspaceStateTransitionAnimation { } // Update the workspace state - final boolean oldStateIsNormal = (fromState == Workspace.State.NORMAL); - final boolean oldStateIsSpringLoaded = (fromState == Workspace.State.SPRING_LOADED); - final boolean oldStateIsNormalHidden = (fromState == Workspace.State.NORMAL_HIDDEN); - final boolean oldStateIsOverviewHidden = (fromState == Workspace.State.OVERVIEW_HIDDEN); - final boolean oldStateIsOverview = (fromState == Workspace.State.OVERVIEW); - - final boolean stateIsNormal = (toState == Workspace.State.NORMAL); - final boolean stateIsSpringLoaded = (toState == Workspace.State.SPRING_LOADED); - final boolean stateIsNormalHidden = (toState == Workspace.State.NORMAL_HIDDEN); - final boolean stateIsOverviewHidden = (toState == Workspace.State.OVERVIEW_HIDDEN); - final boolean stateIsOverview = (toState == Workspace.State.OVERVIEW); - - final boolean workspaceToAllApps = (oldStateIsNormal && stateIsNormalHidden); - final boolean overviewToAllApps = (oldStateIsOverview && stateIsOverviewHidden); - final boolean allAppsToWorkspace = (stateIsNormalHidden && stateIsNormal); - final boolean workspaceToOverview = (oldStateIsNormal && stateIsOverview); - final boolean overviewToWorkspace = (oldStateIsOverview && stateIsNormal); - - float finalBackgroundAlpha = (stateIsSpringLoaded || stateIsOverview) ? 1.0f : 0f; - float finalHotseatAndPageIndicatorAlpha = (stateIsNormal || stateIsSpringLoaded) ? 1f : 0f; - float finalOverviewPanelAlpha = stateIsOverview ? 1f : 0f; - // We keep the search bar visible on the workspace and in AllApps now - boolean showSearchBar = stateIsNormal || - (mLauncher.isAllAppsSearchOverridden() && stateIsNormalHidden); - float finalSearchBarAlpha = showSearchBar ? 1f : 0f; - float finalWorkspaceTranslationY = stateIsOverview || stateIsOverviewHidden ? + float finalBackgroundAlpha = (states.stateIsSpringLoaded || states.stateIsOverview) ? + 1.0f : 0f; + float finalHotseatAndPageIndicatorAlpha = (states.stateIsNormal || states.stateIsSpringLoaded) ? + 1f : 0f; + float finalOverviewPanelAlpha = states.stateIsOverview ? 1f : 0f; + float finalWorkspaceTranslationY = states.stateIsOverview || states.stateIsOverviewHidden ? mWorkspace.getOverviewModeTranslationY() : 0; final int childCount = mWorkspace.getChildCount(); @@ -238,29 +294,20 @@ public class WorkspaceStateTransitionAnimation { mNewScale = 1.0f; - if (oldStateIsOverview) { + if (states.oldStateIsOverview) { mWorkspace.disableFreeScroll(); - } else if (stateIsOverview) { + } else if (states.stateIsOverview) { mWorkspace.enableFreeScroll(); } - if (!stateIsNormal) { - if (stateIsSpringLoaded) { + if (!states.stateIsNormal) { + if (states.stateIsSpringLoaded) { mNewScale = mSpringLoadedShrinkFactor; - } else if (stateIsOverview || stateIsOverviewHidden) { + } else if (states.stateIsOverview || states.stateIsOverviewHidden) { mNewScale = mOverviewModeShrinkFactor; } } - final int duration; - if (workspaceToAllApps || overviewToAllApps) { - duration = mAllAppsTransitionTime; - } else if (workspaceToOverview || overviewToWorkspace) { - duration = mOverviewTransitionTime; - } else { - duration = mOverlayTransitionTime; - } - if (toPage == SCROLL_TO_CURRENT_PAGE) { toPage = mWorkspace.getPageNearestToCenterOfScreen(); } @@ -271,9 +318,9 @@ public class WorkspaceStateTransitionAnimation { boolean isCurrentPage = (i == toPage); float initialAlpha = cl.getShortcutsAndWidgets().getAlpha(); float finalAlpha; - if (stateIsNormalHidden || stateIsOverviewHidden) { + if (states.stateIsNormalHidden || states.stateIsOverviewHidden) { finalAlpha = 0f; - } else if (stateIsNormal && mWorkspaceFadeInAdjacentScreens) { + } else if (states.stateIsNormal && mWorkspaceFadeInAdjacentScreens) { finalAlpha = (i == toPage || i < customPageCount) ? 1f : 0f; } else { finalAlpha = 1f; @@ -282,8 +329,8 @@ public class WorkspaceStateTransitionAnimation { // If we are animating to/from the small state, then hide the side pages and fade the // current page in if (!mWorkspace.isSwitchingState()) { - if (workspaceToAllApps || allAppsToWorkspace) { - if (allAppsToWorkspace && isCurrentPage) { + if (states.workspaceToAllApps || states.allAppsToWorkspace) { + if (states.allAppsToWorkspace && isCurrentPage) { initialAlpha = 0f; } else if (!isCurrentPage) { initialAlpha = finalAlpha = 0f; @@ -303,7 +350,6 @@ public class WorkspaceStateTransitionAnimation { } } - final View searchBar = mLauncher.getOrCreateQsbBar(); final ViewGroup overviewPanel = mLauncher.getOverviewPanel(); final View hotseat = mLauncher.getHotseat(); final View pageIndicator = mWorkspace.getPageIndicator(); @@ -345,7 +391,7 @@ public class WorkspaceStateTransitionAnimation { } } } - Animator pageIndicatorAlpha = null; + Animator pageIndicatorAlpha; if (pageIndicator != null) { pageIndicatorAlpha = new LauncherViewPropertyAnimator(pageIndicator) .alpha(finalHotseatAndPageIndicatorAlpha).withLayer(); @@ -380,11 +426,11 @@ public class WorkspaceStateTransitionAnimation { overviewPanelAlpha.withLayer(); } - if (workspaceToOverview) { + if (states.workspaceToOverview) { pageIndicatorAlpha.setInterpolator(new DecelerateInterpolator(2)); hotseatAlpha.setInterpolator(new DecelerateInterpolator(2)); overviewPanelAlpha.setInterpolator(null); - } else if (overviewToWorkspace) { + } else if (states.overviewToWorkspace) { pageIndicatorAlpha.setInterpolator(null); hotseatAlpha.setInterpolator(null); overviewPanelAlpha.setInterpolator(new DecelerateInterpolator(2)); @@ -394,26 +440,6 @@ public class WorkspaceStateTransitionAnimation { pageIndicatorAlpha.setDuration(duration); hotseatAlpha.setDuration(duration); - // TODO: This should really be coordinated with the SearchDropTargetBar, otherwise the - // bar has no idea that it is hidden, and this has no idea what state the bar is - // actually in. - if (searchBar != null) { - LauncherViewPropertyAnimator searchBarAlpha = new LauncherViewPropertyAnimator(searchBar) - .alpha(finalSearchBarAlpha); - searchBarAlpha.addListener(new AlphaUpdateListener(searchBar, accessibilityEnabled)); - searchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null); - if (layerViews != null) { - // If layerViews is not null, we add these views, and indicate that - // the caller can manage layer state. - layerViews.put(searchBar, LauncherStateTransitionAnimation.BUILD_AND_SET_LAYER); - } else { - // Otherwise let the animator handle layer management. - searchBarAlpha.withLayer(); - } - searchBarAlpha.setDuration(duration); - mStateAnimator.play(searchBarAlpha); - } - mStateAnimator.play(overviewPanelAlpha); mStateAnimator.play(hotseatAlpha); mStateAnimator.play(pageIndicatorAlpha); @@ -437,10 +463,6 @@ public class WorkspaceStateTransitionAnimation { pageIndicator.setAlpha(finalHotseatAndPageIndicatorAlpha); AlphaUpdateListener.updateVisibility(pageIndicator, accessibilityEnabled); } - if (searchBar != null) { - searchBar.setAlpha(finalSearchBarAlpha); - AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled); - } mWorkspace.updateCustomContentVisibility(); mWorkspace.setScaleX(mNewScale); mWorkspace.setScaleY(mNewScale); @@ -452,7 +474,7 @@ public class WorkspaceStateTransitionAnimation { } } - if (stateIsNormal) { + if (states.stateIsNormal) { animateBackgroundGradient(0f, animated); } else { animateBackgroundGradient(mWorkspaceScrimAlpha, animated); @@ -460,16 +482,69 @@ public class WorkspaceStateTransitionAnimation { } /** - * Reinitializes the arrays that we need for the animations on each page. + * Coordinates with the workspace animation to animate the search bar. + * + * TODO: This should really be coordinated with the SearchDropTargetBar, otherwise the + * bar has no idea that it is hidden, and this has no idea what state the bar is + * actually in. */ - private void reinitializeAnimationArrays() { - final int childCount = mWorkspace.getChildCount(); - if (mLastChildCount == childCount) return; + private void animateSearchBar(TransitionStates states, boolean animated, int duration, + boolean hasOverlaySearchBar, final HashMap<View, Integer> layerViews, + final boolean accessibilityEnabled) { - mOldBackgroundAlphas = new float[childCount]; - mOldAlphas = new float[childCount]; - mNewBackgroundAlphas = new float[childCount]; - mNewAlphas = new float[childCount]; + // The search bar is only visible in the workspace + final View searchBar = mLauncher.getOrCreateQsbBar(); + if (searchBar != null) { + final boolean searchBarWillBeShown = states.stateIsNormal; + final float finalSearchBarAlpha = searchBarWillBeShown ? 1f : 0f; + if (animated) { + if (hasOverlaySearchBar) { + // If there is an overlay search bar, then we will coordinate with it. + mStateAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + // If we are transitioning to a visible search bar, show it immediately + // and let the overlay search bar has faded out + if (searchBarWillBeShown) { + searchBar.setAlpha(finalSearchBarAlpha); + AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled); + } + } + + @Override + public void onAnimationEnd(Animator animation) { + // If we are transitioning to a hidden search bar, hide it only after + // the overlay search bar has faded in + if (!searchBarWillBeShown) { + searchBar.setAlpha(finalSearchBarAlpha); + AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled); + } + } + }); + } else { + // Otherwise, we can just do the normal animation + LauncherViewPropertyAnimator searchBarAlpha = + new LauncherViewPropertyAnimator(searchBar).alpha(finalSearchBarAlpha); + searchBarAlpha.addListener(new AlphaUpdateListener(searchBar, + accessibilityEnabled)); + searchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null); + if (layerViews != null) { + // If layerViews is not null, we add these views, and indicate that + // the caller can manage layer state. + layerViews.put(searchBar, LauncherStateTransitionAnimation.BUILD_AND_SET_LAYER); + } else { + // Otherwise let the animator handle layer management. + searchBarAlpha.withLayer(); + } + searchBarAlpha.setDuration(duration); + mStateAnimator.play(searchBarAlpha); + } + } else { + // Set the search bar state immediately + searchBar.setAlpha(finalSearchBarAlpha); + AlphaUpdateListener.updateVisibility(searchBar, accessibilityEnabled); + } + } } /** diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 855a4430d..0fbe8e962 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -20,17 +20,15 @@ import android.annotation.TargetApi; import android.content.ComponentName; import android.content.Context; import android.content.res.Resources; -import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.InsetDrawable; import android.os.Build; import android.os.Bundle; import android.support.v7.widget.RecyclerView; -import android.text.Editable; -import android.text.TextWatcher; +import android.text.Selection; +import android.text.SpannableStringBuilder; +import android.text.method.TextKeyListener; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -39,10 +37,8 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewTreeObserver; -import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; -import android.widget.TextView; +import android.widget.LinearLayout; import com.android.launcher3.AppInfo; import com.android.launcher3.BaseContainerView; @@ -54,7 +50,6 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget; import com.android.launcher3.Folder; -import com.android.launcher3.Insettable; import com.android.launcher3.ItemInfo; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherTransitionable; @@ -62,130 +57,84 @@ import com.android.launcher3.R; import com.android.launcher3.Stats; import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; -import com.android.launcher3.allapps.AppSearchManager.AppSearchResultCallback; +import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.Thunk; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; import java.util.ArrayList; import java.util.List; -/** - * Interface for controlling the header elevation in response to RecyclerView scroll. - */ -interface HeaderElevationController { - void onScroll(int scrollY); - void updateBackgroundPadding(Drawable bg); - void disable(); -} /** - * Implementation of the header elevation mechanism for pre-L devices. It simulates elevation - * by drawing a gradient under the header bar. + * A merge algorithm that merges every section indiscriminately. */ -final class HeaderElevationControllerV16 implements HeaderElevationController { - - private final View mShadow; - private final float mScrollToElevation; - private final Rect mTmpRect = new Rect(); - - public HeaderElevationControllerV16(View header) { - Resources res = header.getContext().getResources(); - mScrollToElevation = res.getDimension(R.dimen.all_apps_header_scroll_to_elevation); - - mShadow = new View(header.getContext()); - mShadow.setBackground(new GradientDrawable( - GradientDrawable.Orientation.TOP_BOTTOM, new int[] {0x44000000, 0x00000000})); - mShadow.setAlpha(0); - - FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, - res.getDimensionPixelSize(R.dimen.all_apps_header_shadow_height)); - lp.topMargin = ((FrameLayout.LayoutParams) header.getLayoutParams()).height; - - ((ViewGroup) header.getParent()).addView(mShadow, lp); - } - - @Override - public void onScroll(int scrollY) { - float elevationPct = (float) Math.min(scrollY, mScrollToElevation) / - mScrollToElevation; - mShadow.setAlpha(elevationPct); - } - - @Override - public void updateBackgroundPadding(Drawable bg) { - bg.getPadding(mTmpRect); - FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mShadow.getLayoutParams(); - lp.leftMargin = mTmpRect.left; - lp.rightMargin = mTmpRect.right; - mShadow.requestLayout(); - } +final class FullMergeAlgorithm implements AlphabeticalAppsList.MergeAlgorithm { @Override - public void disable() { - ViewGroup parent = (ViewGroup) mShadow.getParent(); - if (parent != null) { - parent.removeView(mShadow); - } + public boolean continueMerging(AlphabeticalAppsList.SectionInfo section, + AlphabeticalAppsList.SectionInfo withSection, + int sectionAppCount, int numAppsPerRow, int mergeCount) { + // Merge EVERYTHING + return true; } } /** - * Implementation of the header elevation mechanism for L+ devices, which makes use of the native - * view elevation. + * The logic we use to merge multiple sections. We only merge sections when their final row + * contains less than a certain number of icons, and stop at a specified max number of merges. + * In addition, we will try and not merge sections that identify apps from different scripts. */ -@TargetApi(Build.VERSION_CODES.LOLLIPOP) -final class HeaderElevationControllerVL implements HeaderElevationController { - - private final View mHeader; - private final float mMaxElevation; - private final float mScrollToElevation; - - public HeaderElevationControllerVL(View header) { - mHeader = header; - - Resources res = header.getContext().getResources(); - mMaxElevation = res.getDimension(R.dimen.all_apps_header_max_elevation); - mScrollToElevation = res.getDimension(R.dimen.all_apps_header_scroll_to_elevation); - } - - @Override - public void onScroll(int scrollY) { - float elevationPct = (float) Math.min(scrollY, mScrollToElevation) / - mScrollToElevation; - float newElevation = mMaxElevation * elevationPct; - if (Float.compare(mHeader.getElevation(), newElevation) != 0) { - mHeader.setElevation(newElevation); +final class SimpleSectionMergeAlgorithm implements AlphabeticalAppsList.MergeAlgorithm { + + private int mMinAppsPerRow; + private int mMinRowsInMergedSection; + private int mMaxAllowableMerges; + private CharsetEncoder mAsciiEncoder; + + public SimpleSectionMergeAlgorithm(int minAppsPerRow, int minRowsInMergedSection, int maxNumMerges) { + mMinAppsPerRow = minAppsPerRow; + mMinRowsInMergedSection = minRowsInMergedSection; + mMaxAllowableMerges = maxNumMerges; + mAsciiEncoder = Charset.forName("US-ASCII").newEncoder(); + } + + @Override + public boolean continueMerging(AlphabeticalAppsList.SectionInfo section, + AlphabeticalAppsList.SectionInfo withSection, + int sectionAppCount, int numAppsPerRow, int mergeCount) { + // Continue merging if the number of hanging apps on the final row is less than some + // fixed number (ragged), the merged rows has yet to exceed some minimum row count, + // and while the number of merged sections is less than some fixed number of merges + int rows = sectionAppCount / numAppsPerRow; + int cols = sectionAppCount % numAppsPerRow; + + // Ensure that we do not merge across scripts, currently we only allow for english and + // native scripts so we can test if both can just be ascii encoded + boolean isCrossScript = false; + if (section.firstAppItem != null && withSection.firstAppItem != null) { + isCrossScript = mAsciiEncoder.canEncode(section.firstAppItem.sectionName) != + mAsciiEncoder.canEncode(withSection.firstAppItem.sectionName); } + return (0 < cols && cols < mMinAppsPerRow) && + rows < mMinRowsInMergedSection && + mergeCount < mMaxAllowableMerges && + !isCrossScript; } - - @Override - public void updateBackgroundPadding(Drawable bg) { - // Do nothing, the background padding on the header view is already applied - } - - @Override - public void disable() { } } /** * The all apps view container. */ -public class AllAppsContainerView extends BaseContainerView implements DragSource, Insettable, - TextWatcher, TextView.OnEditorActionListener, LauncherTransitionable, - AlphabeticalAppsList.AdapterChangedCallback, AllAppsGridAdapter.PredictionBarSpacerCallbacks, - View.OnTouchListener, View.OnClickListener, View.OnLongClickListener, - ViewTreeObserver.OnPreDrawListener, AppSearchResultCallback, Stats.LaunchSourceProvider { +public class AllAppsContainerView extends BaseContainerView implements DragSource, + LauncherTransitionable, AlphabeticalAppsList.AdapterChangedCallback, + AllAppsGridAdapter.PredictionBarSpacerCallbacks, View.OnTouchListener, + View.OnLongClickListener, ViewTreeObserver.OnPreDrawListener, + AllAppsSearchBarController.Callbacks, Stats.LaunchSourceProvider { - public static final boolean GRID_MERGE_SECTIONS = true; - - private static final boolean ALLOW_SINGLE_APP_LAUNCH = true; - private static final boolean DYNAMIC_HEADER_ELEVATION = true; - private static final boolean DISMISS_SEARCH_ON_BACK = true; - - private static final int FADE_IN_DURATION = 175; - private static final int FADE_OUT_DURATION = 100; - private static final int SEARCH_TRANSLATION_X_DP = 18; + private static final int MIN_ROWS_IN_MERGED_SECTION_PHONE = 3; + private static final int MAX_NUM_MERGES_PHONE = 2; @Thunk Launcher mLauncher; @Thunk AlphabeticalAppsList mApps; @@ -194,17 +143,16 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc private RecyclerView.LayoutManager mLayoutManager; private RecyclerView.ItemDecoration mItemDecoration; - @Thunk FrameLayout mContentView; + @Thunk View mContent; + @Thunk View mContainerView; + @Thunk View mRevealView; @Thunk AllAppsRecyclerView mAppsRecyclerView; @Thunk ViewGroup mPredictionBarView; - private View mHeaderView; - @Thunk View mSearchBarContainerView; - private View mSearchButtonView; - private View mDismissSearchButtonView; - @Thunk AllAppsSearchEditView mSearchBarEditView; - - private HeaderElevationController mElevationController; + @Thunk AllAppsSearchBarController mSearchBarController; + private ViewGroup mSearchBarContainerView; + private View mSearchBarView; + private int mSectionNamesMargin; private int mNumAppsPerRow; private int mNumPredictedAppsPerRow; // This coordinate is relative to this container view @@ -213,18 +161,16 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc private final Point mIconLastTouchPos = new Point(); // This coordinate is used to proxy click and long-click events to the prediction bar icons private final Point mPredictionIconTouchDownPos = new Point(); - private int mContentMarginStart; // Normal container insets - private int mContainerInset; private int mPredictionBarHeight; private int mLastRecyclerViewScrollPos = -1; @Thunk boolean mFocusPredictionBarOnFirstBind; + private SpannableStringBuilder mSearchQueryBuilder = null; + private CheckLongPressHelper mPredictionIconCheckForLongPress; private View mPredictionIconUnderTouch; - private AppSearchManager mSearchManager; - public AllAppsContainerView(Context context) { this(context, null); } @@ -238,30 +184,24 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc Resources res = context.getResources(); mLauncher = (Launcher) context; + mLayoutInflater = LayoutInflater.from(context); DeviceProfile grid = mLauncher.getDeviceProfile(); - - mContainerInset = res.getDimensionPixelSize(R.dimen.all_apps_container_inset); mPredictionBarHeight = (int) (grid.allAppsIconSizePx + grid.iconDrawablePaddingOriginalPx + Utilities.calculateTextHeight(grid.allAppsIconTextSizePx) + 2 * res.getDimensionPixelSize(R.dimen.all_apps_icon_top_bottom_padding) + - res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_bottom_padding)); - - mLayoutInflater = LayoutInflater.from(context); - - mNumAppsPerRow = grid.allAppsNumCols; - mNumPredictedAppsPerRow = grid.allAppsNumPredictiveCols; - mApps = new AlphabeticalAppsList(context, mNumAppsPerRow, mNumPredictedAppsPerRow); + 2 * res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_top_bottom_padding)); + mSectionNamesMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin); + mApps = new AlphabeticalAppsList(context); mApps.setAdapterChangedCallback(this); - mAdapter = new AllAppsGridAdapter(context, mApps, mNumAppsPerRow, this, this, mLauncher, this); + mAdapter = new AllAppsGridAdapter(context, mApps, this, this, mLauncher, this); mAdapter.setEmptySearchText(res.getString(R.string.all_apps_loading_message)); - mAdapter.setNumAppsPerRow(mNumAppsPerRow); mAdapter.setPredictionRowHeight(mPredictionBarHeight); + mApps.setAdapter(mAdapter); mLayoutManager = mAdapter.getLayoutManager(); mItemDecoration = mAdapter.getItemDecoration(); - mContentMarginStart = mAdapter.getContentMarginStart(); - mApps.setAdapter(mAdapter); - mSearchManager = mApps.newSimpleAppSearchManager(); + mSearchQueryBuilder = new SpannableStringBuilder(); + Selection.setSelection(mSearchQueryBuilder, 0); } /** @@ -285,11 +225,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc mApps.addApps(apps); } - public void setSearchManager(AppSearchManager searchManager) { - mSearchManager.cancel(true); - mSearchManager = searchManager; - } - /** * Updates existing apps in the list */ @@ -305,13 +240,23 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } /** - * Hides the header bar + * Sets the search bar that shows above the a-z list. */ - public void hideHeaderBar() { - mHeaderView.setVisibility(View.GONE); - mElevationController.disable(); - onUpdateBackgrounds(); - onUpdatePaddings(); + public void setSearchBarController(AllAppsSearchBarController searchController) { + if (mSearchBarController != null) { + throw new RuntimeException("Expected search bar controller to only be set once"); + } + mSearchBarController = searchController; + mSearchBarController.initialize(mApps, this); + + // Add the new search view to the layout + View searchBarView = searchController.getView(mSearchBarContainerView); + mSearchBarContainerView.addView(searchBarView); + mSearchBarContainerView.setVisibility(View.VISIBLE); + mSearchBarView = searchBarView; + setHasSearchBar(); + + updateBackgroundAndPaddings(); } /** @@ -325,28 +270,43 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc * Returns the content view used for the launcher transitions. */ public View getContentView() { - return mContentView; + return mContainerView; + } + + /** + * Returns the all apps search view. + */ + public View getSearchBarView() { + return mSearchBarView; } /** * Returns the reveal view used for the launcher transitions. */ public View getRevealView() { - return findViewById(R.id.apps_view_transition_overlay); + return mRevealView; + } + + /** + * Returns an new instance of the default app search controller. + */ + public AllAppsSearchBarController newDefaultAppSearchController() { + return new DefaultAppSearchController(getContext(), this, mAppsRecyclerView); } @Override protected void onFinishInflate() { + super.onFinishInflate(); boolean isRtl = Utilities.isRtl(getResources()); mAdapter.setRtl(isRtl); + mContent = findViewById(R.id.content); - // Work around the search box getting first focus and showing the cursor by - // proxying the focus from the content view to the recycler view directly - mContentView = (FrameLayout) findViewById(R.id.apps_list); - mContentView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + // This is a focus listener that proxies focus from a view into the list view. This is to + // work around the search box from getting first focus and showing the cursor. + View.OnFocusChangeListener focusProxyListener = new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { - if (v == mContentView && hasFocus) { + if (hasFocus) { if (!mApps.getPredictedApps().isEmpty()) { // If the prediction bar is going to be bound, then defer focusing until // it is first bound @@ -360,52 +320,16 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } } } - }); - - // Fix the header view elevation if not dynamically calculating it - mHeaderView = findViewById(R.id.header); - mHeaderView.setOnClickListener(this); - - mElevationController = Utilities.isLmpOrAbove() ? - new HeaderElevationControllerVL(mHeaderView) : - new HeaderElevationControllerV16(mHeaderView); - if (!DYNAMIC_HEADER_ELEVATION) { - mElevationController.onScroll(getResources() - .getDimensionPixelSize(R.dimen.all_apps_header_scroll_to_elevation)); - } - - // Fix the prediction bar size - mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar); - FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams(); - lp.height = mPredictionBarHeight; - - mSearchButtonView = mHeaderView.findViewById(R.id.search_button); - mSearchBarContainerView = findViewById(R.id.app_search_container); - mDismissSearchButtonView = mSearchBarContainerView.findViewById(R.id.dismiss_search_button); - mDismissSearchButtonView.setOnClickListener(this); - mSearchBarEditView = (AllAppsSearchEditView) findViewById(R.id.apps_search_box); - if (mSearchBarEditView != null) { - mSearchBarEditView.addTextChangedListener(this); - mSearchBarEditView.setOnEditorActionListener(this); - if (DISMISS_SEARCH_ON_BACK) { - mSearchBarEditView.setOnBackKeyListener( - new AllAppsSearchEditView.OnBackKeyListener() { - @Override - public void onBackKey() { - // Only hide the search field if there is no query, or if there - // are no filtered results - String query = Utilities.trim( - mSearchBarEditView.getEditableText().toString()); - if (query.isEmpty() || mApps.hasNoFilteredResults()) { - hideSearchField(true, true); - } - } - }); - } - } - mAppsRecyclerView = (AllAppsRecyclerView) findViewById(R.id.apps_list_view); + }; + mSearchBarContainerView = (ViewGroup) findViewById(R.id.search_box_container); + mSearchBarContainerView.setOnFocusChangeListener(focusProxyListener); + mContainerView = findViewById(R.id.all_apps_container); + mContainerView.setOnFocusChangeListener(focusProxyListener); + mRevealView = findViewById(R.id.all_apps_reveal); + + // Load the all apps recycler view + mAppsRecyclerView = (AllAppsRecyclerView) findViewById(R.id.collection); mAppsRecyclerView.setApps(mApps); - mAppsRecyclerView.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow); mAppsRecyclerView.setPredictionBarHeight(mPredictionBarHeight); mAppsRecyclerView.setLayoutManager(mLayoutManager); mAppsRecyclerView.setAdapter(mAdapter); @@ -413,8 +337,18 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc if (mItemDecoration != null) { mAppsRecyclerView.addItemDecoration(mItemDecoration); } - onUpdateBackgrounds(); - onUpdatePaddings(); + + // Fix the prediction bar height + mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar); + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams(); + lp.height = mPredictionBarHeight; + + updateBackgroundAndPaddings(); + } + + @Override + public void onBoundsChanged(Rect newBounds) { + mLauncher.updateOverlayBounds(newBounds); } @Override @@ -422,6 +356,12 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc updatePredictionBarVisibility(); List<AppInfo> predictedApps = mApps.getPredictedApps(); + + // Remove extra prediction icons + while (mPredictionBarView.getChildCount() > mNumPredictedAppsPerRow) { + mPredictionBarView.removeViewAt(mPredictionBarView.getChildCount() - 1); + } + int childCount = mPredictionBarView.getChildCount(); for (int i = 0; i < mNumPredictedAppsPerRow; i++) { BubbleTextView icon; @@ -455,95 +395,118 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } @Override - protected void onFixedBoundsUpdated() { - // Update the number of items in the grid + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // Update the number of items in the grid before we measure the view + int availableWidth = !mContentBounds.isEmpty() ? mContentBounds.width() : + MeasureSpec.getSize(widthMeasureSpec); DeviceProfile grid = mLauncher.getDeviceProfile(); - if (grid.updateAppsViewNumCols(getContext().getResources(), mFixedBounds.width())) { + grid.updateAppsViewNumCols(getResources(), availableWidth); + if (mNumAppsPerRow != grid.allAppsNumCols || + mNumPredictedAppsPerRow != grid.allAppsNumPredictiveCols) { mNumAppsPerRow = grid.allAppsNumCols; mNumPredictedAppsPerRow = grid.allAppsNumPredictiveCols; + + // If there is a start margin to draw section names, determine how we are going to merge + // app sections + boolean mergeSectionsFully = mSectionNamesMargin == 0 || !grid.isPhone; + AlphabeticalAppsList.MergeAlgorithm mergeAlgorithm = mergeSectionsFully ? + new FullMergeAlgorithm() : + new SimpleSectionMergeAlgorithm((int) Math.ceil(mNumAppsPerRow / 2f), + MIN_ROWS_IN_MERGED_SECTION_PHONE, MAX_NUM_MERGES_PHONE); + mAppsRecyclerView.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow); mAdapter.setNumAppsPerRow(mNumAppsPerRow); - mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow); + mApps.setNumAppsPerRow(mNumAppsPerRow, mNumPredictedAppsPerRow, mergeAlgorithm); } + + super.onMeasure(widthMeasureSpec, heightMeasureSpec); } /** - * Update the padding of the Apps view and children. To ensure that the RecyclerView has the - * full width to handle touches right to the edge of the screen, we only apply the top and - * bottom padding to the AppsContainerView and then the left/right padding on the RecyclerView - * itself. In particular, the left/right padding is applied to the background of the view, - * and then additionally inset by the start margin. + * Update the background and padding of the Apps view and children. Instead of insetting the + * container view, we inset the background and padding of the recycler view to allow for the + * recycler view to handle touch events (for fast scrolling) all the way to the edge. */ @Override - protected void onUpdatePaddings() { + protected void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding) { boolean isRtl = Utilities.isRtl(getResources()); - boolean hasSearchBar = (mSearchBarEditView != null) && - (mSearchBarEditView.getVisibility() == View.VISIBLE); - // Set the background on the container, but let the recyclerView extend the full screen, - // so that the fast-scroller works on the edge as well. - mContentView.setPadding(0, 0, 0, 0); - - if (mFixedBounds.isEmpty()) { - // If there are no fixed bounds, then use the default padding and insets - setPadding(mInsets.left, mContainerInset + mInsets.top, mInsets.right, - mContainerInset + mInsets.bottom); - } else { - // If there are fixed bounds, then we update the padding to reflect the fixed bounds. - setPadding(mFixedBounds.left, mFixedBounds.top, getMeasuredWidth() - mFixedBounds.right, - mFixedBounds.bottom); - } - - // Update the apps recycler view, inset it by the container inset as well - DeviceProfile grid = mLauncher.getDeviceProfile(); - int startMargin = grid.isPhone ? mContentMarginStart : 0; - int inset = mFixedBounds.isEmpty() ? mContainerInset : mFixedBoundsContainerInset; + // TODO: Use quantum_panel instead of quantum_panel_shape. + InsetDrawable background = new InsetDrawable( + getResources().getDrawable(R.drawable.quantum_panel_shape), padding.left, 0, + padding.right, 0); + mContainerView.setBackground(background); + mRevealView.setBackground(background.getConstantState().newDrawable()); + mAppsRecyclerView.updateBackgroundPadding(padding); + mAdapter.updateBackgroundPadding(padding); + + // Hack: We are going to let the recycler view take the full width, so reset the padding on + // the container to zero after setting the background and apply the top-bottom padding to + // the content view instead so that the launcher transition clips correctly. + mContent.setPadding(0, padding.top, 0, padding.bottom); + mContainerView.setPadding(0, 0, 0, 0); + + // Pad the recycler view by the background padding plus the start margin (for the section + // names) + int startInset = Math.max(mSectionNamesMargin, mAppsRecyclerView.getScrollbarWidth()); if (isRtl) { - mAppsRecyclerView.setPadding(inset + mAppsRecyclerView.getScrollbarWidth(), 0, - inset + startMargin, 0); + mAppsRecyclerView.setPadding(padding.left + mAppsRecyclerView.getScrollbarWidth(), 0, + padding.right + startInset, 0); } else { - mAppsRecyclerView.setPadding(inset + startMargin, 0, - inset + mAppsRecyclerView.getScrollbarWidth(), 0); + mAppsRecyclerView.setPadding(padding.left + startInset, 0, + padding.right + mAppsRecyclerView.getScrollbarWidth(), 0); } - // Update the header bar - if (hasSearchBar) { - FrameLayout.LayoutParams lp = - (FrameLayout.LayoutParams) mHeaderView.getLayoutParams(); - lp.leftMargin = lp.rightMargin = inset; - mHeaderView.requestLayout(); + // Inset the search bar to fit its bounds above the container + if (mSearchBarView != null) { + Rect backgroundPadding = new Rect(); + if (mSearchBarView.getBackground() != null) { + mSearchBarView.getBackground().getPadding(backgroundPadding); + } + LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) + mSearchBarContainerView.getLayoutParams(); + lp.leftMargin = searchBarBounds.left - backgroundPadding.left; + lp.topMargin = searchBarBounds.top - backgroundPadding.top; + lp.rightMargin = (getMeasuredWidth() - searchBarBounds.right) - backgroundPadding.right; + mSearchBarContainerView.requestLayout(); } + // Update the prediction bar insets as well + mPredictionBarView = (ViewGroup) findViewById(R.id.prediction_bar); FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mPredictionBarView.getLayoutParams(); - lp.leftMargin = inset + mAppsRecyclerView.getScrollbarWidth(); - lp.rightMargin = inset + mAppsRecyclerView.getScrollbarWidth(); + lp.leftMargin = padding.left + mAppsRecyclerView.getScrollbarWidth(); + lp.rightMargin = padding.right + mAppsRecyclerView.getScrollbarWidth(); mPredictionBarView.requestLayout(); } - /** - * Update the background of the Apps view and children. - */ @Override - protected void onUpdateBackgrounds() { - int inset = mFixedBounds.isEmpty() ? mContainerInset : mFixedBoundsContainerInset; - - // Update the background of the reveal view and list to be inset with the fixed bound - // insets instead of the default insets - // TODO: Use quantum_panel instead of quantum_panel_shape. - InsetDrawable background = new InsetDrawable( - getContext().getResources().getDrawable(R.drawable.quantum_panel_shape), - inset, 0, inset, 0); - mContentView.setBackground(background); - mAppsRecyclerView.updateBackgroundPadding(background); - mAdapter.updateBackgroundPadding(background); - mElevationController.updateBackgroundPadding(background); - getRevealView().setBackground(background.getConstantState().newDrawable()); + public boolean onPreDraw() { + if (mNumAppsPerRow > 0) { + // Update the position of the prediction bar to match the scroll of the all apps list + synchronizeToRecyclerViewScrollPosition(mAppsRecyclerView.getScrollPosition()); + } + return true; } @Override - public boolean onPreDraw() { - synchronizeToRecyclerViewScrollPosition(mAppsRecyclerView.getScrollPosition()); - return true; + public boolean dispatchKeyEvent(KeyEvent event) { + // Determine if the key event was actual text, if so, focus the search bar and then dispatch + // the key normally so that it can process this key event + if (!mSearchBarController.isSearchFieldFocused() && + event.getAction() == KeyEvent.ACTION_DOWN) { + final int unicodeChar = event.getUnicodeChar(); + final boolean isKeyNotWhitespace = unicodeChar > 0 && + !Character.isWhitespace(unicodeChar) && !Character.isSpaceChar(unicodeChar); + if (isKeyNotWhitespace) { + boolean gotKey = TextKeyListener.getInstance().onKeyDown(this, mSearchQueryBuilder, + event.getKeyCode(), event); + if (gotKey && mSearchQueryBuilder.length() > 0) { + mSearchBarController.focusSearchField(); + } + } + } + + return super.dispatchKeyEvent(event); } @Override @@ -570,15 +533,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } @Override - public void onClick(View v) { - if (v == mHeaderView) { - showSearchField(); - } else if (v == mDismissSearchButtonView) { - hideSearchField(true, true); - } - } - - @Override public boolean onLongClick(View v) { // Return early if this is not initiated from a touch if (!v.isInTouchMode()) return false; @@ -661,70 +615,11 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - // Do nothing - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - // Do nothing - } - - @Override - public void afterTextChanged(final Editable s) { - String queryText = s.toString(); - if (queryText.isEmpty()) { - mSearchManager.cancel(true); - mApps.setOrderedFilter(null); - } else { - String formatStr = getResources().getString(R.string.all_apps_no_search_results); - mAdapter.setEmptySearchText(String.format(formatStr, queryText)); - - mSearchManager.cancel(false); - mSearchManager.doSearch(queryText, this); - } - scrollToTop(); - } - - @Override - public void onSearchResult(ArrayList<ComponentName> apps) { - if (apps != null) { - mApps.setOrderedFilter(apps); - } - } - - @Override - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (ALLOW_SINGLE_APP_LAUNCH && actionId == EditorInfo.IME_ACTION_DONE) { - // Skip the quick-launch if there isn't exactly one item - if (mApps.getSize() != 1) { - return false; - } - - List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems(); - for (int i = 0; i < items.size(); i++) { - AlphabeticalAppsList.AdapterItem item = items.get(i); - if (item.viewType == AllAppsGridAdapter.ICON_VIEW_TYPE) { - mAppsRecyclerView.getChildAt(i).performClick(); - getInputMethodManager().hideSoftInputFromWindow(getWindowToken(), 0); - return true; - } - } - } - return false; - } - - @Override public void onAdapterItemsChanged() { updatePredictionBarVisibility(); } @Override - public View getContent() { - return null; - } - - @Override public void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean toWorkspace) { // Register for a pre-draw listener to synchronize the recycler view scroll to other views // in this container @@ -745,14 +640,12 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc @Override public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) { - if (mSearchBarEditView != null) { - if (toWorkspace) { - hideSearchField(false, false); - } - } if (toWorkspace) { getViewTreeObserver().removeOnPreDrawListener(this); mLastRecyclerViewScrollPos = -1; + + // Reset the search bar after transitioning home + mSearchBarController.reset(); } } @@ -763,9 +656,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc private void synchronizeToRecyclerViewScrollPosition(int scrollY) { if (mLastRecyclerViewScrollPos != scrollY) { mLastRecyclerViewScrollPos = scrollY; - if (DYNAMIC_HEADER_ELEVATION) { - mElevationController.onScroll(scrollY); - } // Scroll the prediction bar with the contents of the recycler view mPredictionBarView.setTranslationY(-scrollY + mAppsRecyclerView.getPaddingTop()); @@ -806,9 +696,9 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } } - if (!mFixedBounds.isEmpty()) { + if (!mContentBounds.isEmpty()) { // Outset the fixed bounds and check if the touch is outside all apps - Rect tmpRect = new Rect(mFixedBounds); + Rect tmpRect = new Rect(mContentBounds); tmpRect.inset(-grid.allAppsIconSizePx / 2, 0); if (ev.getX() < tmpRect.left || ev.getX() > tmpRect.right) { mBoundsCheckLastTouchDownPos.set(x, y); @@ -875,6 +765,29 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } @Override + public void onSearchResult(String query, ArrayList<ComponentKey> apps) { + if (apps != null) { + if (apps.isEmpty()) { + String formatStr = getResources().getString(R.string.all_apps_no_search_results); + mAdapter.setEmptySearchText(String.format(formatStr, query)); + } else { + mAppsRecyclerView.scrollToTop(); + } + mApps.setOrderedFilter(apps); + } + } + + @Override + public void clearSearchResult() { + mApps.setOrderedFilter(null); + + // Clear the search query + mSearchQueryBuilder.clear(); + mSearchQueryBuilder.clearSpans(); + Selection.setSelection(mSearchQueryBuilder, 0); + } + + @Override public void fillInLaunchSourceData(Bundle sourceData) { // Since the other cases are caught by the AllAppsRecyclerView LaunchSourceProvider, we just // handle the prediction bar icons here @@ -889,11 +802,11 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc private View findPredictedAppAtCoordinate(int x, int y) { Rect hitRect = new Rect(); - // Ensure we aren't hitting the search bar + // Ensure that are touching in the recycler view int[] coord = {x, y}; - Utilities.mapCoordInSelfToDescendent(mHeaderView, this, coord); - mHeaderView.getHitRect(hitRect); - if (hitRect.contains(coord[0], coord[1])) { + Utilities.mapCoordInSelfToDescendent(mAppsRecyclerView, this, coord); + mAppsRecyclerView.getHitRect(hitRect); + if (!hitRect.contains(coord[0], coord[1])) { return null; } @@ -915,94 +828,12 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } /** - * Shows the search field. - */ - private void showSearchField() { - mSearchManager.connect(); - - // Show the search bar and focus the search - final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP, - getContext().getResources().getDisplayMetrics()); - mSearchBarContainerView.setVisibility(View.VISIBLE); - mSearchBarContainerView.setAlpha(0f); - mSearchBarContainerView.setTranslationX(translationX); - mSearchBarContainerView.animate() - .alpha(1f) - .translationX(0) - .setDuration(FADE_IN_DURATION) - .withLayer() - .withEndAction(new Runnable() { - @Override - public void run() { - mSearchBarEditView.requestFocus(); - getInputMethodManager().showSoftInput(mSearchBarEditView, - InputMethodManager.SHOW_IMPLICIT); - } - }); - mSearchButtonView.animate() - .alpha(0f) - .translationX(-translationX) - .setDuration(FADE_OUT_DURATION) - .withLayer(); - } - - /** - * Hides the search field. - */ - @Thunk void hideSearchField(boolean animated, final boolean returnFocusToRecyclerView) { - mSearchManager.cancel(true); - - final boolean resetTextField = mSearchBarEditView.getText().toString().length() > 0; - final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP, - getContext().getResources().getDisplayMetrics()); - if (animated) { - // Hide the search bar and focus the recycler view - mSearchBarContainerView.animate() - .alpha(0f) - .translationX(0) - .setDuration(FADE_IN_DURATION) - .withLayer() - .withEndAction(new Runnable() { - @Override - public void run() { - mSearchBarContainerView.setVisibility(View.INVISIBLE); - if (resetTextField) { - mSearchBarEditView.setText(""); - } - mApps.setOrderedFilter(null); - if (returnFocusToRecyclerView) { - mAppsRecyclerView.requestFocus(); - } - } - }); - mSearchButtonView.setTranslationX(-translationX); - mSearchButtonView.animate() - .alpha(1f) - .translationX(0) - .setDuration(FADE_OUT_DURATION) - .withLayer(); - } else { - mSearchBarContainerView.setVisibility(View.INVISIBLE); - if (resetTextField) { - mSearchBarEditView.setText(""); - } - mApps.setOrderedFilter(null); - mSearchButtonView.setAlpha(1f); - mSearchButtonView.setTranslationX(0f); - if (returnFocusToRecyclerView) { - mAppsRecyclerView.requestFocus(); - } - } - getInputMethodManager().hideSoftInputFromWindow(getWindowToken(), 0); - } - - /** * Updates the visibility of the prediction bar. * @return whether the prediction bar is visible */ private boolean updatePredictionBarVisibility() { - boolean showPredictionBar = !mApps.getPredictedApps().isEmpty() && (!mApps.hasFilter() || - mSearchBarEditView.getEditableText().toString().isEmpty()); + boolean showPredictionBar = !mApps.getPredictedApps().isEmpty() && + (!mApps.hasFilter() || mSearchBarController.shouldShowPredictionBar()); if (showPredictionBar) { mPredictionBarView.setVisibility(View.VISIBLE); } else if (!showPredictionBar) { @@ -1010,11 +841,4 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc } return showPredictionBar; } - - /** - * Returns an input method manager. - */ - @Thunk InputMethodManager getInputMethodManager() { - return (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - } } diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java index 4b8b2dfc8..68407bdd5 100644 --- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java +++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java @@ -21,7 +21,6 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PointF; import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.os.Handler; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; @@ -32,7 +31,6 @@ import android.view.ViewGroup; import android.widget.TextView; import com.android.launcher3.AppInfo; import com.android.launcher3.BubbleTextView; -import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -109,25 +107,28 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol */ public class GridItemDecoration extends RecyclerView.ItemDecoration { + private static final boolean DEBUG_SECTION_MARGIN = false; private static final boolean FADE_OUT_SECTIONS = false; private HashMap<String, PointF> mCachedSectionBounds = new HashMap<>(); private Rect mTmpBounds = new Rect(); - private Launcher mLauncher; - - public GridItemDecoration(Context context) { - mLauncher = (Launcher) context; - } @Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { - if (mApps.hasFilter()) { + if (mApps.hasFilter() || mAppsPerRow == 0) { return; } - DeviceProfile grid = mLauncher.getDeviceProfile(); + if (DEBUG_SECTION_MARGIN) { + Paint p = new Paint(); + p.setColor(0x33ff0000); + c.drawRect(mBackgroundPadding.left, 0, mBackgroundPadding.left + mSectionNamesMargin, + parent.getMeasuredHeight(), p); + } + List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems(); boolean hasDrawnPredictedAppsDivider = false; + boolean showSectionNames = mSectionNamesMargin > 0; int childCount = parent.getChildCount(); int lastSectionTop = 0; int lastSectionHeight = 0; @@ -146,7 +147,7 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol mPredictedAppsDividerPaint); hasDrawnPredictedAppsDivider = true; - } else if (grid.isPhone && shouldDrawItemSection(holder, i, items)) { + } else if (showSectionNames && shouldDrawItemSection(holder, i, items)) { // At this point, we only draw sections for each section break; int viewTopOffset = (2 * child.getPaddingTop()); int pos = holder.getPosition(); @@ -171,9 +172,10 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol // Calculate where to draw the section int sectionBaseline = (int) (viewTopOffset + sectionBounds.y); - int x = mIsRtl ? parent.getWidth() - mPaddingStart - mStartMargin : - mPaddingStart; - x += (int) ((mStartMargin - sectionBounds.x) / 2f); + int x = mIsRtl ? + parent.getWidth() - mBackgroundPadding.left - mSectionNamesMargin : + mBackgroundPadding.left; + x += (int) ((mSectionNamesMargin - sectionBounds.x) / 2f); int y = child.getTop() + sectionBaseline; // Determine whether this is the last row with apps in that section, if @@ -301,32 +303,28 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol private String mEmptySearchText; // Section drawing - @Thunk int mPaddingStart; - @Thunk int mStartMargin; + @Thunk int mSectionNamesMargin; @Thunk int mSectionHeaderOffset; @Thunk Paint mSectionTextPaint; @Thunk Paint mPredictedAppsDividerPaint; - public AllAppsGridAdapter(Context context, AlphabeticalAppsList apps, int appsPerRow, + public AllAppsGridAdapter(Context context, AlphabeticalAppsList apps, PredictionBarSpacerCallbacks pbCb, View.OnTouchListener touchListener, View.OnClickListener iconClickListener, View.OnLongClickListener iconLongClickListener) { Resources res = context.getResources(); mHandler = new Handler(); mApps = apps; - mAppsPerRow = appsPerRow; mPredictionBarCb = pbCb; mGridSizer = new GridSpanSizer(); - mGridLayoutMgr = new GridLayoutManager(context, appsPerRow, GridLayoutManager.VERTICAL, - false); + mGridLayoutMgr = new GridLayoutManager(context, 1, GridLayoutManager.VERTICAL, false); mGridLayoutMgr.setSpanSizeLookup(mGridSizer); - mItemDecoration = new GridItemDecoration(context); + mItemDecoration = new GridItemDecoration(); mLayoutInflater = LayoutInflater.from(context); mTouchListener = touchListener; mIconClickListener = iconClickListener; mIconLongClickListener = iconLongClickListener; - mStartMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin); + mSectionNamesMargin = res.getDimensionPixelSize(R.dimen.all_apps_grid_view_start_margin); mSectionHeaderOffset = res.getDimensionPixelSize(R.dimen.all_apps_grid_section_y_offset); - mPaddingStart = res.getDimensionPixelSize(R.dimen.all_apps_container_inset); mSectionTextPaint = new Paint(); mSectionTextPaint.setTextSize(res.getDimensionPixelSize( @@ -339,7 +337,7 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol mPredictedAppsDividerPaint.setColor(0x1E000000); mPredictedAppsDividerPaint.setAntiAlias(true); mPredictionBarBottomPadding = - res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_bottom_padding); + res.getDimensionPixelSize(R.dimen.all_apps_prediction_bar_top_bottom_padding); } /** @@ -375,8 +373,8 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol * Notifies the adapter of the background padding so that it can draw things correctly in the * item decorator. */ - public void updateBackgroundPadding(Drawable background) { - background.getPadding(mBackgroundPadding); + public void updateBackgroundPadding(Rect padding) { + mBackgroundPadding.set(padding); } /** @@ -394,13 +392,6 @@ class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.ViewHol return mItemDecoration; } - /** - * Returns the left padding for the recycler view. - */ - public int getContentMarginStart() { - return mStartMargin; - } - @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index e1b5d918e..ff327dae3 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -16,8 +16,6 @@ package com.android.launcher3.allapps; import android.content.Context; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -40,11 +38,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView private AlphabeticalAppsList mApps; private int mNumAppsPerRow; private int mNumPredictedAppsPerRow; - private int mPredictionBarHeight; - private int mScrollbarMinHeight; - - private Rect mBackgroundPadding = new Rect(); + private int mLastFastscrollPosition = -1; private Launcher mLauncher; @@ -89,10 +84,6 @@ public class AllAppsRecyclerView extends BaseRecyclerView pool.setMaxRecycledViews(AllAppsGridAdapter.SECTION_BREAK_VIEW_TYPE, approxRows); } - public void updateBackgroundPadding(Drawable background) { - background.getPadding(mBackgroundPadding); - } - /** * Sets the prediction bar height. */ @@ -124,6 +115,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView @Override protected void onFinishInflate() { super.onFinishInflate(); + + // Bind event handlers addOnItemTouchListener(this); } @@ -139,6 +132,11 @@ public class AllAppsRecyclerView extends BaseRecyclerView } } + @Override + protected void onFastScrollingEnd() { + mLastFastscrollPosition = -1; + } + /** * Maps the touch (from 0..1) to the adapter position that should be visible. */ @@ -182,12 +180,14 @@ public class AllAppsRecyclerView extends BaseRecyclerView // Scroll to the view at the position, anchored at the top of the screen. We call the scroll // method on the LayoutManager directly since it is not exposed by RecyclerView. - layoutManager.scrollToPositionWithOffset(lastScrollSection.appItem.position, 0); + if (mLastFastscrollPosition != lastScrollSection.appItem.position) { + mLastFastscrollPosition = lastScrollSection.appItem.position; + layoutManager.scrollToPositionWithOffset(lastScrollSection.appItem.position, 0); + } return lastScrollSection.sectionName; } - /** * Returns the row index for a app index in the list. */ @@ -227,8 +227,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView public void updateVerticalScrollbarBounds() { List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems(); - // Skip early if there are no items. - if (items.isEmpty()) { + // Skip early if there are no items or we haven't been measured + if (items.isEmpty() || mNumAppsPerRow == 0) { verticalScrollbarBounds.setEmpty(); return; } @@ -242,8 +242,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView int height = getHeight() - getPaddingTop() - getPaddingBottom(); int totalScrollHeight = rowCount * scrollPosState.rowHeight + predictionBarHeight; if (totalScrollHeight > height) { - int scrollbarHeight = Math.max(mScrollbarMinHeight, - (int) (height / ((float) totalScrollHeight / height))); + int scrollbarHeight = (int) (height / ((float) totalScrollHeight / height)); // Calculate the position and size of the scroll bar if (Utilities.isRtl(getResources())) { @@ -277,8 +276,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView stateOut.rowTopOffset = -1; stateOut.rowHeight = -1; - // Return early if there are no items - if (items.isEmpty()) { + // Return early if there are no items or we haven't been measured + if (items.isEmpty() || mNumAppsPerRow == 0) { return; } diff --git a/src/com/android/launcher3/allapps/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java new file mode 100644 index 000000000..341539cdd --- /dev/null +++ b/src/com/android/launcher3/allapps/AllAppsSearchBarController.java @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.allapps; + +import android.content.ComponentName; +import android.graphics.Rect; +import android.view.View; +import android.view.ViewGroup; + +import com.android.launcher3.util.ComponentKey; + +import java.util.ArrayList; + +/** + * An interface to a search box that AllApps can command. + */ +public abstract class AllAppsSearchBarController { + + protected AlphabeticalAppsList mApps; + protected Callbacks mCb; + + /** + * Sets the references to the apps model and the search result callback. + */ + public final void initialize(AlphabeticalAppsList apps, Callbacks cb) { + mApps = apps; + mCb = cb; + onInitialize(); + } + + /** + * To be overridden by subclasses. This method will get called when the controller is set, + * before getView(). + */ + protected abstract void onInitialize(); + + /** + * Returns the search bar view. + * @param parent the parent to attach the search bar view to. + */ + public abstract View getView(ViewGroup parent); + + /** + * Focuses the search field to handle key events. + */ + public abstract void focusSearchField(); + + /** + * Returns whether the search field is focused. + */ + public abstract boolean isSearchFieldFocused(); + + /** + * Resets the search bar state. + */ + public abstract void reset(); + + /** + * Returns whether the prediction bar should currently be visible depending on the state of + * the search bar. + */ + public abstract boolean shouldShowPredictionBar(); + + /** + * Callback for getting search results. + */ + public interface Callbacks { + + /** + * Called when the bounds of the search bar has changed. + */ + void onBoundsChanged(Rect newBounds); + + /** + * Called when the search is complete. + * + * @param apps sorted list of matching components or null if in case of failure. + */ + void onSearchResult(String query, ArrayList<ComponentKey> apps); + + /** + * Called when the search results should be cleared. + */ + void clearSearchResult(); + } +}
\ No newline at end of file diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index e284f77c4..b7b6ed7fc 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -21,16 +21,11 @@ import android.support.v7.widget.RecyclerView; import android.util.Log; import com.android.launcher3.AppInfo; -import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; -import com.android.launcher3.LauncherAppState; import com.android.launcher3.compat.AlphabeticIndexCompat; -import com.android.launcher3.model.AbstractUserComparator; import com.android.launcher3.model.AppNameComparator; -import com.android.launcher3.util.Thunk; +import com.android.launcher3.util.ComponentKey; -import java.nio.charset.Charset; -import java.nio.charset.CharsetEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -144,74 +139,17 @@ public class AlphabeticalAppsList { /** * Common interface for different merging strategies. */ - private interface MergeAlgorithm { + public interface MergeAlgorithm { boolean continueMerging(SectionInfo section, SectionInfo withSection, int sectionAppCount, int numAppsPerRow, int mergeCount); } - /** - * The logic we use to merge sections on tablets. Currently, we don't show section names on - * tablet layouts, so just merge all the sections indiscriminately. - */ - @Thunk static class TabletMergeAlgorithm implements MergeAlgorithm { - - @Override - public boolean continueMerging(SectionInfo section, SectionInfo withSection, - int sectionAppCount, int numAppsPerRow, int mergeCount) { - // Merge EVERYTHING - return true; - } - } - - /** - * The logic we use to merge sections on phones. We only merge sections when their final row - * contains less than a certain number of icons, and stop at a specified max number of merges. - * In addition, we will try and not merge sections that identify apps from different scripts. - */ - private static class PhoneMergeAlgorithm implements MergeAlgorithm { - - private int mMinAppsPerRow; - private int mMinRowsInMergedSection; - private int mMaxAllowableMerges; - private CharsetEncoder mAsciiEncoder; - - public PhoneMergeAlgorithm(int minAppsPerRow, int minRowsInMergedSection, int maxNumMerges) { - mMinAppsPerRow = minAppsPerRow; - mMinRowsInMergedSection = minRowsInMergedSection; - mMaxAllowableMerges = maxNumMerges; - mAsciiEncoder = Charset.forName("US-ASCII").newEncoder(); - } - - @Override - public boolean continueMerging(SectionInfo section, SectionInfo withSection, - int sectionAppCount, int numAppsPerRow, int mergeCount) { - // Continue merging if the number of hanging apps on the final row is less than some - // fixed number (ragged), the merged rows has yet to exceed some minimum row count, - // and while the number of merged sections is less than some fixed number of merges - int rows = sectionAppCount / numAppsPerRow; - int cols = sectionAppCount % numAppsPerRow; - - // Ensure that we do not merge across scripts, currently we only allow for english and - // native scripts so we can test if both can just be ascii encoded - boolean isCrossScript = false; - if (section.firstAppItem != null && withSection.firstAppItem != null) { - isCrossScript = mAsciiEncoder.canEncode(section.firstAppItem.sectionName) != - mAsciiEncoder.canEncode(withSection.firstAppItem.sectionName); - } - return (0 < cols && cols < mMinAppsPerRow) && - rows < mMinRowsInMergedSection && - mergeCount < mMaxAllowableMerges && - !isCrossScript; - } - } - - private static final int MIN_ROWS_IN_MERGED_SECTION_PHONE = 3; - private static final int MAX_NUM_MERGES_PHONE = 2; - private Launcher mLauncher; // The set of apps from the system not including predictions private final List<AppInfo> mApps = new ArrayList<>(); + private final HashMap<ComponentKey, AppInfo> mComponentToAppMap = new HashMap<>(); + // The set of filtered apps with the current filter private List<AppInfo> mFilteredApps = new ArrayList<>(); // The current set of adapter items @@ -225,7 +163,7 @@ public class AlphabeticalAppsList { // The set of predicted apps resolved from the component names and the current set of apps private List<AppInfo> mPredictedApps = new ArrayList<>(); // The of ordered component names as a result of a search query - private ArrayList<ComponentName> mSearchResults; + private ArrayList<ComponentKey> mSearchResults; private HashMap<CharSequence, String> mCachedSectionNames = new HashMap<>(); private RecyclerView.Adapter mAdapter; private AlphabeticIndexCompat mIndexer; @@ -235,11 +173,10 @@ public class AlphabeticalAppsList { private int mNumAppsPerRow; private int mNumPredictedAppsPerRow; - public AlphabeticalAppsList(Context context, int numAppsPerRow, int numPredictedAppsPerRow) { + public AlphabeticalAppsList(Context context) { mLauncher = (Launcher) context; mIndexer = new AlphabeticIndexCompat(context); mAppNameComparator = new AppNameComparator(context); - setNumAppsPerRow(numAppsPerRow, numPredictedAppsPerRow); } /** @@ -249,27 +186,16 @@ public class AlphabeticalAppsList { mAdapterChangedCallback = cb; } - public SimpleAppSearchManagerImpl newSimpleAppSearchManager() { - return new SimpleAppSearchManagerImpl(mApps); - } - /** - * Sets the number of apps per row. Used only for AppsContainerView.SECTIONED_GRID_COALESCED. + * Sets the number of apps per row. */ - public void setNumAppsPerRow(int numAppsPerRow, int numPredictedAppsPerRow) { - // Update the merge algorithm - DeviceProfile grid = mLauncher.getDeviceProfile(); - if (grid.isPhone) { - mMergeAlgorithm = new PhoneMergeAlgorithm((int) Math.ceil(numAppsPerRow / 2f), - MIN_ROWS_IN_MERGED_SECTION_PHONE, MAX_NUM_MERGES_PHONE); - } else { - mMergeAlgorithm = new TabletMergeAlgorithm(); - } - + public void setNumAppsPerRow(int numAppsPerRow, int numPredictedAppsPerRow, + MergeAlgorithm mergeAlgorithm) { mNumAppsPerRow = numAppsPerRow; mNumPredictedAppsPerRow = numPredictedAppsPerRow; + mMergeAlgorithm = mergeAlgorithm; - onAppsUpdated(); + updateAdapterItems(); } /** @@ -280,6 +206,13 @@ public class AlphabeticalAppsList { } /** + * Returns all the apps. + */ + public List<AppInfo> getApps() { + return mApps; + } + + /** * Returns sections of all the current filtered applications. */ public List<SectionInfo> getSections() { @@ -324,7 +257,7 @@ public class AlphabeticalAppsList { /** * Sets the sorted list of filtered components. */ - public void setOrderedFilter(ArrayList<ComponentName> f) { + public void setOrderedFilter(ArrayList<ComponentKey> f) { if (mSearchResults != f) { mSearchResults = f; updateAdapterItems(); @@ -352,33 +285,23 @@ public class AlphabeticalAppsList { * Sets the current set of apps. */ public void setApps(List<AppInfo> apps) { - mApps.clear(); - mApps.addAll(apps); - onAppsUpdated(); + mComponentToAppMap.clear(); + addApps(apps); } /** * Adds new apps to the list. */ public void addApps(List<AppInfo> apps) { - // We add it in place, in alphabetical order - for (AppInfo info : apps) { - mApps.add(info); - } - onAppsUpdated(); + updateApps(apps); } /** * Updates existing apps in the list */ public void updateApps(List<AppInfo> apps) { - for (AppInfo info : apps) { - int index = mApps.indexOf(info); - if (index != -1) { - mApps.set(index, info); - } else { - mApps.add(info); - } + for (AppInfo app : apps) { + mComponentToAppMap.put(app.toComponentKey(), app); } onAppsUpdated(); } @@ -387,36 +310,19 @@ public class AlphabeticalAppsList { * Removes some apps from the list. */ public void removeApps(List<AppInfo> apps) { - for (AppInfo info : apps) { - int removeIndex = findAppByComponent(mApps, info); - if (removeIndex != -1) { - mApps.remove(removeIndex); - } + for (AppInfo app : apps) { + mComponentToAppMap.remove(app.toComponentKey()); } onAppsUpdated(); } /** - * Finds the index of an app given a target AppInfo. - */ - private int findAppByComponent(List<AppInfo> apps, AppInfo targetInfo) { - ComponentName targetComponent = targetInfo.intent.getComponent(); - int length = apps.size(); - for (int i = 0; i < length; ++i) { - AppInfo info = apps.get(i); - if (info.user.equals(targetInfo.user) - && info.intent.getComponent().equals(targetComponent)) { - return i; - } - } - return -1; - } - - /** * Updates internals when the set of apps are updated. */ private void onAppsUpdated() { // Sort the list of apps + mApps.clear(); + mApps.addAll(mComponentToAppMap.values()); Collections.sort(mApps, mAppNameComparator.getAppInfoComparator()); // As a special case for some languages (currently only Simplified Chinese), we may need to @@ -563,33 +469,13 @@ public class AlphabeticalAppsList { return mApps; } - int total = mSearchResults.size(); - final HashMap<ComponentName, Integer> sortOrder = new HashMap<>(total); - for (int i = 0; i < total; i++) { - sortOrder.put(mSearchResults.get(i), i); - } - ArrayList<AppInfo> result = new ArrayList<>(); - for (AppInfo info : mApps) { - if (sortOrder.containsKey(info.componentName)) { - result.add(info); + for (ComponentKey key : mSearchResults) { + AppInfo match = mComponentToAppMap.get(key); + if (match != null) { + result.add(match); } } - - Collections.sort(result, new AbstractUserComparator<AppInfo>( - LauncherAppState.getInstance().getContext()) { - - @Override - public int compare(AppInfo lhs, AppInfo rhs) { - Integer indexA = sortOrder.get(lhs.componentName); - int result = indexA.compareTo(sortOrder.get(rhs.componentName)); - if (result == 0) { - return super.compare(lhs, rhs); - } else { - return result; - } - } - }); return result; } @@ -597,8 +483,13 @@ public class AlphabeticalAppsList { * Merges multiple sections to reduce visual raggedness. */ private void mergeSections() { + // Ignore merging until we have an algorithm and a valid row size + if (mMergeAlgorithm == null || mNumAppsPerRow == 0) { + return; + } + // Go through each section and try and merge some of the sections - if (AllAppsContainerView.GRID_MERGE_SECTIONS && !hasFilter()) { + if (!hasFilter()) { int sectionAppCount = 0; for (int i = 0; i < mSections.size() - 1; i++) { SectionInfo section = mSections.get(i); diff --git a/src/com/android/launcher3/allapps/AppSearchManager.java b/src/com/android/launcher3/allapps/AppSearchManager.java deleted file mode 100644 index b6aa22341..000000000 --- a/src/com/android/launcher3/allapps/AppSearchManager.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.launcher3.allapps; - -import android.content.ComponentName; - -import java.util.ArrayList; - -/** - * Interface for handling app search. - */ -public interface AppSearchManager { - - /** - * Called when the search is about to be used. This method is optional for making a query but - * calling this appropriately can improve the initial response time. - */ - void connect(); - - /** - * Cancels all pending search requests. - * - * @param interruptActiveRequests if true, any active requests which are already executing will - * be invalidated, and the corresponding results will not be sent. The client should usually - * set this to true, before beginning a new search session. - */ - void cancel(boolean interruptActiveRequests); - - /** - * Performs a search - */ - void doSearch(String query, AppSearchResultCallback callback); - - /** - * Callback for getting search results. - */ - public interface AppSearchResultCallback { - - /** - * Called when the search is complete. - * - * @param apps sorted list of matching components or null if in case of failure. - */ - void onSearchResult(ArrayList<ComponentName> apps); - } -} diff --git a/src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java b/src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java index e8a31b546..10740ec77 100644 --- a/src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java +++ b/src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java @@ -15,67 +15,64 @@ */ package com.android.launcher3.allapps; -import android.content.ComponentName; import android.os.Handler; import com.android.launcher3.AppInfo; +import com.android.launcher3.util.ComponentKey; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; /** - * An {@link AppSearchManager} which does label matching on the UI thread. + * The default search implementation. */ -public class SimpleAppSearchManagerImpl implements AppSearchManager { +public class DefaultAppSearchAlgorithm { private static final Pattern SPLIT_PATTERN = Pattern.compile("[\\s|\\p{javaSpaceChar}]+"); private final List<AppInfo> mApps; - private final Handler mResultHandler; + protected final Handler mResultHandler; - public SimpleAppSearchManagerImpl(List<AppInfo> apps) { + public DefaultAppSearchAlgorithm(List<AppInfo> apps) { mApps = apps; mResultHandler = new Handler(); } - @Override - public void connect() { - // No op - } - - @Override public void cancel(boolean interruptActiveRequests) { if (interruptActiveRequests) { mResultHandler.removeCallbacksAndMessages(null); } } - @Override - public void doSearch(String query, final AppSearchResultCallback callback) { + public void doSearch(final String query, + final AllAppsSearchBarController.Callbacks callback) { + final ArrayList<ComponentKey> result = getTitleMatchResult(query); + mResultHandler.post(new Runnable() { + + @Override + public void run() { + callback.onSearchResult(query, result); + } + }); + } + + protected ArrayList<ComponentKey> getTitleMatchResult(String query) { // Do an intersection of the words in the query and each title, and filter out all the // apps that don't match all of the words in the query. final String queryTextLower = query.toLowerCase(); final String[] queryWords = SPLIT_PATTERN.split(queryTextLower); - final ArrayList<ComponentName> result = new ArrayList<ComponentName>(); - int total = mApps.size(); - for (int i = 0; i < total; i++) { - AppInfo info = mApps.get(i); - if (!result.contains(info.componentName) && matches(info, queryWords)) { - result.add(info.componentName); + final ArrayList<ComponentKey> result = new ArrayList<>(); + for (AppInfo info : mApps) { + if (matches(info, queryWords)) { + result.add(info.toComponentKey()); } } - mResultHandler.post(new Runnable() { - - @Override - public void run() { - callback.onSearchResult(result); - } - }); + return result; } - private boolean matches(AppInfo info, String[] queryWords) { + protected boolean matches(AppInfo info, String[] queryWords) { String title = info.title.toString(); String[] words = SPLIT_PATTERN.split(title.toLowerCase()); for (int qi = 0; qi < queryWords.length; qi++) { @@ -94,5 +91,4 @@ public class SimpleAppSearchManagerImpl implements AppSearchManager { } return true; } - } diff --git a/src/com/android/launcher3/allapps/DefaultAppSearchController.java b/src/com/android/launcher3/allapps/DefaultAppSearchController.java new file mode 100644 index 000000000..20924af94 --- /dev/null +++ b/src/com/android/launcher3/allapps/DefaultAppSearchController.java @@ -0,0 +1,270 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.allapps; + +import android.content.Context; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.widget.TextView; +import com.android.launcher3.R; +import com.android.launcher3.Utilities; +import com.android.launcher3.util.Thunk; + +import java.util.List; + + +/** + * The default search controller. + */ +final class DefaultAppSearchController extends AllAppsSearchBarController + implements TextWatcher, TextView.OnEditorActionListener, View.OnClickListener { + + private static final boolean ALLOW_SINGLE_APP_LAUNCH = true; + + private static final int FADE_IN_DURATION = 175; + private static final int FADE_OUT_DURATION = 100; + private static final int SEARCH_TRANSLATION_X_DP = 18; + + private final Context mContext; + @Thunk final InputMethodManager mInputMethodManager; + + private DefaultAppSearchAlgorithm mSearchManager; + + private ViewGroup mContainerView; + private View mSearchView; + @Thunk View mSearchBarContainerView; + private View mSearchButtonView; + private View mDismissSearchButtonView; + @Thunk AllAppsSearchEditView mSearchBarEditView; + @Thunk AllAppsRecyclerView mAppsRecyclerView; + @Thunk Runnable mFocusRecyclerViewRunnable = new Runnable() { + @Override + public void run() { + mAppsRecyclerView.requestFocus(); + } + }; + + public DefaultAppSearchController(Context context, ViewGroup containerView, + AllAppsRecyclerView appsRecyclerView) { + mContext = context; + mInputMethodManager = (InputMethodManager) + mContext.getSystemService(Context.INPUT_METHOD_SERVICE); + mContainerView = containerView; + mAppsRecyclerView = appsRecyclerView; + } + + @Override + public View getView(ViewGroup parent) { + LayoutInflater inflater = LayoutInflater.from(parent.getContext()); + mSearchView = inflater.inflate(R.layout.all_apps_search_bar, parent, false); + mSearchView.setOnClickListener(this); + + mSearchButtonView = mSearchView.findViewById(R.id.search_button); + mSearchBarContainerView = mSearchView.findViewById(R.id.search_container); + mDismissSearchButtonView = mSearchBarContainerView.findViewById(R.id.dismiss_search_button); + mDismissSearchButtonView.setOnClickListener(this); + mSearchBarEditView = (AllAppsSearchEditView) + mSearchBarContainerView.findViewById(R.id.search_box_input); + mSearchBarEditView.addTextChangedListener(this); + mSearchBarEditView.setOnEditorActionListener(this); + mSearchBarEditView.setOnBackKeyListener( + new AllAppsSearchEditView.OnBackKeyListener() { + @Override + public void onBackKey() { + // Only hide the search field if there is no query, or if there + // are no filtered results + String query = Utilities.trim( + mSearchBarEditView.getEditableText().toString()); + if (query.isEmpty() || mApps.hasNoFilteredResults()) { + hideSearchField(true, mFocusRecyclerViewRunnable); + } + } + }); + return mSearchView; + } + + @Override + public void focusSearchField() { + mSearchBarEditView.requestFocus(); + showSearchField(); + } + + @Override + public boolean isSearchFieldFocused() { + return mSearchBarEditView.isFocused(); + } + + @Override + protected void onInitialize() { + mSearchManager = new DefaultAppSearchAlgorithm(mApps.getApps()); + } + + @Override + public void reset() { + hideSearchField(false, null); + } + + @Override + public boolean shouldShowPredictionBar() { + // Keep showing the prediction bar if the input query is empty + return mSearchBarEditView.getEditableText().toString().isEmpty(); + } + + @Override + public void onClick(View v) { + if (v == mSearchView) { + showSearchField(); + } else if (v == mDismissSearchButtonView) { + hideSearchField(true, mFocusRecyclerViewRunnable); + } + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // Do nothing + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + // Do nothing + } + + @Override + public void afterTextChanged(final Editable s) { + String query = s.toString(); + if (query.isEmpty()) { + mSearchManager.cancel(true); + mCb.clearSearchResult(); + } else { + mSearchManager.cancel(false); + mSearchManager.doSearch(query, mCb); + } + } + + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + // Skip if we disallow app-launch-on-enter + if (!ALLOW_SINGLE_APP_LAUNCH) { + return false; + } + // Skip if it's not the right action + if (actionId != EditorInfo.IME_ACTION_DONE) { + return false; + } + // Skip if there isn't exactly one item + if (mApps.getSize() != 1) { + return false; + } + // If there is exactly one icon, then quick-launch it + List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems(); + for (int i = 0; i < items.size(); i++) { + AlphabeticalAppsList.AdapterItem item = items.get(i); + if (item.viewType == AllAppsGridAdapter.ICON_VIEW_TYPE) { + mAppsRecyclerView.getChildAt(i).performClick(); + mInputMethodManager.hideSoftInputFromWindow( + mContainerView.getWindowToken(), 0); + return true; + } + } + return false; + } + + /** + * Focuses the search field. + */ + private void showSearchField() { + // Show the search bar and focus the search + final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP, + mContext.getResources().getDisplayMetrics()); + mSearchBarContainerView.setVisibility(View.VISIBLE); + mSearchBarContainerView.setAlpha(0f); + mSearchBarContainerView.setTranslationX(translationX); + mSearchBarContainerView.animate() + .alpha(1f) + .translationX(0) + .setDuration(FADE_IN_DURATION) + .withLayer() + .withEndAction(new Runnable() { + @Override + public void run() { + mSearchBarEditView.requestFocus(); + mInputMethodManager.showSoftInput(mSearchBarEditView, + InputMethodManager.SHOW_IMPLICIT); + } + }); + mSearchButtonView.animate() + .alpha(0f) + .translationX(-translationX) + .setDuration(FADE_OUT_DURATION) + .withLayer(); + } + + /** + * Unfocuses the search field. + */ + @Thunk void hideSearchField(boolean animated, final Runnable postAnimationRunnable) { + mSearchManager.cancel(true); + + final boolean resetTextField = mSearchBarEditView.getText().toString().length() > 0; + final int translationX = Utilities.pxFromDp(SEARCH_TRANSLATION_X_DP, + mContext.getResources().getDisplayMetrics()); + if (animated) { + // Hide the search bar and focus the recycler view + mSearchBarContainerView.animate() + .alpha(0f) + .translationX(0) + .setDuration(FADE_IN_DURATION) + .withLayer() + .withEndAction(new Runnable() { + @Override + public void run() { + mSearchBarContainerView.setVisibility(View.INVISIBLE); + if (resetTextField) { + mSearchBarEditView.setText(""); + } + mCb.clearSearchResult(); + if (postAnimationRunnable != null) { + postAnimationRunnable.run(); + } + } + }); + mSearchButtonView.setTranslationX(-translationX); + mSearchButtonView.animate() + .alpha(1f) + .translationX(0) + .setDuration(FADE_OUT_DURATION) + .withLayer(); + } else { + mSearchBarContainerView.setVisibility(View.INVISIBLE); + if (resetTextField) { + mSearchBarEditView.setText(""); + } + mCb.clearSearchResult(); + mSearchButtonView.setAlpha(1f); + mSearchButtonView.setTranslationX(0f); + if (postAnimationRunnable != null) { + postAnimationRunnable.run(); + } + } + mInputMethodManager.hideSoftInputFromWindow(mContainerView.getWindowToken(), 0); + } +} diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java index a64c70535..f7f4b7e4f 100644 --- a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java +++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java @@ -87,7 +87,8 @@ class AppWidgetManagerCompatV16 extends AppWidgetManagerCompat { } @Override - public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) { + public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, + int imageHeight) { return bitmap; } } diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java index 96ace8477..13712d8c7 100644 --- a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java +++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java @@ -108,7 +108,8 @@ class AppWidgetManagerCompatVL extends AppWidgetManagerCompat { } @Override - public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) { + public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, + int imageHeight) { if (info.isCustomWidget || info.getProfile().equals(android.os.Process.myUserHandle())) { return bitmap; } @@ -116,15 +117,14 @@ class AppWidgetManagerCompatVL extends AppWidgetManagerCompat { // Add a user badge in the bottom right of the image. final Resources res = mContext.getResources(); final int badgeSize = res.getDimensionPixelSize(R.dimen.profile_badge_size); - final int badgeMargin = res.getDimensionPixelSize(R.dimen.profile_badge_margin); final int badgeMinTop = res.getDimensionPixelSize(R.dimen.profile_badge_minimum_top); final Rect badgeLocation = new Rect(0, 0, badgeSize, badgeSize); - final int top = Math.max(imageHeight - badgeSize - badgeMargin, badgeMinTop); + final int top = Math.max(imageHeight - badgeSize, badgeMinTop); if (res.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { - badgeLocation.offset(badgeMargin, top); + badgeLocation.offset(0, top); } else { - badgeLocation.offset(bitmap.getWidth() - badgeSize - badgeMargin, top); + badgeLocation.offset(bitmap.getWidth() - badgeSize, top); } Drawable drawable = mPm.getUserBadgedDrawableForDensity( diff --git a/src/com/android/launcher3/compat/UserHandleCompat.java b/src/com/android/launcher3/compat/UserHandleCompat.java index d8e60b875..ab4b7216b 100644 --- a/src/com/android/launcher3/compat/UserHandleCompat.java +++ b/src/com/android/launcher3/compat/UserHandleCompat.java @@ -41,7 +41,7 @@ public class UserHandleCompat { } } - static UserHandleCompat fromUser(UserHandle user) { + public static UserHandleCompat fromUser(UserHandle user) { if (user == null) { return null; } else { diff --git a/src/com/android/launcher3/widget/WidgetsContainerView.java b/src/com/android/launcher3/widget/WidgetsContainerView.java index 51f2a5f05..500311add 100644 --- a/src/com/android/launcher3/widget/WidgetsContainerView.java +++ b/src/com/android/launcher3/widget/WidgetsContainerView.java @@ -66,6 +66,7 @@ public class WidgetsContainerView extends BaseContainerView private IconCache mIconCache; /* Recycler view related member variables */ + private View mContent; private WidgetsRecyclerView mView; private WidgetsListAdapter mAdapter; @@ -98,6 +99,7 @@ public class WidgetsContainerView extends BaseContainerView @Override protected void onFinishInflate() { + mContent = findViewById(R.id.content); mView = (WidgetsRecyclerView) findViewById(R.id.widgets_list_view); mView.setAdapter(mAdapter); @@ -112,7 +114,6 @@ public class WidgetsContainerView extends BaseContainerView }); mPadding.set(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom()); - onUpdatePaddings(); } // @@ -335,33 +336,18 @@ public class WidgetsContainerView extends BaseContainerView // @Override - protected void onUpdatePaddings() { - if (mFixedBounds.isEmpty()) { - // If there are no fixed bounds, then use the default padding and insets - setPadding(mPadding.left + mInsets.left, mPadding.top + mInsets.top, - mPadding.right + mInsets.right, mPadding.bottom + mInsets.bottom); - } else { - // If there are fixed bounds, then we update the padding to reflect the fixed bounds. - setPadding(mFixedBounds.left, mFixedBounds.top, getMeasuredWidth() - mFixedBounds.right, - mFixedBounds.bottom); - } - - int inset = mFixedBounds.isEmpty() ? mView.getScrollbarWidth() : mFixedBoundsContainerInset; - mView.setPadding(inset + mView.getScrollbarWidth(), inset, - inset, inset); - } - - @Override - protected void onUpdateBackgrounds() { - InsetDrawable background; - // Update the background of the reveal view and list to be inset with the fixed bound - // insets instead of the default insets - // TODO: Use quantum_panel instead of quantum_panel_shape. - int inset = mFixedBounds.isEmpty() ? mView.getScrollbarWidth() : mFixedBoundsContainerInset; - background = new InsetDrawable( - getContext().getResources().getDrawable(R.drawable.quantum_panel_shape), - inset, 0, inset, 0); - mView.updateBackgroundPadding(background); + protected void onUpdateBackgroundAndPaddings(Rect searchBarBounds, Rect padding) { + // Apply the top-bottom padding to the content itself so that the launcher transition is + // clipped correctly + mContent.setPadding(0, padding.top, 0, padding.bottom); + + // TODO: Use quantum_panel_dark instead of quantum_panel_shape_dark. + InsetDrawable background = new InsetDrawable( + getResources().getDrawable(R.drawable.quantum_panel_shape_dark), padding.left, 0, + padding.right, 0); + mView.setBackground(background); + getRevealView().setBackground(background.getConstantState().newDrawable()); + mView.updateBackgroundPadding(padding); } /** diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java index 9d265f87e..fa7e2f0a2 100644 --- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java @@ -18,11 +18,9 @@ package com.android.launcher3.widget; import android.content.Context; import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.support.v7.widget.LinearLayoutManager; import android.util.AttributeSet; import android.view.View; - import com.android.launcher3.BaseRecyclerView; import com.android.launcher3.Utilities; import com.android.launcher3.model.WidgetsModel; @@ -35,7 +33,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView { private static final String TAG = "WidgetsRecyclerView"; private WidgetsModel mWidgets; - private Rect mBackgroundPadding = new Rect(); public WidgetsRecyclerView(Context context) { this(context, null); @@ -61,10 +58,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView { addOnItemTouchListener(this); } - public void updateBackgroundPadding(Drawable background) { - background.getPadding(mBackgroundPadding); - } - /** * Sets the widget model in this view, used to determine the fast scroll position. */ |