Mass merge from gingerbread - do not merge
Change-Id: I9111f11e0f85577b96556a5f996bf81b4f997de9
diff --git a/res/anim/paged_view_click_feedback.xml b/res/anim/paged_view_click_feedback.xml
index d1e6e23..eb7ecef 100644
--- a/res/anim/paged_view_click_feedback.xml
+++ b/res/anim/paged_view_click_feedback.xml
@@ -14,10 +14,11 @@
limitations under the License.
-->
-<alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:fromAlpha="1.0"
- android:toAlpha="0.5"
- android:duration="75"
- android:fillAfter="true"
+<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:valueFrom="1.0"
+ android:valueTo="0.5"
+ android:valueType="floatType"
+ android:duration="100"
+ android:propertyName="alpha"
android:repeatCount="1"
- android:repeatMode="reverse" />
+ android:repeatMode="reverse"/>
diff --git a/res/drawable-hdpi/gardening_crosshairs.png b/res/drawable-hdpi/gardening_crosshairs.png
index fca6036..409bb5d 100644
--- a/res/drawable-hdpi/gardening_crosshairs.png
+++ b/res/drawable-hdpi/gardening_crosshairs.png
Binary files differ
diff --git a/res/drawable/wallpaper_picker_preview.png b/res/drawable-hdpi/wallpaper_picker_preview.png
similarity index 63%
rename from res/drawable/wallpaper_picker_preview.png
rename to res/drawable-hdpi/wallpaper_picker_preview.png
index 926a99c..300ea4a 100644
--- a/res/drawable/wallpaper_picker_preview.png
+++ b/res/drawable-hdpi/wallpaper_picker_preview.png
Binary files differ
diff --git a/res/drawable-mdpi/gardening_crosshairs.png b/res/drawable-mdpi/gardening_crosshairs.png
index d473044..338c832 100644
--- a/res/drawable-mdpi/gardening_crosshairs.png
+++ b/res/drawable-mdpi/gardening_crosshairs.png
Binary files differ
diff --git a/res/drawable/wallpaper_picker_preview.png b/res/drawable-mdpi/wallpaper_picker_preview.png
similarity index 63%
copy from res/drawable/wallpaper_picker_preview.png
copy to res/drawable-mdpi/wallpaper_picker_preview.png
index 926a99c..300ea4a 100644
--- a/res/drawable/wallpaper_picker_preview.png
+++ b/res/drawable-mdpi/wallpaper_picker_preview.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/ic_home_configure_holo_dark.png b/res/drawable-xlarge-hdpi/ic_home_configure_holo_dark.png
deleted file mode 100644
index 6c94a31..0000000
--- a/res/drawable-xlarge-hdpi/ic_home_configure_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/search_button_normal.png b/res/drawable-xlarge-hdpi/search_button_normal.png
deleted file mode 100644
index b1df556..0000000
--- a/res/drawable-xlarge-hdpi/search_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/search_button_pressed.png b/res/drawable-xlarge-hdpi/search_button_pressed.png
deleted file mode 100644
index 1013383..0000000
--- a/res/drawable-xlarge-hdpi/search_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/textfield_home_end.9.png b/res/drawable-xlarge-hdpi/textfield_home_end.9.png
deleted file mode 100644
index 4e79920..0000000
--- a/res/drawable-xlarge-hdpi/textfield_home_end.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/textfield_home_start.9.png b/res/drawable-xlarge-hdpi/textfield_home_start.9.png
deleted file mode 100644
index a338c69..0000000
--- a/res/drawable-xlarge-hdpi/textfield_home_start.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/app_market_generic.png b/res/drawable-xlarge-mdpi/app_market_generic.png
index c093e24..355ea6a 100644
--- a/res/drawable-xlarge-mdpi/app_market_generic.png
+++ b/res/drawable-xlarge-mdpi/app_market_generic.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/homescreen_large_blue_strong.9.png b/res/drawable-xlarge-mdpi/homescreen_large_blue_strong.9.png
deleted file mode 100644
index f4913e5..0000000
--- a/res/drawable-xlarge-mdpi/homescreen_large_blue_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_generic_search.png b/res/drawable-xlarge-mdpi/ic_generic_search.png
new file mode 100644
index 0000000..d92071b
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/ic_generic_search.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
index d3ab3ad..7f04589 100644
--- a/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
+++ b/res/drawable-xlarge-mdpi/ic_home_add_holo_dark.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_home_all_apps_holo_dark.png b/res/drawable-xlarge-mdpi/ic_home_all_apps_holo_dark.png
index 0261d0d..04749e6 100644
--- a/res/drawable-xlarge-mdpi/ic_home_all_apps_holo_dark.png
+++ b/res/drawable-xlarge-mdpi/ic_home_all_apps_holo_dark.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/ic_home_configure_holo_dark.png b/res/drawable-xlarge-mdpi/ic_home_configure_holo_dark.png
deleted file mode 100644
index 8a99273..0000000
--- a/res/drawable-xlarge-mdpi/ic_home_configure_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/search_button_normal.png b/res/drawable-xlarge-mdpi/search_button_normal.png
deleted file mode 100644
index b172074..0000000
--- a/res/drawable-xlarge-mdpi/search_button_normal.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/search_button_pressed.png b/res/drawable-xlarge-mdpi/search_button_pressed.png
deleted file mode 100644
index c2926c8..0000000
--- a/res/drawable-xlarge-mdpi/search_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/textfield_home_end.9.png b/res/drawable-xlarge-mdpi/textfield_home_end.9.png
deleted file mode 100644
index 753514f..0000000
--- a/res/drawable-xlarge-mdpi/textfield_home_end.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/textfield_home_start.9.png b/res/drawable-xlarge-mdpi/textfield_home_start.9.png
deleted file mode 100644
index 11ee7ca..0000000
--- a/res/drawable-xlarge-mdpi/textfield_home_start.9.png
+++ /dev/null
Binary files differ
diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml
index fbe98b0..d03a571 100644
--- a/res/layout-xlarge-land/all_apps_tabbed.xml
+++ b/res/layout-xlarge-land/all_apps_tabbed.xml
@@ -54,7 +54,7 @@
<com.android.launcher2.DeleteZone
android:id="@+id/all_apps_delete_zone"
android:text="@string/delete_zone_label_all_apps"
- android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawablePadding="@dimen/delete_zone_drawable_padding"
android:drawableLeft="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml
index 93d19dc..957327e 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge-land/launcher.xml
@@ -54,54 +54,51 @@
android:layout_height="?android:attr/actionBarSize"
android:layout_gravity="top">
- <LinearLayout android:id="@+id/search_button_cluster"
+ <!-- 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="48dp"
- android:gravity="bottom"
- >
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginLeft="16dp"
- android:background="@drawable/textfield_home_start"
- android:orientation="horizontal">
- <!-- Global search icon -->
- <ImageView
- android:id="@+id/search_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:paddingLeft="8dp"
- android:paddingRight="32dp"
- android:paddingTop="12dp"
- android:src="@drawable/search_button_generic"
- android:background="@drawable/button_bg"
- android:onClick="onClickSearchButton"
- android:focusable="true"
- android:clickable="true"/>
- </LinearLayout>
+ 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"
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:background="@drawable/textfield_home_end"
- android:orientation="horizontal">
- <!-- Voice search icon -->
- <ImageView
- android:id="@+id/voice_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:paddingLeft="24dp"
- android:paddingRight="24dp"
- android:paddingTop="12dp"
- android:src="@drawable/ic_voice_search"
- android:background="@drawable/button_bg"
- android:onClick="onClickVoiceButton"
- android:focusable="true"
- android:clickable="true"/>
- </LinearLayout>
- </LinearLayout>
+ 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"
@@ -123,26 +120,26 @@
android:id="@+id/divider"
android:src="@drawable/divider_launcher_holo"
android:layout_width="wrap_content"
- android:layout_height="@dimen/toolbar_divider_height"
+ 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:onClick="onClickAllAppsButton"
- android:focusable="true"
+ 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_drawable_padding"
+ 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/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_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"
@@ -161,7 +158,7 @@
android:id="@+id/divider_during_drag"
android:src="@drawable/divider_launcher_holo"
android:layout_width="wrap_content"
- android:layout_height="@dimen/toolbar_divider_height"
+ 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"
@@ -169,7 +166,7 @@
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:text="@string/delete_zone_label_workspace"
- android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawablePadding="@dimen/delete_zone_drawable_padding"
android:drawableLeft="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml
index b90041c..269fa12 100644
--- a/res/layout-xlarge-port/all_apps_tabbed.xml
+++ b/res/layout-xlarge-port/all_apps_tabbed.xml
@@ -54,7 +54,7 @@
<com.android.launcher2.DeleteZone
android:id="@+id/all_apps_delete_zone"
android:text="@string/delete_zone_label_all_apps"
- android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawablePadding="@dimen/delete_zone_drawable_padding"
android:drawableLeft="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
index 6ad5d9c..a8087f4 100644
--- a/res/layout-xlarge-port/launcher.xml
+++ b/res/layout-xlarge-port/launcher.xml
@@ -46,7 +46,7 @@
android:id="@+id/all_apps_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_gravity="top"/>
+ android:layout_gravity="top" />
<RelativeLayout
android:id="@+id/all_apps_button_cluster"
@@ -54,54 +54,51 @@
android:layout_height="?android:attr/actionBarSize"
android:layout_gravity="top">
- <LinearLayout android:id="@+id/search_button_cluster"
+ <!-- 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="48dp"
- android:gravity="bottom"
- >
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginLeft="16dp"
- android:background="@drawable/textfield_home_start"
- android:orientation="horizontal">
- <!-- Global search icon -->
- <ImageView
- android:id="@+id/search_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:paddingLeft="8dp"
- android:paddingRight="32dp"
- android:paddingTop="12dp"
- android:src="@drawable/search_button_generic"
- android:background="@drawable/button_bg"
- android:onClick="onClickSearchButton"
- android:focusable="true"
- android:clickable="true"/>
- </LinearLayout>
+ 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"
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:background="@drawable/textfield_home_end"
- android:orientation="horizontal">
- <!-- Voice search icon -->
- <ImageView
- android:id="@+id/voice_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:paddingLeft="24dp"
- android:paddingRight="24dp"
- android:paddingTop="12dp"
- android:src="@drawable/ic_voice_search"
- android:background="@drawable/button_bg"
- android:onClick="onClickVoiceButton"
- android:focusable="true"
- android:clickable="true"/>
- </LinearLayout>
- </LinearLayout>
+ 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"
@@ -114,6 +111,7 @@
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:onClick="onClickConfigureButton"
android:focusable="true"
@@ -122,26 +120,27 @@
android:id="@+id/divider"
android:src="@drawable/divider_launcher_holo"
android:layout_width="wrap_content"
- android:layout_height="@dimen/toolbar_divider_height"
+ 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:onClick="onClickAllAppsButton"
- android:focusable="true"
+ 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_drawable_padding"
+ 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/toolbar_button_vertical_padding"
- android:paddingBottom="@dimen/toolbar_button_vertical_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"
@@ -159,7 +158,7 @@
android:id="@+id/divider_during_drag"
android:src="@drawable/divider_launcher_holo"
android:layout_width="wrap_content"
- android:layout_height="@dimen/toolbar_divider_height"
+ 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"
@@ -167,7 +166,7 @@
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
android:text="@string/delete_zone_label_workspace"
- android:drawablePadding="@dimen/all_apps_drawable_padding"
+ android:drawablePadding="@dimen/delete_zone_drawable_padding"
android:drawableLeft="@drawable/delete_zone_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -176,6 +175,7 @@
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"
diff --git a/res/drawable-xlarge/search_button_generic.xml b/res/layout-xlarge-port/tab_widget_indicator.xml
similarity index 73%
rename from res/drawable-xlarge/search_button_generic.xml
rename to res/layout-xlarge-port/tab_widget_indicator.xml
index 8f18e67..b113b7b 100644
--- a/res/drawable-xlarge/search_button_generic.xml
+++ b/res/layout-xlarge-port/tab_widget_indicator.xml
@@ -14,7 +14,6 @@
limitations under the License.
-->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/search_button_pressed" />
- <item android:drawable="@drawable/search_button_normal" />
-</selector>
+<TextView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/TabIndicator.Portrait" />
diff --git a/res/layout-xlarge/tab_widget_indicator.xml b/res/layout-xlarge/tab_widget_indicator.xml
index 1b3f1c0..7794e29 100644
--- a/res/layout-xlarge/tab_widget_indicator.xml
+++ b/res/layout-xlarge/tab_widget_indicator.xml
@@ -16,20 +16,4 @@
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
-
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:gravity="center"
- android:paddingLeft="40dp"
- android:paddingRight="40dp"
- android:paddingTop="15dp"
- android:paddingBottom="20dp"
-
- android:textColor="@color/tab_widget_indicator_color"
- android:background="@drawable/tab_widget_indicator_selector"
- android:textSize="20sp"
- android:shadowColor="#393939"
- android:shadowDx="0.0"
- android:shadowDy="1.0"
- android:shadowRadius="1.0" />
+ style="@style/TabIndicator" />
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 05b10e7..f872444 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"المجلدات"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"المزيد"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"الخلفيات"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"اختصارات التطبيقات"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"منزّلة"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"منزّلة"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"لم يتم العثور على ألعاب"</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"لم يُعثر على تطبيقات منزّلة"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"لم يُعثر على تطبيقات منزّلة"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"تعذر إسقاط العنصر على هذه الشاشة الرئيسية"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"تحديد أداة للإنشاء"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"اسم المجلد"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index b6412fa..2686210 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Папки"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Още"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Тапети"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Преки пътища на приложения"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Изтеглени"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Изтеглени"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Няма намерени игри."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Няма изтеглени приложения"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Няма изтеглени приложения."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Елементът не можа да се премести на началния екран"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Избор на създаващо приспособление"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Име на папка"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index e8c92e3..8051418 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Carpetes"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Més"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Empaperats"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Dreceres d\'aplicacions"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Dreceres d\'aplicacions"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Aquesta serà la pestanya dels empaperats"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Totes"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicacions"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jocs"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Baixat"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Baixat"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No s\'ha trobat cap joc."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No hi ha aplic. baixades."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No s\'ha trobat cap aplicació baixada."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"No s\'ha pogut trasll. l\'element a la pant. d\'inici"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Selecciona un widget per crear-lo"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nom de la carpeta"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f134a7c..b61068e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Složky"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Další"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Tapety"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Zástupci aplikací"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Zástupci aplikací"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Toto bude karta Tapety"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Vše"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikace"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Hry"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Stažené"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Stažené"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenalezeny žádné hry."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Žádné stažené aplikace."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Žádné stažené aplikace."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Na tuto plochu nelze položku přetáhnout"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Vyberte widget"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Název složky"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index a9362e0..f0218df 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Mapper"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Flere"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Tapeter"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Programgenvej"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Programgenvej"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Dette er fanen for tapeter"</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">"Spil"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Downloadet"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Downloadet"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ingen spil."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Ingen hentede programmer."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Ingen hentede programmer."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kunne ikke slippe elementet på denne startskærm"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Vælg widget for at oprette"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mappenavn"</string>
diff --git a/res/values-de-xlarge/strings.xml b/res/values-de-xlarge/strings.xml
index 148a9af..86e2684 100644
--- a/res/values-de-xlarge/strings.xml
+++ b/res/values-de-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"Hintergrund auswählen"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Keine Hintergründe verfügbar"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"Abbrechen"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 7964dba..e035b27 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -25,20 +25,20 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"Hintergrund auswählen"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"Hintergrund festlegen"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"Hintergrundbilder"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"Anwendung ist nicht auf dem Telefon installiert."</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"Die Anwendung ist nicht installiert."</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"Konfigurieren..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"Widgets"</string>
<string name="folders_tab_label" msgid="1145293785541489736">"Ordner"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Mehr"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Hintergründe"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"App-Verknüpfungen"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"App-Verknüpfungen"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Dies ist der Tab \"Hintergründe\""</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Alle"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spiele"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Heruntergeladen"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Heruntergeladen"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Keine Spiele gefunden."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Keine heruntergeladenen Apps"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Keine heruntergeladenen Apps gefunden"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Element wurde nicht auf Startbildschirm abgelegt."</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Widget für Erstellung auswählen"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Ordnername"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"Anwendungen"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Startseite"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"Entfernen"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Löschen"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Deinstallieren"</string>
<string name="menu_add" msgid="3065046628354640854">"Hinzufügen"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"Apps verwalten"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"Hintergrund"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 4bc4b49..7e6c82d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Φάκελοι"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Περισσότερα"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Ταπετσαρίες"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Συντομεύσεις Εφαρμογών"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Η λήψη ολοκληρώθηκε"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Η λήψη ολοκληρώθηκε"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Δεν βρέθηκαν παιχνίδια."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Δεν βρέθηκαν ληφθ. εφαρμ."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Δεν βρέθηκαν εφαρμογές που έχουν ληφθεί."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Δεν έγινε η απόθ. του στοιχείου στην αρχική οθόνη"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Επιλογή γραφ. στοιχείου δημιουργίας"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Όνομα φακέλου"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 2e0f2fe..61257e6 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Folders"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"More"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Wallpaper"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"App Shortcuts"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"App Shortcuts"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"This will be the wallpaper tab"</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"All"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Games"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Downloaded"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Downloaded"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No games found."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No downloaded apps found."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No downloaded apps found."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Could not drop item onto this home screen"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Select widget to create"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Folder name"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 1d853dd..5ed7c09 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Accesos directos a aplicaciones"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Descargado"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Descargado"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No se encontraron juegos."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No se encontraron descargas de aplicaciones."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"No se encontraron apps."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"No se pudo colocar el elemento en esta pantalla principal"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Seleccionar widget para crear"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nombre de carpeta"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index f418e34..bca032c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -31,14 +31,14 @@
<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">"Fondos de pantalla"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Accesos directos de aplicaciones"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Accesos directos de aplicaciones"</string>
<string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Será la carpeta de fondos de pantalla."</string>
<string name="all_apps_tab_all" msgid="2942727589595027258">"Todas las aplicaciones"</string>
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicaciones"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Juegos"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Descargadas"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Descargadas"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No hay juegos."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Sin aplicaciones descarg."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Sin aplicaciones descargadas"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"No se puede soltar el elemento en este escritorio."</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Seleccionar widget"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nombre de carpeta"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 2c9afb2..4e2b7d3 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"پوشه ها"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"بیشتر"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"تصاویر زمینه"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"میانبرهای برنامه کاربردی"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"دانلود شد"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"دانلود شد"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"هیچ بازی پیدا نشد."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"هیچ برنامه دانلود شده ای پیدا نشد."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"هیچ برنامه دانلود شده ای پیدا نشد."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"نمی توان موردی در این صفحه اصلی انداخت"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"انتخاب ابزارک جهت ایجاد"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"نام پوشه"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 2f09924..5ea5af6 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Sovelluspikakuvakkeet"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Ladatut"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Ladatut"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ei pelejä."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Ei ladattuja sovelluksia."</string>
+ <!-- outdated translation 6687010155766000796 --> <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>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Valitse luotava widget"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Kansion nimi"</string>
diff --git a/res/values-fr-xlarge/strings.xml b/res/values-fr-xlarge/strings.xml
index 0c5d315..5c0aa4b 100644
--- a/res/values-fr-xlarge/strings.xml
+++ b/res/values-fr-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"Sélectionner un fond d\'écran"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Aucun fond d\'écran disponible"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"Annuler"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 50f88a8..170dcfd 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -25,20 +25,20 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"Sélectionner à partir de..."</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"Sélectionner"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"Fonds d\'écran"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"L\'application n\'est pas installée sur votre téléphone."</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"L\'application n\'est pas installée."</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"Configurer..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"Widgets"</string>
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Raccourcis des applications"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Raccourcis des 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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Téléchargées"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Téléchargées"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Aucun jeu n\'a été trouvé."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Pas d\'application téléchargée"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Aucune application téléchargée trouvée"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Impossible de déposer l\'élément sur l\'écran d\'accueil."</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Sélectionner le widget à créer"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nom du dossier"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"Applications"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Page d\'accueil"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"Supprimer"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Supprimer"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Désinstaller"</string>
<string name="menu_add" msgid="3065046628354640854">"Ajouter"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"Gérer les applications"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"Fond d\'écran"</string>
diff --git a/res/values-hr-xlarge/strings.xml b/res/values-hr-xlarge/strings.xml
index 7e4a299..c791102 100644
--- a/res/values-hr-xlarge/strings.xml
+++ b/res/values-hr-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"Odaberite pozadinsku sliku"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nema dostupnih pozadinskih slika"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"Odustani"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index fad275e..c93d64b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -25,20 +25,20 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"Odabir između pozadinskih slika"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"Postavi pozadinsku sliku"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"Pozadinske slike"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"Aplikacija nije instalirana na vašem telefonu."</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"Aplikacija nije instalirana."</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"Konfiguriraj..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"Widgeti"</string>
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Prečaci aplikacija"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Preuzeto"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Preuzeto"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Igre nisu pronađene."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nema preuzetih aplikacija"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nema preuzetih aplikacija"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nije bilo moguće spustiti stavku na početni zaslon"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Odabir widgeta za stvaranje"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Naziv mape"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"Aplikacije"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Početna"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"Ukloni"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Izbriši"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Deinstaliraj"</string>
<string name="menu_add" msgid="3065046628354640854">"Dodaj"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"Upravljaj aplikacijama"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"Pozadinska slika"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ff946de..af42d2d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Alkalmazás-parancsikonok"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Letöltött"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Letöltött"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nincsenek játékok."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nincs letöltött alk."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nincs letöltött alk."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nem lehet elhelyezni az elemet ezen a főoldalon"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"A létrehozandó modul kiválasztása"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mappa neve"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index acecc43..22b5dde 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Pintasan App"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Pintasan App"</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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Diunduh"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Diunduh"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Tidak ditemukan permainan."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Tidak ada aplikasi yang diunduh."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Tidak ada aplikasi yang diunduh."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Tidak dapat menaruh item pada layar utama ini"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Pilih widget untuk membuat"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nama map"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 0c2ca9f..62112b4 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Scorciatoie applicazioni"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Scaricate"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Scaricate"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nessun gioco trovato."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nessuna appl. scaricata"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nessuna applicazione scaricata trovata."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Impossibile rilasciare elemento in schermata Home"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Seleziona il widget da creare"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nome cartella"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 7ba83a7..6b6ba78 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"תיקיות"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"עוד"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"טפטים"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"קיצורי דרך של יישומים"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"ירדו"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"מהורדות"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"לא נמצאו משחקים."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"לא נמצאו יישומים שהורדו."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"לא נמצאו יישומים שהורדו."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"אין אפשרות להניח פריט במסך בית זה"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"בחר widget כדי ליצור"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"שם תיקיה"</string>
diff --git a/res/values-ja-xlarge/strings.xml b/res/values-ja-xlarge/strings.xml
index 85e3b6c..3320532 100644
--- a/res/values-ja-xlarge/strings.xml
+++ b/res/values-ja-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"壁紙の選択"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"利用できる壁紙がありません"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"キャンセル"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index f44e9e5..9d45452 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -25,20 +25,20 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"壁紙を選択"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"壁紙に設定"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"壁紙"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"アプリケーションがインストールされていません。"</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"インストールされていません。"</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"設定..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"ウィジェット"</string>
<string name="folders_tab_label" msgid="1145293785541489736">"フォルダ"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"その他"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"壁紙"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"アプリのショートカット"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"ダウンロード済み"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"ダウンロード済み"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"ゲームなし"</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"ダウンロードアプリなし"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"ダウンロードしたアプリケーションは見つかりません。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"このホーム画面にアイテムをドロップできませんでした"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"作成するウィジェットを選択"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"フォルダ名"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"アプリ"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"ホーム"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"削除"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"削除"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"アンインストール"</string>
<string name="menu_add" msgid="3065046628354640854">"追加"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"アプリの管理"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"壁紙"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3ccc4a7..5bd3246 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"폴더"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"더보기"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"배경화면"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"앱 바로가기"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"다운로드앱"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"다운로드됨"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"게임이 없습니다."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"다운로드한 애플리케이션이 없습니다."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"다운로드한 애플리케이션이 없습니다."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"홈 화면에 항목을 드롭할 수 없습니다."</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"만들 위젯 선택"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"폴더 이름"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 10727a7..123b67b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Spartieji programos klavišai"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Atsisiųsta"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Atsisiųsta"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nerasta žaidimų."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nerasta atsisiųstų progr."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nerasta atsisiųstų programų."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nepavyko pašalinti elemento šiame pagr. ekrane"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Pasirinkti norimą sukurti valdiklį"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Aplanko pavadinimas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 6cc70e7..0b75388 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Lietotnes saīsnes"</string>
+ <!-- outdated translation 7756968120518062632 --> <string name="applications_tab_label" msgid="2991364240020736760">"Lietotnes 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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Lejupielād."</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Lejupielādētās"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nav nevienas spēles."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nav lejupiel. lietotņu."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nav lejupielādētu lietotņu."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nevarēja nomest vienumu šajā sākumekrānā."</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Atlasīt izveidojamo logrīku"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mapes nosaukums"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index a51be4b..9f6f91f 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Programsnarveier"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Nedlastet"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Nedlastet"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Finner ingen spill."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Finner ingen nedl.prog."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Finner ingen nedlastede programmer."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kunne ikke slippe elementet på denne startskjermen"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Velg modul for oppretting"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mappenavn"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7de43a4..9d7ff2f 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Toepassingssnelkoppelingen"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Gedownload"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Gedownload"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Geen games gevonden."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Geen gedownl. apps gevond."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Geen gedownloade toepassingen gevonden."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Kan item niet neerzetten op dit startscherm"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Widget selecteren om te maken"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Mapnaam"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index e3a98ab..50e955e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Skróty do aplikacji"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Pobrane"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Pobrane"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nie znaleziono gier."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Brak pobranych aplikacji."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Brak pobranych aplikacji."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Nie można upuścić elementu na ekranie głównym"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Wybierz widżet do utworzenia"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nazwa folderu"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5b25e4a..69f202a 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Atalhos de aplicações"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Transferidas"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Transferidas"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Sem jogos."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Sem aplic. transferidas."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Sem aplicações transferidas."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Não foi possível largar o item neste ecrã inicial"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Seleccionar widget a criar"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nome da pasta"</string>
diff --git a/res/values-pt-xlarge/strings.xml b/res/values-pt-xlarge/strings.xml
index 2f98ec2..b283297 100644
--- a/res/values-pt-xlarge/strings.xml
+++ b/res/values-pt-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"Selecionar plano de fundo"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nenhum papel de parede disponível"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index d2d2eab..9e6cdfd 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -25,27 +25,27 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"Selecionar plano de fundo de"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"Definir plano de fundo"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"Papéis de parede"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"O aplicativo não está instalado no seu telefone."</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"O aplicativo não está instalado."</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"Configurar..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"Widgets"</string>
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Atalhos de aplicativo"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Download concluído"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Download concluído"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenhum jogo encontrado."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nenhum aplic. encontrado."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nenhum aplic. encontrado."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Não foi possível soltar o item nesta tela inicial"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Selecione um widget para criar"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Nome da pasta"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Renomear pasta"</string>
<string name="rename_action" msgid="6016003384693240896">"OK"</string>
<string name="cancel_action" msgid="3811860427489435048">"Cancelar"</string>
- <string name="menu_item_add_item" msgid="6233177331075781114">"Adicionar à tela da Página inicial"</string>
+ <string name="menu_item_add_item" msgid="6233177331075781114">"Adicionar à tela inicial"</string>
<string name="group_applications" msgid="4118484163419674240">"Aplicativos"</string>
<string name="group_shortcuts" msgid="9133529424900391877">"Atalhos"</string>
<string name="group_folder" msgid="5143593791798929193">"Nova pasta"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"Aplicativos"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"Página inicial"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"Remover"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Excluir"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"Desinstalar"</string>
<string name="menu_add" msgid="3065046628354640854">"Adicionar"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"Gerenciar aplicativos"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"Plano de fundo"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 182327c..6ac87d4 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -35,7 +35,7 @@
<skip />
<!-- no translation found for wallpapers_tab_label (1617804870364119879) -->
<skip />
- <!-- no translation found for applications_tab_label (9046797126882613707) -->
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
<skip />
<!-- no translation found for wallpapers_temp_tab_text (1660218201190495279) -->
<skip />
@@ -45,7 +45,7 @@
<skip />
<!-- no translation found for all_apps_tab_games (1855736784923494918) -->
<skip />
- <!-- no translation found for all_apps_tab_downloaded (3335316755603669951) -->
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
<skip />
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<skip />
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 185192f..ff81c00 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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Comenzi rapide aplicaţii"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Descărcate"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Descărcate"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nu s-au găsit jocuri."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nu s-au găsit apl. desc."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Nu s-au găsit 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 f32579a..abd09f9 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Папки"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Ещё"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Обои"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Ярлыки приложений"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Загруженные"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Загруженные"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Игр не найдено."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Нет загруженных приложений."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Нет загруженных приложений."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Не удается скопировать элемент на главный экран"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Выберите виджет"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Название папки"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 3962fbd..23a8476 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Odkazy aplikácií"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Prevzaté"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Prevzaté"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenašli sa žiadne hry."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Žiadne prevz. aplikácie."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Neboli nájdené žiadne prevzaté aplikácie."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Položku sa nepodarilo pretiahnuť na túto plochu"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Vyberte miniaplikáciu"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Názov priečinka"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 12ff463..f12fd7b 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Bližnjice do programov"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Preneseno"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Preneseno"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ni najdenih iger."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Ni najdenih prenesenih programov."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Ni najdenih prenesenih programov."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Elementa ni bilo mogoče postaviti na ta začetni zaslon"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Izberite želeni pripomoček"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Ime mape"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 12f637e..4a61abb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Директоријуми"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Још"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Позадине"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Пречице за апликације"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Преузето"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Преузето"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Нису пронађене игре."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Нису пронађене преузете апликације"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Нису пронађене преузете апликације"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Ставка није пребачена на овај почетни екран"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Изаберите виџет за креирање"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Име директоријума"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 7d54842..5f5a5d0 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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Genvägar för appar"</string>
+ <!-- outdated translation 7756968120518062632 --> <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">"Program"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spel"</string>
- <!-- outdated translation 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Hämtade"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Hämtade"</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>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Inga hämtade 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 c2795bb..39dc770 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"โฟลเดอร์"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"เพิ่มเติม"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"วอลเปเปอร์"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"ทางลัดของแอปพลิเคชัน"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"ที่ดาวน์โหลดไว้"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"ดาวน์โหลดแล้ว"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"ไม่พบเกม"</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"ไม่พบแอปพลิเคชันที่ดาวน์โหลดไว้"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"ไม่พบแอปพลิเคชันที่ดาวน์โหลดไว้"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"ไม่สามารถวางรายการลงในหน้าจอหลักนี้ได้"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"เลือกวิดเจ็ตที่จะสร้าง"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"ชื่อโฟลเดอร์"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index c92cf30..cbdac66 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Mga Shortcut ng App"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Na-download"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Na-download"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Walang nakitang mga laro."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Walang na-download na app"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Walang na-download na app"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Hindi ma-drop ang item sa homescreen na ito"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Pumili ng widget na lilikhain"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Pangalan ng folder"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 4b35afc..3059ab4 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Uygulama Kısayolları"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"İndirilenler"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"İndirilenler"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Oyun bulunamadı."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"İndirilmş uyg bulunamadı."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"İndirilmiş uygulama bulunamadı."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Öğe bu ana ekrana bırakılamadı"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Oluşturulacak widget\'i seç"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Klasör adı"</string>
diff --git a/res/values-uk-xlarge/strings.xml b/res/values-uk-xlarge/strings.xml
index 7c859cb..4950142 100644
--- a/res/values-uk-xlarge/strings.xml
+++ b/res/values-uk-xlarge/strings.xml
@@ -20,6 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"Вибрати фоновий малюнок"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Фонові малюнки не доступні"</string>
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Фонові малюнки недоступні"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"Скасувати"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 0a1c79e..caa04d8 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"Папки"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"Більше"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"Фонові мал."</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"Ярлики програм"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Завантажені"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Завантажені"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Ігор не знайдено."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Завантаж. прог. не знайд."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Завантажених програм не знайдено."</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"Неможливо помістити елемент на цей головний екран"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Вибрати віджет для створення"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Назва папки"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index eff426e..18f47a4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -31,14 +31,14 @@
<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>
- <string name="applications_tab_label" msgid="9046797126882613707">"Lối tắt ứng dụng"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"Đã tải xuống"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"Đã tải xuống"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"Không tìm thấy trò chơi."</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Không tìm thấy ư.dụng được t.xuống."</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"Không tìm thấy ư.dụng được t.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>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"Chọn tiện ích để tạo"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"Tên thư mục"</string>
diff --git a/res/values-xlarge/config.xml b/res/values-xlarge/config.xml
index 3e514fb..c6cd0e2 100644
--- a/res/values-xlarge/config.xml
+++ b/res/values-xlarge/config.xml
@@ -9,7 +9,7 @@
<!-- Duration in milliseconds of the all apps / configuration zoom-in animation. -->
<!-- NB: This should be less than the workspaceShrinkTime as they happen together. -->
- <integer name="config_allAppsZoomInTime">800</integer>
+ <integer name="config_allAppsZoomInTime">900</integer>
<!-- Duration in milliseconds of the transition between tabs in the all apps/customize
tray -->
@@ -17,7 +17,7 @@
<!-- Duration in milliseconds of the all apps zoom-out animation -->
<!-- NB: This should be less than the workspaceUnshrinkTime as they happen together. -->
- <integer name="config_allAppsZoomOutTime">600</integer>
+ <integer name="config_allAppsZoomOutTime">1400</integer>
<!-- Scaling factor used in the all apps zooming animations -->
<integer name="config_allAppsZoomScaleFactor">10</integer>
@@ -36,9 +36,9 @@
<!-- Duration in milliseconds of the animations between all apps, customize, & home.
NOTE: If these are changed, the toolbar animation times below should also be. -->
<integer name="config_allAppsCameraPanTime">700</integer>
- <integer name="config_allAppsFadeOutTime">150</integer>
+ <integer name="config_allAppsFadeOutTime">400</integer>
<integer name="config_customizeWorkspaceShrinkTime">800</integer>
- <integer name="config_allAppsWorkspaceShrinkTime">800</integer>
+ <integer name="config_allAppsWorkspaceShrinkTime">950</integer>
<integer name="config_workspaceUnshrinkTime">450</integer>
<!-- Duration in milliseconds toolbar fade in and fade out animations.
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 22f4134..c4988e4 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -42,10 +42,11 @@
<dimen name="customizeSmallScreenVerticalMarginLandscape">90dip</dimen>
<dimen name="customizeSmallScreenVerticalMarginPortrait">180dip</dimen>
- <dimen name="all_apps_drawable_padding">8dip</dimen>
- <!-- toolbar divider height is 32dip plus 2*8dip for padding on top and bottom -->
- <dimen name="toolbar_divider_height">48dip</dimen>
- <dimen name="toolbar_button_vertical_padding">8dip</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>
+
+ <dimen name="toolbar_button_vertical_padding">12dip</dimen>
<dimen name="toolbar_button_horizontal_padding">16dip</dimen>
<!-- height & width of the drop rectangle for the trash icon -->
diff --git a/res/values-zh-rCN-xlarge/strings.xml b/res/values-zh-rCN-xlarge/strings.xml
index da36470..2b9866d 100644
--- a/res/values-zh-rCN-xlarge/strings.xml
+++ b/res/values-zh-rCN-xlarge/strings.xml
@@ -20,7 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wallpaper_dialog_title" msgid="5764793286524787718">"选择壁纸"</string>
- <!-- no translation found for wallpaper_chooser_empty (7358237455389125747) -->
- <skip />
+ <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"没有可用壁纸"</string>
<string name="wallpaper_cancel" msgid="6502936522490675611">"取消"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index eb7b2e7..b28d5a0 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -25,20 +25,20 @@
<string name="chooser_wallpaper" msgid="5988031014201479733">"选择壁纸来源"</string>
<string name="wallpaper_instructions" msgid="4215640646180727542">"设置壁纸"</string>
<string name="pick_wallpaper" msgid="5630222540525626723">"壁纸"</string>
- <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"您的手机上未安装应用程序。"</string>
+ <string name="activity_not_found" msgid="5591731020063337696">"未安装此应用程序。"</string>
<string name="configure_wallpaper" msgid="2820186271419674623">"配置..."</string>
<string name="widgets_tab_label" msgid="9145860100000983599">"窗口小部件"</string>
<string name="folders_tab_label" msgid="1145293785541489736">"文件夹"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"更多"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"壁纸"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"应用程序快捷方式"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"已下载"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"已下载"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"未找到游戏。"</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"未找到已下载的应用程序。"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"未找到已下载的应用程序。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"无法将该项放到主屏幕上"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"选择窗口小部件进行创建"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"文件夹名称"</string>
@@ -65,7 +65,7 @@
<string name="all_apps_button_label" msgid="2578400570124163469">"应用程序"</string>
<string name="all_apps_home_button_label" msgid="1022222300329398558">"主屏幕"</string>
<string name="delete_zone_label_workspace" msgid="7153615831493049150">"删除"</string>
- <!-- outdated translation 2536335964588694907 --> <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"删除"</string>
+ <string name="delete_zone_label_all_apps" msgid="6664588234817475108">"卸载"</string>
<string name="menu_add" msgid="3065046628354640854">"添加"</string>
<string name="menu_manage_apps" msgid="2308685199463588895">"管理应用程序"</string>
<string name="menu_wallpaper" msgid="5837429080911269832">"壁纸"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 171ab05..3b5b214 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -31,14 +31,14 @@
<string name="folders_tab_label" msgid="1145293785541489736">"資料夾"</string>
<string name="shortcuts_tab_label" msgid="8640731503933155644">"更多選項"</string>
<string name="wallpapers_tab_label" msgid="1617804870364119879">"桌布"</string>
- <string name="applications_tab_label" msgid="9046797126882613707">"應用程式捷徑"</string>
+ <!-- outdated translation 7756968120518062632 --> <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 2300935549064726963 --> <string name="all_apps_tab_downloaded" msgid="3335316755603669951">"下載內容"</string>
+ <!-- outdated translation 7753043607780556423 --> <string name="all_apps_tab_downloaded" msgid="1488049110598641387">"已下載"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"找不到遊戲。"</string>
- <!-- outdated translation 6145042636084482299 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"找不到已下載的應用程式。"</string>
+ <!-- outdated translation 6687010155766000796 --> <string name="all_apps_no_downloads" msgid="2284720393234453761">"找不到已下載的應用程式。"</string>
<string name="external_drop_widget_error" msgid="4976816434597126575">"無法將項目拖放至主螢幕上"</string>
<string name="external_drop_widget_pick_title" msgid="4481311720134376218">"選取要建立的小工具"</string>
<string name="rename_folder_label" msgid="5646236631298452787">"資料夾名稱"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 91fe2c9..6c372e3 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -32,7 +32,7 @@
<color name="app_info_filter">#A50000FE</color>
<color name="dimmed_view_color">#FF7F7F7F</color>
- <color name="drag_outline_color">#9DBE12</color>
+ <color name="drag_outline_color">#6595f9</color>
<color name="workspace_item_pressed_outline_color">#6595f9</color>
<color name="workspace_item_pressed_glow_color">#0997ff</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 473ed58..850c609 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -25,6 +25,12 @@
<!-- The alpha value at which to show the most recent drop visualization outline. -->
<integer name="config_dragOutlineMaxAlpha">128</integer>
+ <!-- Workspace screens are cached to bitmaps only when they're smaller than a certain size
+ (maxScaleForUsingWorkspaceScreenBitmapCache), since the bitmap cache it self is smaller
+ than the view itself (workspaceScreenBitmapCacheScale) -->
+ <integer name="config_workspaceScreenBitmapCacheScale">20</integer>
+ <integer name="config_maxScaleForUsingWorkspaceScreenBitmapCache">50</integer>
+
<!-- Parameters controlling the animation for when an item is dropped on the home screen,
and it animates from its old position to the new one. -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0c4aa26..6dcaa57 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -54,7 +54,7 @@
<!-- Title of tab for configuring wallpapers -->
<string name="wallpapers_tab_label">Wallpapers</string>
<!-- Title of tab for configuring applications -->
- <string name="applications_tab_label">App Shortcuts</string>
+ <string name="applications_tab_label">App shortcuts</string>
<!-- Placeholder text, will be removed -->
<string name="wallpapers_temp_tab_text">This will be the wallpapers tab</string>
<!-- Labels for the tabs in All Apps -->
@@ -65,7 +65,7 @@
<!-- Title of the tab for applications labeled as games [CHAR_LIMIT=24] -->
<string name="all_apps_tab_games">Games</string>
<!-- Tile of the tab for applications that were downloaded from market [CHAR_LIMIT=24] -->
- <string name="all_apps_tab_downloaded">My Apps</string>
+ <string name="all_apps_tab_downloaded">My apps</string>
<!-- All Apps pane -->
<!-- Message to show when there are no games [CHAR_LIMIT=25] -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7592a15..0c74a6a 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -68,6 +68,28 @@
<item name="android:layout_marginRight">10dip</item>
</style>
+ <style name="TabIndicator">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">match_parent</item>
+ <item name="android:gravity">center</item>
+ <item name="android:paddingLeft">40dp</item>
+ <item name="android:paddingRight">40dp</item>
+ <item name="android:paddingTop">15dp</item>
+ <item name="android:paddingBottom">20dp</item>
+ <item name="android:textColor">@color/tab_widget_indicator_color</item>
+ <item name="android:background">@drawable/tab_widget_indicator_selector</item>
+ <item name="android:textSize">20sp</item>
+ <item name="android:shadowColor">#393939</item>
+ <item name="android:shadowDx">0.0</item>
+ <item name="android:shadowDy">1.0</item>
+ <item name="android:shadowRadius">1.0</item>
+ </style>
+
+ <style name="TabIndicator.Portrait">
+ <item name="android:paddingLeft">20dp</item>
+ <item name="android:paddingRight">20dp</item>
+ </style>
+
<style name="SearchButton" parent="@android:style/Widget.Button.Small">
<item name="android:paddingTop">7dip</item>
<item name="android:paddingBottom">9dip</item>
diff --git a/src/com/android/launcher2/CachedViewGroup.java b/src/com/android/launcher2/CachedViewGroup.java
new file mode 100644
index 0000000..f314b32
--- /dev/null
+++ b/src/com/android/launcher2/CachedViewGroup.java
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher2;
+
+import com.android.launcher.R;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.Bitmap.Config;
+import android.graphics.PorterDuff.Mode;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+
+// This class caches the drawing of this View's children in a bitmap when the scale factor
+// falls below a certain size. Only used by CellLayout, but in a separate class to keep cache
+// logic separate from the other logic in CellLayout
+public class CachedViewGroup extends ViewGroup implements VisibilityChangedListener {
+ static final String TAG = "CachedViewGroup";
+
+ private Bitmap mCache;
+ private Canvas mCacheCanvas;
+ private Rect mCacheRect;
+ private Paint mCachePaint;
+
+ private boolean mIsCacheEnabled = true;
+ private boolean mDisableCacheUpdates = false;
+ private boolean mForceCacheUpdate = false;
+ private boolean isUpdatingCache = false;
+ private boolean mIsCacheDirty = true;
+ private float mBitmapCacheScale;
+ private float mMaxScaleForUsingBitmapCache;
+
+ private Rect mBackgroundRect;
+
+ public CachedViewGroup(Context context) {
+ super(context);
+ init();
+ }
+
+ public CachedViewGroup(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+ private void init() {
+ mBackgroundRect = new Rect();
+ mCacheRect = new Rect();
+ final Resources res = getResources();
+ mBitmapCacheScale =
+ res.getInteger(R.integer.config_workspaceScreenBitmapCacheScale) / 100.0f;
+ mMaxScaleForUsingBitmapCache =
+ res.getInteger(R.integer.config_maxScaleForUsingWorkspaceScreenBitmapCache) / 100.0f;
+ mCacheCanvas = new Canvas();
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ // sub-classes (namely CellLayout) will need to implement this
+ prepareCacheBitmap();
+ invalidateCache();
+ }
+
+ private void invalidateIfNeeded() {
+ if (mIsCacheDirty) {
+ // Force a redraw to update the cache if it's dirty
+ invalidate();
+ }
+ }
+
+ public void enableCache() {
+ mIsCacheEnabled = true;
+ invalidateIfNeeded();
+ }
+
+ public void disableCache() {
+ mIsCacheEnabled = false;
+ }
+
+ public void disableCacheUpdates() {
+ mDisableCacheUpdates = true;
+ // Force just one update before we enter a period of no cache updates
+ mForceCacheUpdate = true;
+ }
+
+ public void enableCacheUpdates() {
+ mDisableCacheUpdates = false;
+ invalidateIfNeeded();
+ }
+
+ private void invalidateCache() {
+ mIsCacheDirty = true;
+ invalidate();
+ }
+
+ public void receiveVisibilityChangedMessage(View v) {
+ invalidateCache();
+ }
+
+ private void prepareCacheBitmap() {
+ if (mCache == null) {
+ mCache = Bitmap.createBitmap((int) (getWidth() * mBitmapCacheScale),
+ (int) (getHeight() * mBitmapCacheScale), Config.ARGB_8888);
+
+ mCachePaint = new Paint();
+ mCachePaint.setFilterBitmap(true);
+ mCacheCanvas.setBitmap(mCache);
+ mCacheCanvas.scale(mBitmapCacheScale, mBitmapCacheScale);
+ }
+ }
+
+
+ public void updateCache() {
+ mCacheCanvas.drawColor(0, Mode.CLEAR);
+
+ float alpha = getAlpha();
+ setAlpha(1.0f);
+ isUpdatingCache = true;
+ drawChildren(mCacheCanvas);
+ isUpdatingCache = false;
+ setAlpha(alpha);
+
+ mIsCacheDirty = false;
+ }
+
+ public void drawChildren(Canvas canvas) {
+ super.dispatchDraw(canvas);
+ }
+
+ @Override
+ public void removeAllViews() {
+ super.removeAllViews();
+ invalidateCache();
+ }
+
+ @Override
+ public void removeAllViewsInLayout() {
+ super.removeAllViewsInLayout();
+ invalidateCache();
+ }
+
+ @Override
+ public void removeView(View view) {
+ super.removeView(view);
+ invalidateCache();
+ }
+
+ @Override
+ public void removeViewAt(int index) {
+ super.removeViewAt(index);
+ invalidateCache();
+ }
+
+ @Override
+ public void removeViewInLayout(View view) {
+ super.removeViewInLayout(view);
+ invalidateCache();
+ }
+
+ @Override
+ public void removeViews(int start, int count) {
+ super.removeViews(start, count);
+ invalidateCache();
+ }
+
+ @Override
+ public void removeViewsInLayout(int start, int count) {
+ super.removeViewsInLayout(start, count);
+ invalidateCache();
+ }
+
+ @Override
+ public void dispatchDraw(Canvas canvas) {
+ final int count = getChildCount();
+
+ boolean useBitmapCache = false;
+ if (!isUpdatingCache) {
+ if (!mIsCacheDirty) {
+ // Check if one of the children (an icon or widget) is dirty
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.isDirty()) {
+ mIsCacheDirty = true;
+ break;
+ }
+ }
+ }
+
+ useBitmapCache = mIsCacheEnabled && getScaleX() < mMaxScaleForUsingBitmapCache;
+ if (mForceCacheUpdate ||
+ (useBitmapCache && !mDisableCacheUpdates)) {
+ // Sometimes we force a cache update-- this is used to make sure the cache will look as
+ // up-to-date as possible right when we disable cache updates
+ if (mIsCacheDirty) {
+ updateCache();
+ }
+ mForceCacheUpdate = false;
+ }
+ }
+
+ if (useBitmapCache) {
+ mCachePaint.setAlpha((int)(255*getAlpha()));
+ canvas.drawBitmap(mCache, mCacheRect, mBackgroundRect, mCachePaint);
+ } else {
+ super.dispatchDraw(canvas);
+ }
+ }
+
+ @Override
+ public void addView(View child, int index, ViewGroup.LayoutParams params) {
+ super.addView(child, index, params);
+
+ // invalidate the cache to have it reflect the new item
+ invalidateCache();
+
+ if (child instanceof VisibilityChangedBroadcaster) {
+ VisibilityChangedBroadcaster v = (VisibilityChangedBroadcaster) child;
+ v.setVisibilityChangedListener(this);
+ }
+ }
+
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
+ mBackgroundRect.set(0, 0, w, h);
+ mCacheRect.set(0, 0, (int) (mBitmapCacheScale * w), (int) (mBitmapCacheScale * h));
+ mCache = null;
+ prepareCacheBitmap();
+ invalidateCache();
+ }
+}
+
+
+//Custom interfaces used to listen to "visibility changed" events of *children* of Views. Avoided
+//using "onVisibilityChanged" in the names because there's a method of that name in framework
+//(which can only can be used to listen to ancestors' "visibility changed" events)
+interface VisibilityChangedBroadcaster {
+ public void setVisibilityChangedListener(VisibilityChangedListener listener);
+}
+
+interface VisibilityChangedListener {
+ public void receiveVisibilityChangedMessage(View v);
+}
\ No newline at end of file
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 49ae652..9b173be 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -25,7 +25,6 @@
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
-import android.app.WallpaperManager;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -37,8 +36,6 @@
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Region;
-import android.graphics.Bitmap.Config;
-import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
@@ -53,7 +50,7 @@
import java.util.Arrays;
-public class CellLayout extends ViewGroup implements VisibilityChangedListener {
+public class CellLayout extends CachedViewGroup {
static final String TAG = "CellLayout";
private int mCellWidth;
@@ -87,7 +84,6 @@
private float mBackgroundAlphaMultiplier = 1.0f;
private Drawable mNormalBackground;
- private Drawable mNormalGlowBackground;
private Drawable mActiveBackground;
private Drawable mActiveGlowBackground;
private Drawable mNormalBackgroundMini;
@@ -99,18 +95,6 @@
private float mGlowBackgroundScale;
private float mGlowBackgroundAlpha;
- private Bitmap mCache;
- private Canvas mCacheCanvas;
- private Rect mCacheRect;
- private Paint mCachePaint;
-
- private boolean mIsCacheEnabled = true;
- private boolean mDisableCacheUpdates = false;
- private boolean mForceCacheUpdate = false;
- private boolean mIsCacheDirty = true;
- private float mBitmapCacheScale;
- private float mMaxScaleForUsingBitmapCache;
-
private boolean mAcceptsDrops = false;
// If we're actively dragging something over this screen, mIsDragOverlapping is true
private boolean mIsDragOverlapping = false;
@@ -136,11 +120,10 @@
// When a drag operation is in progress, holds the nearest cell to the touch point
private final int[] mDragCell = new int[2];
- private final WallpaperManager mWallpaperManager;
-
private boolean mDragging = false;
private TimeInterpolator mEaseOutInterpolator;
+ private CellLayoutChildren mChildren;
public CellLayout(Context context) {
this(context, null);
@@ -181,13 +164,10 @@
setAlwaysDrawnWithCacheEnabled(false);
- mWallpaperManager = WallpaperManager.getInstance(context);
-
final Resources res = getResources();
if (LauncherApplication.isScreenXLarge()) {
mNormalBackground = res.getDrawable(R.drawable.homescreen_large_blue);
- mNormalGlowBackground = res.getDrawable(R.drawable.homescreen_large_blue_strong);
mActiveBackground = res.getDrawable(R.drawable.homescreen_large_green);
mActiveGlowBackground = res.getDrawable(R.drawable.homescreen_large_green_strong);
@@ -197,7 +177,6 @@
mActiveGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_green_strong);
mNormalBackground.setFilterBitmap(true);
- mNormalGlowBackground.setFilterBitmap(true);
mActiveBackground.setFilterBitmap(true);
mActiveGlowBackground.setFilterBitmap(true);
mNormalBackgroundMini.setFilterBitmap(true);
@@ -279,15 +258,20 @@
mBackgroundRect = new Rect();
mGlowBackgroundRect = new Rect();
- mCacheRect = new Rect();
setHoverScale(1.0f);
setHoverAlpha(1.0f);
- mBitmapCacheScale =
- res.getInteger(R.integer.config_workspaceScreenBitmapCacheScale) / 100.0f;
- mMaxScaleForUsingBitmapCache =
- res.getInteger(R.integer.config_maxScaleForUsingWorkspaceScreenBitmapCache) / 100.0f;
- mCacheCanvas = new Canvas();
+ mChildren = new CellLayoutChildren(context);
+ mChildren.setCellDimensions(
+ mCellWidth, mCellHeight, mLeftPadding, mTopPadding, mWidthGap, mHeightGap);
+ addView(mChildren);
+ }
+
+ public CellLayoutChildren getChildrenLayout() {
+ if (getChildCount() > 0) {
+ return (CellLayoutChildren) getChildAt(0);
+ }
+ return null;
}
public void setIsDefaultDropTarget(boolean isDefaultDropTarget) {
@@ -328,6 +312,9 @@
if (scaleFactor != mGlowBackgroundScale) {
mGlowBackgroundScale = scaleFactor;
updateGlowRect();
+ if (getParent() != null) {
+ ((View) getParent()).invalidate();
+ }
}
}
@@ -376,102 +363,6 @@
}
}
- public void drawChildren(Canvas canvas) {
- super.dispatchDraw(canvas);
- }
-
- private void invalidateIfNeeded() {
- if (mIsCacheDirty) {
- // Force a redraw to update the cache if it's dirty
- invalidate();
- }
- }
-
- public void enableCache() {
- mIsCacheEnabled = true;
- invalidateIfNeeded();
- }
-
- public void disableCache() {
- mIsCacheEnabled = false;
- }
-
- public void disableCacheUpdates() {
- mDisableCacheUpdates = true;
- // Force just one update before we enter a period of no cache updates
- mForceCacheUpdate = true;
- }
-
- public void enableCacheUpdates() {
- mDisableCacheUpdates = false;
- invalidateIfNeeded();
- }
-
- private void invalidateCache() {
- mIsCacheDirty = true;
- invalidate();
- }
-
- public void receiveVisibilityChangedMessage(View v) {
- invalidateCache();
- }
-
- public void updateCache() {
- mCacheCanvas.drawColor(0, Mode.CLEAR);
-
- float alpha = getAlpha();
- setAlpha(1.0f);
- drawChildren(mCacheCanvas);
- setAlpha(alpha);
-
- mIsCacheDirty = false;
- }
-
- public void dispatchDraw(Canvas canvas) {
- final int count = getChildCount();
-
- if (!mIsCacheDirty) {
- // Check if one of the children (an icon or widget) is dirty
- for (int i = 0; i < count; i++) {
- final View child = getChildAt(i);
- if (child.isDirty()) {
- mIsCacheDirty = true;
- break;
- }
- }
- }
-
- boolean useBitmapCache = mIsCacheEnabled && getScaleX() < mMaxScaleForUsingBitmapCache;
- if (mForceCacheUpdate ||
- (useBitmapCache && !mDisableCacheUpdates)) {
- // Sometimes we force a cache update-- this is used to make sure the cache will look as
- // up-to-date as possible right when we disable cache updates
- if (mIsCacheDirty) {
- updateCache();
- }
- mForceCacheUpdate = false;
- }
-
- if (useBitmapCache) {
- mCachePaint.setAlpha((int)(255*getAlpha()));
- canvas.drawBitmap(mCache, mCacheRect, mBackgroundRect, mCachePaint);
- } else {
- super.dispatchDraw(canvas);
- }
- }
-
- private void prepareCacheBitmap() {
- if (mCache == null) {
- mCache = Bitmap.createBitmap((int) (getWidth() * mBitmapCacheScale),
- (int) (getHeight() * mBitmapCacheScale), Config.ARGB_8888);
-
- mCachePaint = new Paint();
- mCachePaint.setFilterBitmap(true);
- mCacheCanvas.setBitmap(mCache);
- mCacheCanvas.scale(mBitmapCacheScale, mBitmapCacheScale);
- }
- }
-
@Override
protected void onDraw(Canvas canvas) {
// When we're large, we are either drawn in a "hover" state (ie when dragging an item to
@@ -488,8 +379,8 @@
bg = mini ? mActiveBackgroundMini : mActiveGlowBackground;
} else if (mIsDragOccuring && mAcceptsDrops) {
bg = mini ? mActiveBackgroundMini : mActiveBackground;
- } else if (mIsDragOccuring && mIsDefaultDropTarget) {
- bg = mini ? mNormalGlowBackgroundMini : mNormalGlowBackground;
+ } else if (mIsDefaultDropTarget && mini) {
+ bg = mNormalGlowBackgroundMini;
} else {
bg = mini ? mNormalBackgroundMini : mNormalBackground;
}
@@ -610,15 +501,8 @@
child.setId(childId);
- addView(child, index, lp);
- child.setAlpha(getAlpha());
- if (child instanceof VisibilityChangedBroadcaster) {
- VisibilityChangedBroadcaster v = (VisibilityChangedBroadcaster) child;
- v.setVisibilityChangedListener(this);
- }
+ mChildren.addView(child, index, lp);
- // invalidate the cache to have it reflect the new item
- invalidateCache();
if (markCells) markCellsAsOccupiedForView(child);
return true;
@@ -639,70 +523,56 @@
@Override
public void removeAllViews() {
- super.removeAllViews();
clearOccupiedCells();
- invalidateCache();
+ mChildren.removeAllViews();
}
@Override
public void removeAllViewsInLayout() {
- super.removeAllViewsInLayout();
clearOccupiedCells();
- invalidateCache();
+ mChildren.removeAllViewsInLayout();
}
public void removeViewWithoutMarkingCells(View view) {
- super.removeView(view);
- invalidateCache();
+ mChildren.removeView(view);
}
@Override
public void removeView(View view) {
markCellsAsUnoccupiedForView(view);
- super.removeView(view);
- invalidateCache();
+ mChildren.removeView(view);
}
@Override
public void removeViewAt(int index) {
- markCellsAsUnoccupiedForView(getChildAt(index));
- super.removeViewAt(index);
- invalidateCache();
+ markCellsAsUnoccupiedForView(mChildren.getChildAt(index));
+ mChildren.removeViewAt(index);
}
@Override
public void removeViewInLayout(View view) {
markCellsAsUnoccupiedForView(view);
- super.removeViewInLayout(view);
- invalidateCache();
+ mChildren.removeViewInLayout(view);
}
@Override
public void removeViews(int start, int count) {
for (int i = start; i < start + count; i++) {
- markCellsAsUnoccupiedForView(getChildAt(i));
+ markCellsAsUnoccupiedForView(mChildren.getChildAt(i));
}
- super.removeViews(start, count);
- invalidateCache();
+ mChildren.removeViews(start, count);
}
@Override
public void removeViewsInLayout(int start, int count) {
for (int i = start; i < start + count; i++) {
- markCellsAsUnoccupiedForView(getChildAt(i));
+ markCellsAsUnoccupiedForView(mChildren.getChildAt(i));
}
- super.removeViewsInLayout(start, count);
- invalidateCache();
+ mChildren.removeViewsInLayout(start, count);
}
- @Override
- public void requestChildFocus(View child, View focused) {
- super.requestChildFocus(child, focused);
- if (child != null) {
- Rect r = new Rect();
- child.getDrawingRect(r);
- requestRectangleOnScreen(r);
- }
+ public void drawChildren(Canvas canvas) {
+ mChildren.draw(canvas);
}
@Override
@@ -716,11 +586,11 @@
final Rect frame = mRect;
final int x = touchX + mScrollX;
final int y = touchY + mScrollY;
- final int count = getChildCount();
+ final int count = mChildren.getChildCount();
boolean found = false;
for (int i = count - 1; i >= 0; i--) {
- final View child = getChildAt(i);
+ final View child = mChildren.getChildAt(i);
if ((child.getVisibility()) == VISIBLE || child.getAnimation() != null) {
child.getHitRect(frame);
@@ -753,7 +623,6 @@
setTag(cellInfo);
}
-
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (mInterceptTouchListener != null && mInterceptTouchListener.onTouch(this, ev)) {
@@ -886,68 +755,35 @@
mWidthGap = mHeightGap = minGap;
}
- int count = getChildCount();
-
- for (int i = 0; i < count; i++) {
- View child = getChildAt(i);
- LayoutParams lp = (LayoutParams) child.getLayoutParams();
- lp.setup(cellWidth, cellHeight, mWidthGap, mHeightGap,
- mLeftPadding, mTopPadding);
-
- int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY);
- int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.height,
- MeasureSpec.EXACTLY);
-
- child.measure(childWidthMeasureSpec, childheightMeasureSpec);
- }
+ // Initial values correspond to widthSpecMode == MeasureSpec.EXACTLY
+ int newWidth = widthSpecSize;
+ int newHeight = heightSpecSize;
if (widthSpecMode == MeasureSpec.AT_MOST) {
- int newWidth = mLeftPadding + mRightPadding + (mCountX * cellWidth) +
+ newWidth = mLeftPadding + mRightPadding + (mCountX * cellWidth) +
((mCountX - 1) * mWidthGap);
- int newHeight = mTopPadding + mBottomPadding + (mCountY * cellHeight) +
+ newHeight = mTopPadding + mBottomPadding + (mCountY * cellHeight) +
((mCountY - 1) * mHeightGap);
setMeasuredDimension(newWidth, newHeight);
- } else if (widthSpecMode == MeasureSpec.EXACTLY) {
- setMeasuredDimension(widthSpecSize, heightSpecSize);
}
+
+ int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ View child = getChildAt(i);
+ int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(newWidth, MeasureSpec.EXACTLY);
+ int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(newHeight,
+ MeasureSpec.EXACTLY);
+ child.measure(childWidthMeasureSpec, childheightMeasureSpec);
+ }
+ setMeasuredDimension(newWidth, newHeight);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int count = getChildCount();
-
for (int i = 0; i < count; i++) {
- final View child = getChildAt(i);
- if (child.getVisibility() != GONE) {
-
- CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
-
- int childLeft = lp.x;
- int childTop = lp.y;
- child.layout(childLeft, childTop, childLeft + lp.width, childTop + lp.height);
-
- if (lp.dropped) {
- lp.dropped = false;
-
- final int[] cellXY = mTmpCellXY;
- getLocationOnScreen(cellXY);
- mWallpaperManager.sendWallpaperCommand(getWindowToken(),
- WallpaperManager.COMMAND_DROP,
- cellXY[0] + childLeft + lp.width / 2,
- cellXY[1] + childTop + lp.height / 2, 0, null);
-
- if (lp.animateDrop) {
- lp.animateDrop = false;
-
- // This call does not result in a requestLayout(), but at one point did.
- // We need to be cautious about any method calls within the layout pass
- // to insure we don't leave the view tree in a bad state.
- ((Workspace) mParent).animateViewIntoPosition(child);
- }
- }
- }
+ View child = getChildAt(i);
+ child.layout(0, 0, r - l, b - t);
}
- prepareCacheBitmap();
- invalidateCache();
}
@Override
@@ -955,28 +791,16 @@
super.onSizeChanged(w, h, oldw, oldh);
mBackgroundRect.set(0, 0, w, h);
updateGlowRect();
- mCacheRect.set(0, 0, (int) (mBitmapCacheScale * w), (int) (mBitmapCacheScale * h));
- mCache = null;
- prepareCacheBitmap();
- invalidateCache();
}
@Override
protected void setChildrenDrawingCacheEnabled(boolean enabled) {
- final int count = getChildCount();
- for (int i = 0; i < count; i++) {
- final View view = getChildAt(i);
- view.setDrawingCacheEnabled(enabled);
- // Update the drawing caches
- if (!view.isHardwareAccelerated()) {
- view.buildDrawingCache(true);
- }
- }
+ mChildren.setChildrenDrawingCacheEnabled(enabled);
}
@Override
protected void setChildrenDrawnWithCacheEnabled(boolean enabled) {
- super.setChildrenDrawnWithCacheEnabled(enabled);
+ mChildren.setChildrenDrawnWithCacheEnabled(enabled);
}
public float getBackgroundAlpha() {
@@ -1017,17 +841,7 @@
}
public View getChildAt(int x, int y) {
- final int count = getChildCount();
- for (int i = 0; i < count; i++) {
- View child = getChildAt(i);
- LayoutParams lp = (LayoutParams) child.getLayoutParams();
-
- if ((lp.cellX <= x) && (x < lp.cellX + lp.cellHSpan) &&
- (lp.cellY <= y) && (y < lp.cellY + lp.cellHSpan)) {
- return child;
- }
- }
- return null;
+ return mChildren.getChildAt(x, y);
}
/**
@@ -1430,6 +1244,13 @@
return result;
}
+ public int[] cellSpansToSize(int hSpans, int vSpans) {
+ int[] size = new int[2];
+ size[0] = hSpans * mCellWidth + (hSpans - 1) * mWidthGap;
+ size[1] = vSpans * mCellHeight + (vSpans - 1) * mHeightGap;
+ return size;
+ }
+
/**
* Calculate the grid spans needed to fit given item
*/
@@ -1506,13 +1327,13 @@
}
private void markCellsAsOccupiedForView(View view) {
- if (view == null || view.getParent() != this) return;
+ if (view == null || view.getParent() != mChildren) return;
LayoutParams lp = (LayoutParams) view.getLayoutParams();
markCellsForView(lp.cellX, lp.cellY, lp.cellHSpan, lp.cellVSpan, true);
}
private void markCellsAsUnoccupiedForView(View view) {
- if (view == null || view.getParent() != this) return;
+ if (view == null || view.getParent() != mChildren) return;
LayoutParams lp = (LayoutParams) view.getLayoutParams();
markCellsForView(lp.cellX, lp.cellY, lp.cellHSpan, lp.cellVSpan, false);
}
@@ -1676,14 +1497,3 @@
}
}
}
-
-// Custom interfaces used to listen to "visibility changed" events of *children* of Views. Avoided
-// using "onVisibilityChanged" in the names because there's a method of that name in framework
-// (which can only can be used to listen to ancestors' "visibility changed" events)
-interface VisibilityChangedBroadcaster {
- public void setVisibilityChangedListener(VisibilityChangedListener listener);
-}
-
-interface VisibilityChangedListener {
- public void receiveVisibilityChangedMessage(View v);
-}
diff --git a/src/com/android/launcher2/CellLayoutChildren.java b/src/com/android/launcher2/CellLayoutChildren.java
new file mode 100644
index 0000000..a6f7f42
--- /dev/null
+++ b/src/com/android/launcher2/CellLayoutChildren.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher2;
+
+import android.app.WallpaperManager;
+import android.content.Context;
+import android.graphics.Rect;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.MeasureSpec;
+
+public class CellLayoutChildren extends ViewGroup {
+ static final String TAG = "CellLayoutChildren";
+
+ // These are temporary variables to prevent having to allocate a new object just to
+ // return an (x, y) value from helper functions. Do NOT use them to maintain other state.
+ private final int[] mTmpCellXY = new int[2];
+
+ private final WallpaperManager mWallpaperManager;
+
+ private int mCellWidth;
+ private int mCellHeight;
+
+ private int mLeftPadding;
+ private int mTopPadding;
+
+ private int mWidthGap;
+ private int mHeightGap;
+
+ public CellLayoutChildren(Context context) {
+ super(context);
+ mWallpaperManager = WallpaperManager.getInstance(context);
+ }
+
+ public void setCellDimensions(int cellWidth, int cellHeight,
+ int leftPadding, int topPadding, int widthGap, int heightGap ) {
+ mCellWidth = cellWidth;
+ mCellHeight = cellHeight;
+ mLeftPadding = leftPadding;
+ mTopPadding = topPadding;
+ mWidthGap = widthGap;
+ mHeightGap = heightGap;
+ }
+
+ public View getChildAt(int x, int y) {
+ final int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ View child = getChildAt(i);
+ CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
+
+ if ((lp.cellX <= x) && (x < lp.cellX + lp.cellHSpan) &&
+ (lp.cellY <= y) && (y < lp.cellY + lp.cellHSpan)) {
+ return child;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ final int cellWidth = mCellWidth;
+ final int cellHeight = mCellHeight;
+ int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ View child = getChildAt(i);
+ CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
+
+ lp.setup(cellWidth, cellHeight, mWidthGap, mHeightGap,
+ mLeftPadding, mTopPadding);
+
+ int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY);
+ int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.height,
+ MeasureSpec.EXACTLY);
+
+ child.measure(childWidthMeasureSpec, childheightMeasureSpec);
+ }
+ int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
+ int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
+ setMeasuredDimension(widthSpecSize, heightSpecSize);
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ CellLayout.LayoutParams lp = (CellLayout.LayoutParams) child.getLayoutParams();
+
+ int childLeft = lp.x;
+ int childTop = lp.y;
+ child.layout(childLeft, childTop, childLeft + lp.width, childTop + lp.height);
+
+ if (lp.dropped) {
+ lp.dropped = false;
+
+ final int[] cellXY = mTmpCellXY;
+ getLocationOnScreen(cellXY);
+ mWallpaperManager.sendWallpaperCommand(getWindowToken(),
+ WallpaperManager.COMMAND_DROP,
+ cellXY[0] + childLeft + lp.width / 2,
+ cellXY[1] + childTop + lp.height / 2, 0, null);
+
+ if (lp.animateDrop) {
+ lp.animateDrop = false;
+
+ // This call does not result in a requestLayout(), but at one point did.
+ // We need to be cautious about any method calls within the layout pass
+ // to insure we don't leave the view tree in a bad state.
+ ((Workspace) mParent.getParent()).animateViewIntoPosition(child);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void requestChildFocus(View child, View focused) {
+ super.requestChildFocus(child, focused);
+ if (child != null) {
+ Rect r = new Rect();
+ child.getDrawingRect(r);
+ requestRectangleOnScreen(r);
+ }
+ }
+
+ @Override
+ public void cancelLongPress() {
+ super.cancelLongPress();
+
+ // Cancel long press for all children
+ final int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ child.cancelLongPress();
+ }
+ }
+
+ @Override
+ protected void setChildrenDrawingCacheEnabled(boolean enabled) {
+ final int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ final View view = getChildAt(i);
+ view.setDrawingCacheEnabled(enabled);
+ // Update the drawing caches
+ if (!view.isHardwareAccelerated()) {
+ view.buildDrawingCache(true);
+ }
+ }
+ }
+
+ @Override
+ protected void setChildrenDrawnWithCacheEnabled(boolean enabled) {
+ super.setChildrenDrawnWithCacheEnabled(enabled);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index c74e5f4..e934efa 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -479,8 +479,9 @@
}
}
- Bitmap drawableToBitmap(Drawable d, View v) {
- Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
+ Bitmap drawableToBitmap(Drawable d, View v, boolean clipHeight) {
+ int height = clipHeight ? v.getPaddingTop() + d.getIntrinsicHeight() : v.getHeight();
+ Bitmap b = Bitmap.createBitmap(v.getWidth(), height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
c.translate((v.getWidth() - d.getIntrinsicWidth()) / 2, v.getPaddingTop());
d.draw(c);
@@ -508,8 +509,7 @@
// Get the widget preview as the drag representation
final LinearLayout l = (LinearLayout) v;
final ImageView i = (ImageView) l.findViewById(R.id.widget_preview);
- final Drawable icon = i.getDrawable();
- Bitmap b = drawableToBitmap(icon, i);
+ Bitmap b = drawableToBitmap(i.getDrawable(), i, true);
PendingAddWidgetInfo createWidgetInfo = (PendingAddWidgetInfo) v.getTag();
int[] spanXY = CellLayout.rectToCell(
@@ -529,7 +529,7 @@
// get icon (top compound drawable, index is 1)
final TextView tv = (TextView) v;
final Drawable icon = tv.getCompoundDrawables()[1];
- Bitmap b = drawableToBitmap(icon, tv);
+ Bitmap b = drawableToBitmap(icon, tv, false);
PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag();
mLauncher.getWorkspace().onDragStartedWithItemSpans(1, 1, b);
@@ -546,7 +546,7 @@
// get icon (top compound drawable, index is 1)
final TextView tv = (TextView) v;
final Drawable icon = tv.getCompoundDrawables()[1];
- Bitmap b = drawableToBitmap(icon, tv);
+ Bitmap b = drawableToBitmap(icon, tv, false);
ApplicationInfo app = (ApplicationInfo) v.getTag();
app = new ApplicationInfo(app);
diff --git a/src/com/android/launcher2/DragView.java b/src/com/android/launcher2/DragView.java
index 433dab8..c0776a9 100644
--- a/src/com/android/launcher2/DragView.java
+++ b/src/com/android/launcher2/DragView.java
@@ -48,7 +48,6 @@
private int mDragRegionHeight;
ValueAnimator mAnim;
- private float mScale = 1.0f;
private float mOffsetX = 0.0f;
private float mOffsetY = 0.0f;
@@ -144,22 +143,6 @@
mOnDrawRunnable = r;
}
- public int getScaledDragRegionXOffset() {
- return -(int)((mScale - 1.0f) * mDragRegionWidth / 2);
- }
-
- public int getScaledDragRegionWidth() {
- return (int)(mScale * mDragRegionWidth);
- }
-
- public int getScaledDragRegionYOffset() {
- return -(int)((mScale - 1.0f) * mDragRegionHeight / 2);
- }
-
- public int getScaledDragRegionHeight() {
- return (int)(mScale * mDragRegionWidth);
- }
-
public int getDragRegionLeft() {
return mDragRegionLeft;
}
diff --git a/src/com/android/launcher2/InstallShortcutReceiver.java b/src/com/android/launcher2/InstallShortcutReceiver.java
index ac50f66..c67e90e 100644
--- a/src/com/android/launcher2/InstallShortcutReceiver.java
+++ b/src/com/android/launcher2/InstallShortcutReceiver.java
@@ -55,25 +55,27 @@
if (findEmptyCell(context, mCoordinates, screen)) {
Intent intent = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
+ if (intent != null) {
+ if (intent.getAction() == null) {
+ intent.setAction(Intent.ACTION_VIEW);
+ }
- if (intent.getAction() == null) {
- intent.setAction(Intent.ACTION_VIEW);
+ // By default, we allow for duplicate entries (located in
+ // different places)
+ boolean duplicate = data.getBooleanExtra(Launcher.EXTRA_SHORTCUT_DUPLICATE, true);
+ if (duplicate || !LauncherModel.shortcutExists(context, name, intent)) {
+ LauncherApplication app = (LauncherApplication) context.getApplicationContext();
+ app.getModel().addShortcut(context, data, screen, mCoordinates[0],
+ mCoordinates[1], true);
+ Toast.makeText(context, context.getString(R.string.shortcut_installed, name),
+ Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(context, context.getString(R.string.shortcut_duplicate, name),
+ Toast.LENGTH_SHORT).show();
+ }
+
+ return true;
}
-
- // By default, we allow for duplicate entries (located in
- // different places)
- boolean duplicate = data.getBooleanExtra(Launcher.EXTRA_SHORTCUT_DUPLICATE, true);
- if (duplicate || !LauncherModel.shortcutExists(context, name, intent)) {
- ((LauncherApplication)context.getApplicationContext()).getModel()
- .addShortcut(context, data, screen, mCoordinates[0], mCoordinates[1], true);
- Toast.makeText(context, context.getString(R.string.shortcut_installed, name),
- Toast.LENGTH_SHORT).show();
- } else {
- Toast.makeText(context, context.getString(R.string.shortcut_duplicate, name),
- Toast.LENGTH_SHORT).show();
- }
-
- return true;
} else {
Toast.makeText(context, context.getString(R.string.out_of_space),
Toast.LENGTH_SHORT).show();
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index f381b1f..1733ddb 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -47,12 +47,12 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.Intent.ShortcutIconResource;
import android.content.IntentFilter;
+import android.content.Intent.ShortcutIconResource;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -88,9 +88,9 @@
import android.view.MotionEvent;
import android.view.Surface;
import android.view.View;
-import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
+import android.view.View.OnLongClickListener;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.DecelerateInterpolator;
import android.view.inputmethod.InputMethodManager;
@@ -100,11 +100,11 @@
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TabHost;
-import android.widget.TabHost.OnTabChangeListener;
-import android.widget.TabHost.TabContentFactory;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;
+import android.widget.TabHost.OnTabChangeListener;
+import android.widget.TabHost.TabContentFactory;
import com.android.common.Search;
import com.android.launcher.R;
@@ -1148,10 +1148,7 @@
final int[] cellXY = mTmpAddItemCellCoordinates;
final CellLayout layout = (CellLayout) mWorkspace.getChildAt(screen);
- int[] touchXY = null;
- if (mAddDropPosition != null && mAddDropPosition[0] > -1 && mAddDropPosition[1] > -1) {
- touchXY = mAddDropPosition;
- }
+ int[] touchXY = mAddDropPosition;
boolean foundCellSpan = false;
if (touchXY != null) {
// when dragging and dropping, just find the closest free spot
@@ -1196,13 +1193,7 @@
// if we are placing widgets on a "spring-loaded" screen
final int[] cellXY = mTmpAddItemCellCoordinates;
- // For now, we don't save the coordinate where we dropped the icon because we're not
- // supporting spring-loaded mini-screens; however, leaving the ability to directly place
- // a widget on the home screen in case we want to add it in the future
- int[] touchXY = null;
- if (mAddDropPosition != null && mAddDropPosition[0] > -1 && mAddDropPosition[1] > -1) {
- touchXY = mAddDropPosition;
- }
+ int[] touchXY = mAddDropPosition;
boolean foundCellSpan = false;
if (touchXY != null) {
// when dragging and dropping, just find the closest free spot
@@ -1963,7 +1954,7 @@
void closeFolder(Folder folder) {
folder.getInfo().opened = false;
- ViewGroup parent = (ViewGroup) folder.getParent();
+ ViewGroup parent = (ViewGroup) folder.getParent().getParent();
if (parent != null) {
CellLayout cl = (CellLayout) parent;
cl.removeViewWithoutMarkingCells(folder);
@@ -2212,7 +2203,7 @@
}
if (!(v instanceof CellLayout)) {
- v = (View) v.getParent();
+ v = (View) v.getParent().getParent();
}
@@ -2607,34 +2598,26 @@
* @param hideSeq AnimatorSet in which to put "hide" animations, or null.
*/
private void hideAndShowToolbarButtons(State newState, AnimatorSet showSeq, AnimatorSet hideSeq) {
- final View searchButton = findViewById(R.id.search_button_cluster);
+ final View buttonCluster = findViewById(R.id.all_apps_button_cluster);
+
final View allAppsButton = findViewById(R.id.all_apps_button);
final View divider = findViewById(R.id.divider);
final View configureButton = findViewById(R.id.configure_button);
switch (newState) {
case WORKSPACE:
- hideOrShowToolbarButton(true, searchButton, showSeq);
- hideOrShowToolbarButton(true, allAppsButton, showSeq);
- hideOrShowToolbarButton(true, divider, showSeq);
- hideOrShowToolbarButton(true, configureButton, showSeq);
+ hideOrShowToolbarButton(true, buttonCluster, showSeq);
mDeleteZone.setOverlappingViews(new View[] { allAppsButton, divider, configureButton });
mDeleteZone.setDragAndDropEnabled(true);
mDeleteZone.setText(getResources().getString(R.string.delete_zone_label_workspace));
break;
case ALL_APPS:
- hideOrShowToolbarButton(false, configureButton, hideSeq);
- hideOrShowToolbarButton(false, searchButton, hideSeq);
- hideOrShowToolbarButton(false, divider, hideSeq);
- hideOrShowToolbarButton(false, allAppsButton, hideSeq);
+ hideOrShowToolbarButton(false, buttonCluster, hideSeq);
mDeleteZone.setDragAndDropEnabled(false);
mDeleteZone.setText(getResources().getString(R.string.delete_zone_label_all_apps));
break;
case CUSTOMIZE:
- hideOrShowToolbarButton(false, allAppsButton, hideSeq);
- hideOrShowToolbarButton(false, searchButton, hideSeq);
- hideOrShowToolbarButton(false, divider, hideSeq);
- hideOrShowToolbarButton(false, configureButton, hideSeq);
+ hideOrShowToolbarButton(false, buttonCluster, hideSeq);
mDeleteZone.setDragAndDropEnabled(false);
break;
}
@@ -2701,7 +2684,7 @@
toView.setAlpha(0f);
ObjectAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(toView,
PropertyValuesHolder.ofFloat("alpha", 1.0f));
- alphaAnim.setInterpolator(new DecelerateInterpolator(1.5f));
+ alphaAnim.setInterpolator(new DecelerateInterpolator(1.0f));
alphaAnim.setDuration(duration);
alphaAnim.start();
}
@@ -2799,11 +2782,13 @@
ValueAnimator alphaAnim = ObjectAnimator.ofPropertyValuesHolder(fromView,
PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f));
alphaAnim.setDuration(res.getInteger(R.integer.config_allAppsFadeOutTime));
- alphaAnim.setInterpolator(new DecelerateInterpolator(1.5f));
+ alphaAnim.setInterpolator(new DecelerateInterpolator(2.0f));
+ fromView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
alphaAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
fromView.setVisibility(View.GONE);
+ fromView.setLayerType(View.LAYER_TYPE_NONE, null);
}
});
@@ -3115,7 +3100,7 @@
ComponentName activityName = searchManager.getGlobalSearchActivity();
if (activityName != null) {
sGlobalSearchIcon = updateButtonWithIconFromExternalActivity(
- R.id.search_button, activityName, R.drawable.search_button_generic);
+ R.id.search_button, activityName, R.drawable.ic_generic_search);
} else {
findViewById(R.id.search_button).setVisibility(View.GONE);
}
@@ -3348,7 +3333,8 @@
int count = workspace.getChildCount();
for (int i = 0; i < count; i++) {
// Use removeAllViewsInLayout() to avoid an extra requestLayout() and invalidate().
- ((ViewGroup) workspace.getChildAt(i)).removeAllViewsInLayout();
+ final ViewGroup layout = ((CellLayout) workspace.getChildAt(i)).getChildrenLayout();
+ layout.removeAllViewsInLayout();
}
if (DEBUG_USER_INTERFACE) {
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 4a0f44e..ede029b 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -18,6 +18,10 @@
import java.util.ArrayList;
+import android.animation.Animator;
+import android.animation.AnimatorInflater;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
@@ -32,9 +36,6 @@
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
-import android.view.animation.Animation;
-import android.view.animation.Animation.AnimationListener;
-import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import android.widget.Checkable;
import android.widget.Scroller;
@@ -109,7 +110,7 @@
protected boolean mAllowOverScroll = true;
protected int mUnboundedScrollX;
- // parameter that adjusts the layout to be optimized for CellLayouts with that scale factor
+ // parameter that adjusts the layout to be optimized for pages with that scale factor
protected float mLayoutScale = 1.0f;
protected static final int INVALID_POINTER = -1;
@@ -416,20 +417,20 @@
setMeasuredDimension(widthSize, heightSize);
}
- protected void moveToNewPageWithoutMovingCellLayouts(int newCurrentPage) {
+ protected void scrollToNewPageWithoutMovingPages(int newCurrentPage) {
int newX = getChildOffset(newCurrentPage) - getRelativeChildOffset(newCurrentPage);
int delta = newX - mScrollX;
- final int screenCount = getChildCount();
- for (int i = 0; i < screenCount; i++) {
- CellLayout cl = (CellLayout) getChildAt(i);
- cl.setX(cl.getX() + delta);
+ final int pageCount = getChildCount();
+ for (int i = 0; i < pageCount; i++) {
+ View page = (View) getChildAt(i);
+ page.setX(page.getX() + delta);
}
setCurrentPage(newCurrentPage);
}
- // A layout scale of 1.0f assumes that the CellLayouts, in their unshrunken state, have a
- // scale of 1.0f. A layout scale of 0.8f assumes the CellLayouts have a scale of 0.8f, and
+ // A layout scale of 1.0f assumes that the pages, in their unshrunken state, have a
+ // scale of 1.0f. A layout scale of 0.8f assumes the pages have a scale of 0.8f, and
// tightens the layout accordingly
public void setLayoutScale(float childrenScale) {
mLayoutScale = childrenScale;
@@ -451,7 +452,7 @@
}
// Also, the page offset has changed (since the pages are now smaller);
// update the page offset, but again preserving absolute X and Y coordinates
- moveToNewPageWithoutMovingCellLayouts(mCurrentPage);
+ scrollToNewPageWithoutMovingPages(mCurrentPage);
}
@Override
@@ -809,19 +810,15 @@
protected void animateClickFeedback(View v, final Runnable r) {
// animate the view slightly to show click feedback running some logic after it is "pressed"
- Animation anim = AnimationUtils.loadAnimation(getContext(),
- R.anim.paged_view_click_feedback);
- anim.setAnimationListener(new AnimationListener() {
- @Override
- public void onAnimationStart(Animation animation) {}
- @Override
- public void onAnimationRepeat(Animation animation) {
+ ObjectAnimator anim = (ObjectAnimator) AnimatorInflater.
+ loadAnimator(mContext, R.anim.paged_view_click_feedback);
+ anim.setTarget(v);
+ anim.addListener(new AnimatorListenerAdapter() {
+ public void onAnimationRepeat(Animator animation) {
r.run();
}
- @Override
- public void onAnimationEnd(Animation animation) {}
});
- v.startAnimation(anim);
+ anim.start();
}
/*
@@ -882,6 +879,11 @@
if (f == 0) return;
f = f / (Math.abs(f)) * (overScrollInfluenceCurve(Math.abs(f)));
+ // Clamp this factor, f, to -1 < f < 1
+ if (Math.abs(f) >= 1) {
+ f /= Math.abs(f);
+ }
+
int overScrollAmount = (int) Math.round(OVERSCROLL_DAMP_FACTOR * f * screenSize);
if (amount < 0) {
mScrollX = overScrollAmount;
diff --git a/src/com/android/launcher2/SpringLoadedDragController.java b/src/com/android/launcher2/SpringLoadedDragController.java
index a734258..9007581 100644
--- a/src/com/android/launcher2/SpringLoadedDragController.java
+++ b/src/com/android/launcher2/SpringLoadedDragController.java
@@ -26,6 +26,8 @@
// the screen the user is currently hovering over, if any
private CellLayout mScreen;
private Launcher mLauncher;
+ boolean mFinishedAnimation = false;
+ boolean mWaitingToReenter = false;
public SpringLoadedDragController(Launcher launcher) {
mLauncher = launcher;
@@ -33,9 +35,16 @@
mAlarm.setOnAlarmListener(this);
}
- public void onDragEnter(CellLayout cl) {
+ public void onDragEnter(CellLayout cl, boolean isSpringLoaded) {
mScreen = cl;
mAlarm.setAlarm(ENTER_SPRING_LOAD_HOVER_TIME);
+ mFinishedAnimation = isSpringLoaded;
+ mWaitingToReenter = false;
+ }
+
+ public void onEnterSpringLoadedMode(boolean waitToReenter) {
+ mFinishedAnimation = true;
+ mWaitingToReenter = waitToReenter;
}
public void onDragExit() {
@@ -43,7 +52,9 @@
mScreen.onDragExit();
}
mScreen = null;
- mAlarm.setAlarm(EXIT_SPRING_LOAD_HOVER_TIME);
+ if (mFinishedAnimation && !mWaitingToReenter) {
+ mAlarm.setAlarm(EXIT_SPRING_LOAD_HOVER_TIME);
+ }
}
// this is called when our timer runs out
diff --git a/src/com/android/launcher2/WallpaperChooserDialogFragment.java b/src/com/android/launcher2/WallpaperChooserDialogFragment.java
index ec0f8a2..4f13332 100644
--- a/src/com/android/launcher2/WallpaperChooserDialogFragment.java
+++ b/src/com/android/launcher2/WallpaperChooserDialogFragment.java
@@ -111,6 +111,8 @@
*/
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ findWallpapers();
+
final View v = getActivity().getLayoutInflater().inflate(
R.layout.wallpaper_chooser, null, false);
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index b9a2b62..004de3a 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -60,6 +60,7 @@
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.TextView;
import android.widget.Toast;
@@ -125,7 +126,6 @@
private int mDefaultPage;
- private boolean mPageMoving = false;
private boolean mIsDragInProcess = false;
/**
@@ -210,6 +210,13 @@
boolean mUpdateWallpaperOffsetImmediately = false;
boolean mSyncWallpaperOffsetWithScroll = true;
+ // info about the last drag
+ private DragView mLastDragView;
+ private int mLastDragOriginX;
+ private int mLastDragOriginY;
+ private int mLastDragXOffset;
+ private int mLastDragYOffset;
+
/**
* Used to inflate the Workspace from XML.
*
@@ -276,13 +283,22 @@
mIsInUnshrinkAnimation = true;
disableCacheUpdates();
}
+
@Override
public void onAnimationEnd(Animator animation) {
mIsInUnshrinkAnimation = false;
mSyncWallpaperOffsetWithScroll = true;
- if (mShrinkState != ShrinkState.SPRING_LOADED) {
+ if (mShrinkState == ShrinkState.SPRING_LOADED) {
+ View layout = null;
+ if (mLastDragView != null) {
+ layout = findMatchingPageForDragOver(mLastDragView, mLastDragOriginX,
+ mLastDragOriginY, mLastDragXOffset, mLastDragYOffset);
+ }
+ mSpringLoadedDragController.onEnterSpringLoadedMode(layout == null);
+ } else {
mDrawCustomizeTrayBackground = false;
}
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(false);
enableCacheUpdates();
mAnimator = null;
}
@@ -294,6 +310,7 @@
}
@Override
public void onAnimationEnd(Animator animation) {
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(false);
enableCacheUpdates();
mAnimator = null;
}
@@ -360,7 +377,7 @@
* @return The open folder on the current screen, or null if there is none
*/
Folder getOpenFolder() {
- CellLayout currentPage = (CellLayout) getChildAt(mCurrentPage);
+ ViewGroup currentPage = ((CellLayout) getChildAt(mCurrentPage)).getChildrenLayout();
int count = currentPage.getChildCount();
for (int i = 0; i < count; i++) {
View child = currentPage.getChildAt(i);
@@ -378,7 +395,7 @@
ArrayList<Folder> folders = new ArrayList<Folder>(screenCount);
for (int screen = 0; screen < screenCount; screen++) {
- CellLayout currentPage = (CellLayout) getChildAt(screen);
+ ViewGroup currentPage = ((CellLayout) getChildAt(screen)).getChildrenLayout();
int count = currentPage.getChildCount();
for (int i = 0; i < count; i++) {
View child = currentPage.getChildAt(i);
@@ -549,7 +566,6 @@
enableChildrenCache(mCurrentPage - 1, mCurrentPage + 1);
}
showOutlines();
- mPageMoving = true;
}
protected void onPageEndMoving() {
@@ -560,7 +576,6 @@
}
mOverScrollMaxBackgroundAlpha = 0.0f;
mOverScrollPageIndex = -1;
- mPageMoving = false;
}
@Override
@@ -651,19 +666,27 @@
int wallpaperTravelWidth = (int) (display.getWidth() *
wallpaperTravelToScreenWidthRatio(display.getWidth(), display.getHeight()));
- // Account for overscroll: you only see the absolute edge of the wallpaper if
- // you overscroll as far as you can in landscape mode
- int overscrollOffset = (int) (maxOverScroll() * display.getWidth());
- float overscrollRatio = overscrollOffset / (float) getScrollRange();
- int scrollRangeWithOverscroll = getScrollRange() + 2 * overscrollOffset;
-
// Set wallpaper offset steps (1 / (number of screens - 1))
// We have 3 vertical offset states (centered, and then top/bottom aligned
// for all apps/customize)
mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 1.0f / (3 - 1));
+ int scrollRange = getScrollRange();
+ float scrollProgressOffset = 0;
+
+ // Account for overscroll: you only see the absolute edge of the wallpaper if
+ // you overscroll as far as you can in landscape mode. Only do this for static wallpapers
+ // because live wallpapers (and probably 3rd party wallpaper providers) rely on the offset
+ // being even intervals from 0 to 1 (eg [0, 0.25, 0.5, 0.75, 1])
+ final boolean isStaticWallpaper = (mWallpaperManager.getWallpaperInfo() == null);
+ if (isStaticWallpaper) {
+ int overscrollOffset = (int) (maxOverScroll() * display.getWidth());
+ scrollProgressOffset += overscrollOffset / (float) getScrollRange();
+ scrollRange += 2 * overscrollOffset;
+ }
+
float scrollProgress =
- mScrollX / (float) scrollRangeWithOverscroll + overscrollRatio;
+ mScrollX / (float) scrollRange + scrollProgressOffset;
float offsetInDips = wallpaperTravelWidth * scrollProgress +
(mWallpaperWidth - wallpaperTravelWidth) / 2;
float offset = offsetInDips / (float) mWallpaperWidth;
@@ -708,13 +731,30 @@
float mHorizontalWallpaperOffset = 0.0f;
float mVerticalWallpaperOffset = 0.5f;
long mLastWallpaperOffsetUpdateTime;
+ boolean mIsMovingFast;
+ boolean mOverrideHorizontalCatchupConstant;
+ float mHorizontalCatchupConstant = 0.35f;
+ float mVerticalCatchupConstant = 0.35f;
public WallpaperOffsetInterpolator() {
}
+ public void setOverrideHorizontalCatchupConstant(boolean override) {
+ mOverrideHorizontalCatchupConstant = override;
+ }
+
+ public void setHorizontalCatchupConstant(float f) {
+ mHorizontalCatchupConstant = f;
+ }
+
+ public void setVerticalCatchupConstant(float f) {
+ mVerticalCatchupConstant = f;
+ }
+
public boolean computeScrollOffset() {
if (Float.compare(mHorizontalWallpaperOffset, mFinalHorizontalWallpaperOffset) == 0 &&
Float.compare(mVerticalWallpaperOffset, mFinalVerticalWallpaperOffset) == 0) {
+ mIsMovingFast = false;
return false;
}
Display display = mLauncher.getWindowManager().getDefaultDisplay();
@@ -724,27 +764,44 @@
long timeSinceLastUpdate = currentTime - mLastWallpaperOffsetUpdateTime;
timeSinceLastUpdate = Math.min((long) (1000/30f), timeSinceLastUpdate);
timeSinceLastUpdate = Math.max(1L, timeSinceLastUpdate);
- // ie 75% in 100ms
- float fractionToCatchUpIn1MsHorizontal = isLandscape ? 0.75f / 100 : 0.75f / 100;
- float fractionToCatchUpIn1MsVertical = isLandscape ? 1.1f / 100 : 1.1f / 100;
+
+ float xdiff = Math.abs(mFinalHorizontalWallpaperOffset - mHorizontalWallpaperOffset);
+ if (!mIsMovingFast && xdiff > 0.07) {
+ mIsMovingFast = true;
+ }
+
+ float fractionToCatchUpIn1MsHorizontal;
+ if (mOverrideHorizontalCatchupConstant) {
+ fractionToCatchUpIn1MsHorizontal = mHorizontalCatchupConstant;
+ } else if (mIsMovingFast) {
+ fractionToCatchUpIn1MsHorizontal = isLandscape ? 0.5f : 0.75f;
+ } else {
+ // slow
+ fractionToCatchUpIn1MsHorizontal = isLandscape ? 0.27f : 0.5f;
+ }
+ float fractionToCatchUpIn1MsVertical = mVerticalCatchupConstant;
+
+
+ fractionToCatchUpIn1MsHorizontal /= 33f;
+ fractionToCatchUpIn1MsVertical /= 33f;
final float UPDATE_THRESHOLD = 0.00001f;
float hOffsetDelta = mFinalHorizontalWallpaperOffset - mHorizontalWallpaperOffset;
float vOffsetDelta = mFinalVerticalWallpaperOffset - mVerticalWallpaperOffset;
- boolean jumpToFinalValue =
- Math.abs(hOffsetDelta / mFinalHorizontalWallpaperOffset) < UPDATE_THRESHOLD &&
- Math.abs(vOffsetDelta / mFinalVerticalWallpaperOffset) < UPDATE_THRESHOLD;
+ boolean jumpToFinalValue = Math.abs(hOffsetDelta) < UPDATE_THRESHOLD &&
+ Math.abs(vOffsetDelta) < UPDATE_THRESHOLD;
if (jumpToFinalValue) {
mHorizontalWallpaperOffset = mFinalHorizontalWallpaperOffset;
mVerticalWallpaperOffset = mFinalVerticalWallpaperOffset;
} else {
float percentToCatchUpVertical =
- timeSinceLastUpdate * fractionToCatchUpIn1MsVertical;
+ Math.min(1.0f, timeSinceLastUpdate * fractionToCatchUpIn1MsVertical);
float percentToCatchUpHorizontal =
- timeSinceLastUpdate * fractionToCatchUpIn1MsHorizontal;
+ Math.min(1.0f, timeSinceLastUpdate * fractionToCatchUpIn1MsHorizontal);
mHorizontalWallpaperOffset += percentToCatchUpHorizontal * hOffsetDelta;
mVerticalWallpaperOffset += percentToCatchUpVertical * vOffsetDelta;
}
+
mLastWallpaperOffsetUpdateTime = System.currentTimeMillis();
return true;
}
@@ -1340,20 +1397,33 @@
int wallpaperTravelHeight = (int) (display.getHeight() *
wallpaperTravelToScreenHeightRatio(display.getWidth(), display.getHeight()));
float offsetFromCenter = (wallpaperTravelHeight / (float) mWallpaperHeight) / 2f;
+ boolean isLandscape = display.getWidth() > display.getHeight();
+
switch (shrinkState) {
+ // animating in
case TOP:
+ // customize
wallpaperOffset = 0.5f + offsetFromCenter;
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.46f : 0.44f);
break;
case MIDDLE:
case SPRING_LOADED:
wallpaperOffset = 0.5f;
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.34f : 0.32f);
break;
case BOTTOM_HIDDEN:
case BOTTOM_VISIBLE:
+ // allapps
wallpaperOffset = 0.5f - offsetFromCenter;
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.34f : 0.32f);
break;
}
+ if (animated) {
+ mWallpaperOffset.setHorizontalCatchupConstant(0.46f);
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(true);
+ }
+
setLayoutScale(1.0f);
if (animated) {
mSyncWallpaperOffsetWithScroll = false;
@@ -1491,8 +1561,10 @@
// We need to add extra padding to the bitmap to make room for the glow effect
final int bitmapPadding = HolographicOutlineHelper.MAX_OUTER_BLUR_RADIUS;
+ CellLayout cl = (CellLayout) getChildAt(0);
+ int[] desiredSize = cl.cellSpansToSize(spanX, spanY);
// The outline is used to visualize where the item will land if dropped
- mDragOutline = createDragOutline(b, canvas, bitmapPadding);
+ mDragOutline = createDragOutline(b, canvas, bitmapPadding, desiredSize[0], desiredSize[1]);
updateWhichPagesAcceptDropsDuringDrag(mShrinkState, spanX, spanY);
}
@@ -1500,6 +1572,7 @@
// we call this method whenever a drag and drop in Launcher finishes, even if Workspace was
// never dragged over
public void onDragStopped(boolean success) {
+ mLastDragView = null;
// In the success case, DragController has already called onDragExit()
if (!success) {
doDragExit();
@@ -1519,7 +1592,7 @@
if (springLoaded) {
setLayoutScale(SPRING_LOADED_DRAG_SHRINK_FACTOR);
}
- moveToNewPageWithoutMovingCellLayouts(newCurrentPage);
+ scrollToNewPageWithoutMovingPages(newCurrentPage);
unshrink(true, springLoaded);
}
}
@@ -1561,6 +1634,7 @@
final int screenCount = getChildCount();
final int duration = getResources().getInteger(R.integer.config_workspaceUnshrinkTime);
+
for (int i = 0; i < screenCount; i++) {
final CellLayout cl = (CellLayout)getChildAt(i);
float finalAlphaValue = (i == mCurrentPage) ? 1.0f : 0.0f;
@@ -1608,26 +1682,54 @@
mUnshrinkAnimationListener.onAnimationEnd(null);
}
}
+ Display display = mLauncher.getWindowManager().getDefaultDisplay();
+ boolean isLandscape = display.getWidth() > display.getHeight();
+ switch (mShrinkState) {
+ // animating out
+ case TOP:
+ // customize
+ if (animated) {
+ mWallpaperOffset.setHorizontalCatchupConstant(isLandscape ? 0.65f : 0.62f);
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.65f : 0.62f);
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(true);
+ }
+ break;
+ case MIDDLE:
+ case SPRING_LOADED:
+ if (animated) {
+ mWallpaperOffset.setHorizontalCatchupConstant(isLandscape ? 0.49f : 0.46f);
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.49f : 0.46f);
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(true);
+ }
+ break;
+ case BOTTOM_HIDDEN:
+ case BOTTOM_VISIBLE:
+ // all apps
+ if (animated) {
+ mWallpaperOffset.setHorizontalCatchupConstant(isLandscape ? 0.49f : 0.46f);
+ mWallpaperOffset.setVerticalCatchupConstant(isLandscape ? 0.49f : 0.46f);
+ mWallpaperOffset.setOverrideHorizontalCatchupConstant(true);
+ }
+ break;
+ }
if (animated) {
ObjectAnimator wallpaperAnim = ObjectAnimator.ofPropertyValuesHolder(this,
PropertyValuesHolder.ofFloat(
"verticalWallpaperOffset", 0.5f),
PropertyValuesHolder.ofFloat(
"horizontalWallpaperOffset", wallpaperOffsetForCurrentScroll()));
- mAnimator.play(wallpaperAnim);
wallpaperAnim.setDuration(duration);
wallpaperAnim.setInterpolator(mZoomInInterpolator);
- } else {
- setHorizontalWallpaperOffset(wallpaperOffsetForCurrentScroll());
- setVerticalWallpaperOffset(0.5f);
- updateWallpaperOffsetImmediately();
- }
+ mAnimator.play(wallpaperAnim);
- if (animated) {
// If we call this when we're not animated, onAnimationEnd is never called on
// the listener; make sure we only use the listener when we're actually animating
mAnimator.addListener(mUnshrinkAnimationListener);
mAnimator.start();
+ } else {
+ setHorizontalWallpaperOffset(wallpaperOffsetForCurrentScroll());
+ setVerticalWallpaperOffset(0.5f);
+ updateWallpaperOffsetImmediately();
}
}
@@ -1688,13 +1790,24 @@
* Returns a new bitmap to be used as the object outline, e.g. to visualize the drop location.
* Responsibility for the bitmap is transferred to the caller.
*/
- private Bitmap createDragOutline(Bitmap orig, Canvas canvas, int padding) {
+ private Bitmap createDragOutline(Bitmap orig, Canvas canvas, int padding, int w, int h) {
final int outlineColor = getResources().getColor(R.color.drag_outline_color);
- final Bitmap b = Bitmap.createBitmap(
- orig.getWidth() + padding, orig.getHeight() + padding, Bitmap.Config.ARGB_8888);
-
+ final Bitmap b = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
canvas.setBitmap(b);
- canvas.drawBitmap(orig, 0, 0, new Paint());
+
+ Rect src = new Rect(0, 0, orig.getWidth(), orig.getHeight());
+ float scaleFactor = Math.min((w - padding) / (float) orig.getWidth(),
+ (h - padding) / (float) orig.getHeight());
+ int scaledWidth = (int) (scaleFactor * orig.getWidth());
+ int scaledHeight = (int) (scaleFactor * orig.getHeight());
+ Rect dst = new Rect(0, 0, scaledWidth, scaledHeight);
+
+ // center the image
+ dst.offset((w - scaledWidth) / 2, (h - scaledHeight) / 2);
+
+ Paint p = new Paint();
+ p.setFilterBitmap(true);
+ canvas.drawBitmap(orig, src, dst, p);
mOutlineHelper.applyMediumExpensiveOutlineWithBlur(b, canvas, outlineColor, outlineColor);
return b;
@@ -1811,7 +1924,7 @@
* calls, as it is called from onLayout().
*/
public void animateViewIntoPosition(final View view) {
- final CellLayout parent = (CellLayout) view.getParent();
+ final CellLayout parent = (CellLayout) view.getParent().getParent();
final CellLayout.LayoutParams lp = (CellLayout.LayoutParams) view.getLayoutParams();
// Convert the animation params to be relative to the Workspace, not the CellLayout
@@ -1918,7 +2031,7 @@
// subsequent taps add items to that screen
int dragTargetIndex = indexOfChild(mDragTargetLayout);
if (mCurrentPage != dragTargetIndex && (mIsSmall || mIsInUnshrinkAnimation)) {
- moveToNewPageWithoutMovingCellLayouts(dragTargetIndex);
+ scrollToNewPageWithoutMovingPages(dragTargetIndex);
}
if (source != this) {
@@ -1979,7 +2092,7 @@
}
}
- final CellLayout parent = (CellLayout) cell.getParent();
+ final CellLayout parent = (CellLayout) cell.getParent().getParent();
// Prepare it to be animated into its new position
// This must be called after the view has been re-parented
@@ -2232,11 +2345,11 @@
int dragViewX, int dragViewY, Matrix cachedInverseMatrix) {
// Transform the coordinates of the item being dragged to the CellLayout's coordinates
final float[] draggedItemTopLeft = mTempDragCoordinates;
- draggedItemTopLeft[0] = dragViewX + dragView.getScaledDragRegionXOffset();
- draggedItemTopLeft[1] = dragViewY + dragView.getScaledDragRegionYOffset();
+ draggedItemTopLeft[0] = dragViewX;
+ draggedItemTopLeft[1] = dragViewY;
final float[] draggedItemBottomRight = mTempDragBottomRightCoordinates;
- draggedItemBottomRight[0] = draggedItemTopLeft[0] + dragView.getScaledDragRegionWidth();
- draggedItemBottomRight[1] = draggedItemTopLeft[1] + dragView.getScaledDragRegionHeight();
+ draggedItemBottomRight[0] = draggedItemTopLeft[0] + dragView.getDragRegionWidth();
+ draggedItemBottomRight[1] = draggedItemTopLeft[1] + dragView.getDragRegionHeight();
// Transform the dragged item's top left coordinates
// to the CellLayout's local coordinates
@@ -2328,8 +2441,12 @@
int originY = y - yOffset;
boolean shrunken = mIsSmall || mIsInUnshrinkAnimation;
if (shrunken) {
- layout = findMatchingPageForDragOver(
- dragView, originX, originY, xOffset, yOffset);
+ mLastDragView = dragView;
+ mLastDragOriginX = originX;
+ mLastDragOriginY = originY;
+ mLastDragXOffset = xOffset;
+ mLastDragYOffset = yOffset;
+ layout = findMatchingPageForDragOver(dragView, originX, originY, xOffset, yOffset);
if (layout != mDragTargetLayout) {
if (mDragTargetLayout != null) {
@@ -2339,7 +2456,8 @@
mDragTargetLayout = layout;
if (mDragTargetLayout != null && mDragTargetLayout.getAcceptsDrops()) {
mDragTargetLayout.setIsDragOverlapping(true);
- mSpringLoadedDragController.onDragEnter(mDragTargetLayout);
+ mSpringLoadedDragController.onDragEnter(
+ mDragTargetLayout, mShrinkState == ShrinkState.SPRING_LOADED);
}
}
} else {
@@ -2662,7 +2780,7 @@
public Folder getFolderForTag(Object tag) {
final int screenCount = getChildCount();
for (int screen = 0; screen < screenCount; screen++) {
- CellLayout currentScreen = ((CellLayout) getChildAt(screen));
+ ViewGroup currentScreen = ((CellLayout) getChildAt(screen)).getChildrenLayout();
int count = currentScreen.getChildCount();
for (int i = 0; i < count; i++) {
View child = currentScreen.getChildAt(i);
@@ -2681,7 +2799,7 @@
public View getViewForTag(Object tag) {
int screenCount = getChildCount();
for (int screen = 0; screen < screenCount; screen++) {
- CellLayout currentScreen = ((CellLayout) getChildAt(screen));
+ ViewGroup currentScreen = ((CellLayout) getChildAt(screen)).getChildrenLayout();
int count = currentScreen.getChildCount();
for (int i = 0; i < count; i++) {
View child = currentScreen.getChildAt(i);
@@ -2706,7 +2824,7 @@
}
for (int i = 0; i < screenCount; i++) {
- final CellLayout layout = (CellLayout) getChildAt(i);
+ final ViewGroup layout = ((CellLayout) getChildAt(i)).getChildrenLayout();
// Avoid ANRs by treating each screen separately
post(new Runnable() {
@@ -2811,7 +2929,7 @@
void updateShortcuts(ArrayList<ApplicationInfo> apps) {
final int screenCount = getChildCount();
for (int i = 0; i < screenCount; i++) {
- final CellLayout layout = (CellLayout) getChildAt(i);
+ final ViewGroup layout = ((CellLayout) getChildAt(i)).getChildrenLayout();
int childCount = layout.getChildCount();
for (int j = 0; j < childCount; j++) {
final View view = layout.getChildAt(j);