summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout-xlarge-port/customization_drawer.xml2
-rw-r--r--res/layout-xlarge-port/launcher.xml212
-rw-r--r--res/layout-xlarge/customize_paged_view_wallpaper.xml14
-rw-r--r--res/layout-xlarge/customize_paged_view_widget.xml16
-rw-r--r--res/layout-xlarge/launcher.xml (renamed from res/layout-xlarge-land/launcher.xml)14
-rw-r--r--res/values-de/strings.xml2
-rw-r--r--res/values-es-rUS/strings.xml4
-rw-r--r--res/values-fa/strings.xml4
-rw-r--r--res/values-fi/strings.xml4
-rw-r--r--res/values-fr/strings.xml4
-rw-r--r--res/values-hr/strings.xml4
-rw-r--r--res/values-hu/strings.xml4
-rw-r--r--res/values-in/strings.xml4
-rw-r--r--res/values-it/strings.xml4
-rw-r--r--res/values-iw/strings.xml4
-rw-r--r--res/values-ja/strings.xml4
-rw-r--r--res/values-ko/strings.xml4
-rw-r--r--res/values-lt/strings.xml4
-rw-r--r--res/values-lv/strings.xml4
-rw-r--r--res/values-nb/strings.xml4
-rw-r--r--res/values-nl/strings.xml20
-rw-r--r--res/values-pl/strings.xml4
-rw-r--r--res/values-pt-rPT/strings.xml4
-rw-r--r--res/values-pt/strings.xml4
-rw-r--r--res/values-ro/strings.xml6
-rw-r--r--res/values-ru/strings.xml4
-rw-r--r--res/values-sk/strings.xml4
-rw-r--r--res/values-sl/strings.xml4
-rw-r--r--res/values-sr/strings.xml4
-rw-r--r--res/values-sv/strings.xml6
-rw-r--r--res/values-th/strings.xml4
-rw-r--r--res/values-tl/strings.xml4
-rw-r--r--res/values-tr/strings.xml4
-rw-r--r--res/values-uk/strings.xml4
-rw-r--r--res/values-vi/strings.xml4
-rw-r--r--res/values-xlarge-land/dimens.xml7
-rw-r--r--res/values-xlarge-port/dimens.xml7
-rw-r--r--res/values-xlarge/dimens.xml5
-rw-r--r--res/values-zh-rCN/strings.xml4
-rw-r--r--res/values-zh-rTW/strings.xml4
-rw-r--r--src/com/android/launcher2/AllApps2D.java2
-rw-r--r--src/com/android/launcher2/AllApps3D.java14
-rw-r--r--src/com/android/launcher2/AllAppsPagedView.java18
-rw-r--r--src/com/android/launcher2/BubbleTextView.java7
-rw-r--r--src/com/android/launcher2/CellLayoutChildren.java3
-rw-r--r--src/com/android/launcher2/CustomizePagedView.java269
-rw-r--r--src/com/android/launcher2/DragController.java34
-rw-r--r--src/com/android/launcher2/DragSource.java2
-rw-r--r--src/com/android/launcher2/DragView.java8
-rw-r--r--src/com/android/launcher2/Folder.java2
-rw-r--r--src/com/android/launcher2/HolographicOutlineHelper.java2
-rw-r--r--src/com/android/launcher2/Launcher.java24
-rw-r--r--src/com/android/launcher2/PagedView.java41
-rw-r--r--src/com/android/launcher2/PagedViewIcon.java18
-rw-r--r--src/com/android/launcher2/PagedViewWidget.java53
-rw-r--r--src/com/android/launcher2/UserFolder.java2
-rw-r--r--src/com/android/launcher2/Workspace.java45
57 files changed, 473 insertions, 494 deletions
diff --git a/res/layout-xlarge-port/customization_drawer.xml b/res/layout-xlarge-port/customization_drawer.xml
index a1bc7cc8a..0381be0aa 100644
--- a/res/layout-xlarge-port/customization_drawer.xml
+++ b/res/layout-xlarge-port/customization_drawer.xml
@@ -21,7 +21,7 @@
android:layout_height="match_parent"
launcher:wallpaperCellSpanX="3"
launcher:wallpaperCellCountX="9"
- launcher:widgetCellCountX="10"
+ launcher:widgetCellCountX="9"
launcher:cellCountX="5"
launcher:cellCountY="3"
launcher:pageLayoutWidthGap="36dp"
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
deleted file mode 100644
index 4c83fdabf..000000000
--- a/res/layout-xlarge-port/launcher.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.launcher2.DragLayer
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
-
- android:id="@+id/drag_layer"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <!-- The workspace contains 5 screens of cells -->
- <com.android.launcher2.Workspace
- android:id="@+id/workspace"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="?android:attr/actionBarSize"
- android:paddingBottom="10dp"
- launcher:defaultScreen="2"
- launcher:cellCountX="8"
- launcher:cellCountY="7"
- launcher:pageSpacing="64dp">
-
- <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
- <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
- <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
- <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
- <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
- </com.android.launcher2.Workspace>
-
- <include
- layout="@layout/all_apps_tabbed"
- android:id="@+id/all_apps_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="top" />
-
- <RelativeLayout
- android:id="@+id/all_apps_button_cluster"
- android:layout_width="fill_parent"
- android:layout_height="?android:attr/actionBarSize"
- android:layout_gravity="top">
-
- <!-- Global search icon -->
- <ImageView
- android:id="@+id/search_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:layout_alignParentLeft="true"
- android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
- android:paddingRight="@dimen/toolbar_button_horizontal_padding"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:src="@drawable/ic_generic_search"
- android:background="@drawable/button_bg"
- android:onClick="onClickSearchButton"
- android:focusable="true"
- android:clickable="true" />
-
- <ImageView
- android:id="@+id/search_divider"
- android:src="@drawable/divider_launcher_holo"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toRightOf="@id/search_button"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
-
- android:onClick="onClickSearchButton"
- android:focusable="false"
- android:clickable="true" />
-
- <!-- Voice search icon -->
- <ImageView
- android:id="@+id/voice_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toRightOf="@id/search_divider"
- android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
- android:paddingRight="@dimen/toolbar_button_horizontal_padding"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:src="@drawable/ic_voice_search"
- android:background="@drawable/button_bg"
- android:onClick="onClickVoiceButton"
- android:focusable="true"
- android:clickable="true"/>
-
- <ImageView
- android:id="@+id/configure_button"
- android:src="@drawable/ic_home_add_holo_dark"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:layout_alignParentRight="true"
- android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
- android:paddingRight="@dimen/toolbar_button_horizontal_padding"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:background="@drawable/button_bg"
-
- android:focusable="true"
- android:clickable="true" />
- <ImageView
- android:id="@+id/divider"
- android:src="@drawable/divider_launcher_holo"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toLeftOf="@id/configure_button"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
-
- android:focusable="false"
- android:clickable="true" />
- <TextView
- android:id="@+id/all_apps_button"
- android:text="@string/all_apps_button_label"
- android:drawablePadding="@dimen/all_apps_button_drawable_padding"
- android:drawableLeft="@drawable/ic_home_all_apps_holo_dark"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toLeftOf="@id/divider"
- android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
- android:paddingRight="@dimen/toolbar_button_horizontal_padding"
- android:paddingTop="@dimen/all_apps_button_vertical_padding"
- android:paddingBottom="@dimen/all_apps_button_vertical_padding"
- android:background="@drawable/button_bg"
-
- android:gravity="center_horizontal|center_vertical"
- android:textColor="#CCFFFFFF"
- android:textSize="18sp"
-
- android:shadowColor="#DA000000"
- android:shadowDx="0.0"
- android:shadowDy="0.0"
- android:shadowRadius="2.5"
-
- android:focusable="true"
- android:clickable="true" />
- <ImageView
- android:id="@+id/divider_during_drag"
- android:src="@drawable/divider_launcher_holo"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toLeftOf="@id/configure_button"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:visibility="gone"/>
- <com.android.launcher2.DeleteZone
- android:id="@+id/delete_zone"
- android:text="@string/delete_zone_label_workspace"
- android:drawablePadding="@dimen/delete_zone_drawable_padding"
- android:drawableLeft="@drawable/delete_zone_selector"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignRight="@id/configure_button"
- android:paddingLeft="@dimen/toolbar_button_horizontal_padding"
- android:paddingRight="@dimen/toolbar_button_horizontal_padding"
- android:paddingTop="@dimen/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:background="@drawable/button_bg"
-
- android:gravity="center_horizontal|center_vertical"
- android:textColor="@color/workspace_all_apps_and_delete_zone_text_color"
- android:textSize="18sp"
- android:shadowColor="@color/workspace_all_apps_and_delete_zone_text_shadow_color"
- android:shadowDx="0.0"
- android:shadowDy="0.0"
- android:shadowRadius="2.0"
-
- android:visibility="gone"
- launcher:direction="horizontal" />
- </RelativeLayout>
-
- <TabHost
- android:id="@+id/customization_drawer"
- android:layout_width="match_parent"
- android:layout_height="800dp"
- android:layout_gravity="bottom">
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TabWidget
- android:id="@android:id/tabs"
- android:layout_width="700dp"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:background="@drawable/tab_unselected_holo"
- android:tabStripEnabled="false" />
- <FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="match_parent"
- android:layout_height="650dp">
- </FrameLayout>
- </LinearLayout>
- </TabHost>
-</com.android.launcher2.DragLayer>
diff --git a/res/layout-xlarge/customize_paged_view_wallpaper.xml b/res/layout-xlarge/customize_paged_view_wallpaper.xml
index e3be86d87..8c5abc8d9 100644
--- a/res/layout-xlarge/customize_paged_view_wallpaper.xml
+++ b/res/layout-xlarge/customize_paged_view_wallpaper.xml
@@ -18,12 +18,11 @@
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:layout_width="wrap_content"
- android:layout_height="365dp"
- android:paddingLeft="12.5dp"
- android:paddingRight="12.5dp"
- android:paddingBottom="50dp"
- android:gravity="top"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
android:orientation="vertical"
+ android:paddingRight="25dp"
+ android:paddingBottom="50dp"
launcher:blurColor="#FF6B8CF0"
launcher:outlineColor="#FF8CD2FF">
@@ -33,7 +32,8 @@
android:id="@+id/wallpaper_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1.0"
+ android:layout_weight="1"
+ android:adjustViewBounds="true"
android:scaleType="fitStart" />
<!-- The divider image. -->
@@ -41,6 +41,7 @@
android:id="@+id/divider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="0"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/widget_divider" />
@@ -50,6 +51,7 @@
android:id="@+id/wallpaper_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="0"
android:gravity="left"
android:textColor="#FFFFFFFF"
diff --git a/res/layout-xlarge/customize_paged_view_widget.xml b/res/layout-xlarge/customize_paged_view_widget.xml
index 3b95ebc66..c0b455251 100644
--- a/res/layout-xlarge/customize_paged_view_widget.xml
+++ b/res/layout-xlarge/customize_paged_view_widget.xml
@@ -18,13 +18,11 @@
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:layout_width="wrap_content"
- android:layout_height="365dp"
- android:paddingLeft="12.5dp"
- android:paddingTop="12.5dp"
- android:paddingRight="12.5dp"
- android:paddingBottom="50dp"
- android:gravity="top"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
android:orientation="vertical"
+ android:paddingRight="25dp"
+ android:paddingBottom="50dp"
launcher:blurColor="#FF6B8CF0"
launcher:outlineColor="#FF8CD2FF">
@@ -34,7 +32,8 @@
android:id="@+id/widget_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1.0"
+ android:layout_weight="1"
+ android:adjustViewBounds="true"
android:scaleType="fitStart" />
<!-- The divider image. -->
@@ -42,6 +41,7 @@
android:id="@+id/divider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="0"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/widget_divider" />
@@ -51,6 +51,7 @@
android:id="@+id/widget_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="0"
android:gravity="left"
android:textColor="#FFFFFFFF"
@@ -69,6 +70,7 @@
android:id="@+id/widget_dims"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_weight="0"
android:gravity="left"
android:textColor="#FF999999"
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge/launcher.xml
index 590787fc7..a7cf3214c 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge/launcher.xml
@@ -32,7 +32,7 @@
launcher:defaultScreen="2"
launcher:cellCountX="8"
launcher:cellCountY="7"
- launcher:pageSpacing="50dp">
+ launcher:pageSpacing="@dimen/workspace_page_spacing">
<include android:id="@+id/cell1" layout="@layout/workspace_screen" />
<include android:id="@+id/cell2" layout="@layout/workspace_screen" />
@@ -70,7 +70,7 @@
android:onClick="onClickSearchButton"
android:focusable="true"
android:clickable="true" />
-
+
<ImageView
android:id="@+id/search_divider"
android:src="@drawable/divider_launcher_holo"
@@ -139,7 +139,7 @@
android:paddingTop="@dimen/all_apps_button_vertical_padding"
android:paddingBottom="@dimen/all_apps_button_vertical_padding"
android:background="@drawable/button_bg"
-
+
android:gravity="center_horizontal|center_vertical"
android:textColor="#CCFFFFFF"
android:textSize="18sp"
@@ -159,7 +159,7 @@
android:layout_toLeftOf="@id/configure_button"
android:paddingTop="@dimen/toolbar_button_vertical_padding"
android:paddingBottom="@dimen/toolbar_button_vertical_padding"
- android:visibility="gone"/>
+ android:visibility="gone" />
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:text="@string/delete_zone_label_workspace"
@@ -189,7 +189,7 @@
<TabHost
android:id="@+id/customization_drawer"
android:layout_width="match_parent"
- android:layout_height="480dp"
+ android:layout_height="@dimen/customization_drawer_height"
android:layout_gravity="bottom">
<LinearLayout
android:orientation="vertical"
@@ -197,7 +197,7 @@
android:layout_height="match_parent">
<TabWidget
android:id="@android:id/tabs"
- android:layout_width="952dp"
+ android:layout_width="@dimen/customization_drawer_tab_widget_width"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/tab_unselected_holo"
@@ -205,7 +205,7 @@
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="@dimen/customization_drawer_content_height">
</FrameLayout>
</LinearLayout>
</TabHost>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fedb69c84..a62d4001e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -62,7 +62,7 @@
<string name="title_select_shortcut" msgid="2858897527672831763">"Tastenkürzel auswählen"</string>
<string name="title_select_application" msgid="8031072293115454221">"Anwendung auswählen"</string>
<string name="title_select_live_folder" msgid="3753447798805166749">"Ordner auswählen"</string>
- <string name="all_apps_button_label" msgid="2578400570124163469">"Anwendungen"</string>
+ <string name="all_apps_button_label" msgid="2578400570124163469">"Apps"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Startseite"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"Entfernen"</string>
<string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Deinstallieren"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index aadeeb366..7d3803527 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Carpetas"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Más"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Papeles tapiz"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Accesos directos a aplicaciones"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Accesos directos a aplicaciones"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ésta será la pestaña para los papeles tapiz"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Todos"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicaciones"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Juegos"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mis aplicaciones"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mis aplicaciones"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No se encontraron juegos."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"No has descargado ninguna aplicación."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"No se pudo colocar el elemento en esta pantalla principal"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 8777d8a10..11b9f2de3 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"پوشه ها"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"بیشتر"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"تصاویر زمینه"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"میانبرهای برنامه کاربردی"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"میانبرهای برنامه"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"این برگه تصاویر زمینه خواهد بود"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"همه"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"برنامه های کاربردی"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"بازی ها"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"برنامه های کاربردی من"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"برنامه های من"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"هیچ بازی پیدا نشد."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"شما هیچ برنامه کاربردی دانلود شده ای ندارید."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"نمی توان موردی در این صفحه اصلی انداخت"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4d2a049ea..7aee9f140 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Kansiot"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Lisää"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Taustakuvat"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Sovelluspikakuvakkeet"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Sovelluspikakuvakkeet"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Tämä on taustakuvavälilehti"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Kaikki"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Sovellukset"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Pelit"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Omat sovellukset"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Omat sovellukset"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ei pelejä."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Ei ladattuja sovelluksia."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kohdetta ei voi lisätä etusivulle"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f43bb5ee7..efcbc8a92 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Dossiers"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Plus"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Fonds d\'écran"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Raccourcis des applications"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Raccourcis applications"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Onglet des fonds d\'écran"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Toutes"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Applications"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jeux"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mes applications"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mes applications"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Aucun jeu n\'a été trouvé."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Vous n\'avez téléchargé aucune application."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Impossible de déposer l\'élément sur l\'écran d\'accueil."</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 6fa7f3ad8..848f53909 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mape"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Više"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Pozadinske slike"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Prečaci aplikacija"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Prečaci aplikacija"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ovo će biti kartica pozadinske slike"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Sve"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikacije"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Igre"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikacije"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikacije"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Igre nisu pronađene."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Nemate preuzetih aplikacija"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nije bilo moguće spustiti stavku na početni zaslon"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e310903ab..81be5a73c 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mappák"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Egyebek"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Háttérképek"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Alkalmazás-parancsikonok"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Alkalmazás-parancsikonok"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ez lesz a háttérképek lapja"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Összes"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Alkalmazások"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Játékok"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Saját alkalmazások"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Saját alkalmazások"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nincsenek játékok."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Nincsenek letöltött alkalmazásai."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nem lehet elhelyezni az elemet ezen a főoldalon"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index af3eff2d4..4abe037a1 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Map"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Lainnya"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Wallpaper"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Pintasan App"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Pintasan apl"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ini akan menjadi tab wallpaper"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Semua"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Permainan"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Apl Saya"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Apl saya"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Tidak ditemukan permainan."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Anda tidak memiliki aplikasi yang diunduh."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Tidak dapat menaruh item pada layar utama ini"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index e050219ef..fc95c18dc 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Cartelle"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Altro"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Sfondi"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Scorciatoie applicazioni"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Scorciatoie applicazioni"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Questa sarà la scheda degli sfondi"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Tutte"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Applicazioni"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Giochi"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Le mie applicazioni"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Le mie applicazioni"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nessun gioco trovato."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Non hai applicazioni scaricate."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Impossibile rilasciare elemento in schermata Home"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index cf38fc041..8eaa4331f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"תיקיות"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"עוד"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"טפטים"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"קיצורי דרך של יישומים"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"קיצורי דרך של יישומים"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"זו תהיה כרטיסיית הטפטים"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"הכל"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"יישומים"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"משחקים"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"היישומים שלי"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"היישומים שלי"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"לא נמצאו משחקים."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"לא הורדת יישומים."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"אין אפשרות להניח פריט במסך בית זה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index bfc7d0389..026423230 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"フォルダ"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"その他"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"壁紙"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"アプリのショートカット"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"アプリのショートカット"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"ここが壁紙タブになります"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"すべて"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"アプリ"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"ゲーム"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"マイアプリ"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"マイアプリ"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"ゲームなし"</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"ダウンロードしたアプリケーションはありません。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"このホーム画面にアイテムをドロップできませんでした"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c38663638..d8c8caf8e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"폴더"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"더보기"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"배경화면"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"앱 바로가기"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"앱 바로가기"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"배경화면 탭이 됩니다."</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"모두"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"애플리케이션"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"게임"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"내 애플리케이션"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"내 애플리케이션"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"게임이 없습니다."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"다운로드한 애플리케이션이 없습니다."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"홈 화면에 항목을 드롭할 수 없습니다."</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 413b29b3c..98817fd42 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Aplankai"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Daugiau"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Darbalaukio fonai"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Spartieji programos klavišai"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Spartieji programos klavišai"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Tai bus darbalaukio fonų skirtukas"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Visos"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Žaidimai"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mano programos"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mano programos"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nerasta žaidimų."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Neturite atsisiųstų programų."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nepavyko pašalinti elemento šiame pagr. ekrane"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index b6bdf2581..fec6492ef 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mapes"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Vairāk"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Fona tapetes"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Lietotnes saīsnes"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Lietotņu saīsnes"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Šī būs fona tapetes cilne"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Visas"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Lietotnes"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spēles"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Manas lietotnes"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Manas lietotnes"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nav nevienas spēles."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Nav ielādēta neviena lietojumprogramma."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nevarēja nomest vienumu šajā sākumekrānā."</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 186f01f1b..2cbde3068 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mapper"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mer"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Bakgrunner"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Programsnarveier"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Programsnarveier"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Dette er nå bakgrunnsfanen"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Alle"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Programmer"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spill"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Programmer"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mine programmer"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Finner ingen spill."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Du har ingen nedlastede programmer."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kunne ikke slippe elementet på denne startskjermen"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index a3ad199b5..224e4f027 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -25,18 +25,18 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"Achtergrond selecteren in"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"Achtergrond instellen"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"Achtergronden"</string>
- <string name="activity_not_found" msgid="5591731020063337696">"De toepassing is niet geïnstalleerd."</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"De app is niet geïnstalleerd."</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"Configureren..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"Widgets"</string>
<string name="folders_tab_label" msgid="1145293785541489736">"Mappen"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Meer"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Achtergronden"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Toepassingssnelkoppelingen"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Toepassingssnelkoppelingen"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Dit wordt het tabblad \'Achtergronden\'"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Alle"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Toepassingen"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Games"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mijn toepassingen"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mijn toepassingen"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Geen games gevonden."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"U heeft geen gedownloade toepassingen."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kan item niet neerzetten op dit startscherm"</string>
@@ -60,7 +60,7 @@
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Snelkoppeling \'<xliff:g id="NAME">%s</xliff:g>\' is verwijderd."</string>
<string name="shortcut_duplicate" msgid="4757756326465060694">"Snelkoppeling \'<xliff:g id="NAME">%s</xliff:g>\' bestaat al."</string>
<string name="title_select_shortcut" msgid="2858897527672831763">"Snelkoppeling selecteren"</string>
- <string name="title_select_application" msgid="8031072293115454221">"Toepassing selecteren"</string>
+ <string name="title_select_application" msgid="8031072293115454221">"App selecteren"</string>
<string name="title_select_live_folder" msgid="3753447798805166749">"Map selecteren"</string>
<string name="all_apps_button_label" msgid="2578400570124163469">"Toepassingen"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Startpagina"</string>
@@ -73,20 +73,20 @@
<string name="menu_notifications" msgid="6424587053194766192">"Meldingen"</string>
<string name="menu_gestures" msgid="514678675575912237">"Gebaren"</string>
<string name="menu_settings" msgid="6233960148378443661">"Instellingen"</string>
- <string name="cab_menu_delete_app" msgid="1242619904941293871">"Toepassing verwijderen"</string>
+ <string name="cab_menu_delete_app" msgid="1242619904941293871">"App verwijderen"</string>
<string name="cab_menu_app_info" msgid="5180426909324882018">"Toepassingsdetails"</string>
- <string name="cab_app_selection_text" msgid="606113924828167756">"1 toepassing geselecteerd"</string>
+ <string name="cab_app_selection_text" msgid="606113924828167756">"1 app geselecteerd"</string>
<string name="cab_widget_selection_text" msgid="962527270506951955">"1 widget geselecteerd"</string>
<string name="cab_folder_selection_text" msgid="8916111874189565067">"1 map geselecteerd"</string>
<string name="cab_shortcut_selection_text" msgid="8115847384500412878">"1 snelkoppeling geselecteerd"</string>
<string name="permlab_install_shortcut" msgid="1201690825493376489">"snelkoppelingen installeren"</string>
- <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Een toepassing toestaan om snelkoppelingen toe te voegen zonder tussenkomst van de gebruiker."</string>
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Een app toestaan snelkoppelingen toe te voegen zonder tussenkomst van de gebruiker."</string>
<string name="permlab_uninstall_shortcut" msgid="7696645932555926449">"snelkoppelingen verwijderen"</string>
- <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Een toepassing toestaan om snelkoppelingen te verwijderen zonder tussenkomst van de gebruiker."</string>
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Een app toestaan snelkoppelingen te verwijderen zonder tussenkomst van de gebruiker."</string>
<string name="permlab_read_settings" msgid="3452408290738106747">"instellingen en snelkoppelingen voor de startpagina lezen"</string>
- <string name="permdesc_read_settings" msgid="8377434937176025492">"Hiermee kan een toepassing de instellingen en snelkoppelingen op de startpagina lezen."</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"Hiermee kan een app de instellingen en snelkoppelingen op de startpagina lezen."</string>
<string name="permlab_write_settings" msgid="1360567537236705628">"instellingen en snelkoppelingen voor de startpagina schrijven"</string>
- <string name="permdesc_write_settings" msgid="1098648778383349818">"Hiermee kan een toepassing de instellingen en snelkoppelingen op de startpagina wijzigen."</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"Hiermee kan een app de instellingen en snelkoppelingen op de startpagina wijzigen."</string>
<string name="gadget_error_text" msgid="8359351016167075858">"Probleem bij het laden van widget"</string>
<string name="uninstall_system_app_text" msgid="7488523163288397451">"Dit is een systeemtoepassing die niet kan worden verwijderd."</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 8a21cba50..b457e5638 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Foldery"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Więcej"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Tapety"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Skróty do aplikacji"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Skróty do aplikacji"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"To będzie karta tapet"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Wszystkie"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikacje"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Gry"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikacje"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikacje"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nie znaleziono gier."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Nie masz żadnych pobranych aplikacji."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nie można upuścić elementu na ekranie głównym"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5a59b39d2..931a8eabf 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Pastas"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mais"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Imagens de fundo"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Atalhos de aplicações"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Atalhos de aplicações"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Isto será o separador de imagens de fundo"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Todas"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicações"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jogos"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"As minhas aplicações"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"As minhas aplicações"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Sem jogos."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Não existem aplicações transferidas."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Não foi possível largar o item neste ecrã inicial"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2e6611eab..c4fb78a80 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Pastas"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mais"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Papéis de parede"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Atalhos de aplicativo"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Atalhos de aplicativo"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Esta será a guia de papéis de parede"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Todos"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicativos"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jogos"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Meus Aplicativos"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Meus aplicativos"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenhum jogo encontrado."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Você não tem nenhum aplicativo transferido."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Não foi possível soltar o item nesta tela inicial"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1abba7a67..7addc18a9 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Dosare"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mai multe"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Imagini de fundal"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Comenzi rapide aplicaţii"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Comenzi rapide aplicaţii"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Aceasta va fi fila pentru imagini de fundal"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Toate"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicaţii"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jocuri"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Aplicaţiile mele"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Aplicaţiile mele"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nu s-au găsit jocuri."</string>
- <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nu aveţi aplicaţii descărcate"</string>
+ <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nu aveţi aplicaţii descărcate."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Impos. de plasat elem. pe acest ecran de pornire"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Selectaţi obiectul widget"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nume dosar"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index a62dfa2ce..76ef1ffbf 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Папки"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Ещё"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Обои"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Ярлыки приложений"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Ярлыки приложений"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Это будет вкладка обоев"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Все"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Приложения"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Игры"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Мои приложения"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Мои приложения"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Игр не найдено."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"У вас нет загруженных приложений."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Не удается скопировать элемент на главный экран"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index ebdf13994..90cc9ebf8 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Priečinky"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Viac"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Tapety"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Odkazy aplikácií"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Odkazy aplikácií"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Toto bude karta Tapety"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Všetky"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikácie"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Hry"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikácie"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moje aplikácie"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenašli sa žiadne hry."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Nemáte žiadne prevzaté aplikácie."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Položku sa nepodarilo pretiahnuť na túto plochu"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 97a96a1d1..8ceeb87bb 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mape"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Več"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Ozadja"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Bližnjice do programov"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Bližnjice do programov"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"To bo zavihek ozadij"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Vse"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Programi"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Igre"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moji programi"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Moji programi"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ni najdenih iger."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Ni prenesenih programov."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Elementa ni bilo mogoče postaviti na ta začetni zaslon"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index fbeea6b69..5c8922738 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Директоријуми"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Још"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Позадине"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Пречице за апликације"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Пречице за апликације"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ово ће бити картица позадине"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Све"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Игре"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Моје апликације"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Моје апликације"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Нису пронађене игре."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Немате ниједну преузету апликацију."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Ставка није пребачена на овај почетни екран"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 9eb8df992..ad748857a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mappar"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mer"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Bakgrundsbilder"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Genvägar för appar"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Genvägar för appar"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Det här kommer att vara fliken för bakgrundsbilder"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Alla"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Appar"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spel"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Hämtade"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Mina appar"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Inga spel hittades."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Inga hämtade appar."</string>
+ <string name="all_apps_no_downloads" msgid="2284720393234453761">"Du har inte hämtat några appar."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Objektet kunde inte släppas på den här startsidan"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Välj en widget att skapa"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mappnamn"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index ee3b56304..0a19cbbe2 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"โฟลเดอร์"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"เพิ่มเติม"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"วอลเปเปอร์"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"ทางลัดของแอปพลิเคชัน"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"ทางลัดของแอปพลิเคชัน"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"นี่จะเป็นแท็บวอลเปเปอร์"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"ทั้งหมด"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"แอปพลิเคชัน"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"เกม"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"แอปพลิเคชันของฉัน"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"แอปพลิเคชันของฉัน"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"ไม่พบเกม"</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"คุณไม่ได้ดาวน์โหลดแอปพลิเคชันไว้"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"ไม่สามารถวางรายการลงในหน้าจอหลักนี้ได้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 67212cb9a..f131b0253 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mga Folder"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Higit pa"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Mga Wallpaper"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Mga Shortcut ng App"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Mga shortcut ng app"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Ito ang magiging tab ng mga wallpaper"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Lahat"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Mga Laro"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Aking Mga App"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Aking mga app"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Walang nakitang mga laro."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Wala kang mga na-download na application."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Hindi ma-drop ang item sa homescreen na ito"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 79e67c02b..13ff3e096 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Klasörler"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Diğer"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Duvar Kağıtları"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Uygulama Kısayolları"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Uygulama kısayolları"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Bu duvar kağıdı sekmesi olacaktır"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Tümü"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Uygulamalar"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Oyunlar"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Uygulamalarım"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Uygulamalarım"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Oyun bulunamadı."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"İndirilmiş uygulamanız yok."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Öğe bu ana ekrana bırakılamadı"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 55b39e1dd..2095bc997 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Папки"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Більше"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Фонові мал."</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Ярлики програм"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Ярлики програм"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"This will be the wallpapers tab"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Усі"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Програми"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Ігри"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Мої програми"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Мої програми"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ігор не знайдено."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"У вас немає завантажених програм."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Неможливо помістити елемент на цей головний екран"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 06a7a3f0f..8e5b4c36f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Thư mục"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Khác"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Hình nền"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"Lối tắt ứng dụng"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"Lối tắt ứng dụng"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Đây sẽ là tab hình nền"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Tất cả"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Ứng dụng"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Trò chơi"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"ƯD của tôi"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Ứng dụng của tôi"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Không tìm thấy trò chơi."</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"Bạn không có ứng dụng nào được tải xuống."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Không thể thả mục vào màn hình chính này"</string>
diff --git a/res/values-xlarge-land/dimens.xml b/res/values-xlarge-land/dimens.xml
index 51037f5b0..b3d40d584 100644
--- a/res/values-xlarge-land/dimens.xml
+++ b/res/values-xlarge-land/dimens.xml
@@ -22,4 +22,11 @@
<!-- Width/height gap overrides for the workspace -->
<dimen name="workspace_width_gap">32dp</dimen>
<dimen name="workspace_height_gap">2dp</dimen>
+
+ <dimen name="workspace_page_spacing">50dp</dimen>
+
+ <dimen name="customization_drawer_height">480dp</dimen>
+ <dimen name="customization_drawer_content_height">420dp</dimen>
+ <dimen name="customization_drawer_content_min_width">952dp</dimen>
+ <dimen name="customization_drawer_tab_widget_width">952dp</dimen>
</resources> \ No newline at end of file
diff --git a/res/values-xlarge-port/dimens.xml b/res/values-xlarge-port/dimens.xml
index baa31aace..8a4c78bc7 100644
--- a/res/values-xlarge-port/dimens.xml
+++ b/res/values-xlarge-port/dimens.xml
@@ -22,4 +22,11 @@
<!-- Width/height gap overrides for the workspace -->
<dimen name="workspace_width_gap">0dp</dimen>
<dimen name="workspace_height_gap">32dp</dimen>
+
+ <dimen name="workspace_page_spacing">64dp</dimen>
+
+ <dimen name="customization_drawer_height">800dp</dimen>
+ <dimen name="customization_drawer_content_height">420dp</dimen>
+ <dimen name="customization_drawer_content_min_width">640dp</dimen>
+ <dimen name="customization_drawer_tab_widget_width">700dp</dimen>
</resources> \ No newline at end of file
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index c4988e42e..421c9e389 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -37,11 +37,6 @@
<dimen name="allAppsSmallScreenVerticalMarginLandscape">30dip</dimen>
<dimen name="allAppsSmallScreenVerticalMarginPortrait">60dip</dimen>
- <!-- Vertical spacing between edge of screen and mini cell layouts when they
- are minimized to the top when the customization drawer is showing -->
- <dimen name="customizeSmallScreenVerticalMarginLandscape">90dip</dimen>
- <dimen name="customizeSmallScreenVerticalMarginPortrait">180dip</dimen>
-
<dimen name="delete_zone_drawable_padding">8dip</dimen>
<dimen name="all_apps_button_drawable_padding">0dip</dimen>
<dimen name="all_apps_button_vertical_padding">4dip</dimen>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 98ed69d80..cd840c3e0 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"文件夹"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"更多"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"壁纸"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"应用程序快捷方式"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"应用程序快捷方式"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"这将会成为壁纸标签"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"全部"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"应用程序"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"游戏"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"我的应用程序"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"我的应用程序"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"未找到游戏。"</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"您没有下载任何应用程序。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"无法将该项放到主屏幕上"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 3ddfbe862..0622dde18 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -31,12 +31,12 @@
<string name="folders_tab_label" msgid="1145293785541489736">"資料夾"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"更多選項"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"桌布"</string>
- <!-- outdated translation 9046797126882613707 --> <string name="applications_tab_label" msgid="2991364240020736760">"應用程式捷徑"</string>
+ <string name="applications_tab_label" msgid="2991364240020736760">"應用程式捷徑"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"桌布標籤保留位"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"全部"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"應用程式"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"遊戲"</string>
- <!-- outdated translation 3335316755603669951 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"我的應用程式"</string>
+ <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"我的應用程式"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"找不到遊戲。"</string>
<string name="all_apps_no_downloads" msgid="2284720393234453761">"您沒有下載任何應用程式。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"無法將項目拖放至主螢幕上"</string>
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java
index 66d939589..a9423be1f 100644
--- a/src/com/android/launcher2/AllApps2D.java
+++ b/src/com/android/launcher2/AllApps2D.java
@@ -211,7 +211,7 @@ public class AllApps2D
}
@Override
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
}
/**
diff --git a/src/com/android/launcher2/AllApps3D.java b/src/com/android/launcher2/AllApps3D.java
index 2ecf761fd..29f49afc2 100644
--- a/src/com/android/launcher2/AllApps3D.java
+++ b/src/com/android/launcher2/AllApps3D.java
@@ -685,16 +685,14 @@ public class AllApps3D extends RSSurfaceView
&& mCurrentIconIndex >= 0 && mCurrentIconIndex < mAllAppsList.size()) {
ApplicationInfo app = mAllAppsList.get(mCurrentIconIndex);
- Bitmap bmp = app.iconBitmap;
- final int w = bmp.getWidth();
- final int h = bmp.getHeight();
+ final Bitmap bmp = app.iconBitmap;
// We don't really have an accurate location to use. This will do.
- int screenX = mMotionDownRawX - (w / 2);
- int screenY = mMotionDownRawY - h;
+ int screenX = mMotionDownRawX - (bmp.getWidth() / 2);
+ int screenY = mMotionDownRawY - bmp.getHeight();
- mDragController.startDrag(bmp, screenX, screenY,
- 0, 0, w, h, this, app, DragController.DRAG_ACTION_COPY);
+ mDragController.startDrag(
+ bmp, screenX, screenY, this, app, DragController.DRAG_ACTION_COPY);
mLauncher.closeAllApps(true);
}
@@ -748,7 +746,7 @@ public class AllApps3D extends RSSurfaceView
}
@Override
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
}
/**
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 1e4821aa8..bfe6ec171 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -79,6 +79,8 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All
mCellCountX = a.getInt(R.styleable.PagedView_cellCountX, 6);
mCellCountY = a.getInt(R.styleable.PagedView_cellCountY, 4);
mInflater = LayoutInflater.from(context);
+ mApps = new ArrayList<ApplicationInfo>();
+ mFilteredApps = new ArrayList<ApplicationInfo>();
a.recycle();
setSoundEffectsEnabled(false);
@@ -282,7 +284,7 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All
}
@Override
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
// close the choice action mode if we have a proper drop
if (target != this) {
endChoiceMode();
@@ -390,12 +392,14 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All
}
private int findAppByComponent(ArrayList<ApplicationInfo> list, ApplicationInfo item) {
- ComponentName removeComponent = item.intent.getComponent();
- final int length = list.size();
- for (int i = 0; i < length; ++i) {
- ApplicationInfo info = list.get(i);
- if (info.intent.getComponent().equals(removeComponent)) {
- return i;
+ if (item != null && item.intent != null) {
+ ComponentName removeComponent = item.intent.getComponent();
+ final int length = list.size();
+ for (int i = 0; i < length; ++i) {
+ ApplicationInfo info = list.get(i);
+ if (info.intent.getComponent().equals(removeComponent)) {
+ return i;
+ }
}
}
return -1;
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index 3ef054637..203883eb5 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -128,8 +128,11 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca
private void invalidatePressedOrFocusedBackground() {
int padding = HolographicOutlineHelper.MAX_OUTER_BLUR_RADIUS / 2;
- ((View)getParent()).invalidate(getLeft() - padding, getTop() - padding,
- getRight() + padding, getBottom() + padding);
+ View parent = (View) getParent();
+ if (parent != null) {
+ parent.invalidate(getLeft() - padding, getTop() - padding,
+ getRight() + padding, getBottom() + padding);
+ }
invalidate();
}
diff --git a/src/com/android/launcher2/CellLayoutChildren.java b/src/com/android/launcher2/CellLayoutChildren.java
index 2a08fe382..9a0d77276 100644
--- a/src/com/android/launcher2/CellLayoutChildren.java
+++ b/src/com/android/launcher2/CellLayoutChildren.java
@@ -47,9 +47,6 @@ public class CellLayoutChildren extends ViewGroup {
super(context);
mWallpaperManager = WallpaperManager.getInstance(context);
setLayerType(LAYER_TYPE_HARDWARE, null);
-
- // Disable multitouch for the workspace
- setMotionEventSplittingEnabled(false);
}
public void setCellDimensions(int cellWidth, int cellHeight,
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 93e1394af..e80eda3a7 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -38,8 +38,10 @@ import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.Bitmap;
-import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.Bitmap.Config;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
@@ -53,7 +55,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.DecelerateInterpolator;
-import android.view.animation.Interpolator;
+import android.view.animation.LinearInterpolator;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -89,6 +91,10 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
// The mapping between the pages and the widgets that will be laid out on them
private ArrayList<ArrayList<AppWidgetProviderInfo>> mWidgetPages;
+ // This is used if we want to set a min width on pages so that things inside them left align to
+ // a fixed size
+ private int mMinPageWidth;
+
// The max dimensions for the ImageView we use for displaying a widget
private int mMaxWidgetWidth;
@@ -120,9 +126,19 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
private final float mTmpFloatPos[] = new float[2];
private final float ANIMATION_SCALE = 0.5f;
- private final int ANIMATION_DURATION = 400;
+
+ // The duration of the translation animation that occurs during you drag and drop
+ private final int TRANSLATE_ANIM_DURATION = 400;
+
+ // The duration of the scale & alpha animation that occurs during drag and drop
+ private final int DROP_ANIM_DURATION = 200;
+
private TimeInterpolator mQuintEaseOutInterpolator = new DecelerateInterpolator(2.5f);
- private ScaleAlphaInterpolator mScaleAlphaInterpolator = new ScaleAlphaInterpolator();
+
+ // The Bitmap used to generate the drag view
+ private Bitmap mDragBitmap;
+
+ private int[] mDragViewOrigin = new int[2];
public CustomizePagedView(Context context) {
this(context, null, 0);
@@ -154,6 +170,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
final Resources r = context.getResources();
setDragSlopeThreshold(
r.getInteger(R.integer.config_customizationDrawerDragSlopeThreshold) / 100.0f);
+ mMinPageWidth = r.getDimensionPixelSize(R.dimen.customization_drawer_content_min_width);
setVisibility(View.GONE);
setSoundEffectsEnabled(false);
@@ -324,38 +341,60 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
return mCustomizationType;
}
- @Override
- public void onDropCompleted(View target, boolean success) {
- resetCheckedGrandchildren();
+ /**
+ * Similar to resetCheckedGrandchildren, but allows us to specify that it's not animated.
+ */
+ private void resetCheckedItem(boolean animated) {
+ final Checkable checkable = getSingleCheckedGrandchild();
+ if (checkable != null) {
+ if (checkable instanceof PagedViewWidget) {
+ ((PagedViewWidget) checkable).setChecked(false, animated);
+ } else {
+ ((PagedViewIcon) checkable).setChecked(false, animated);
+ }
+ }
+ }
+
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
+ final DragLayer dragLayer = (DragLayer) mLauncher.findViewById(R.id.drag_layer);
+
+ // Create a view, identical to the drag view, that is only used for animating the
+ // item onto the home screen (or back to its original position, if the drop failed).
+ final int[] pos = mDragController.getDragView().getPosition(null);
+ final View animView = dragLayer.createDragView(mDragBitmap, pos[0], pos[1]);
+ animView.setVisibility(View.VISIBLE);
+
+ if (success) {
+ resetCheckedItem(true);
+ animateDropOntoScreen(animView, (ItemInfo) dragInfo, DROP_ANIM_DURATION, 0);
+ } else {
+ // Animate the icon/widget back to its original position
+ animateIntoPosition(animView, mDragViewOrigin[0], mDragViewOrigin[1], new Runnable() {
+ public void run() {
+ resetCheckedItem(false);
+ dragLayer.removeView(animView);
+ }
+ });
+ }
mLauncher.getWorkspace().onDragStopped(success);
mLauncher.unlockScreenOrientation();
+ mDragBitmap = null;
}
@Override
public void onDragViewVisible() {
}
- class ScaleAlphaInterpolator implements Interpolator {
- public float getInterpolation(float input) {
- float pivot = 0.5f;
- if (input < pivot) {
- return 0;
- } else {
- return (input - pivot)/(1 - pivot);
- }
- }
- }
-
+ /**
+ * Animates the given item onto the center of a home screen, and then scales the item to
+ * look as though it's disappearing onto that screen.
+ */
private void animateItemOntoScreen(View dragView,
final CellLayout layout, final ItemInfo info) {
mTmpFloatPos[0] = layout.getWidth() / 2;
mTmpFloatPos[1] = layout.getHeight() / 2;
mLauncher.getWorkspace().mapPointFromChildToSelf(layout, mTmpFloatPos);
- final DragLayer dragLayer = (DragLayer) mLauncher.findViewById(R.id.drag_layer);
- final View dragCopy = dragLayer.createDragView(dragView);
- dragCopy.setAlpha(1.0f);
-
int dragViewWidth = dragView.getMeasuredWidth();
int dragViewHeight = dragView.getMeasuredHeight();
float heightOffset = 0;
@@ -374,37 +413,69 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
widthOffset = ANIMATION_SCALE * (dragViewWidth - f * width) / 2;
}
}
+ final float toX = mTmpFloatPos[0] - dragView.getMeasuredWidth() / 2 + widthOffset;
+ final float toY = mTmpFloatPos[1] - dragView.getMeasuredHeight() / 2 + heightOffset;
- float toX = mTmpFloatPos[0] - dragView.getMeasuredWidth() / 2 + widthOffset;
- float toY = mTmpFloatPos[1] - dragView.getMeasuredHeight() / 2 + heightOffset;
+ final DragLayer dragLayer = (DragLayer) mLauncher.findViewById(R.id.drag_layer);
+ final View dragCopy = dragLayer.createDragView(dragView);
+ dragCopy.setAlpha(1.0f);
- ObjectAnimator posAnim = ObjectAnimator.ofPropertyValuesHolder(dragCopy,
- PropertyValuesHolder.ofFloat("x", toX),
- PropertyValuesHolder.ofFloat("y", toY));
- posAnim.setInterpolator(mQuintEaseOutInterpolator);
- posAnim.setDuration(ANIMATION_DURATION);
+ // Translate the item to the center of the appropriate home screen
+ animateIntoPosition(dragCopy, toX, toY, null);
- posAnim.addListener(new AnimatorListenerAdapter() {
- public void onAnimationEnd(Animator animation) {
- dragLayer.removeView(dragCopy);
- mLauncher.addExternalItemToScreen(info, layout);
- post(new Runnable() {
- public void run() {
- layout.animateDrop();
- }
- });
- }
- });
+ // The drop-onto-screen animation begins a bit later, but ends at the same time.
+ final int startDelay = TRANSLATE_ANIM_DURATION - DROP_ANIM_DURATION;
+
+ // Scale down the icon and fade out the alpha
+ animateDropOntoScreen(dragCopy, info, DROP_ANIM_DURATION, startDelay);
+ }
- ObjectAnimator scaleAlphaAnim = ObjectAnimator.ofPropertyValuesHolder(dragCopy,
+ /**
+ * Animation which scales the view down and animates its alpha, making it appear to disappear
+ * onto a home screen.
+ */
+ private void animateDropOntoScreen(
+ final View view, final ItemInfo info, int duration, int delay) {
+ final DragLayer dragLayer = (DragLayer) mLauncher.findViewById(R.id.drag_layer);
+ final CellLayout layout = mLauncher.getWorkspace().getCurrentDropLayout();
+
+ ObjectAnimator anim = ObjectAnimator.ofPropertyValuesHolder(view,
PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f),
PropertyValuesHolder.ofFloat("scaleX", ANIMATION_SCALE),
PropertyValuesHolder.ofFloat("scaleY", ANIMATION_SCALE));
- scaleAlphaAnim.setInterpolator(mScaleAlphaInterpolator);
- scaleAlphaAnim.setDuration(ANIMATION_DURATION);
+ anim.setInterpolator(new LinearInterpolator());
+ if (delay > 0) {
+ anim.setStartDelay(delay);
+ }
+ anim.setDuration(duration);
+ anim.addListener(new AnimatorListenerAdapter() {
+ public void onAnimationEnd(Animator animation) {
+ dragLayer.removeView(view);
+ mLauncher.addExternalItemToScreen(info, layout);
+ }
+ });
+ anim.start();
+ }
- posAnim.start();
- scaleAlphaAnim.start();
+ /**
+ * Animates the x,y position of the view, and optionally execute a Runnable on animation end.
+ */
+ private void animateIntoPosition(
+ View view, float toX, float toY, final Runnable endRunnable) {
+ ObjectAnimator anim = ObjectAnimator.ofPropertyValuesHolder(view,
+ PropertyValuesHolder.ofFloat("x", toX),
+ PropertyValuesHolder.ofFloat("y", toY));
+ anim.setInterpolator(mQuintEaseOutInterpolator);
+ anim.setDuration(TRANSLATE_ANIM_DURATION);
+ if (endRunnable != null) {
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ endRunnable.run();
+ }
+ });
+ }
+ anim.start();
}
@Override
@@ -479,11 +550,12 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
}
}
- Bitmap drawableToBitmap(Drawable d) {
- int w = d.getIntrinsicWidth();
- int h = d.getIntrinsicHeight();
+ private Bitmap drawableToBitmap(Drawable d, float scaleX, float scaleY) {
+ final Rect bounds = d.getBounds();
+ final int w = bounds.width();
+ final int h = bounds.height();
Bitmap b = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
- renderDrawableToBitmap(d, b, 0, 0, w, h);
+ renderDrawableToBitmap(d, b, 0, 0, w, h, scaleX, scaleY);
return b;
}
@@ -500,6 +572,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
if (isChoiceMode(CHOICE_MODE_SINGLE)) {
endChoiceMode();
}
+ final Workspace workspace = mLauncher.getWorkspace();
boolean result = false;
mLauncher.lockScreenOrientation();
switch (mCustomizationType) {
@@ -508,50 +581,50 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
// Get the widget preview as the drag representation
final LinearLayout l = (LinearLayout) v;
final ImageView i = (ImageView) l.findViewById(R.id.widget_preview);
- Bitmap b = drawableToBitmap(i.getDrawable());
+
+ // Calculate how much to scale the drag preview
+ RectF tmpScaleRect = new RectF(0,0,1,1);
+ i.getImageMatrix().mapRect(tmpScaleRect);
+
+ mDragBitmap = drawableToBitmap(i.getDrawable(), tmpScaleRect.right,
+ tmpScaleRect.bottom);
+ i.getLocationOnScreen(mDragViewOrigin);
PendingAddWidgetInfo createWidgetInfo = (PendingAddWidgetInfo) v.getTag();
- int[] spanXY = CellLayout.rectToCell(
- getResources(), createWidgetInfo.minWidth, createWidgetInfo.minHeight, null);
+ int[] spanXY = CellLayout.rectToCell(getResources(),
+ createWidgetInfo.minWidth, createWidgetInfo.minHeight, null);
createWidgetInfo.spanX = spanXY[0];
createWidgetInfo.spanY = spanXY[1];
- mLauncher.getWorkspace().onDragStartedWithItemSpans(spanXY[0], spanXY[1], b);
- mDragController.startDrag(
- i, b, this, createWidgetInfo, DragController.DRAG_ACTION_COPY, null);
- b.recycle();
- result = true;
- }
- break;
- }
- case ShortcutCustomization: {
- if (v instanceof PagedViewIcon) {
- // get icon (top compound drawable, index is 1)
- final TextView tv = (TextView) v;
- final Drawable icon = tv.getCompoundDrawables()[1];
- Bitmap b = drawableToBitmap(icon);
- PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag();
-
- mLauncher.getWorkspace().onDragStartedWithItemSpans(1, 1, b);
- mDragController.startDrag(v, b, this, createItemInfo, DragController.DRAG_ACTION_COPY,
- null);
- b.recycle();
+ workspace.onDragStartedWithItemSpans(spanXY[0], spanXY[1], mDragBitmap);
+ mDragController.startDrag(i, mDragBitmap, this, createWidgetInfo,
+ DragController.DRAG_ACTION_COPY, null);
result = true;
}
break;
}
+ case ShortcutCustomization:
case ApplicationCustomization: {
if (v instanceof PagedViewIcon) {
- // Pick up the application for dropping
// get icon (top compound drawable, index is 1)
final TextView tv = (TextView) v;
final Drawable icon = tv.getCompoundDrawables()[1];
- Bitmap b = drawableToBitmap(icon);
- ApplicationInfo app = (ApplicationInfo) v.getTag();
- app = new ApplicationInfo(app);
+ mDragBitmap = drawableToBitmap(icon, 1.0f, 1.0f);
+
+ Object dragInfo = v.getTag();
+ if (mCustomizationType == CustomizationType.ApplicationCustomization) {
+ // TODO: Not sure why we have to copy this
+ dragInfo = new ApplicationInfo((ApplicationInfo) dragInfo);
+ }
+ workspace.onDragStartedWithItemSpans(1, 1, mDragBitmap);
- mLauncher.getWorkspace().onDragStartedWithItemSpans(1, 1, b);
- mDragController.startDrag(v, b, this, app, DragController.DRAG_ACTION_COPY, null);
- b.recycle();
+ // Calculate where to place the drag view in order to align the icon pixels with
+ // the original view.
+ v.getLocationOnScreen(mDragViewOrigin);
+ mDragViewOrigin[0] += (v.getWidth() - icon.getIntrinsicWidth()) / 2;
+ mDragViewOrigin[1] += v.getPaddingTop();
+
+ mDragController.startDrag(mDragBitmap, mDragViewOrigin[0], mDragViewOrigin[1],
+ this, dragInfo, DragController.DRAG_ACTION_COPY);
result = true;
}
break;
@@ -618,11 +691,15 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
/**
* Helper function to draw a drawable to the specified canvas with the specified bounds.
*/
- private void renderDrawableToBitmap(Drawable d, Bitmap bitmap, int x, int y, int w, int h) {
+ private void renderDrawableToBitmap(Drawable d, Bitmap bitmap, int x, int y, int w, int h,
+ float scaleX, float scaleY) {
if (bitmap != null) mCanvas.setBitmap(bitmap);
mCanvas.save();
- d.setBounds(x, y, x+w, y+h);
+ mCanvas.scale(scaleX, scaleY);
+ final Rect oldBounds = d.copyBounds();
+ d.setBounds(x, y, x + w, y + h);
d.draw(mCanvas);
+ d.setBounds(oldBounds); // Restore the bounds
mCanvas.restore();
}
@@ -705,7 +782,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
background = resources.getDrawable(R.drawable.default_widget_preview);
}
- renderDrawableToBitmap(background, bitmap, 0, 0, width, height);
+ renderDrawableToBitmap(background, bitmap, 0, 0, width, height, 1.0f, 1.0f);
// If we don't have a custom icon, we use the app icon on the default background
if (!foundCustomDrawable) {
@@ -717,7 +794,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
final int iconSize = minDim / 2;
final int offset = iconSize / 4;
- renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize);
+ renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize, 1.0f, 1.0f);
} catch (Resources.NotFoundException e) {
// if we can't find the icon, then just don't draw it
}
@@ -757,7 +834,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
int height = (int) (Math.max(minDim, Math.min(maxDim, info.minHeight)) * sScaleFactor);
final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
final Drawable background = resources.getDrawable(R.drawable.default_widget_preview);
- renderDrawableToBitmap(background, bitmap, 0, 0, width, height);
+ renderDrawableToBitmap(background, bitmap, 0, 0, width, height, 1.0f, 1.0f);
// Draw the icon flush left
try {
@@ -771,7 +848,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
final int iconSize = minDim / 2;
final int offset = iconSize / 4;
- renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize);
+ renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize, 1.0f, 1.0f);
} catch (Resources.NotFoundException e) {
// if we can't find the icon, then just don't draw it
}
@@ -797,7 +874,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
}
final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
- renderDrawableToBitmap(drawable, bitmap, 0, 0, width, height);
+ renderDrawableToBitmap(drawable, bitmap, 0, 0, width, height, 1.0f, 1.0f);
newDrawable = new FastBitmapDrawable(bitmap);
}
@@ -854,6 +931,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
PagedViewWidget l = (PagedViewWidget) mInflater.inflate(
R.layout.customize_paged_view_widget, layout, false);
+
l.applyFromAppWidgetProviderInfo(info, icon, mMaxWidgetWidth, cellSpans,
mPageViewIconCache, (numPages > 1));
l.setTag(createItemInfo);
@@ -1009,10 +1087,12 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
@Override
public void syncPages() {
+ boolean enforceMinimumPagedWidths = false;
boolean centerPagedViewCellLayouts = false;
switch (mCustomizationType) {
case WidgetCustomization:
syncWidgetPages();
+ enforceMinimumPagedWidths = true;
break;
case ShortcutCustomization:
syncListPages(mShortcutList);
@@ -1020,6 +1100,7 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
break;
case WallpaperCustomization:
syncWallpaperPages();
+ enforceMinimumPagedWidths = true;
break;
case ApplicationCustomization:
syncAppPages();
@@ -1045,8 +1126,20 @@ public class CustomizePagedView extends PagedViewWithDraggableItems
}
}
- // bound the current page
- setCurrentPage(Math.max(0, Math.min(childCount - 1, getCurrentPage())));
+ // Set a min page width for PagedView layout if we have more than a single page
+ if (enforceMinimumPagedWidths) {
+ setMinimumWidthOverride((childCount > 1) ? mMinPageWidth : 0);
+ }
+
+ // Bound the current page index
+ requestLayout();
+ post(new Runnable() {
+ @Override
+ public void run() {
+ setCurrentPage(Math.max(0, Math.min(childCount - 1, getCurrentPage())));
+ forceUpdateAdjacentPagesAlpha();
+ }
+ });
}
@Override
diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java
index 45b359dc5..e54669718 100644
--- a/src/com/android/launcher2/DragController.java
+++ b/src/com/android/launcher2/DragController.java
@@ -205,9 +205,7 @@ public class DragController {
int screenX = loc[0];
int screenY = loc[1];
- startDrag(b, screenX, screenY, 0, 0, b.getWidth(), b.getHeight(),
- source, dragInfo, dragAction, dragRegion);
-
+ startDrag(b, screenX, screenY, source, dragInfo, dragAction, dragRegion);
b.recycle();
if (dragAction == DRAG_ACTION_MOVE) {
@@ -236,8 +234,7 @@ public class DragController {
int screenX = loc[0];
int screenY = loc[1];
- startDrag(bmp, screenX, screenY, 0, 0, bmp.getWidth(), bmp.getHeight(),
- source, dragInfo, dragAction, dragRegion);
+ startDrag(bmp, screenX, screenY, source, dragInfo, dragAction, dragRegion);
if (dragAction == DRAG_ACTION_MOVE) {
v.setVisibility(View.GONE);
@@ -251,20 +248,14 @@ public class DragController {
* enlarged size.
* @param screenX The x position on screen of the left-top of the bitmap.
* @param screenY The y position on screen of the left-top of the bitmap.
- * @param textureLeft The left edge of the region inside b to use.
- * @param textureTop The top edge of the region inside b to use.
- * @param textureWidth The width of the region inside b to use.
- * @param textureHeight The height of the region inside b to use.
* @param source An object representing where the drag originated
* @param dragInfo The data associated with the object that is being dragged
* @param dragAction The drag action: either {@link #DRAG_ACTION_MOVE} or
* {@link #DRAG_ACTION_COPY}
*/
public void startDrag(Bitmap b, int screenX, int screenY,
- int textureLeft, int textureTop, int textureWidth, int textureHeight,
DragSource source, Object dragInfo, int dragAction) {
- startDrag(b, screenX, screenY, textureLeft, textureTop, textureWidth, textureHeight,
- source, dragInfo, dragAction, null);
+ startDrag(b, screenX, screenY, source, dragInfo, dragAction, null);
}
/**
@@ -274,10 +265,6 @@ public class DragController {
* enlarged size.
* @param screenX The x position on screen of the left-top of the bitmap.
* @param screenY The y position on screen of the left-top of the bitmap.
- * @param textureLeft The left edge of the region inside b to use.
- * @param textureTop The top edge of the region inside b to use.
- * @param textureWidth The width of the region inside b to use.
- * @param textureHeight The height of the region inside b to use.
* @param source An object representing where the drag originated
* @param dragInfo The data associated with the object that is being dragged
* @param dragAction The drag action: either {@link #DRAG_ACTION_MOVE} or
@@ -286,7 +273,6 @@ public class DragController {
* Makes dragging feel more precise, e.g. you can clip out a transparent border
*/
public void startDrag(Bitmap b, int screenX, int screenY,
- int textureLeft, int textureTop, int textureWidth, int textureHeight,
DragSource source, Object dragInfo, int dragAction, Rect dragRegion) {
if (PROFILE_DRAWING_DURING_DRAG) {
android.os.Debug.startMethodTracing("Launcher");
@@ -318,7 +304,7 @@ public class DragController {
mVibrator.vibrate(VIBRATE_DURATION);
DragView dragView = mDragView = new DragView(mContext, b, registrationX, registrationY,
- textureLeft, textureTop, textureWidth, textureHeight);
+ 0, 0, b.getWidth(), b.getHeight());
final DragSource dragSource = source;
dragView.setOnDrawRunnable(new Runnable() {
@@ -400,7 +386,7 @@ public class DragController {
public void cancelDrag() {
if (mDragging) {
// Should we also be calling onDragExit() here?
- mDragSource.onDropCompleted(null, false);
+ mDragSource.onDropCompleted(null, mDragInfo, false);
}
endDrag();
}
@@ -596,14 +582,14 @@ public class DragController {
(int) mTouchOffsetX, (int) mTouchOffsetY, mDragView, mDragInfo)) {
dropTarget.onDrop(mDragSource, coordinates[0], coordinates[1],
(int) mTouchOffsetX, (int) mTouchOffsetY, mDragView, mDragInfo);
- mDragSource.onDropCompleted((View) dropTarget, true);
+ mDragSource.onDropCompleted((View) dropTarget, mDragInfo, true);
return true;
} else {
- mDragSource.onDropCompleted((View) dropTarget, false);
+ mDragSource.onDropCompleted((View) dropTarget, mDragInfo, false);
return true;
}
} else {
- mDragSource.onDropCompleted(null, false);
+ mDragSource.onDropCompleted(null, mDragInfo, false);
}
return false;
}
@@ -716,6 +702,10 @@ public class DragController {
mDeleteRegion = region;
}
+ DragView getDragView() {
+ return mDragView;
+ }
+
private class ScrollRunnable implements Runnable {
private int mDirection;
diff --git a/src/com/android/launcher2/DragSource.java b/src/com/android/launcher2/DragSource.java
index 11cdcc93e..4dbdaf71a 100644
--- a/src/com/android/launcher2/DragSource.java
+++ b/src/com/android/launcher2/DragSource.java
@@ -31,5 +31,5 @@ public interface DragSource {
*/
void onDragViewVisible();
- void onDropCompleted(View target, boolean success);
+ void onDropCompleted(View target, Object dragInfo, boolean success);
}
diff --git a/src/com/android/launcher2/DragView.java b/src/com/android/launcher2/DragView.java
index c0776a9f2..45620b90b 100644
--- a/src/com/android/launcher2/DragView.java
+++ b/src/com/android/launcher2/DragView.java
@@ -245,5 +245,13 @@ public class DragView extends View {
void remove() {
mWindowManager.removeView(this);
}
+
+ int[] getPosition(int[] result) {
+ WindowManager.LayoutParams lp = mLayoutParams;
+ if (result == null) result = new int[2];
+ result[0] = lp.x;
+ result[1] = lp.y;
+ return result;
+ }
}
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java
index cb450b99b..059e73d8b 100644
--- a/src/com/android/launcher2/Folder.java
+++ b/src/com/android/launcher2/Folder.java
@@ -114,7 +114,7 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL
}
@Override
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
}
@Override
diff --git a/src/com/android/launcher2/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java
index 1efc1231f..80548fb5c 100644
--- a/src/com/android/launcher2/HolographicOutlineHelper.java
+++ b/src/com/android/launcher2/HolographicOutlineHelper.java
@@ -32,6 +32,7 @@ public class HolographicOutlineHelper {
private final Paint mAlphaClipPaint = new Paint();
public static final int MAX_OUTER_BLUR_RADIUS;
+ public static final int MIN_OUTER_BLUR_RADIUS;
private static final BlurMaskFilter sExtraThickOuterBlurMaskFilter;
private static final BlurMaskFilter sThickOuterBlurMaskFilter;
@@ -48,6 +49,7 @@ public class HolographicOutlineHelper {
static {
final float scale = LauncherApplication.getScreenDensity();
+ MIN_OUTER_BLUR_RADIUS = (int) (scale * 1.0f);
MAX_OUTER_BLUR_RADIUS = (int) (scale * 12.0f);
sExtraThickOuterBlurMaskFilter = new BlurMaskFilter(scale * 12.0f, BlurMaskFilter.Blur.OUTER);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 81b37a94c..59f142a41 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1443,16 +1443,14 @@ public final class Launcher extends Activity
boolean alreadyOnHome = ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
!= Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
- // in all these cases, only animate if we're already on home
+ // In all these cases, only animate if we're already on home
+
if (LauncherApplication.isScreenXLarge()) {
mWorkspace.unshrink(alreadyOnHome);
}
- if (!mWorkspace.isDefaultPageShowing()) {
- // on the phone, we don't animate the change to the workspace if all apps is visible
- boolean animate = alreadyOnHome &&
- (LauncherApplication.isScreenXLarge() || mState != State.ALL_APPS);
- mWorkspace.moveToDefaultScreen(animate);
- if (!animate) mWorkspace.updateWallpaperOffsetImmediately();
+
+ if (alreadyOnHome && mState == State.WORKSPACE && !mWorkspace.isTouchActive()) {
+ mWorkspace.moveToDefaultScreen(true);
}
showWorkspace(alreadyOnHome);
@@ -2429,6 +2427,10 @@ public final class Launcher extends Activity
return mWorkspace;
}
+ TabHost getCustomizationDrawer() {
+ return mHomeCustomizationDrawer;
+ }
+
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -3069,9 +3071,15 @@ public final class Launcher extends Activity
}
}
- void addExternalItemToScreen(ItemInfo itemInfo, CellLayout layout) {
+ /**
+ * Add an item from all apps or customize onto the given workspace screen.
+ * If layout is null, add to the current screen.
+ */
+ void addExternalItemToScreen(ItemInfo itemInfo, final CellLayout layout) {
if (!mWorkspace.addExternalItemToScreen(itemInfo, layout)) {
showOutOfSpaceMessage();
+ } else {
+ layout.animateDrop();
}
}
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index cb952356b..c2fcd9f21 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -100,6 +100,7 @@ public abstract class PagedView extends ViewGroup {
protected int mTouchSlop;
private int mPagingTouchSlop;
private int mMaximumVelocity;
+ private int mMinimumWidth;
protected int mPageSpacing;
protected int mPageLayoutPaddingTop;
protected int mPageLayoutPaddingBottom;
@@ -175,13 +176,13 @@ public abstract class PagedView extends ViewGroup {
R.styleable.PagedView, defStyle, 0);
mPageSpacing = a.getDimensionPixelSize(R.styleable.PagedView_pageSpacing, 0);
mPageLayoutPaddingTop = a.getDimensionPixelSize(
- R.styleable.PagedView_pageLayoutPaddingTop, 10);
+ R.styleable.PagedView_pageLayoutPaddingTop, 0);
mPageLayoutPaddingBottom = a.getDimensionPixelSize(
- R.styleable.PagedView_pageLayoutPaddingBottom, 10);
+ R.styleable.PagedView_pageLayoutPaddingBottom, 0);
mPageLayoutPaddingLeft = a.getDimensionPixelSize(
- R.styleable.PagedView_pageLayoutPaddingLeft, 10);
+ R.styleable.PagedView_pageLayoutPaddingLeft, 0);
mPageLayoutPaddingRight = a.getDimensionPixelSize(
- R.styleable.PagedView_pageLayoutPaddingRight, 10);
+ R.styleable.PagedView_pageLayoutPaddingRight, 0);
mPageLayoutWidthGap = a.getDimensionPixelSize(
R.styleable.PagedView_pageLayoutWidthGap, -1);
mPageLayoutHeightGap = a.getDimensionPixelSize(
@@ -500,6 +501,11 @@ public abstract class PagedView extends ViewGroup {
}
}
+ protected void forceUpdateAdjacentPagesAlpha() {
+ mDirtyPageAlpha = true;
+ updateAdjacentPagesAlpha();
+ }
+
protected void updateAdjacentPagesAlpha() {
if (mFadeInAdjacentScreens) {
if (mDirtyPageAlpha || (mTouchState == TOUCH_STATE_SCROLLING) || !mScroller.isFinished()) {
@@ -546,6 +552,11 @@ public abstract class PagedView extends ViewGroup {
alpha = 1.0f;
}
+ // Due to the way we're setting alpha on our children in PagedViewCellLayout,
+ // this optimization causes alpha to not be properly updated sometimes (repro
+ // case: in xlarge mode, swipe to second page in All Apps, then click on "My
+ // Apps" tab. the page will have alpha 0 until you swipe it). Removing
+ // optimization fixes the issue, but we should fix this in a better manner
//if (Float.compare(alpha, layout.getAlpha()) != 0) {
layout.setAlpha(alpha);
//}
@@ -1128,8 +1139,16 @@ public abstract class PagedView extends ViewGroup {
return -1;
}
+ protected void setMinimumWidthOverride(int minimumWidth) {
+ mMinimumWidth = minimumWidth;
+ }
+
+ protected int getChildWidth(int index) {
+ return Math.max(mMinimumWidth, getChildAt(index).getMeasuredWidth());
+ }
+
protected int getRelativeChildOffset(int index) {
- return (getMeasuredWidth() - getChildAt(index).getMeasuredWidth()) / 2;
+ return (getMeasuredWidth() - getChildWidth(index)) / 2;
}
protected int getChildOffset(int index) {
@@ -1144,7 +1163,7 @@ public abstract class PagedView extends ViewGroup {
}
protected int getScaledMeasuredWidth(View child) {
- return (int) (child.getMeasuredWidth() * mLayoutScale + 0.5f);
+ return (int) (Math.max(mMinimumWidth, child.getMeasuredWidth()) * mLayoutScale + 0.5f);
}
int getPageNearestToCenterOfScreen() {
@@ -1410,7 +1429,7 @@ public abstract class PagedView extends ViewGroup {
* Otherwise, returns null.
*/
protected Checkable getSingleCheckedGrandchild() {
- if (mChoiceMode == CHOICE_MODE_SINGLE) {
+ if (mChoiceMode != CHOICE_MODE_MULTIPLE) {
final int childCount = getChildCount();
for (int i = 0; i < childCount; ++i) {
Page layout = (Page) getChildAt(i);
@@ -1426,14 +1445,6 @@ public abstract class PagedView extends ViewGroup {
return null;
}
- public Object getChosenItem() {
- View checkedView = (View) getSingleCheckedGrandchild();
- if (checkedView != null) {
- return checkedView.getTag();
- }
- return null;
- }
-
protected void resetCheckedGrandchildren() {
// loop through children, and set all of their children to _not_ be checked
final ArrayList<Checkable> checked = getCheckedGrandchildren();
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index 1366619f8..9c5d1267c 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -243,8 +243,7 @@ public class PagedViewIcon extends CachedTextView implements Checkable {
return mIsChecked;
}
- @Override
- public void setChecked(boolean checked) {
+ void setChecked(boolean checked, boolean animate) {
if (mIsChecked != checked) {
mIsChecked = checked;
@@ -262,15 +261,24 @@ public class PagedViewIcon extends CachedTextView implements Checkable {
if (mCheckedAlphaAnimator != null) {
mCheckedAlphaAnimator.cancel();
}
- mCheckedAlphaAnimator = ObjectAnimator.ofFloat(this, "alpha", getAlpha(), alpha);
- mCheckedAlphaAnimator.setDuration(duration);
- mCheckedAlphaAnimator.start();
+ if (animate) {
+ mCheckedAlphaAnimator = ObjectAnimator.ofFloat(this, "alpha", getAlpha(), alpha);
+ mCheckedAlphaAnimator.setDuration(duration);
+ mCheckedAlphaAnimator.start();
+ } else {
+ setAlpha(alpha);
+ }
invalidate();
}
}
@Override
+ public void setChecked(boolean checked) {
+ setChecked(checked, true);
+ }
+
+ @Override
public void toggle() {
setChecked(!mIsChecked);
}
diff --git a/src/com/android/launcher2/PagedViewWidget.java b/src/com/android/launcher2/PagedViewWidget.java
index 9b83f4823..72f928b54 100644
--- a/src/com/android/launcher2/PagedViewWidget.java
+++ b/src/com/android/launcher2/PagedViewWidget.java
@@ -27,7 +27,11 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
+import android.graphics.PorterDuff;
import android.graphics.PorterDuff.Mode;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
@@ -52,6 +56,10 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
private Bitmap mHolographicOutline;
private final Canvas mHolographicOutlineCanvas = new Canvas();
private FastBitmapDrawable mPreview;
+ private ImageView mPreviewImageView;
+ private final RectF mTmpScaleRect = new RectF();
+ private final Rect mEraseStrokeRect = new Rect();
+ private final Paint mEraseStrokeRectPaint = new Paint();
private PagedViewIconCache.Key mIconCacheKey;
private PagedViewIconCache mIconCache;
@@ -81,8 +89,11 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
public void handleMessage(Message msg) {
final PagedViewWidget widget = (PagedViewWidget) msg.obj;
final int prevAlpha = widget.mPreview.getAlpha();
- final Bitmap outline = Bitmap.createBitmap(widget.getWidth(), widget.getHeight(),
- Bitmap.Config.ARGB_8888);
+ final int width = Math.max(widget.mPreview.getIntrinsicWidth(),
+ widget.getMeasuredWidth());
+ final int height = Math.max(widget.mPreview.getIntrinsicHeight(),
+ widget.getMeasuredHeight());
+ final Bitmap outline = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
widget.mHolographicOutlineCanvas.setBitmap(outline);
widget.mHolographicOutlineCanvas.save();
@@ -94,6 +105,12 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
widget.mHolographicOutlineCanvas.drawColor(Color.argb(156, 0, 0, 0), Mode.SRC_OVER);
widget.mHolographicOutlineCanvas.restore();
+ // To account for the fact that some previews run up straight to the edge (we subtract
+ // the edge from the holographic preview (before we apply the holograph)
+ widget.mEraseStrokeRect.set(0, 0, width, height);
+ widget.mHolographicOutlineCanvas.drawRect(widget.mEraseStrokeRect,
+ widget.mEraseStrokeRectPaint);
+
sHolographicOutlineHelper.applyThickExpensiveOutlineWithBlur(outline,
widget.mHolographicOutlineCanvas, widget.mHoloBlurColor,
widget.mHoloOutlineColor);
@@ -123,6 +140,11 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
defStyle, 0);
mHoloBlurColor = a.getColor(R.styleable.PagedViewWidget_blurColor, 0);
mHoloOutlineColor = a.getColor(R.styleable.PagedViewWidget_outlineColor, 0);
+ mEraseStrokeRectPaint.setStyle(Paint.Style.STROKE);
+ mEraseStrokeRectPaint.setStrokeWidth(HolographicOutlineHelper.MIN_OUTER_BLUR_RADIUS);
+ mEraseStrokeRectPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
+ mEraseStrokeRectPaint.setFilterBitmap(true);
+ mEraseStrokeRectPaint.setAntiAlias(true);
a.recycle();
if (sHolographicOutlineHelper == null) {
@@ -158,6 +180,7 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
final ImageView image = (ImageView) findViewById(R.id.widget_preview);
image.setMaxWidth(maxWidth);
image.setImageDrawable(preview);
+ mPreviewImageView = image;
final TextView name = (TextView) findViewById(R.id.widget_name);
name.setText(info.label);
name.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
@@ -179,6 +202,7 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
ImageView image = (ImageView) findViewById(R.id.wallpaper_preview);
image.setMaxWidth(maxWidth);
image.setImageDrawable(preview);
+ mPreviewImageView = image;
TextView name = (TextView) findViewById(R.id.wallpaper_name);
name.setText(info.loadLabel(packageManager));
name.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
@@ -211,8 +235,15 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
// draw any blended overlays
if (mHolographicOutline != null && mHolographicAlpha > 0) {
+ // Calculate how much to scale the holographic preview
+ mTmpScaleRect.set(0,0,1,1);
+ mPreviewImageView.getImageMatrix().mapRect(mTmpScaleRect);
+
mPaint.setAlpha(mHolographicAlpha);
+ canvas.save();
+ canvas.scale(mTmpScaleRect.right, mTmpScaleRect.bottom);
canvas.drawBitmap(mHolographicOutline, 0, 0, mPaint);
+ canvas.restore();
}
}
@@ -257,8 +288,7 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
sWorker.removeMessages(MESSAGE_CREATE_HOLOGRAPHIC_OUTLINE, this);
}
- @Override
- public void setChecked(boolean checked) {
+ void setChecked(boolean checked, boolean animate) {
if (mIsChecked != checked) {
mIsChecked = checked;
@@ -276,15 +306,24 @@ public class PagedViewWidget extends LinearLayout implements Checkable {
if (mCheckedAlphaAnimator != null) {
mCheckedAlphaAnimator.cancel();
}
- mCheckedAlphaAnimator = ObjectAnimator.ofFloat(this, "alpha", getAlpha(), alpha);
- mCheckedAlphaAnimator.setDuration(duration);
- mCheckedAlphaAnimator.start();
+ if (animate) {
+ mCheckedAlphaAnimator = ObjectAnimator.ofFloat(this, "alpha", getAlpha(), alpha);
+ mCheckedAlphaAnimator.setDuration(duration);
+ mCheckedAlphaAnimator.start();
+ } else {
+ setAlpha(alpha);
+ }
invalidate();
}
}
@Override
+ public void setChecked(boolean checked) {
+ setChecked(checked, true);
+ }
+
+ @Override
public boolean isChecked() {
return mIsChecked;
}
diff --git a/src/com/android/launcher2/UserFolder.java b/src/com/android/launcher2/UserFolder.java
index b362fbdf1..251b3f95a 100644
--- a/src/com/android/launcher2/UserFolder.java
+++ b/src/com/android/launcher2/UserFolder.java
@@ -64,7 +64,7 @@ public class UserFolder extends Folder implements DropTarget {
}
@Override
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
if (success) {
ShortcutsAdapter adapter = (ShortcutsAdapter)mContent.getAdapter();
adapter.remove(mDragItem);
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index bd4b5020d..699f2b40c 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -23,7 +23,6 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
-import android.animation.PropertyValuesHolder;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.animation.Animator.AnimatorListener;
@@ -62,6 +61,8 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
+import android.widget.TabHost;
+import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;
@@ -262,6 +263,9 @@ public class Workspace extends SmoothPagedView
setHapticFeedbackEnabled(false);
initWorkspace();
+
+ // Disable multitouch across the workspace/all apps/customize tray
+ setMotionEventSplittingEnabled(true);
}
/**
@@ -415,8 +419,8 @@ public class Workspace extends SmoothPagedView
return folders;
}
- boolean isDefaultPageShowing() {
- return mCurrentPage == mDefaultPage;
+ boolean isTouchActive() {
+ return mTouchState != TOUCH_STATE_REST;
}
/**
@@ -1324,6 +1328,19 @@ public class Workspace extends SmoothPagedView
shrink(shrinkState, true);
}
+ private int getCustomizeDrawerHeight() {
+ TabHost customizationDrawer = mLauncher.getCustomizationDrawer();
+ int height = customizationDrawer.getHeight();
+ TabWidget tabWidget = (TabWidget)
+ customizationDrawer.findViewById(com.android.internal.R.id.tabs);
+ if (tabWidget.getTabCount() > 0) {
+ TextView tabText = (TextView) tabWidget.getChildTabViewAt(0);
+ // subtract the empty space above the tab text
+ height -= ((tabWidget.getHeight() - tabText.getLineHeight())) / 2;
+ }
+ return height;
+ }
+
// we use this to shrink the workspace for the all apps view and the customize view
public void shrink(ShrinkState shrinkState, boolean animated) {
// In the launcher interaction model, we're never in the state where we're shrunken and
@@ -1400,9 +1417,7 @@ public class Workspace extends SmoothPagedView
y = screenHeight / 2 - scaledPageHeight / 2;
finalAlpha = 1.0f;
} else if (shrinkState == ShrinkState.TOP) {
- y = (isPortrait ?
- getResources().getDimension(R.dimen.customizeSmallScreenVerticalMarginPortrait) :
- getResources().getDimension(R.dimen.customizeSmallScreenVerticalMarginLandscape));
+ y = (screenHeight - getCustomizeDrawerHeight() - scaledPageHeight) / 2;
}
int duration;
@@ -2070,8 +2085,8 @@ public class Workspace extends SmoothPagedView
final int screenX = (int) mTempXY[0] + (child.getWidth() - bmpWidth) / 2;
final int screenY = (int) mTempXY[1] + (child.getHeight() - bmpHeight) / 2;
mLauncher.lockScreenOrientation();
- mDragController.startDrag(b, screenX, screenY, 0, 0, bmpWidth, bmpHeight, this,
- child.getTag(), DragController.DRAG_ACTION_MOVE, null);
+ mDragController.startDrag(
+ b, screenX, screenY, this, child.getTag(), DragController.DRAG_ACTION_MOVE);
b.recycle();
}
@@ -2226,6 +2241,11 @@ public class Workspace extends SmoothPagedView
}
if (source != this) {
+ if ((mIsSmall || mIsInUnshrinkAnimation) && !mLauncher.isAllAppsVisible()) {
+ // When the workspace is shrunk and the drop comes from customize, don't actually
+ // add the item to the screen -- customize will do this itself
+ return;
+ }
onDropExternal(new int[] { originX, originY }, dragInfo, mDragTargetLayout, false);
} else if (mDragInfo != null) {
final View cell = mDragInfo.cell;
@@ -2839,11 +2859,8 @@ public class Workspace extends SmoothPagedView
* Return the current {@link CellLayout}, correctly picking the destination
* screen while a scroll is in progress.
*/
- private CellLayout getCurrentDropLayout() {
- // if we're currently small, use findMatchingPageForDragOver instead
- if (mIsSmall) return null;
- int index = mScroller.isFinished() ? mCurrentPage : mNextPage;
- return (CellLayout) getChildAt(index);
+ public CellLayout getCurrentDropLayout() {
+ return (CellLayout) getChildAt(mNextPage == INVALID_PAGE ? mCurrentPage : mNextPage);
}
/**
@@ -2888,7 +2905,7 @@ public class Workspace extends SmoothPagedView
/**
* Called at the end of a drag which originated on the workspace.
*/
- public void onDropCompleted(View target, boolean success) {
+ public void onDropCompleted(View target, Object dragInfo, boolean success) {
if (success) {
if (target != this && mDragInfo != null) {
final CellLayout cellLayout = (CellLayout) getChildAt(mDragInfo.screen);