summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java2
-rw-r--r--res/drawable/all_apps_search_bg.xml11
-rw-r--r--res/layout-sw600dp/all_apps.xml33
-rw-r--r--res/layout/all_apps.xml40
-rw-r--r--res/layout/all_apps_container.xml80
-rw-r--r--res/layout/all_apps_reveal.xml24
-rw-r--r--res/layout/all_apps_search_bar.xml72
-rw-r--r--res/layout/widgets_view.xml22
-rw-r--r--res/values-af/strings.xml8
-rw-r--r--res/values-am/strings.xml8
-rw-r--r--res/values-ar/strings.xml8
-rw-r--r--res/values-bg/strings.xml8
-rw-r--r--res/values-bn-rBD/strings.xml8
-rw-r--r--res/values-ca/strings.xml8
-rw-r--r--res/values-cs/strings.xml8
-rw-r--r--res/values-da/strings.xml8
-rw-r--r--res/values-de/strings.xml8
-rw-r--r--res/values-el/strings.xml8
-rw-r--r--res/values-en-rGB/strings.xml8
-rw-r--r--res/values-en-rIN/strings.xml8
-rw-r--r--res/values-es-rUS/strings.xml8
-rw-r--r--res/values-es/strings.xml8
-rw-r--r--res/values-et-rEE/strings.xml8
-rw-r--r--res/values-et/strings.xml3
-rw-r--r--res/values-eu-rES/strings.xml8
-rw-r--r--res/values-fa/strings.xml8
-rw-r--r--res/values-fi/strings.xml8
-rw-r--r--res/values-fr-rCA/strings.xml8
-rw-r--r--res/values-fr/strings.xml8
-rw-r--r--res/values-gl-rES/strings.xml8
-rw-r--r--res/values-hi/strings.xml8
-rw-r--r--res/values-hr/strings.xml8
-rw-r--r--res/values-hu/strings.xml8
-rw-r--r--res/values-hy-rAM/strings.xml8
-rw-r--r--res/values-in/strings.xml8
-rw-r--r--res/values-is-rIS/strings.xml8
-rw-r--r--res/values-it/strings.xml8
-rw-r--r--res/values-iw/strings.xml8
-rw-r--r--res/values-ja/strings.xml8
-rw-r--r--res/values-ka-rGE/strings.xml8
-rw-r--r--res/values-kk-rKZ/strings.xml8
-rw-r--r--res/values-km-rKH/strings.xml8
-rw-r--r--res/values-kn-rIN/strings.xml8
-rw-r--r--res/values-ko/strings.xml8
-rw-r--r--res/values-ky-rKG/strings.xml8
-rw-r--r--res/values-lo-rLA/strings.xml8
-rw-r--r--res/values-lt/strings.xml8
-rw-r--r--res/values-lv/strings.xml8
-rw-r--r--res/values-mk-rMK/strings.xml8
-rw-r--r--res/values-ml-rIN/strings.xml8
-rw-r--r--res/values-mn-rMN/strings.xml8
-rw-r--r--res/values-mr-rIN/strings.xml8
-rw-r--r--res/values-ms-rMY/strings.xml8
-rw-r--r--res/values-ms/strings.xml3
-rw-r--r--res/values-my-rMM/strings.xml8
-rw-r--r--res/values-nb/strings.xml8
-rw-r--r--res/values-ne-rNP/strings.xml8
-rw-r--r--res/values-nl/strings.xml8
-rw-r--r--res/values-pl/strings.xml8
-rw-r--r--res/values-pt-rPT/strings.xml8
-rw-r--r--res/values-pt/strings.xml8
-rw-r--r--res/values-ro/strings.xml8
-rw-r--r--res/values-ru/strings.xml8
-rw-r--r--res/values-si-rLK/strings.xml8
-rw-r--r--res/values-sk/strings.xml8
-rw-r--r--res/values-sl/strings.xml8
-rw-r--r--res/values-sr/strings.xml8
-rw-r--r--res/values-sv/strings.xml8
-rw-r--r--res/values-sw/strings.xml8
-rw-r--r--res/values-sw600dp/dimens.xml1
-rw-r--r--res/values-ta-rIN/strings.xml8
-rw-r--r--res/values-te-rIN/strings.xml8
-rw-r--r--res/values-th/strings.xml8
-rw-r--r--res/values-tl/strings.xml8
-rw-r--r--res/values-tr/strings.xml8
-rw-r--r--res/values-uk/strings.xml8
-rw-r--r--res/values-ur-rPK/strings.xml8
-rw-r--r--res/values-uz-rUZ/strings.xml8
-rw-r--r--res/values-vi/strings.xml8
-rw-r--r--res/values-zh-rCN/strings.xml8
-rw-r--r--res/values-zh-rHK/strings.xml8
-rw-r--r--res/values-zh-rTW/strings.xml8
-rw-r--r--res/values-zu/strings.xml8
-rw-r--r--res/values/dimens.xml15
-rw-r--r--src/com/android/launcher3/AppInfo.java5
-rw-r--r--src/com/android/launcher3/BaseContainerView.java96
-rw-r--r--src/com/android/launcher3/BaseRecyclerView.java49
-rw-r--r--src/com/android/launcher3/ClickShadowView.java2
-rw-r--r--src/com/android/launcher3/DeviceProfile.java18
-rw-r--r--src/com/android/launcher3/Launcher.java203
-rw-r--r--src/com/android/launcher3/LauncherAppState.java3
-rw-r--r--src/com/android/launcher3/LauncherCallbacks.java15
-rw-r--r--src/com/android/launcher3/LauncherExtension.java18
-rw-r--r--src/com/android/launcher3/LauncherProvider.java45
-rw-r--r--src/com/android/launcher3/LauncherProviderChangeListener.java2
-rw-r--r--src/com/android/launcher3/LauncherStateTransitionAnimation.java70
-rw-r--r--src/com/android/launcher3/LauncherTransitionable.java3
-rw-r--r--src/com/android/launcher3/PagedView.java2
-rw-r--r--src/com/android/launcher3/Utilities.java5
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java45
-rw-r--r--src/com/android/launcher3/Workspace.java9
-rw-r--r--src/com/android/launcher3/WorkspaceStateTransitionAnimation.java257
-rw-r--r--src/com/android/launcher3/allapps/AllAppsContainerView.java694
-rw-r--r--src/com/android/launcher3/allapps/AllAppsGridAdapter.java55
-rw-r--r--src/com/android/launcher3/allapps/AllAppsRecyclerView.java35
-rw-r--r--src/com/android/launcher3/allapps/AllAppsSearchBarController.java99
-rw-r--r--src/com/android/launcher3/allapps/AlphabeticalAppsList.java185
-rw-r--r--src/com/android/launcher3/allapps/AppSearchManager.java59
-rw-r--r--src/com/android/launcher3/allapps/DefaultAppSearchAlgorithm.java (renamed from src/com/android/launcher3/allapps/SimpleAppSearchManagerImpl.java)52
-rw-r--r--src/com/android/launcher3/allapps/DefaultAppSearchController.java270
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java3
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java10
-rw-r--r--src/com/android/launcher3/compat/UserHandleCompat.java2
-rw-r--r--src/com/android/launcher3/widget/WidgetsContainerView.java42
-rw-r--r--src/com/android/launcher3/widget/WidgetsRecyclerView.java7
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 &amp; 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, &amp; settings"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch &amp; 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, &amp; settings"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Touch &amp; 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, &amp; setelan"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh &amp; 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">"ფონები, ვიჯეტები, &amp; პარამეტრები"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"მოსარგებად შეეხეთ &amp; დააყოვნეთ ფონზე"</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">"ផ្ទាំងរូបភាព,ធាតុក្រាហ្វិក &amp; ការកំណត់"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ប៉ះ &amp; សង្កត់​ផ្ទៃ​ខាង​ក្រោយ​ដើម្បី​ប្ដូរ​តាម​​តម្រូវ​ការ"</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">"ವಾಲ್‌ಪೇಪರ್‌ಗಳು, ವಿಜೆಟ್‌ಗಳು, &amp; ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಹಿನ್ನೆಲೆಯನ್ನು ಸ್ಪರ್ಶಿಸಿ &amp; ಒತ್ತಿ ಹಿಡಿಯಿರಿ"</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">"Тушкагаздар, виджеттер &amp; жөндөөлөр"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Өзгөчөлөштүрүү үчүн фонго тийип &amp; коё бербей туруңуз"</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">"​ຮູບ​ພື້ນຫຼັງ, ວິດເຈັດ, &amp; ​ການ​ຕັ້ງ​ຄ່າ"</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">"Дэвсгэр зураг, виджет, &amp; тохиргоо"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Тааруулахын тулд арын дэлгэцэнд хүрээд &amp; барина уу"</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 &amp; tetapan"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"Sentuh &amp; 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">"နောက်ခံများ၊ ဝီဂျက်များ&amp; ဆက်တင်များ"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"နောက်ခံကို စိတ်တိုင်းကျ ပြုလုပ်ရန် ထိလျက် &amp; ကိုင်ထားပါ"</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">"வால்பேப்பர்கள், விட்ஜெட்கள் &amp; அமைப்புகள்"</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">"వాల్‌పేపర్‌లు, విడ్జెట్‌లు &amp; సెట్టింగ్‌లు"</string>
<string name="workspace_cling_longpress_description" msgid="4119994475505235248">"అనుకూలీకరించడానికి నేపథ్యాన్ని నొక్కి &amp; ఉంచండి"</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.
*/