Merge "Implementing new visualization for folder icon"
diff --git a/Android.mk b/Android.mk
index 89e626b..844f052 100644
--- a/Android.mk
+++ b/Android.mk
@@ -21,9 +21,10 @@
LOCAL_MODULE_TAGS := optional
-LOCAL_STATIC_JAVA_LIBRARIES := android-common
+LOCAL_STATIC_JAVA_LIBRARIES := android-common android-support-v13
-LOCAL_SRC_FILES := $(call all-subdir-java-files) $(call all-renderscript-files-under, src)
+LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
+
LOCAL_PACKAGE_NAME := Launcher2
LOCAL_CERTIFICATE := shared
@@ -34,4 +35,6 @@
include $(BUILD_PACKAGE)
+include $(call all-subdir-makefiles)
+
endif
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5d0f323..5206896 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -67,7 +67,7 @@
android:process="@string/process"
android:label="@string/application_name"
android:icon="@drawable/ic_launcher_home"
- android:hardwareAccelerated="@bool/config_hardwareAccelerated"
+ android:hardwareAccelerated="true"
android:largeHeap="true">
<activity
@@ -100,6 +100,18 @@
android:resource="@xml/wallpaper_picker_preview" />
</activity>
+ <activity android:name="com.android.launcher2.RocketLauncher"
+ android:label="@string/dream_name"
+ android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
+ android:hardwareAccelerated="true"
+ >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.DREAM" />
+ </intent-filter>
+ </activity>
+
<!-- Intent received used to install shortcuts from other applications -->
<receiver
android:name="com.android.launcher2.InstallShortcutReceiver"
diff --git a/res/drawable-hdpi/app_market_generic.png b/res/drawable-hdpi/app_market_generic.png
index 2a2381f..117453c 100644
--- a/res/drawable-hdpi/app_market_generic.png
+++ b/res/drawable-hdpi/app_market_generic.png
Binary files differ
diff --git a/res/drawable-hdpi/divider_launcher_holo.9.png b/res/drawable-hdpi/divider_launcher_holo.9.png
new file mode 100644
index 0000000..0a1bd2a
--- /dev/null
+++ b/res/drawable-hdpi/divider_launcher_holo.9.png
Binary files differ
diff --git a/res/drawable-large-hdpi/ic_generic_search.png b/res/drawable-hdpi/ic_generic_search.png
similarity index 100%
rename from res/drawable-large-hdpi/ic_generic_search.png
rename to res/drawable-hdpi/ic_generic_search.png
Binary files differ
diff --git a/res/drawable-large-hdpi/ic_voice_search.png b/res/drawable-hdpi/ic_voice_search.png
similarity index 100%
rename from res/drawable-large-hdpi/ic_voice_search.png
rename to res/drawable-hdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable-land-hdpi/divider_launcher_holo.9.png b/res/drawable-land-hdpi/divider_launcher_holo.9.png
new file mode 100644
index 0000000..f07f6c4
--- /dev/null
+++ b/res/drawable-land-hdpi/divider_launcher_holo.9.png
Binary files differ
diff --git a/res/drawable-land-mdpi/divider_launcher_holo.9.png b/res/drawable-land-mdpi/divider_launcher_holo.9.png
new file mode 100644
index 0000000..ae77340
--- /dev/null
+++ b/res/drawable-land-mdpi/divider_launcher_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/divider_launcher_holo.9.png b/res/drawable-mdpi/divider_launcher_holo.9.png
new file mode 100644
index 0000000..6d101f4
--- /dev/null
+++ b/res/drawable-mdpi/divider_launcher_holo.9.png
Binary files differ
diff --git a/res/drawable-large-mdpi/ic_generic_search.png b/res/drawable-mdpi/ic_generic_search.png
similarity index 100%
rename from res/drawable-large-mdpi/ic_generic_search.png
rename to res/drawable-mdpi/ic_generic_search.png
Binary files differ
diff --git a/res/drawable-large-mdpi/ic_voice_search.png b/res/drawable-mdpi/ic_voice_search.png
similarity index 100%
rename from res/drawable-large-mdpi/ic_voice_search.png
rename to res/drawable-mdpi/ic_voice_search.png
Binary files differ
diff --git a/res/drawable/flying_icon_bg.xml b/res/drawable/flying_icon_bg.xml
new file mode 100644
index 0000000..affd975
--- /dev/null
+++ b/res/drawable/flying_icon_bg.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true" android:drawable="@drawable/homescreen_small_green" />
+ <item android:drawable="@android:color/transparent" />
+</selector>
diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml
index b2b2c9f..c8a82e6 100644
--- a/res/layout-land/launcher.xml
+++ b/res/layout-land/launcher.xml
@@ -41,6 +41,12 @@
</com.android.launcher2.Workspace>
+ <include layout="@layout/qsb_bar"
+ android:id="@+id/qsb_bar"
+ android:layout_width="@dimen/qsb_bar_height"
+ android:layout_height="match_parent"
+ android:layout_gravity="left" />
+
<include layout="@layout/apps_customize_pane"
android:id="@+id/apps_customize_pane"
android:layout_width="match_parent"
diff --git a/res/layout-land/workspace_screen.xml b/res/layout-land/workspace_screen.xml
index f2bac59..a9faf89 100644
--- a/res/layout-land/workspace_screen.xml
+++ b/res/layout-land/workspace_screen.xml
@@ -24,7 +24,7 @@
launcher:cellWidth="@dimen/workspace_cell_width"
launcher:cellHeight="@dimen/workspace_cell_height"
- launcher:xAxisStartPadding="48dip"
+ launcher:xAxisStartPadding="@dimen/qsb_bar_height"
launcher:xAxisEndPadding="0dip"
launcher:yAxisStartPadding="0dip"
launcher:yAxisEndPadding="0dip"/>
diff --git a/res/layout-large/customization_drawer.xml b/res/layout-large/customization_drawer.xml
index d8db066..0c59a3f 100644
--- a/res/layout-large/customization_drawer.xml
+++ b/res/layout-large/customization_drawer.xml
@@ -40,15 +40,12 @@
launcher:wallpaperCellSpanX="@integer/customization_drawer_contents_wallpaperCellSpanX"
launcher:wallpaperCellCountX="@integer/customization_drawer_contents_wallpaperCellCountX"
launcher:widgetCellCountX="@integer/customization_drawer_contents_widgetCellCountX"
- launcher:cellCountX="@integer/customization_drawer_contents_cellCountX"
- launcher:cellCountY="@integer/customization_drawer_contents_cellCountY"
launcher:pageLayoutWidthGap="@dimen/customization_drawer_contents_pageLayoutWidthGap"
- launcher:pageLayoutHeightGap="12dp"
- launcher:pageLayoutPaddingTop="40dp"
- launcher:pageLayoutPaddingBottom="25dp"
- launcher:pageLayoutPaddingLeft="20dp"
- launcher:pageLayoutPaddingRight="20dp"
- launcher:pageLayoutMaxHeight="@dimen/customization_drawer_content_height" />
+ launcher:pageLayoutHeightGap="@dimen/customization_drawer_contents_pageLayoutHeightGap"
+ launcher:pageLayoutPaddingTop="@dimen/customization_drawer_contents_pageLayoutPaddingTop"
+ launcher:pageLayoutPaddingBottom="@dimen/customization_drawer_contents_pageLayoutPaddingBottom"
+ launcher:pageLayoutPaddingLeft="@dimen/customization_drawer_contents_pageLayoutPaddingLeft"
+ launcher:pageLayoutPaddingRight="@dimen/customization_drawer_contents_pageLayoutPaddingRight" />
</FrameLayout>
</LinearLayout>
</com.android.launcher2.CustomizeTrayTabHost>
\ No newline at end of file
diff --git a/res/layout-large/customize_tab_widget_indicator.xml b/res/layout-large/customize_tab_widget_indicator.xml
new file mode 100644
index 0000000..186a342
--- /dev/null
+++ b/res/layout-large/customize_tab_widget_indicator.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<com.android.launcher2.AccessibleTabView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/CustomizeTabIndicator.Wide" />
diff --git a/res/layout-large/launcher.xml b/res/layout-large/launcher.xml
index 6a16eb5..2d14137 100644
--- a/res/layout-large/launcher.xml
+++ b/res/layout-large/launcher.xml
@@ -44,7 +44,7 @@
<include layout="@layout/customization_drawer"
android:id="@+id/customization_drawer"
android:layout_width="match_parent"
- android:layout_height="@dimen/customization_drawer_height"
+ android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:visibility="invisible" />
</com.android.launcher2.DragLayer>
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index c7bcbb0..f05f9b6 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -36,9 +36,14 @@
<include android:id="@+id/cell3" layout="@layout/workspace_screen" />
<include android:id="@+id/cell4" layout="@layout/workspace_screen" />
<include android:id="@+id/cell5" layout="@layout/workspace_screen" />
-
</com.android.launcher2.Workspace>
+ <include layout="@layout/qsb_bar"
+ android:id="@+id/qsb_bar"
+ android:layout_width="fill_parent"
+ android:layout_height="@dimen/qsb_bar_height"
+ android:layout_gravity="top" />
+
<include layout="@layout/apps_customize_pane"
android:id="@+id/apps_customize_pane"
android:layout_width="match_parent"
diff --git a/res/layout-port/workspace_screen.xml b/res/layout-port/workspace_screen.xml
index f400c40..7a6714f 100644
--- a/res/layout-port/workspace_screen.xml
+++ b/res/layout-port/workspace_screen.xml
@@ -24,7 +24,7 @@
launcher:cellWidth="@dimen/workspace_cell_width"
launcher:cellHeight="@dimen/workspace_cell_height"
- launcher:yAxisStartPadding="8dip"
+ launcher:yAxisStartPadding="@dimen/qsb_bar_height"
launcher:yAxisEndPadding="@dimen/button_bar_height"
launcher:xAxisStartPadding="0dip"
launcher:xAxisEndPadding="0dip" />
diff --git a/res/layout/add_list_item.xml b/res/layout/add_list_item.xml
index 62fc4f4..e937d7b 100644
--- a/res/layout/add_list_item.xml
+++ b/res/layout/add_list_item.xml
@@ -18,7 +18,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:textAppearance="?android:attr/textAppearanceLargeInverse"
+ android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:drawablePadding="14dip"
android:paddingLeft="15dip"
diff --git a/res/layout/apps_customize_pane.xml b/res/layout/apps_customize_pane.xml
index 05884ef..e22ba12 100644
--- a/res/layout/apps_customize_pane.xml
+++ b/res/layout/apps_customize_pane.xml
@@ -20,7 +20,7 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/apps_customize_bg_gradient">
+ android:background="#FF000000">
<!-- The layout_width of the tab bar gets overriden to align the content
with the text in the tabs in AppsCustomizeTabHost. -->
<FrameLayout
diff --git a/res/layout/qsb_bar.xml b/res/layout/qsb_bar.xml
new file mode 100644
index 0000000..5469224
--- /dev/null
+++ b/res/layout/qsb_bar.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
+ android:focusable="false">
+
+ <!-- Search buttons container -->
+ <LinearLayout
+ android:id="@+id/qsb_search_bar"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ style="@style/SearchBar">
+ <!-- Global search icon -->
+ <ImageView
+ style="@style/SearchButton"
+ android:id="@+id/search_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_generic_search"
+ android:background="@drawable/button_bg"
+ android:onClick="onClickSearchButton"
+ android:focusable="true"
+ android:clickable="true"
+ android:contentDescription="@string/accessibility_search_button" />
+
+ <ImageView
+ style="@style/SearchButtonDivider"
+ android:id="@+id/search_divider"
+ android:src="@drawable/divider_launcher_holo"
+ android:onClick="onClickSearchButton"
+ android:focusable="false"
+ android:clickable="true" />
+
+ <!-- Voice search icon -->
+ <ImageView
+ style="@style/SearchButton"
+ android:id="@+id/voice_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_voice_search"
+ android:background="@drawable/button_bg"
+ android:onClick="onClickVoiceButton"
+ android:focusable="true"
+ android:clickable="true"
+ android:contentDescription="@string/accessibility_voice_search_button" />
+ </LinearLayout>
+
+ <!-- Drag specific targets container -->
+ <LinearLayout
+ android:id="@+id/drag_target_bar"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#FF00FF00"
+ android:visibility="gone">
+ </LinearLayout>
+</FrameLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
new file mode 100644
index 0000000..7adc72d
--- /dev/null
+++ b/res/values-af/strings.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
+ <!-- no translation found for application_name (8424725141379931883) -->
+ <skip />
+ <string name="uid_name" msgid="3371120195364560632">"Android Kernprogramme"</string>
+ <!-- no translation found for folder_name (4588446541914685904) -->
+ <skip />
+ <!-- no translation found for chooser_wallpaper (5988031014201479733) -->
+ <skip />
+ <!-- no translation found for wallpaper_instructions (4215640646180727542) -->
+ <skip />
+ <!-- no translation found for pick_wallpaper (5630222540525626723) -->
+ <skip />
+ <!-- no translation found for activity_not_found (5591731020063337696) -->
+ <skip />
+ <string name="configure_wallpaper" msgid="2820186271419674623">"Stel op..."</string>
+ <!-- no translation found for widgets_tab_label (9145860100000983599) -->
+ <skip />
+ <!-- no translation found for folders_tab_label (1145293785541489736) -->
+ <skip />
+ <!-- no translation found for shortcuts_tab_label (8640731503933155644) -->
+ <skip />
+ <!-- no translation found for wallpapers_tab_label (1617804870364119879) -->
+ <skip />
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
+ <skip />
+ <!-- no translation found for wallpapers_temp_tab_text (1660218201190495279) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_all (2942727589595027258) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_apps (5468972551904071712) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_games (1855736784923494918) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
+ <skip />
+ <!-- no translation found for all_apps_no_games (5293893733372793696) -->
+ <skip />
+ <!-- no translation found for all_apps_no_downloads (2284720393234453761) -->
+ <skip />
+ <!-- no translation found for market (2652226429823445833) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_error (4976816434597126575) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
+ <skip />
+ <string name="rename_folder_label" msgid="5646236631298452787">"Vouernaam"</string>
+ <!-- no translation found for rename_folder_title (4544573104191526550) -->
+ <skip />
+ <!-- no translation found for rename_action (6016003384693240896) -->
+ <skip />
+ <!-- no translation found for cancel_action (3811860427489435048) -->
+ <skip />
+ <string name="menu_item_add_item" msgid="6233177331075781114">"Voeg by Tuis-skerm"</string>
+ <string name="group_applications" msgid="4118484163419674240">"Programme"</string>
+ <string name="group_shortcuts" msgid="9133529424900391877">"Kortpaaie"</string>
+ <string name="group_folder" msgid="5143593791798929193">"Nuwe vouer"</string>
+ <string name="group_live_folders" msgid="2664945399140647217">"Vouers"</string>
+ <string name="group_widgets" msgid="6704978494073105844">"Legstukke"</string>
+ <string name="group_wallpapers" msgid="1568191644272224858">"Muurpapier"</string>
+ <!-- no translation found for add_folder (3521088587367839879) -->
+ <skip />
+ <!-- no translation found for add_clock (2337943840175865746) -->
+ <skip />
+ <!-- no translation found for add_photo_frame (3154058437359487954) -->
+ <skip />
+ <!-- no translation found for out_of_space (8365249326091984698) -->
+ <skip />
+ <string name="shortcut_installed" msgid="7071557296331322355">"Kortpad \"<xliff:g id="NAME">%s</xliff:g>\" is geskep."</string>
+ <string name="shortcut_uninstalled" msgid="2129499669449749995">"Kortpad \"<xliff:g id="NAME">%s</xliff:g>\" is verwyder."</string>
+ <string name="shortcut_duplicate" msgid="4757756326465060694">"Kortpad \"<xliff:g id="NAME">%s</xliff:g>\" bestaan reeds."</string>
+ <string name="title_select_shortcut" msgid="2858897527672831763">"Kies kortpad"</string>
+ <!-- no translation found for title_select_application (8031072293115454221) -->
+ <skip />
+ <string name="title_select_live_folder" msgid="3753447798805166749">"Kies vouer"</string>
+ <!-- no translation found for all_apps_button_label (2578400570124163469) -->
+ <skip />
+ <!-- no translation found for all_apps_home_button_label (1022222300329398558) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
+ <skip />
+ <!-- no translation found for accessibility_search_button (816822994629942611) -->
+ <skip />
+ <!-- no translation found for accessibility_voice_search_button (3938249215065842475) -->
+ <skip />
+ <!-- no translation found for accessibility_all_apps_button (1595097919145716305) -->
+ <skip />
+ <!-- no translation found for accessibility_customize_button (585539669413531163) -->
+ <skip />
+ <!-- no translation found for accessibility_delete_button (3628162007991023603) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps_system_app (3683920959591819044) -->
+ <skip />
+ <!-- no translation found for menu_add (3065046628354640854) -->
+ <skip />
+ <!-- no translation found for menu_manage_apps (2308685199463588895) -->
+ <skip />
+ <!-- no translation found for menu_wallpaper (5837429080911269832) -->
+ <skip />
+ <!-- no translation found for menu_search (4826514464423239041) -->
+ <skip />
+ <!-- no translation found for menu_notifications (6424587053194766192) -->
+ <skip />
+ <string name="menu_gestures" msgid="514678675575912237">"Handgebare"</string>
+ <!-- no translation found for menu_settings (6233960148378443661) -->
+ <skip />
+ <!-- no translation found for cab_menu_delete_app (1242619904941293871) -->
+ <skip />
+ <!-- no translation found for cab_menu_app_info (5180426909324882018) -->
+ <skip />
+ <!-- no translation found for cab_app_selection_text (606113924828167756) -->
+ <skip />
+ <!-- no translation found for cab_widget_selection_text (962527270506951955) -->
+ <skip />
+ <!-- no translation found for cab_folder_selection_text (8916111874189565067) -->
+ <skip />
+ <!-- no translation found for cab_shortcut_selection_text (8115847384500412878) -->
+ <skip />
+ <!-- no translation found for permlab_install_shortcut (1201690825493376489) -->
+ <skip />
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Stel \'n program in staat om kortpaaie by te voeg sonder gebruikerhandeling."</string>
+ <!-- no translation found for permlab_uninstall_shortcut (7696645932555926449) -->
+ <skip />
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Stel \'n program in staat om kortpaaie te verwyder sonder gebruikerhandeling."</string>
+ <string name="permlab_read_settings" msgid="3452408290738106747">"lees Tuis-instellings en -kortpaaie"</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"Stel \'n program in staat om die instellings en kortpaaie in Tuis te lees."</string>
+ <string name="permlab_write_settings" msgid="1360567537236705628">"skryf Tuis-instellings en -kortpaaie"</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"Stel program in staat om die instellings en kortpaaie in Tuis te verander."</string>
+ <string name="gadget_error_text" msgid="8359351016167075858">"Kon nie legstuk laai nie"</string>
+ <!-- no translation found for uninstall_system_app_text (7488523163288397451) -->
+ <skip />
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
new file mode 100644
index 0000000..55daece
--- /dev/null
+++ b/res/values-am/strings.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
+ <string name="application_name" msgid="8424725141379931883">"አስነሺ"</string>
+ <string name="uid_name" msgid="3371120195364560632">"የAndroid ኮር ትግበራዎች"</string>
+ <!-- no translation found for folder_name (4588446541914685904) -->
+ <skip />
+ <!-- no translation found for chooser_wallpaper (5988031014201479733) -->
+ <skip />
+ <!-- no translation found for wallpaper_instructions (4215640646180727542) -->
+ <skip />
+ <string name="pick_wallpaper" msgid="5630222540525626723">"ልጥፎች"</string>
+ <!-- no translation found for activity_not_found (5591731020063337696) -->
+ <skip />
+ <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>
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
+ <skip />
+ <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>
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
+ <skip />
+ <!-- no translation found for all_apps_no_games (5293893733372793696) -->
+ <skip />
+ <!-- no translation found for all_apps_no_downloads (2284720393234453761) -->
+ <skip />
+ <!-- no translation found for market (2652226429823445833) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_error (4976816434597126575) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
+ <skip />
+ <string name="rename_folder_label" msgid="5646236631298452787">"አቃፊ ስም"</string>
+ <!-- no translation found for rename_folder_title (4544573104191526550) -->
+ <skip />
+ <!-- no translation found for rename_action (6016003384693240896) -->
+ <skip />
+ <!-- no translation found for cancel_action (3811860427489435048) -->
+ <skip />
+ <string name="menu_item_add_item" msgid="6233177331075781114">"ወደ መነሻ ማያ አክል"</string>
+ <string name="group_applications" msgid="4118484163419674240">"መተግበሪያዎች"</string>
+ <string name="group_shortcuts" msgid="9133529424900391877">"አቋራጮች"</string>
+ <string name="group_folder" msgid="5143593791798929193">"አዲስ አቃፊ"</string>
+ <string name="group_live_folders" msgid="2664945399140647217">"አቃፊዎች"</string>
+ <string name="group_widgets" msgid="6704978494073105844">"ፍርግሞች"</string>
+ <string name="group_wallpapers" msgid="1568191644272224858">"ልጣፍ"</string>
+ <!-- no translation found for add_folder (3521088587367839879) -->
+ <skip />
+ <!-- no translation found for add_clock (2337943840175865746) -->
+ <skip />
+ <!-- no translation found for add_photo_frame (3154058437359487954) -->
+ <skip />
+ <!-- no translation found for out_of_space (8365249326091984698) -->
+ <skip />
+ <string name="shortcut_installed" msgid="7071557296331322355">"አቋራጭ\"<xliff:g id="NAME">%s</xliff:g> \"ተፈጥሯል።"</string>
+ <string name="shortcut_uninstalled" msgid="2129499669449749995">"አቋራጭ \"<xliff:g id="NAME">%s</xliff:g>\" ተወግዶ ነበር።"</string>
+ <string name="shortcut_duplicate" msgid="4757756326465060694">"አቋራጭ \"<xliff:g id="NAME">%s</xliff:g>\" አስቀድሞ አለ።"</string>
+ <string name="title_select_shortcut" msgid="2858897527672831763">"አቋራጭ ምረጥ"</string>
+ <string name="title_select_application" msgid="8031072293115454221">"ትግበራ ይምረጡ"</string>
+ <string name="title_select_live_folder" msgid="3753447798805166749">"አቃፊ ምረጥ"</string>
+ <string name="all_apps_button_label" msgid="2578400570124163469">"ትግበራ"</string>
+ <string name="all_apps_home_button_label" msgid="1022222300329398558">"መነሻ"</string>
+ <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
+ <skip />
+ <!-- no translation found for accessibility_search_button (816822994629942611) -->
+ <skip />
+ <!-- no translation found for accessibility_voice_search_button (3938249215065842475) -->
+ <skip />
+ <!-- no translation found for accessibility_all_apps_button (1595097919145716305) -->
+ <skip />
+ <!-- no translation found for accessibility_customize_button (585539669413531163) -->
+ <skip />
+ <!-- no translation found for accessibility_delete_button (3628162007991023603) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps_system_app (3683920959591819044) -->
+ <skip />
+ <!-- no translation found for menu_add (3065046628354640854) -->
+ <skip />
+ <!-- no translation found for menu_manage_apps (2308685199463588895) -->
+ <skip />
+ <!-- no translation found for menu_wallpaper (5837429080911269832) -->
+ <skip />
+ <!-- no translation found for menu_search (4826514464423239041) -->
+ <skip />
+ <!-- no translation found for menu_notifications (6424587053194766192) -->
+ <skip />
+ <string name="menu_gestures" msgid="514678675575912237">"የሰውነትእንቅስቃሴዎች"</string>
+ <!-- no translation found for menu_settings (6233960148378443661) -->
+ <skip />
+ <string name="cab_menu_delete_app" msgid="1242619904941293871">"ትግበራ አራግፍ"</string>
+ <string name="cab_menu_app_info" msgid="5180426909324882018">"የትግበራ ዝርዝሮች"</string>
+ <string name="cab_app_selection_text" msgid="606113924828167756">"1 ትግበራ ተመርጧል"</string>
+ <string name="cab_widget_selection_text" msgid="962527270506951955">"1 ዊድጌት ተመርጧል"</string>
+ <string name="cab_folder_selection_text" msgid="8916111874189565067">"1 አቃፊ ተመርጧል"</string>
+ <string name="cab_shortcut_selection_text" msgid="8115847384500412878">"1 አቋራጭ ተመርጧል"</string>
+ <!-- no translation found for permlab_install_shortcut (1201690825493376489) -->
+ <skip />
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"ያለተጠቃሚ ጣልቃገብነት ትግበራአቋራጭ ለማከል ይፈቅዳል።"</string>
+ <!-- no translation found for permlab_uninstall_shortcut (7696645932555926449) -->
+ <skip />
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"ያለተጠቃሚ ጣልቃገብነት ትግበራአቋራጭ ለማስወገድ ይፈቅዳል።"</string>
+ <string name="permlab_read_settings" msgid="3452408290738106747">"የመነሻቅንብሮች እና አቋራጮችን አንብብ"</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"ቅንብሮችን እና አቋራጮችን በመነሻለማንበብ ትግበራ ይፈቅዳል።"</string>
+ <string name="permlab_write_settings" msgid="1360567537236705628">"መነሻ ቅንብሮች እና አቋራጮች ፃፍ"</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"ቅንብሮችን እና አቋራጮችን በመነሻለመለወጥ ትግበራ ይፈቅዳል።"</string>
+ <string name="gadget_error_text" msgid="8359351016167075858">"ፍርግም የመጫን ችግር"</string>
+ <string name="uninstall_system_app_text" msgid="7488523163288397451">"ይህ የስርዓት ትግበራ ነው እና አለማራገፍ አይቻልም።"</string>
+</resources>
diff --git a/res/values-ar-large/strings.xml b/res/values-ar-large/strings.xml
index 2182311..eb51f77 100644
--- a/res/values-ar-large/strings.xml
+++ b/res/values-ar-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"إلغاء"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"تحديد خلفية"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"لا تتوفر أية خلفيات"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"إلغاء"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index cb4c1f3..d07e42b 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"المشغل"</string>
<string name="uid_name" msgid="3371120195364560632">"تطبيقات Android المركزية"</string>
<string name="folder_name" msgid="4588446541914685904">"المجلد"</string>
diff --git a/res/values-bg-large/strings.xml b/res/values-bg-large/strings.xml
index 5ca1b46..5627dce 100644
--- a/res/values-bg-large/strings.xml
+++ b/res/values-bg-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"Отказ"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Избор на тапет"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Няма налични тапети"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Отказ"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 0f0f07d..f471d08 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Стартов панел"</string>
<string name="uid_name" msgid="3371120195364560632">"Основни приложения на Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Папка"</string>
diff --git a/res/values-ca-large/strings.xml b/res/values-ca-large/strings.xml
index b92811b..7252c3e 100644
--- a/res/values-ca-large/strings.xml
+++ b/res/values-ca-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Seleccionar un fons de pantalla"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"No hi ha fons de pantalla disponibles"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancel·la"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Selecció d\'un empaperat"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"No hi ha empaperats disponibles"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Cancel·la"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 85058ba..0b79929 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Barra d\'execució ràpida"</string>
<string name="uid_name" msgid="3371120195364560632">"Aplicacions principals d\'Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Carpeta"</string>
diff --git a/res/values-cs-large/strings.xml b/res/values-cs-large/strings.xml
index d3e5aa8..2387c68 100644
--- a/res/values-cs-large/strings.xml
+++ b/res/values-cs-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Výběr tapety"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"K dispozici nejsou žádné tapety"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Zrušit"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Výběr tapety"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"K dispozici nejsou žádné tapety"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Zrušit"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index af04cb6..99ccf90 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Složka"</string>
diff --git a/res/values-da-large/strings.xml b/res/values-da-large/strings.xml
index 76ee7b0..9bc5155 100644
--- a/res/values-da-large/strings.xml
+++ b/res/values-da-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Vælg tapet"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Ingen tilgængelige tapeter"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuller"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Vælg tapet"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Ingen tilgængelige tapeter"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Annuller"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 10bd77f..4cbb3e7 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android-kerneprogrammer"</string>
<string name="folder_name" msgid="4588446541914685904">"Mappe"</string>
diff --git a/res/values-de-large/strings.xml b/res/values-de-large/strings.xml
index 86e2684..e101422 100644
--- a/res/values-de-large/strings.xml
+++ b/res/values-de-large/strings.xml
@@ -19,7 +19,7 @@
<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>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Keine Hintergründe verfügbar"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Abbrechen"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Hintergrund auswählen"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Keine Hintergründe verfügbar"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Abbrechen"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 87124a3..05e7ca4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Übersicht"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Ordner"</string>
diff --git a/res/values-el-large/strings.xml b/res/values-el-large/strings.xml
index 66cbfde..56d85ca 100644
--- a/res/values-el-large/strings.xml
+++ b/res/values-el-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"Ακύρωση"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Επιλογή ταπετσαρίας"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Δεν υπάρχουν διαθέσιμες ταπετσαρίες"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Ακύρωση"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 59ef926..1e32dee 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Βασικές εφαρμογές Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Φάκελος"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index f07752c..bdb3bab 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Folder"</string>
diff --git a/res/values-es-large/strings.xml b/res/values-es-large/strings.xml
index f43f72a..e018aee 100644
--- a/res/values-es-large/strings.xml
+++ b/res/values-es-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Seleccionar fondo de pantalla"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"No hay fondos de pantalla disponibles."</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Seleccionar fondo de pantalla"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"No hay fondos de pantalla disponibles."</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Cancelar"</string>
</resources>
diff --git a/res/values-es-rUS-large/strings.xml b/res/values-es-rUS-large/strings.xml
index 349e3eb..7cc6740 100644
--- a/res/values-es-rUS-large/strings.xml
+++ b/res/values-es-rUS-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Seleccionar fondo de pantalla"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"No hay fondos de pantalla disponibles"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Seleccionar fondo de pantalla"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Ningún fondo de pantalla disponible"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Cancelar"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 46781f1..837b565 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Aplicaciones del núcleo de Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Carpeta"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3d162b9..59df7ae 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Aplicaciones básicas de Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Carpeta"</string>
diff --git a/res/values-fa-large/strings.xml b/res/values-fa-large/strings.xml
index 159cc4f..7ec422f 100644
--- a/res/values-fa-large/strings.xml
+++ b/res/values-fa-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"لغو"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"انتخاب تصویر زمینه"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"هیچ تصویر زمینه ای موجود نیست"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"لغو"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 1170d79..2cc44bb 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"راه انداز"</string>
<string name="uid_name" msgid="3371120195364560632">"برنامه های Android Core"</string>
<string name="folder_name" msgid="4588446541914685904">"پوشه"</string>
diff --git a/res/values-fi-large/strings.xml b/res/values-fi-large/strings.xml
index 7559e16..f3baf00 100644
--- a/res/values-fi-large/strings.xml
+++ b/res/values-fi-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Valitse taustakuva"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Ei taustakuvia saatavilla"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Peruuta"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Valitse taustakuva"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Ei taustakuvia saatavilla"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Peruuta"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4e40e56..9e60601 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Käynnistysohjelma"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core -sovellukset"</string>
<string name="folder_name" msgid="4588446541914685904">"Kansio"</string>
diff --git a/res/values-fr-large/strings.xml b/res/values-fr-large/strings.xml
index 5c0aa4b..4fd5350 100644
--- a/res/values-fr-large/strings.xml
+++ b/res/values-fr-large/strings.xml
@@ -19,7 +19,7 @@
<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>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Aucun fond d\'écran disponible"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuler"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Sélectionner un fond d\'écran"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Aucun fond d\'écran disponible."</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Annuler"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 83d71d8..987d5ff 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Lanceur d\'applications"</string>
<string name="uid_name" msgid="3371120195364560632">"Applications de base Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Dossier"</string>
diff --git a/res/values-hr-large/strings.xml b/res/values-hr-large/strings.xml
index c791102..95c55b9 100644
--- a/res/values-hr-large/strings.xml
+++ b/res/values-hr-large/strings.xml
@@ -19,7 +19,7 @@
<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>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nema dostupnih pozadinskih slika"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Odustani"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Odaberite pozadinsku sliku"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Nema dostupnih pozadinskih slika"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Odustani"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 34487a5..ae6b9f7 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Pokretač"</string>
<string name="uid_name" msgid="3371120195364560632">"Matične aplikacije za Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Mapa"</string>
diff --git a/res/values-hu-large/strings.xml b/res/values-hu-large/strings.xml
index 800581e..fe42077 100644
--- a/res/values-hu-large/strings.xml
+++ b/res/values-hu-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Háttérkép kiválasztása"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nincs elérhető háttérkép"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Mégse"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Háttérkép kiválasztása"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Nincs elérhető háttérkép"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Mégse"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index dfa267b..57c305c 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Indító"</string>
<string name="uid_name" msgid="3371120195364560632">"Alap Android-alkalmazások"</string>
<string name="folder_name" msgid="4588446541914685904">"Mappa"</string>
diff --git a/res/values-in-large/strings.xml b/res/values-in-large/strings.xml
index 7062353..4064a49 100644
--- a/res/values-in-large/strings.xml
+++ b/res/values-in-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Pilih wallpaper"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Tidak tersedia wallpaper"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Batal"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Pilih wallpaper"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Tidak tersedia wallpaper"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Batal"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d9a6d28..4b861ee 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Peluncur"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Map"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 0a1f4fd..8fed00c 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Avvio applicazioni"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Cartella"</string>
diff --git a/res/values-iw-large/strings.xml b/res/values-iw-large/strings.xml
index 72e6b0f..ab82b96 100644
--- a/res/values-iw-large/strings.xml
+++ b/res/values-iw-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"ביטול"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"בחר טפט"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"אין טפטים זמינים"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"ביטול"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 535cf73..14ab4ae 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"מפעיל"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"תיקיה"</string>
diff --git a/res/values-ja-large/strings.xml b/res/values-ja-large/strings.xml
index 3320532..24aea5e 100644
--- a/res/values-ja-large/strings.xml
+++ b/res/values-ja-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"キャンセル"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"壁紙の選択"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"利用できる壁紙がありません"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"キャンセル"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 4b2d31d..daa2a6a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"ランチャー"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"フォルダ"</string>
diff --git a/res/values-ko-large/strings.xml b/res/values-ko-large/strings.xml
index 4c7e3c6..93203de 100644
--- a/res/values-ko-large/strings.xml
+++ b/res/values-ko-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"취소"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"배경화면 선택"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"배경화면이 없습니다."</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"취소"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 9f6ee4a..783d891 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core 애플리케이션"</string>
<string name="folder_name" msgid="4588446541914685904">"폴더"</string>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index b3d0b2e..13519e5 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -15,7 +15,11 @@
-->
<resources>
- <dimen name="workspace_cell_width">96dip</dimen>
+<!-- QSB -->
+ <dimen name="toolbar_button_vertical_padding">12dip</dimen>
+ <dimen name="toolbar_button_horizontal_padding">12dip</dimen>
+
+ <dimen name="workspace_cell_width">106dip</dimen>
<dimen name="workspace_cell_height">74dip</dimen>
<dimen name="folder_cell_width">100dip</dimen>
<dimen name="folder_cell_height">74dip</dimen>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
index 251c717..50aba09 100644
--- a/res/values-land/styles.xml
+++ b/res/values-land/styles.xml
@@ -18,6 +18,23 @@
-->
<resources>
+<!-- Search Bar -->
+ <style name="SearchBar">
+ <item name="android:orientation">vertical</item>
+ </style>
+ <style name="SearchButton">
+ <item name="android:layout_gravity">center_horizontal</item>
+ <item name="android:paddingTop">@dimen/toolbar_button_vertical_padding</item>
+ <item name="android:paddingBottom">@dimen/toolbar_button_vertical_padding</item>
+ <item name="android:paddingLeft">@dimen/toolbar_button_horizontal_padding</item>
+ <item name="android:paddingRight">@dimen/toolbar_button_horizontal_padding</item>
+ </style>
+ <style name="SearchButtonDivider">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_gravity">center_horizontal</item>
+ </style>
+
<style name="HotseatButton">
<item name="android:paddingTop">12dip</item>
<item name="android:paddingBottom">12dip</item>
diff --git a/res/values-large-land/dimens.xml b/res/values-large-land/dimens.xml
index 0f7e0ed..eeb16f4 100644
--- a/res/values-large-land/dimens.xml
+++ b/res/values-large-land/dimens.xml
@@ -19,9 +19,6 @@
or right while you're dragging. -->
<dimen name="scroll_zone">100dip</dimen>
- <dimen name="customization_drawer_height">480dp</dimen>
- <dimen name="customization_drawer_content_height">420dp</dimen>
-
<dimen name="all_apps_view_pageLayoutWidthGap">36dp</dimen>
<dimen name="all_apps_view_pageLayoutHeightGap">6dp</dimen>
<dimen name="all_apps_view_pageLayoutPaddingTop">20dp</dimen>
@@ -29,10 +26,15 @@
<dimen name="all_apps_view_pageLayoutPaddingLeft">40dp</dimen>
<dimen name="all_apps_view_pageLayoutPaddingRight">40dp</dimen>
+ <!-- Dimensions for customize should generally be the same as all apps, or very similar. -->
+ <dimen name="customization_drawer_contents_pageLayoutWidthGap">32dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutHeightGap">12dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingTop">20dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingBottom">20dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingLeft">40dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingRight">40dp</dimen>
+
<integer name="customization_drawer_contents_wallpaperCellSpanX">3</integer>
<integer name="customization_drawer_contents_wallpaperCellCountX">12</integer>
<integer name="customization_drawer_contents_widgetCellCountX">14</integer>
- <integer name="customization_drawer_contents_cellCountX">8</integer>
- <integer name="customization_drawer_contents_cellCountY">3</integer>
- <dimen name="customization_drawer_contents_pageLayoutWidthGap">32dp</dimen>
</resources>
\ No newline at end of file
diff --git a/res/values-large-port/dimens.xml b/res/values-large-port/dimens.xml
index 2ea9e38..89f8605 100644
--- a/res/values-large-port/dimens.xml
+++ b/res/values-large-port/dimens.xml
@@ -19,9 +19,6 @@
or right while you're dragging. -->
<dimen name="scroll_zone">40dp</dimen>
- <dimen name="customization_drawer_height">800dp</dimen>
- <dimen name="customization_drawer_content_height">420dp</dimen>
-
<dimen name="all_apps_view_pageLayoutWidthGap">36dp</dimen>
<dimen name="all_apps_view_pageLayoutHeightGap">36dp</dimen>
<dimen name="all_apps_view_pageLayoutPaddingTop">25dp</dimen>
@@ -32,7 +29,12 @@
<integer name="customization_drawer_contents_wallpaperCellSpanX">3</integer>
<integer name="customization_drawer_contents_wallpaperCellCountX">9</integer>
<integer name="customization_drawer_contents_widgetCellCountX">9</integer>
- <integer name="customization_drawer_contents_cellCountX">5</integer>
- <integer name="customization_drawer_contents_cellCountY">3</integer>
+
+ <!-- Dimensions for customize should generally be the same as all apps, or very similar. -->
<dimen name="customization_drawer_contents_pageLayoutWidthGap">36dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutHeightGap">12dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingTop">25dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingBottom">25dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingLeft">20dp</dimen>
+ <dimen name="customization_drawer_contents_pageLayoutPaddingRight">20dp</dimen>
</resources>
\ No newline at end of file
diff --git a/res/values-large-port/styles.xml b/res/values-large-port/styles.xml
new file mode 100644
index 0000000..ba23a89
--- /dev/null
+++ b/res/values-large-port/styles.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+* 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.
+*/
+-->
+
+<resources>
+ <style name="CustomizeTabIndicator.Wide" parent="TabIndicator.Wide">
+ <item name="android:paddingLeft">20dp</item>
+ <item name="android:paddingRight">20dp</item>
+ <item name="android:paddingTop">12dp</item>
+ <item name="android:paddingBottom">16dp</item>
+ <item name="android:textSize">16sp</item>
+ </style>
+</resources>
diff --git a/res/values-large/dimens.xml b/res/values-large/dimens.xml
index 2416109..fa660e5 100644
--- a/res/values-large/dimens.xml
+++ b/res/values-large/dimens.xml
@@ -62,9 +62,6 @@
<integer name="land_all_apps_view_cellCountX">7</integer>
<integer name="land_all_apps_view_cellCountY">5</integer>
- <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 -->
<dimen name="delete_zone_vertical_drag_padding">20dip</dimen>
<dimen name="delete_zone_horizontal_drag_padding">20dip</dimen>
@@ -88,4 +85,14 @@
the drag view should be offset from the position of the original view. -->
<dimen name="dragViewOffsetX">0dp</dimen>
<dimen name="dragViewOffsetY">-12dp</dimen>
+
+ <!-- The actual number of rows/columns will be determined dynamically based on the screen
+ size, but in portrait we want to cap the rows at 3, otherwise it looks weird. -->
+ <integer name="customization_drawer_contents_maxCellCountY">3</integer>
+
+ <!-- The percentage of vertical space that the customize tray should try to fill. -->
+ <integer name="customization_drawer_verticalFillPercentage">65</integer>
+
+ <!-- Max number of rows in all apps, because too many looks weird. -->
+ <integer name="all_apps_view_maxCellCountY">6</integer>
</resources>
diff --git a/res/values-large/styles.xml b/res/values-large/styles.xml
index bcbe038..ebb26f5 100644
--- a/res/values-large/styles.xml
+++ b/res/values-large/styles.xml
@@ -50,6 +50,9 @@
<item name="android:textSize">20sp</item>
</style>
+ <style name="CustomizeTabIndicator.Wide" parent="TabIndicator.Wide">
+ </style>
+
<style name="config_orientation">
<item name="@android:screenOrientation">unspecified</item>
</style>
diff --git a/res/values-lt-large/strings.xml b/res/values-lt-large/strings.xml
index 527a09b..cc8bb90 100644
--- a/res/values-lt-large/strings.xml
+++ b/res/values-lt-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Pasirinkti darbalaukio foną"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nepasiekiami jokie darbalaukio fonai"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Atšaukti"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Pasirinkti darbalaukio foną"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Negalimi jokie darbalaukio fonai"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Atšaukti"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index e84360d..0492757 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Paleidimo priemonė"</string>
<string name="uid_name" msgid="3371120195364560632">"Pagrindinės „Android“ programos"</string>
<string name="folder_name" msgid="4588446541914685904">"Aplankas"</string>
diff --git a/res/values-lv-large/strings.xml b/res/values-lv-large/strings.xml
index 167ee7a..a1cfaf0 100644
--- a/res/values-lv-large/strings.xml
+++ b/res/values-lv-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Fona tapetes atlase"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Tapetes nav pieejamas."</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Atcelt"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Fona tapetes atlase"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Fona tapetes nav pieejamas."</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Atcelt"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 963c332..9d83aa5 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Palaidējs"</string>
<string name="uid_name" msgid="3371120195364560632">"Android kodola lietojumprogrammas"</string>
<string name="folder_name" msgid="4588446541914685904">"Mape"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
new file mode 100644
index 0000000..13e9259
--- /dev/null
+++ b/res/values-ms/strings.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
+ <!-- outdated translation 5865630159700533006 --> <string name="application_name" msgid="8424725141379931883">"Laman Utama"</string>
+ <string name="uid_name" msgid="3371120195364560632">"Apl Teras Android"</string>
+ <string name="folder_name" msgid="4588446541914685904">"Folder"</string>
+ <string name="chooser_wallpaper" msgid="5988031014201479733">"Pilih kertas dinding daripada"</string>
+ <string name="wallpaper_instructions" msgid="4215640646180727542">"Tetapkan kertas dinding"</string>
+ <!-- outdated translation 2674908923379130941 --> <string name="pick_wallpaper" msgid="5630222540525626723">"Galeri Kertas Dinding"</string>
+ <!-- outdated translation 3571057450431950427 --> <string name="activity_not_found" msgid="5591731020063337696">"Aplikasi tidak dipasang pada telefon anda."</string>
+ <!-- no translation found for configure_wallpaper (2820186271419674623) -->
+ <skip />
+ <!-- no translation found for widgets_tab_label (9145860100000983599) -->
+ <skip />
+ <!-- no translation found for folders_tab_label (1145293785541489736) -->
+ <skip />
+ <!-- no translation found for shortcuts_tab_label (8640731503933155644) -->
+ <skip />
+ <!-- no translation found for wallpapers_tab_label (1617804870364119879) -->
+ <skip />
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
+ <skip />
+ <!-- no translation found for wallpapers_temp_tab_text (1660218201190495279) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_all (2942727589595027258) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_apps (5468972551904071712) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_games (1855736784923494918) -->
+ <skip />
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
+ <skip />
+ <!-- no translation found for all_apps_no_games (5293893733372793696) -->
+ <skip />
+ <!-- no translation found for all_apps_no_downloads (2284720393234453761) -->
+ <skip />
+ <!-- no translation found for market (2652226429823445833) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_error (4976816434597126575) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
+ <skip />
+ <string name="rename_folder_label" msgid="5646236631298452787">"Nama folder"</string>
+ <string name="rename_folder_title" msgid="4544573104191526550">"Namakan semula folder"</string>
+ <string name="rename_action" msgid="6016003384693240896">"OK"</string>
+ <string name="cancel_action" msgid="3811860427489435048">"Batal"</string>
+ <string name="menu_item_add_item" msgid="6233177331075781114">"Tambah ke Skrin utama"</string>
+ <string name="group_applications" msgid="4118484163419674240">"Aplikasi"</string>
+ <string name="group_shortcuts" msgid="9133529424900391877">"Pintasan"</string>
+ <string name="group_folder" msgid="5143593791798929193">"Folder baru"</string>
+ <string name="group_live_folders" msgid="2664945399140647217">"Folder"</string>
+ <string name="group_widgets" msgid="6704978494073105844">"Widget"</string>
+ <string name="group_wallpapers" msgid="1568191644272224858">"Kertas dinding"</string>
+ <string name="add_folder" msgid="3521088587367839879">"Folder"</string>
+ <string name="add_clock" msgid="2337943840175865746">"Jam"</string>
+ <string name="add_photo_frame" msgid="3154058437359487954">"Bingkai gambar"</string>
+ <string name="out_of_space" msgid="8365249326091984698">"Tiada lagi ruang pada skrin Utama ini"</string>
+ <!-- no translation found for shortcut_installed (7071557296331322355) -->
+ <skip />
+ <!-- no translation found for shortcut_uninstalled (2129499669449749995) -->
+ <skip />
+ <!-- no translation found for shortcut_duplicate (4757756326465060694) -->
+ <skip />
+ <string name="title_select_shortcut" msgid="2858897527672831763">"Pilih pintasan"</string>
+ <!-- no translation found for title_select_application (8031072293115454221) -->
+ <skip />
+ <string name="title_select_live_folder" msgid="3753447798805166749">"Pilih folder"</string>
+ <!-- no translation found for all_apps_button_label (2578400570124163469) -->
+ <skip />
+ <!-- no translation found for all_apps_home_button_label (1022222300329398558) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
+ <skip />
+ <!-- no translation found for accessibility_search_button (816822994629942611) -->
+ <skip />
+ <!-- no translation found for accessibility_voice_search_button (3938249215065842475) -->
+ <skip />
+ <!-- no translation found for accessibility_all_apps_button (1595097919145716305) -->
+ <skip />
+ <!-- no translation found for accessibility_customize_button (585539669413531163) -->
+ <skip />
+ <!-- no translation found for accessibility_delete_button (3628162007991023603) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps_system_app (3683920959591819044) -->
+ <skip />
+ <string name="menu_add" msgid="3065046628354640854">"Tambah"</string>
+ <!-- no translation found for menu_manage_apps (2308685199463588895) -->
+ <skip />
+ <string name="menu_wallpaper" msgid="5837429080911269832">"Kertas dinding"</string>
+ <string name="menu_search" msgid="4826514464423239041">"Cari"</string>
+ <string name="menu_notifications" msgid="6424587053194766192">"Pemberitahuan"</string>
+ <string name="menu_gestures" msgid="514678675575912237">"Gerak isyarat"</string>
+ <string name="menu_settings" msgid="6233960148378443661">"Tetapan"</string>
+ <!-- no translation found for cab_menu_delete_app (1242619904941293871) -->
+ <skip />
+ <!-- no translation found for cab_menu_app_info (5180426909324882018) -->
+ <skip />
+ <!-- no translation found for cab_app_selection_text (606113924828167756) -->
+ <skip />
+ <!-- no translation found for cab_widget_selection_text (962527270506951955) -->
+ <skip />
+ <!-- no translation found for cab_folder_selection_text (8916111874189565067) -->
+ <skip />
+ <!-- no translation found for cab_shortcut_selection_text (8115847384500412878) -->
+ <skip />
+ <string name="permlab_install_shortcut" msgid="1201690825493376489">"pasang pintasan"</string>
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Membenarkan aplikasi menambah pintasan tanpa campur tangan pengguna."</string>
+ <string name="permlab_uninstall_shortcut" msgid="7696645932555926449">"nyahpasang pintasan"</string>
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Membenarkan aplikasi mengalih keluar pintasan tanpa campur tangan pengguna."</string>
+ <string name="permlab_read_settings" msgid="3452408290738106747">"membaca tetapan dan pintasan Laman Utama"</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"Membenarkan aplikasi untuk membaca tetapan dan pintasan di Laman Utama."</string>
+ <string name="permlab_write_settings" msgid="1360567537236705628">"menulis tetapan dan pintasan Laman Utama"</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"Membenarkan aplikasi untuk menukar tetapan dan pintasan di Laman Utama."</string>
+ <string name="gadget_error_text" msgid="8359351016167075858">"Masalah memuatkan widget"</string>
+ <!-- no translation found for uninstall_system_app_text (7488523163288397451) -->
+ <skip />
+</resources>
diff --git a/res/values-nb-large/strings.xml b/res/values-nb-large/strings.xml
index dd58eae..52f392c 100644
--- a/res/values-nb-large/strings.xml
+++ b/res/values-nb-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Velg bakgrunnsbilde"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Ingen bakgrunner tilgjengelig"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Avbryt"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Velg bakgrunn"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Ingen bakgrunner er tilgjengelige"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Avbryt"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 382bac4..81f2f1a 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Utskytingsrampe"</string>
<string name="uid_name" msgid="3371120195364560632">"Android-kjerneapplikasjoner"</string>
<string name="folder_name" msgid="4588446541914685904">"Mappe"</string>
diff --git a/res/values-nl-large/strings.xml b/res/values-nl-large/strings.xml
index 474f13b..c044921 100644
--- a/res/values-nl-large/strings.xml
+++ b/res/values-nl-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Achtergrond selecteren"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Geen achtergronden beschikbaar"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Annuleren"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Achtergrond selecteren"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Geen achtergronden beschikbaar"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Annuleren"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index abcf29a..0538784 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android-kerntoepassingen"</string>
<string name="folder_name" msgid="4588446541914685904">"Map"</string>
diff --git a/res/values-pl-large/strings.xml b/res/values-pl-large/strings.xml
index 51b2442..44fbf4f 100644
--- a/res/values-pl-large/strings.xml
+++ b/res/values-pl-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Wybierz tapetę"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Brak tapet"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Anuluj"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Wybierz tapetę"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Brak tapet"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Anuluj"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 97b54af..cf186c7 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Program uruchamiający"</string>
<string name="uid_name" msgid="3371120195364560632">"Aplikacje główne systemu Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Folder"</string>
diff --git a/res/values-pt-large/strings.xml b/res/values-pt-large/strings.xml
index b283297..ee43758 100644
--- a/res/values-pt-large/strings.xml
+++ b/res/values-pt-large/strings.xml
@@ -19,7 +19,7 @@
<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>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nenhum papel de parede disponível"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Selecionar papel de parede"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Nenhum papel de parede disponível"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Cancelar"</string>
</resources>
diff --git a/res/values-pt-rPT-large/strings.xml b/res/values-pt-rPT-large/strings.xml
index 9ec0e0f..b6c2d16 100644
--- a/res/values-pt-rPT-large/strings.xml
+++ b/res/values-pt-rPT-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Seleccionar imagem de fundo"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nenhuma imagem de fundo disponível"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Selecionar imagem de fundo"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Nenhuma imagem de fundo disponível"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Cancelar"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 71f634d..103af32 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Aplicações Principais do Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Pasta"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2714fde..f83eaa9 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Principais aplicativos do Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Pasta"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index a8453ed..e9aca66 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Lantschader"</string>
<string name="uid_name" msgid="3371120195364560632">"Applicaziuns da basa dad Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Ordinatur"</string>
diff --git a/res/values-ro-large/strings.xml b/res/values-ro-large/strings.xml
index 6bea7b5..0e7eaa3 100644
--- a/res/values-ro-large/strings.xml
+++ b/res/values-ro-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Selectaţi o imagine de fundal"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Nu există imagini de fundal disponibile"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Anulaţi"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Selectaţi o imagine de fundal"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Nu există imagini de fundal disponibile"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Anulaţi"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 6bed5d0..bb112dd 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Lansator"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Dosar"</string>
diff --git a/res/values-ru-large/strings.xml b/res/values-ru-large/strings.xml
index 01796bc..592dc6b 100644
--- a/res/values-ru-large/strings.xml
+++ b/res/values-ru-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"Отмена"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Выберите обои"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Нет доступных обоев"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Отмена"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 0456e4c..60f63a1 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Основные приложения Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Папка"</string>
diff --git a/res/values-sk-large/strings.xml b/res/values-sk-large/strings.xml
index c857c3c..77cceb3 100644
--- a/res/values-sk-large/strings.xml
+++ b/res/values-sk-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Výber tapety"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Tapety nie sú k dispozícii"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Zrušiť"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Výber tapety"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"K dispozícii nie sú žiadne tapety"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Zrušiť"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 064309d..93ec647 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Spúšťač"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Priečinok"</string>
diff --git a/res/values-sl-large/strings.xml b/res/values-sl-large/strings.xml
index f007b98..abb4526 100644
--- a/res/values-sl-large/strings.xml
+++ b/res/values-sl-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Izberite sliko za ozadje"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Ni slik za ozadje"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Prekliči"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Izberite sliko za ozadje"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Ni slik za ozadje"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Prekliči"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 78b5187..98310c7 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Zaganjalnik"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Mapa"</string>
diff --git a/res/values-sr-large/strings.xml b/res/values-sr-large/strings.xml
index f716909..c559806 100644
--- a/res/values-sr-large/strings.xml
+++ b/res/values-sr-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"Откажи"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Избор позадине"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Позадине нису доступне"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Откажи"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index cbc4bf2..6315d40 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Покретач"</string>
<string name="uid_name" msgid="3371120195364560632">"Основне Android апликације"</string>
<string name="folder_name" msgid="4588446541914685904">"Директоријум"</string>
diff --git a/res/values-sv-large/strings.xml b/res/values-sv-large/strings.xml
index 907348a..bc60cbe 100644
--- a/res/values-sv-large/strings.xml
+++ b/res/values-sv-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Välj bakgrund"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Inga tillgängliga bakgrundsbilder"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Avbryt"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Välj bakgrund"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Inga tillgängliga bakgrunder"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Avbryt"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 68859e3..7b01015 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Startbild"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Mapp"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
new file mode 100644
index 0000000..3358e17
--- /dev/null
+++ b/res/values-sw/strings.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
+ <string name="application_name" msgid="8424725141379931883">"Kizinduzi"</string>
+ <string name="uid_name" msgid="3371120195364560632">"Programu Kuu za Android"</string>
+ <!-- no translation found for folder_name (4588446541914685904) -->
+ <skip />
+ <!-- no translation found for chooser_wallpaper (5988031014201479733) -->
+ <skip />
+ <!-- no translation found for wallpaper_instructions (4215640646180727542) -->
+ <skip />
+ <string name="pick_wallpaper" msgid="5630222540525626723">"Taswira"</string>
+ <!-- no translation found for activity_not_found (5591731020063337696) -->
+ <skip />
+ <string name="configure_wallpaper" msgid="2820186271419674623">"Weka mipangilio.."</string>
+ <string name="widgets_tab_label" msgid="9145860100000983599">"Wijeti"</string>
+ <string name="folders_tab_label" msgid="1145293785541489736">"Mafolda"</string>
+ <string name="shortcuts_tab_label" msgid="8640731503933155644">"Zaidi"</string>
+ <string name="wallpapers_tab_label" msgid="1617804870364119879">"Taswira"</string>
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
+ <skip />
+ <string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Hiki kitakuwa kichupo cha taswira"</string>
+ <string name="all_apps_tab_all" msgid="2942727589595027258">"Zote"</string>
+ <string name="all_apps_tab_apps" msgid="5468972551904071712">"Programu"</string>
+ <string name="all_apps_tab_games" msgid="1855736784923494918">"Michezo"</string>
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
+ <skip />
+ <!-- no translation found for all_apps_no_games (5293893733372793696) -->
+ <skip />
+ <!-- no translation found for all_apps_no_downloads (2284720393234453761) -->
+ <skip />
+ <!-- no translation found for market (2652226429823445833) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_error (4976816434597126575) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
+ <skip />
+ <string name="rename_folder_label" msgid="5646236631298452787">"Jina la folda"</string>
+ <!-- no translation found for rename_folder_title (4544573104191526550) -->
+ <skip />
+ <!-- no translation found for rename_action (6016003384693240896) -->
+ <skip />
+ <!-- no translation found for cancel_action (3811860427489435048) -->
+ <skip />
+ <string name="menu_item_add_item" msgid="6233177331075781114">"Ongeza kwa skrini ya Nyumbani"</string>
+ <string name="group_applications" msgid="4118484163419674240">"Programu"</string>
+ <string name="group_shortcuts" msgid="9133529424900391877">"Njia za mkato"</string>
+ <string name="group_folder" msgid="5143593791798929193">"Folda mpya"</string>
+ <string name="group_live_folders" msgid="2664945399140647217">"Mafolda"</string>
+ <string name="group_widgets" msgid="6704978494073105844">"Wijeti"</string>
+ <string name="group_wallpapers" msgid="1568191644272224858">"Pazia"</string>
+ <!-- no translation found for add_folder (3521088587367839879) -->
+ <skip />
+ <!-- no translation found for add_clock (2337943840175865746) -->
+ <skip />
+ <!-- no translation found for add_photo_frame (3154058437359487954) -->
+ <skip />
+ <!-- no translation found for out_of_space (8365249326091984698) -->
+ <skip />
+ <string name="shortcut_installed" msgid="7071557296331322355">"Njia ya mkato ya \"<xliff:g id="NAME">%s</xliff:g>\" imeundwa."</string>
+ <string name="shortcut_uninstalled" msgid="2129499669449749995">"Njia ya mkato ya \"<xliff:g id="NAME">%s</xliff:g>\" iliondolewa."</string>
+ <string name="shortcut_duplicate" msgid="4757756326465060694">"Njia ya mkato ya \"<xliff:g id="NAME">%s</xliff:g>\" tayari ipo."</string>
+ <string name="title_select_shortcut" msgid="2858897527672831763">"Chagua njia ya mkato"</string>
+ <string name="title_select_application" msgid="8031072293115454221">"Chagua programu"</string>
+ <string name="title_select_live_folder" msgid="3753447798805166749">"Chagua folda"</string>
+ <string name="all_apps_button_label" msgid="2578400570124163469">"Programu"</string>
+ <string name="all_apps_home_button_label" msgid="1022222300329398558">"Nyumbani"</string>
+ <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
+ <skip />
+ <!-- no translation found for accessibility_search_button (816822994629942611) -->
+ <skip />
+ <!-- no translation found for accessibility_voice_search_button (3938249215065842475) -->
+ <skip />
+ <!-- no translation found for accessibility_all_apps_button (1595097919145716305) -->
+ <skip />
+ <!-- no translation found for accessibility_customize_button (585539669413531163) -->
+ <skip />
+ <!-- no translation found for accessibility_delete_button (3628162007991023603) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps_system_app (3683920959591819044) -->
+ <skip />
+ <!-- no translation found for menu_add (3065046628354640854) -->
+ <skip />
+ <!-- no translation found for menu_manage_apps (2308685199463588895) -->
+ <skip />
+ <!-- no translation found for menu_wallpaper (5837429080911269832) -->
+ <skip />
+ <!-- no translation found for menu_search (4826514464423239041) -->
+ <skip />
+ <!-- no translation found for menu_notifications (6424587053194766192) -->
+ <skip />
+ <string name="menu_gestures" msgid="514678675575912237">"Ishara"</string>
+ <!-- no translation found for menu_settings (6233960148378443661) -->
+ <skip />
+ <string name="cab_menu_delete_app" msgid="1242619904941293871">"Ondoa programu"</string>
+ <string name="cab_menu_app_info" msgid="5180426909324882018">"Maelezo ya programu"</string>
+ <string name="cab_app_selection_text" msgid="606113924828167756">"Programu 1 imechaguliwa"</string>
+ <string name="cab_widget_selection_text" msgid="962527270506951955">"Wijeti 1 imechaguliwa"</string>
+ <string name="cab_folder_selection_text" msgid="8916111874189565067">"Folda 1 limechaguliwa"</string>
+ <string name="cab_shortcut_selection_text" msgid="8115847384500412878">" Njia 1 ya mkato imechaguliwa"</string>
+ <!-- no translation found for permlab_install_shortcut (1201690825493376489) -->
+ <skip />
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Huruhusu programu kuongeza njia za mkato bila mtumiaji kuhusika."</string>
+ <!-- no translation found for permlab_uninstall_shortcut (7696645932555926449) -->
+ <skip />
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Huruhusu programu kuondoa njia za mkato bila mtumiaji kuhusika."</string>
+ <string name="permlab_read_settings" msgid="3452408290738106747">"soma mipangilio ya Nyumbani na njia za mkato"</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"Huruhusu programu kusoma mipangilio na njia za mkato katika Nyumbani."</string>
+ <string name="permlab_write_settings" msgid="1360567537236705628">"andika mipangilio ya Nyumbani na njia za mkato"</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"Huruhusu programu kubadilisha mipangilio na njia za mkato Nyumbani."</string>
+ <string name="gadget_error_text" msgid="8359351016167075858">"Tatizo la kupakia wijeti"</string>
+ <string name="uninstall_system_app_text" msgid="7488523163288397451">"Hii ni programu ya mfumo na haiwezi kuondolewa."</string>
+</resources>
diff --git a/res/values-th-large/strings.xml b/res/values-th-large/strings.xml
index 38c7d85..1cfb978 100644
--- a/res/values-th-large/strings.xml
+++ b/res/values-th-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"ยกเลิก"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"เลือกวอลเปเปอร์"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"ไม่มีวอลเปเปอร์ให้ใช้งาน"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"ยกเลิก"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1562135..cbee52c 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"ตัวเรียกใช้งาน"</string>
<string name="uid_name" msgid="3371120195364560632">"แอปหลัก Android"</string>
<string name="folder_name" msgid="4588446541914685904">"โฟลเดอร์"</string>
diff --git a/res/values-tl-large/strings.xml b/res/values-tl-large/strings.xml
index 7eadb6d..9b1cfa7 100644
--- a/res/values-tl-large/strings.xml
+++ b/res/values-tl-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Pumili ng wallpaper"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Walang available na mga wallpaper"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"Kanselahin"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Pumili ng wallpaper"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Walang available na mga wallpaper"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Kanselahin"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 50ed317..5ff0174 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Folder"</string>
diff --git a/res/values-tr-large/strings.xml b/res/values-tr-large/strings.xml
index a81e998..3c5d759 100644
--- a/res/values-tr-large/strings.xml
+++ b/res/values-tr-large/strings.xml
@@ -19,7 +19,7 @@
<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">"Duvar kağıdı seçin"</string>
- <string name="wallpaper_chooser_empty" msgid="7358237455389125747">"Hiç duvar kağıdı yok"</string>
- <string name="wallpaper_cancel" msgid="6502936522490675611">"İptal"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Duvar kağıdı seçin"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Hiç duvar kağıdı yok"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"İptal"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2057828..b7c2dfc 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Launcher"</string>
<string name="uid_name" msgid="3371120195364560632">"Android Core Apps"</string>
<string name="folder_name" msgid="4588446541914685904">"Klasör"</string>
diff --git a/res/values-uk-large/strings.xml b/res/values-uk-large/strings.xml
index 4950142..aab00c5 100644
--- a/res/values-uk-large/strings.xml
+++ b/res/values-uk-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"Скасувати"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"Вибрати фоновий малюнок"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Фонові малюнки недоступні"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"Скасувати"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b3f0846..77ab693 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Пан. запуску"</string>
<string name="uid_name" msgid="3371120195364560632">"Служби Android Core"</string>
<string name="folder_name" msgid="4588446541914685904">"Папка"</string>
diff --git a/res/values-vi-large/strings.xml b/res/values-vi-large/strings.xml
index c8ce028..a994fc5 100644
--- a/res/values-vi-large/strings.xml
+++ b/res/values-vi-large/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="8362944198120933329">"Chọn hình nền"</string>
- <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Không có sẵn hình nền nào"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"Không có hình nền nào"</string>
<string name="wallpaper_cancel" msgid="5942480248232268588">"Hủy"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 9238c4a..e96b68b 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"Trình khởi chạy"</string>
<string name="uid_name" msgid="3371120195364560632">"Ứng dụng Lõi Android"</string>
<string name="folder_name" msgid="4588446541914685904">"Thư mục"</string>
diff --git a/res/values-xlarge/styles.xml b/res/values-xlarge/styles.xml
new file mode 100644
index 0000000..fdf2f19
--- /dev/null
+++ b/res/values-xlarge/styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+* Copyright (C) 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+-->
+
+<resources>
+ <style name="CustomizeTabIndicator.Wide" parent="TabIndicator.Wide">
+ </style>
+</resources>
diff --git a/res/values-zh-rCN-large/strings.xml b/res/values-zh-rCN-large/strings.xml
index 323cce2..c950b46 100644
--- a/res/values-zh-rCN-large/strings.xml
+++ b/res/values-zh-rCN-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"取消"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"选择壁纸"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"无可用壁纸"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"取消"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b2f228c..60aafc9 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"启动器"</string>
<string name="uid_name" msgid="3371120195364560632">"Android 核心应用程序"</string>
<string name="folder_name" msgid="4588446541914685904">"文件夹"</string>
diff --git a/res/values-zh-rTW-large/strings.xml b/res/values-zh-rTW-large/strings.xml
index 793b58d..f821f5c 100644
--- a/res/values-zh-rTW-large/strings.xml
+++ b/res/values-zh-rTW-large/strings.xml
@@ -19,7 +19,7 @@
<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_cancel" msgid="6502936522490675611">"取消"</string>
+ <string name="wallpaper_dialog_title" msgid="8362944198120933329">"選取桌布"</string>
+ <string name="wallpaper_chooser_empty" msgid="6543937491391049913">"沒有可用的桌布"</string>
+ <string name="wallpaper_cancel" msgid="5942480248232268588">"取消"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index f172ef6..4abe756 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -19,6 +19,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
<string name="application_name" msgid="8424725141379931883">"啟動器"</string>
<string name="uid_name" msgid="3371120195364560632">"Android 核心應用程式"</string>
<string name="folder_name" msgid="4588446541914685904">"資料夾"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
new file mode 100644
index 0000000..81fec63
--- /dev/null
+++ b/res/values-zu/strings.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+* 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for live_wallpaper_picker_class_name (2908396359221567921) -->
+ <skip />
+ <string name="application_name" msgid="8424725141379931883">"Isiqalisi"</string>
+ <string name="uid_name" msgid="3371120195364560632">"I-Android Core Apps"</string>
+ <!-- no translation found for folder_name (4588446541914685904) -->
+ <skip />
+ <!-- no translation found for chooser_wallpaper (5988031014201479733) -->
+ <skip />
+ <!-- no translation found for wallpaper_instructions (4215640646180727542) -->
+ <skip />
+ <string name="pick_wallpaper" msgid="5630222540525626723">"Amaphephadonga"</string>
+ <!-- no translation found for activity_not_found (5591731020063337696) -->
+ <skip />
+ <string name="configure_wallpaper" msgid="2820186271419674623">"Misa..."</string>
+ <string name="widgets_tab_label" msgid="9145860100000983599">"Amawijethi"</string>
+ <string name="folders_tab_label" msgid="1145293785541489736">"Amafolda"</string>
+ <string name="shortcuts_tab_label" msgid="8640731503933155644">"Okungaphezulu"</string>
+ <string name="wallpapers_tab_label" msgid="1617804870364119879">"Amaphephadonga"</string>
+ <!-- no translation found for applications_tab_label (2991364240020736760) -->
+ <skip />
+ <string name="wallpapers_temp_tab_text" msgid="1660218201190495279">"Lokhu kuzoba isithikithana samaphephadonga"</string>
+ <string name="all_apps_tab_all" msgid="2942727589595027258">"Konke"</string>
+ <string name="all_apps_tab_apps" msgid="5468972551904071712">"Izinhlelo Zokusebenza"</string>
+ <string name="all_apps_tab_games" msgid="1855736784923494918">"Imidlalo"</string>
+ <!-- no translation found for all_apps_tab_downloaded (1488049110598641387) -->
+ <skip />
+ <!-- no translation found for all_apps_no_games (5293893733372793696) -->
+ <skip />
+ <!-- no translation found for all_apps_no_downloads (2284720393234453761) -->
+ <skip />
+ <!-- no translation found for market (2652226429823445833) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_error (4976816434597126575) -->
+ <skip />
+ <!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
+ <skip />
+ <string name="rename_folder_label" msgid="5646236631298452787">"Igama lefolda"</string>
+ <!-- no translation found for rename_folder_title (4544573104191526550) -->
+ <skip />
+ <!-- no translation found for rename_action (6016003384693240896) -->
+ <skip />
+ <!-- no translation found for cancel_action (3811860427489435048) -->
+ <skip />
+ <string name="menu_item_add_item" msgid="6233177331075781114">"Faka kwisikrini saseKhaya"</string>
+ <string name="group_applications" msgid="4118484163419674240">"Izinhlelo zokusebenza"</string>
+ <string name="group_shortcuts" msgid="9133529424900391877">"Izinqamuleli"</string>
+ <string name="group_folder" msgid="5143593791798929193">"Ifolda entsha"</string>
+ <string name="group_live_folders" msgid="2664945399140647217">"Amafolda"</string>
+ <string name="group_widgets" msgid="6704978494073105844">"Izinqunjwana"</string>
+ <string name="group_wallpapers" msgid="1568191644272224858">"Amaphephadonga"</string>
+ <!-- no translation found for add_folder (3521088587367839879) -->
+ <skip />
+ <!-- no translation found for add_clock (2337943840175865746) -->
+ <skip />
+ <!-- no translation found for add_photo_frame (3154058437359487954) -->
+ <skip />
+ <!-- no translation found for out_of_space (8365249326091984698) -->
+ <skip />
+ <string name="shortcut_installed" msgid="7071557296331322355">"Isinqamuleli \"<xliff:g id="NAME">%s</xliff:g>\" senziwe"</string>
+ <string name="shortcut_uninstalled" msgid="2129499669449749995">"Isinqamuleli \"<xliff:g id="NAME">%s</xliff:g>\" sikhishiwe."</string>
+ <string name="shortcut_duplicate" msgid="4757756326465060694">"Isinqamuleli \"<xliff:g id="NAME">%s</xliff:g>\" sivele sikhona"</string>
+ <string name="title_select_shortcut" msgid="2858897527672831763">"Khetha isinqamuleli"</string>
+ <string name="title_select_application" msgid="8031072293115454221">"Khetha uhlelo lokusebenza"</string>
+ <string name="title_select_live_folder" msgid="3753447798805166749">"Khetha ifolda"</string>
+ <string name="all_apps_button_label" msgid="2578400570124163469">"Izinhlelo zokusebenza"</string>
+ <string name="all_apps_home_button_label" msgid="1022222300329398558">"Ekhaya"</string>
+ <!-- no translation found for delete_zone_label_workspace (7153615831493049150) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps (6664588234817475108) -->
+ <skip />
+ <!-- no translation found for accessibility_search_button (816822994629942611) -->
+ <skip />
+ <!-- no translation found for accessibility_voice_search_button (3938249215065842475) -->
+ <skip />
+ <!-- no translation found for accessibility_all_apps_button (1595097919145716305) -->
+ <skip />
+ <!-- no translation found for accessibility_customize_button (585539669413531163) -->
+ <skip />
+ <!-- no translation found for accessibility_delete_button (3628162007991023603) -->
+ <skip />
+ <!-- no translation found for delete_zone_label_all_apps_system_app (3683920959591819044) -->
+ <skip />
+ <!-- no translation found for menu_add (3065046628354640854) -->
+ <skip />
+ <!-- no translation found for menu_manage_apps (2308685199463588895) -->
+ <skip />
+ <!-- no translation found for menu_wallpaper (5837429080911269832) -->
+ <skip />
+ <!-- no translation found for menu_search (4826514464423239041) -->
+ <skip />
+ <!-- no translation found for menu_notifications (6424587053194766192) -->
+ <skip />
+ <string name="menu_gestures" msgid="514678675575912237">"Izimpawu"</string>
+ <!-- no translation found for menu_settings (6233960148378443661) -->
+ <skip />
+ <string name="cab_menu_delete_app" msgid="1242619904941293871">"Khipha uhlelo lokusebenza"</string>
+ <string name="cab_menu_app_info" msgid="5180426909324882018">"Imininingwane yohlelo lokusebenza"</string>
+ <string name="cab_app_selection_text" msgid="606113924828167756">"Kukhethwe uhlelo lokusebenza olungu-1"</string>
+ <string name="cab_widget_selection_text" msgid="962527270506951955">"kukhethwe iwijethi engu-1"</string>
+ <string name="cab_folder_selection_text" msgid="8916111874189565067">"kukhethwe ifolda engu-1"</string>
+ <string name="cab_shortcut_selection_text" msgid="8115847384500412878">"kukhethwe isinqamuleli esingu-1"</string>
+ <!-- no translation found for permlab_install_shortcut (1201690825493376489) -->
+ <skip />
+ <string name="permdesc_install_shortcut" msgid="7429365847558984148">"Ivumela uhlelo lokusebenza ukufaka izinqamuleli ngaphandle kokungenela komsebenzisi."</string>
+ <!-- no translation found for permlab_uninstall_shortcut (7696645932555926449) -->
+ <skip />
+ <string name="permdesc_uninstall_shortcut" msgid="959972195916090900">"Ivumela uhlelo lokusebenza ukukhipha izinqamuleli ngaphandle kokungenela komsebenzisi."</string>
+ <string name="permlab_read_settings" msgid="3452408290738106747">"funda izilungiselelo zaseKhaya nezinqamuleli"</string>
+ <string name="permdesc_read_settings" msgid="8377434937176025492">"Ivumela uhlelo lokusebenza ukufunda izilungiselelo nezinqamuleli Ekhaya."</string>
+ <string name="permlab_write_settings" msgid="1360567537236705628">"bhala izilungiselelo zaseKhaya nezinqamuleli"</string>
+ <string name="permdesc_write_settings" msgid="1098648778383349818">"Ivumela izinhlelo ukushintsha izilungiselelo nezinqamuleli Ekhaya."</string>
+ <string name="gadget_error_text" msgid="8359351016167075858">"Inkinga yokulayisha isinqunjwana"</string>
+ <string name="uninstall_system_app_text" msgid="7488523163288397451">"Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa."</string>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 99b1240..9d159f9 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -15,6 +15,13 @@
-->
<resources>
+<!-- Workspace -->
+ <dimen name="qsb_bar_height">56dp</dimen>
+
+<!-- QSB -->
+ <dimen name="toolbar_button_vertical_padding">12dip</dimen>
+ <dimen name="toolbar_button_horizontal_padding">16dip</dimen>
+
<!-- AllApps/Customize/AppsCustomize -->
<!-- Size of icons in Workspace/AppsCustomize -->
<dimen name="app_icon_size">50dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9ad3e24..32e649d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -25,6 +25,13 @@
<!-- Do not translate. android:process of this application. -->
<string name="process" translate="false"><xliff:g id="x"></xliff:g></string>
+ <!-- Do not translate. We wish to prioritize the Wallpaper and Live Wallpaper pickers,
+ but because they are in a different package, we need to reference the component in
+ a non language-dependent way. If the Live Wallpaper picker component name changes
+ this will have to be updated as well. -->
+ <string name="live_wallpaper_picker_package_name" translate="false">com.android.wallpaper.livepicker</string>
+ <string name="live_wallpaper_picker_class_name" translate="false">com.android.wallpaper.livepicker.LiveWallpaperActivity</string>
+
<!-- General -->
<skip />
<!-- Application name -->
@@ -67,6 +74,10 @@
<!-- Tile of the tab for applications that were downloaded from market [CHAR_LIMIT=24] -->
<string name="all_apps_tab_downloaded">My apps</string>
+ <!-- AppsCustomize pane -->
+ <!-- Message to tell the user to long-press on a widget to add it [CHAR_LIMIT=50] -->
+ <string name="long_press_widget_to_add">Long-press to pick up a widget</string>
+
<!-- All Apps pane -->
<!-- Message to show when there are no games [CHAR_LIMIT=25] -->
<string name="all_apps_no_games">No games found.</string>
@@ -237,4 +248,7 @@
<!-- Text to inform the user that they can't uninstall a system application -->
<string name="uninstall_system_app_text">This is a system application and cannot be uninstalled.</string>
+
+ <!-- Title of the Android Dreams (screensaver) module -->
+ <string name="dream_name">Rocket Launcher</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index abe6ac4..c3e6ce9 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -68,6 +68,23 @@
<item name="android:layout_marginRight">10dip</item>
</style>
+ <style name="SearchBar">
+ <item name="android:orientation">horizontal</item>
+ </style>
+ <style name="SearchButton">
+ <item name="android:layout_gravity">center_vertical</item>
+ <item name="android:paddingTop">@dimen/toolbar_button_vertical_padding</item>
+ <item name="android:paddingBottom">@dimen/toolbar_button_vertical_padding</item>
+ <item name="android:paddingLeft">@dimen/toolbar_button_horizontal_padding</item>
+ <item name="android:paddingRight">@dimen/toolbar_button_horizontal_padding</item>
+ </style>
+ <style name="SearchButtonDivider">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">match_parent</item>
+ <item name="android:layout_gravity">center_vertical</item>
+ </style>
+
+
<style name="TabIndicator">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
@@ -85,13 +102,6 @@
<item name="android:shadowRadius">1.0</item>
</style>
- <style name="SearchButton" parent="@android:style/Widget.Button.Small">
- <item name="android:paddingTop">7dip</item>
- <item name="android:paddingBottom">9dip</item>
- <item name="android:paddingLeft">10dip</item>
- <item name="android:paddingRight">10dip</item>
- </style>
-
<style name="MarketButton">
<item name="android:paddingRight">20dp</item>
<item name="android:text">@string/market</item>
diff --git a/src/com/android/launcher2/AddAdapter.java b/src/com/android/launcher2/AddAdapter.java
index 6f97d72..d1076b1 100644
--- a/src/com/android/launcher2/AddAdapter.java
+++ b/src/com/android/launcher2/AddAdapter.java
@@ -40,6 +40,7 @@
public static final int ITEM_SHORTCUT = 0;
public static final int ITEM_APPWIDGET = 1;
+ public static final int ITEM_APPLICATION = 2;
public static final int ITEM_WALLPAPER = 3;
/**
@@ -69,8 +70,8 @@
// Create default actions
Resources res = launcher.getResources();
- mItems.add(new ListItem(res, R.string.group_shortcuts,
- R.drawable.ic_launcher_shortcut, ITEM_SHORTCUT));
+ mItems.add(new ListItem(res, R.string.group_applications,
+ R.drawable.ic_launcher_application, ITEM_APPLICATION));
mItems.add(new ListItem(res, R.string.group_widgets,
R.drawable.ic_launcher_appwidget, ITEM_APPWIDGET));
diff --git a/src/com/android/launcher2/AllAppsBackground.java b/src/com/android/launcher2/AllAppsBackground.java
index 5292d0a..51e1ee4 100644
--- a/src/com/android/launcher2/AllAppsBackground.java
+++ b/src/com/android/launcher2/AllAppsBackground.java
@@ -25,8 +25,8 @@
import android.view.View;
/**
- * An implementation of PagedView that populates the pages of the workspace
- * with all of the user's applications.
+ * The background for AllApps which moves independently of the AllApps tray (for example, when we
+ * transition between AllApps and the Workspace while in spring-loaded mode).
*/
public class AllAppsBackground extends View {
private Drawable mBackground;
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index ead2c5d..64e6f98 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -73,6 +73,8 @@
private int mLastMeasureWidth = -1;
private int mLastMeasureHeight = -1;
+ private int mMaxCellCountY;
+
public AllAppsPagedView(Context context) {
this(context, null);
}
@@ -90,9 +92,10 @@
a.recycle();
setSoundEffectsEnabled(false);
- Resources r = context.getResources();
+ final Resources r = context.getResources();
setDragSlopeThreshold(
r.getInteger(R.integer.config_appsCustomizeDragSlopeThreshold) / 100.0f);
+ mMaxCellCountY = r.getInteger(R.integer.all_apps_view_maxCellCountY);
}
@Override
@@ -172,7 +175,19 @@
availableHeight -= mPageLayoutPaddingTop + mPageLayoutPaddingBottom;
availableHeight -= cellHeight; // Assume at least one row
availableHeight -= screenHeight * 0.16f;
- return (1 + availableHeight / (cellHeight + mPageLayoutHeightGap));
+ if (availableHeight > 0) {
+ return Math.min(mMaxCellCountY,
+ 1 + availableHeight / (cellHeight + mPageLayoutHeightGap));
+ }
+ return 0;
+ }
+
+ int getCellCountX() {
+ return mCellCountX;
+ }
+
+ int getCellCountY() {
+ return mCellCountY;
}
void allowHardwareLayerCreation() {
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index fabd9e4..bd70463 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -18,14 +18,17 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
+import android.animation.ValueAnimator;
import android.app.WallpaperManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
@@ -52,10 +55,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.launcher.R;
@@ -167,6 +172,22 @@
setDragSlopeThreshold(r.getInteger(R.integer.config_appsCustomizeDragSlopeThreshold)/100f);
}
+ /** Removes and returns the ResolveInfo with the specified ComponentName */
+ private ResolveInfo removeResolveInfoWithComponentName(List<ResolveInfo> list,
+ ComponentName cn) {
+ Iterator<ResolveInfo> iter = list.iterator();
+ while (iter.hasNext()) {
+ ResolveInfo rinfo = iter.next();
+ ActivityInfo info = rinfo.activityInfo;
+ ComponentName c = new ComponentName(info.packageName, info.name);
+ if (c.equals(cn)) {
+ iter.remove();
+ return rinfo;
+ }
+ }
+ return null;
+ }
+
public void onPackagesUpdated() {
// Get the list of widgets and shortcuts
mWidgets.clear();
@@ -182,6 +203,20 @@
PackageManager.GET_META_DATA);
Collections.sort(mWallpapers,
new LauncherModel.ShortcutNameComparator(mPackageManager));
+ // Move Live Wallpapers to the front of the list
+ Context c = getContext();
+ ResolveInfo liveWallpapers = removeResolveInfoWithComponentName(mWallpapers,
+ new ComponentName(c.getString(R.string.live_wallpaper_picker_package_name),
+ c.getString(R.string.live_wallpaper_picker_class_name)));
+ if (liveWallpapers != null) {
+ mWallpapers.add(0, liveWallpapers);
+ }
+ // Move Wallpapers to the front of the list
+ ResolveInfo wallpapers = removeResolveInfoWithComponentName(mWallpapers,
+ new ComponentName(c.getPackageName(), WallpaperChooser.class.getName()));
+ if (wallpapers != null) {
+ mWallpapers.add(0, wallpapers);
+ }
}
/**
@@ -310,31 +345,21 @@
});
}
} else {
- // Add the widget to the current workspace screen
- Workspace w = mLauncher.getWorkspace();
- int currentWorkspaceScreen = mLauncher.getCurrentWorkspaceScreen();
- final CellLayout cl = (CellLayout) w.getChildAt(currentWorkspaceScreen);
- final View dragView = v.findViewById(R.id.widget_preview);
- final ItemInfo itemInfo = (ItemInfo) v.getTag();
- animateClickFeedback(v, new Runnable() {
- @Override
- public void run() {
- cl.calculateSpans(itemInfo);
- if (cl.findCellForSpan(null, itemInfo.spanX, itemInfo.spanY)) {
- if (LauncherApplication.isScreenLarge()) {
- animateItemOntoScreen(dragView, cl, itemInfo);
- } else {
- mLauncher.addExternalItemToScreen(itemInfo, cl);
- itemInfo.dropPos = null;
- }
+ // Let the user know that they have to long press to add a widget
+ Toast.makeText(getContext(), R.string.long_press_widget_to_add,
+ Toast.LENGTH_SHORT).show();
- // Hide the pane so we can see the workspace we dropped on
- mLauncher.showWorkspace(true);
- } else {
- mLauncher.showOutOfSpaceMessage();
- }
- }
- });
+ // Create a little animation to show that the widget can move
+ float offsetY = getResources().getDimensionPixelSize(R.dimen.dragViewOffsetY);
+ final ImageView p = (ImageView) v.findViewById(R.id.widget_preview);
+ AnimatorSet bounce = new AnimatorSet();
+ ValueAnimator tyuAnim = ObjectAnimator.ofFloat(p, "translationY", offsetY);
+ tyuAnim.setDuration(125);
+ ValueAnimator tydAnim = ObjectAnimator.ofFloat(p, "translationY", 0f);
+ tydAnim.setDuration(100);
+ bounce.play(tyuAnim).before(tydAnim);
+ bounce.setInterpolator(new AccelerateInterpolator());
+ bounce.start();
}
}
}
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index e2d21b6..cd8e7ef 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -42,6 +42,13 @@
mLayoutInflater = LayoutInflater.from(context);
}
+ void selectAppsTab() {
+ setCurrentTabByTag(APPS_TAB_TAG);
+ }
+ void selectWidgetsTab() {
+ setCurrentTabByTag(WIDGETS_TAB_TAG);
+ }
+
/**
* Setup the tab host and create all necessary tabs.
*/
diff --git a/src/com/android/launcher2/CachedTextView.java b/src/com/android/launcher2/CachedTextView.java
index d0f6dd8..ac2cc3b 100644
--- a/src/com/android/launcher2/CachedTextView.java
+++ b/src/com/android/launcher2/CachedTextView.java
@@ -107,7 +107,7 @@
int width = (int) (textCacheRight - mTextCacheLeft + (2 * xCharWidth));
int height = (int) (textCacheBottom - mTextCacheTop);
- if (width != 0 && height != 0) {
+ if (width > 0 && height > 0) {
if (mCache != null) {
if (mCache.getWidth() != width || mCache.getHeight() != height) {
mCache.recycle();
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 5f848a8..f189cd5 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -71,7 +71,7 @@
// 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 int[] mTmpXY = new int[2];
private final int[] mTmpPoint = new int[2];
private final PointF mTmpPointF = new PointF();
@@ -694,6 +694,14 @@
if ((child.getVisibility() == VISIBLE || child.getAnimation() != null) &&
lp.isLockedToGrid) {
child.getHitRect(frame);
+
+ // The child hit rect is relative to the CellLayoutChildren parent, so we need to
+ // offset that by this CellLayout's padding to test an (x,y) point that is relative
+ // to this view.
+ final int tmpXY[] = mTmpXY;
+ child.getLocationOnScreen(tmpXY);
+ frame.offset(mLeftPadding, mTopPadding);
+
if (frame.contains(x, y)) {
cellInfo.cell = child;
cellInfo.cellX = lp.cellX;
@@ -708,7 +716,7 @@
}
if (!found) {
- final int cellXY[] = mTmpCellXY;
+ final int cellXY[] = mTmpXY;
pointToCellExact(x, y, cellXY);
cellInfo.cell = null;
@@ -1161,7 +1169,7 @@
}
}
}
- final int[] cellXY = mTmpCellXY;
+ final int[] cellXY = mTmpXY;
cellToCenterPoint(x, y, cellXY);
double distance = Math.sqrt(Math.pow(cellXY[0] - pixelX, 2)
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 68ec535..5ac261f 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -108,6 +108,9 @@
// The max number of wallpaper cells to take a "page" of wallpaper items
private int mMaxWallpaperCellHSpan;
+ // The maximum number of rows in a paged view.
+ private int mMaxCellCountY;
+
// The raw sources of data for each of the different tabs of the customization page
private List<AppWidgetProviderInfo> mWidgetList;
private List<ResolveInfo> mShortcutList;
@@ -143,7 +146,10 @@
private int[] mDragViewOrigin = new int[2];
- private int mPageContentWidth;
+ private int mPageContentWidth = -1;
+ private int mPageContentHeight = -1;
+
+ private AllAppsPagedView mAllAppsPagedView;
public CustomizePagedView(Context context) {
this(context, null, 0);
@@ -162,10 +168,6 @@
mMaxWallpaperCellHSpan = a.getInt(R.styleable.CustomizePagedView_wallpaperCellCountX, 8);
mMaxWidgetsCellHSpan = a.getInt(R.styleable.CustomizePagedView_widgetCellCountX, 8);
a.recycle();
- a = context.obtainStyledAttributes(attrs, R.styleable.PagedView, defStyle, 0);
- mCellCountX = a.getInt(R.styleable.PagedView_cellCountX, 7);
- mCellCountY = a.getInt(R.styleable.PagedView_cellCountY, 4);
- a.recycle();
mCustomizationType = CustomizationType.WidgetCustomization;
mWidgetPages = new ArrayList<ArrayList<AppWidgetProviderInfo>>();
@@ -176,6 +178,8 @@
setDragSlopeThreshold(
r.getInteger(R.integer.config_customizationDrawerDragSlopeThreshold) / 100.0f);
+ mMaxCellCountY = r.getInteger(R.integer.customization_drawer_contents_maxCellCountY);
+
setVisibility(View.GONE);
setSoundEffectsEnabled(false);
setupWorkspaceLayout();
@@ -188,29 +192,44 @@
}
@Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ protected void onMeasure(int widthSpec, int heightSpec) {
+ // Base the size of this control on the size of the All Apps view.
+ final int cellCountX = mAllAppsPagedView.getCellCountX();
+ final int cellCountY = Math.min(mAllAppsPagedView.getCellCountY(), mMaxCellCountY);
- final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
- final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
+ if (cellCountX != mCellCountX || cellCountY != mCellCountY) {
+ mCellCountX = cellCountX;
+ mCellCountY = cellCountY;
- if (mFirstMeasure) {
- mFirstMeasure = false;
-
- // TODO: actually calculate mCellCountX/mCellCountY as some function of
- // widthSize and heightSize
- //mCellCountX = ?
- //mCellCountY = ?
-
- // Since mCellCountX/mCellCountY changed, we need to update the pages
- invalidatePageData();
-
- // Create a dummy page and set it up to find out the content width (used by our parent)
+ // Create a dummy page and set it up to determine our size.
+ // The size is based on the app shortcuts tab having the same dimensions as All Apps.
PagedViewCellLayout layout = new PagedViewCellLayout(getContext());
setupPage(layout);
mPageContentWidth = layout.getContentWidth();
+ mPageContentHeight = layout.getContentHeight();
mMinPageWidth = layout.getWidthBeforeFirstLayout();
}
+ if (mPageContentHeight > 0) {
+ // Lock our height to the size of the page content
+ final int h = mPageContentHeight + mPageLayoutPaddingTop + mPageLayoutPaddingBottom;
+ heightSpec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY);
+ }
+ super.onMeasure(widthSpec, heightSpec);
+ mFirstMeasure = false;
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ if (mFirstLayout) {
+ invalidatePageData();
+
+ // invalidatePageData() is what causes the child pages to be created. We need the
+ // children to be measured before layout, so force a new measure here.
+ measure(MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.EXACTLY));
+ }
+ super.onLayout(changed, left, top, right, bottom);
+ mFirstLayout = false;
}
public void setLauncher(Launcher launcher) {
@@ -219,6 +238,10 @@
mPackageManager = context.getPackageManager();
}
+ public void setAllAppsPagedView(AllAppsPagedView view) {
+ mAllAppsPagedView = view;
+ }
+
/**
* Sets the list of applications that launcher has loaded.
*/
diff --git a/src/com/android/launcher2/CustomizeTrayTabHost.java b/src/com/android/launcher2/CustomizeTrayTabHost.java
index ab50cf1..c6a39b3 100644
--- a/src/com/android/launcher2/CustomizeTrayTabHost.java
+++ b/src/com/android/launcher2/CustomizeTrayTabHost.java
@@ -44,9 +44,14 @@
private boolean mFirstLayout = true;
+ // How much of the vertical space this control should attempt to fill
+ private float mVerticalFillPercentage;
+
private final LayoutInflater mInflater;
private Context mContext;
+ private CustomizePagedView mCustomizePagedView;
+
public CustomizeTrayTabHost(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
@@ -55,58 +60,66 @@
@Override
protected void onFinishInflate() {
+ final Resources res = getResources();
+
setup();
- final CustomizePagedView customizePagedView =
+ mCustomizePagedView =
(CustomizePagedView) findViewById(R.id.customization_drawer_tab_contents);
// Configure tabs
TabContentFactory contentFactory = new TabContentFactory() {
public View createTabContent(String tag) {
- return customizePagedView;
+ return mCustomizePagedView;
}
};
TextView tabView;
TabWidget tabWidget = (TabWidget) findViewById(com.android.internal.R.id.tabs);
- tabView = (TextView) mInflater.inflate(R.layout.tab_widget_indicator, tabWidget, false);
+ tabView = (TextView) mInflater.inflate(
+ R.layout.customize_tab_widget_indicator, tabWidget, false);
tabView.setText(mContext.getString(R.string.widgets_tab_label));
addTab(newTabSpec(WIDGETS_TAG)
.setIndicator(tabView).setContent(contentFactory));
- tabView = (TextView) mInflater.inflate(R.layout.tab_widget_indicator, tabWidget, false);
+ tabView = (TextView) mInflater.inflate(
+ R.layout.customize_tab_widget_indicator, tabWidget, false);
tabView.setText(mContext.getString(R.string.applications_tab_label));
addTab(newTabSpec(APPLICATIONS_TAG)
.setIndicator(tabView).setContent(contentFactory));
- tabView = (TextView) mInflater.inflate(R.layout.tab_widget_indicator, tabWidget, false);
+ tabView = (TextView) mInflater.inflate(
+ R.layout.customize_tab_widget_indicator, tabWidget, false);
tabView.setText(mContext.getString(R.string.wallpapers_tab_label));
addTab(newTabSpec(WALLPAPERS_TAG)
.setIndicator(tabView).setContent(contentFactory));
- tabView = (TextView) mInflater.inflate(R.layout.tab_widget_indicator, tabWidget, false);
+ tabView = (TextView) mInflater.inflate(
+ R.layout.customize_tab_widget_indicator, tabWidget, false);
tabView.setText(mContext.getString(R.string.shortcuts_tab_label));
addTab(newTabSpec(SHORTCUTS_TAG)
.setIndicator(tabView).setContent(contentFactory));
+ mVerticalFillPercentage =
+ res.getInteger(R.integer.customization_drawer_verticalFillPercentage) / 100f;
+
setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
final CustomizePagedView.CustomizationType newType =
getCustomizeFilterForTabTag(tabId);
- if (newType != customizePagedView.getCustomizationFilter()) {
+ if (newType != mCustomizePagedView.getCustomizationFilter()) {
// animate the changing of the tab content by fading pages in and out
- final Resources res = getResources();
final int duration = res.getInteger(R.integer.config_tabTransitionDuration);
- final float alpha = customizePagedView.getAlpha();
- ValueAnimator alphaAnim = ObjectAnimator.ofFloat(customizePagedView,
+ final float alpha = mCustomizePagedView.getAlpha();
+ ValueAnimator alphaAnim = ObjectAnimator.ofFloat(mCustomizePagedView,
"alpha", alpha, 0.0f);
alphaAnim.setDuration(duration);
alphaAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- customizePagedView.setCustomizationFilter(newType);
+ mCustomizePagedView.setCustomizationFilter(newType);
- final float alpha = customizePagedView.getAlpha();
+ final float alpha = mCustomizePagedView.getAlpha();
ValueAnimator alphaAnim = ObjectAnimator.ofFloat(
- customizePagedView, "alpha", alpha, 1.0f);
+ mCustomizePagedView, "alpha", alpha, 1.0f);
alphaAnim.setDuration(duration);
alphaAnim.start();
}
@@ -138,6 +151,22 @@
}
@Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+ // If there's extra room, try to grow to fill it
+ if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
+ final int availableHeight = MeasureSpec.getSize(heightMeasureSpec);
+ final int finalHeight = Math.max(getMeasuredHeight(),
+ (int) (availableHeight * mVerticalFillPercentage));
+
+ // Measure a second time with EXACTLY so that we get sized correctly
+ heightMeasureSpec = MeasureSpec.makeMeasureSpec(finalHeight, MeasureSpec.EXACTLY);
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+ }
+
+ @Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
if (mFirstLayout) {
mFirstLayout = false;
diff --git a/src/com/android/launcher2/IconCache.java b/src/com/android/launcher2/IconCache.java
index 7e37afe..5c07cfb 100644
--- a/src/com/android/launcher2/IconCache.java
+++ b/src/com/android/launcher2/IconCache.java
@@ -24,6 +24,7 @@
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
+import android.util.Pair;
import android.util.DisplayMetrics;
import java.util.HashMap;
@@ -187,4 +188,16 @@
}
return entry;
}
+
+ public HashMap<ComponentName,Bitmap> getAllIcons() {
+ synchronized (mCache) {
+ HashMap<ComponentName,Bitmap> set = new HashMap<ComponentName,Bitmap>();
+ int i = 0;
+ for (ComponentName cn : mCache.keySet()) {
+ final CacheEntry e = mCache.get(cn);
+ set.put(cn, e.icon);
+ }
+ return set;
+ }
+ }
}
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 9dfed69..5cf8e9c 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -933,6 +933,7 @@
if (mCustomizePagedView != null) {
mCustomizePagedView.setLauncher(this);
mCustomizePagedView.setDragController(dragController);
+ mCustomizePagedView.setAllAppsPagedView(mAllAppsPagedView);
} else {
ImageView hotseatLeft = (ImageView) findViewById(R.id.hotseat_left);
hotseatLeft.setContentDescription(mHotseatLabels[0]);
@@ -2229,11 +2230,7 @@
mWorkspace.setAllowLongPress(false);
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
- if (LauncherApplication.isScreenLarge()) {
- addItems();
- } else {
- startWallpaper();
- }
+ addItems();
} else {
if (!(itemUnderLongClick instanceof Folder)) {
// User long pressed on an item
@@ -2969,9 +2966,8 @@
// Change the state *after* we've called all the transition code
mState = State.ALL_APPS;
} else {
- View appsCustomizePane = findViewById(R.id.apps_customize_pane);
cameraZoomOut(State.APPS_CUSTOMIZE, animated, false);
- appsCustomizePane.requestFocus();
+ mAppsCustomizeTabHost.requestFocus();
// Change the state *after* we've called all the transition code
mState = State.APPS_CUSTOMIZE;
@@ -3156,22 +3152,34 @@
}
private void updateGlobalSearchIcon() {
- if (LauncherApplication.isScreenLarge()) {
- final View searchButton = findViewById(R.id.search_button);
- final View searchDivider = findViewById(R.id.search_divider);
+ final ImageView searchButton = (ImageView) findViewById(R.id.search_button);
+ final View searchDivider = findViewById(R.id.search_divider);
- final SearchManager searchManager =
- (SearchManager) getSystemService(Context.SEARCH_SERVICE);
- ComponentName activityName = searchManager.getGlobalSearchActivity();
- if (activityName != null) {
+ final SearchManager searchManager =
+ (SearchManager) getSystemService(Context.SEARCH_SERVICE);
+ ComponentName activityName = searchManager.getGlobalSearchActivity();
+ if (activityName != null) {
+ // In landscape mode on the Phone UI, we only have enough space to show the magnifying
+ // glass icon
+ boolean iconLoaded = false;
+ if (!LauncherApplication.isScreenLarge()) {
+ // TODO-APPS_CUSTOMIZE: Remove when the QSB fixes itself?
+ int orientation = getResources().getConfiguration().orientation;
+ if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
+ searchButton.setImageResource(R.drawable.ic_generic_search);
+ iconLoaded = true;
+ sGlobalSearchIcon = null;
+ }
+ }
+ if (!iconLoaded) {
sGlobalSearchIcon = updateButtonWithIconFromExternalActivity(
R.id.search_button, activityName, R.drawable.ic_generic_search);
- searchButton.setVisibility(View.VISIBLE);
- searchDivider.setVisibility(View.VISIBLE);
- } else {
- searchButton.setVisibility(View.GONE);
- searchDivider.setVisibility(View.GONE);
}
+ searchButton.setVisibility(View.VISIBLE);
+ searchDivider.setVisibility(View.VISIBLE);
+ } else {
+ searchButton.setVisibility(View.GONE);
+ searchDivider.setVisibility(View.GONE);
}
}
@@ -3180,21 +3188,19 @@
}
private void updateVoiceSearchIcon() {
- if (LauncherApplication.isScreenLarge()) {
- final View searchDivider = findViewById(R.id.search_divider);
- final View voiceButton = findViewById(R.id.voice_button);
+ final View searchDivider = findViewById(R.id.search_divider);
+ final View voiceButton = findViewById(R.id.voice_button);
- Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
- ComponentName activityName = intent.resolveActivity(getPackageManager());
- if (activityName != null) {
- sVoiceSearchIcon = updateButtonWithIconFromExternalActivity(
- R.id.voice_button, activityName, R.drawable.ic_voice_search);
- searchDivider.setVisibility(View.VISIBLE);
- voiceButton.setVisibility(View.VISIBLE);
- } else {
- searchDivider.setVisibility(View.GONE);
- voiceButton.setVisibility(View.GONE);
- }
+ Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
+ ComponentName activityName = intent.resolveActivity(getPackageManager());
+ if (activityName != null) {
+ sVoiceSearchIcon = updateButtonWithIconFromExternalActivity(
+ R.id.voice_button, activityName, R.drawable.ic_voice_search);
+ searchDivider.setVisibility(View.VISIBLE);
+ voiceButton.setVisibility(View.VISIBLE);
+ } else {
+ searchDivider.setVisibility(View.GONE);
+ voiceButton.setVisibility(View.GONE);
}
}
@@ -3211,7 +3217,7 @@
// Find the app market activity by resolving an intent.
// (If multiple app markets are installed, it will return the ResolverActivity.)
ComponentName activityName = intent.resolveActivity(getPackageManager());
- if (activityName != null) {
+ if (activityName != null && LauncherApplication.isScreenLarge()) {
mAppMarketIntent = intent;
sAppMarketIcon = updateTextButtonWithIconFromExternalActivity(
R.id.market_button, activityName, R.drawable.app_market_generic);
@@ -3241,12 +3247,11 @@
Dialog createDialog() {
mAdapter = new AddAdapter(Launcher.this);
- final AlertDialog.Builder builder = new AlertDialog.Builder(Launcher.this);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(Launcher.this,
+ AlertDialog.THEME_HOLO_DARK);
builder.setTitle(getString(R.string.menu_item_add_item));
builder.setAdapter(mAdapter, this);
- builder.setInverseBackgroundForced(true);
-
AlertDialog dialog = builder.create();
dialog.setOnCancelListener(this);
dialog.setOnDismissListener(this);
@@ -3261,6 +3266,8 @@
}
public void onDismiss(DialogInterface dialog) {
+ mWaitingForResult = false;
+ cleanup();
}
private void cleanup() {
@@ -3278,22 +3285,26 @@
Resources res = getResources();
cleanup();
- switch (which) {
+ AddAdapter.ListItem item = (AddAdapter.ListItem) mAdapter.getItem(which);
+ switch (item.actionTag) {
case AddAdapter.ITEM_SHORTCUT: {
pickShortcut();
break;
}
-
- case AddAdapter.ITEM_APPWIDGET: {
- int appWidgetId = Launcher.this.mAppWidgetHost.allocateAppWidgetId();
-
- Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
- pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
- // start the pick activity
- startActivityForResult(pickIntent, REQUEST_PICK_APPWIDGET);
+ case AddAdapter.ITEM_APPLICATION: {
+ if (mAppsCustomizeTabHost != null) {
+ mAppsCustomizeTabHost.selectAppsTab();
+ }
+ showAllApps(true);
break;
}
-
+ case AddAdapter.ITEM_APPWIDGET: {
+ if (mAppsCustomizeTabHost != null) {
+ mAppsCustomizeTabHost.selectWidgetsTab();
+ }
+ showAllApps(true);
+ break;
+ }
case AddAdapter.ITEM_WALLPAPER: {
startWallpaper();
break;
diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java
index 15b155f..0ae7a59 100644
--- a/src/com/android/launcher2/PagedViewCellLayout.java
+++ b/src/com/android/launcher2/PagedViewCellLayout.java
@@ -286,11 +286,17 @@
}
int getContentHeight() {
- return mCellCountY * mCellHeight + (mCellCountY - 1) * Math.max(0, mHeightGap);
+ if (mCellCountY > 0) {
+ return mCellCountY * mCellHeight + (mCellCountY - 1) * Math.max(0, mHeightGap);
+ }
+ return 0;
}
int getWidthBeforeFirstLayout() {
- return mCellCountX * mCellWidth + (mCellCountX - 1) * Math.max(0, mWidthGap);
+ if (mCellCountX > 0) {
+ return mCellCountX * mCellWidth + (mCellCountX - 1) * Math.max(0, mWidthGap);
+ }
+ return 0;
}
@Override
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index 306ff9e..30f0b1d 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -31,7 +31,6 @@
import android.os.Message;
import android.util.AttributeSet;
import android.view.KeyEvent;
-import android.view.View;
import android.widget.Checkable;
import com.android.launcher.R;
diff --git a/src/com/android/launcher2/RocketLauncher.java b/src/com/android/launcher2/RocketLauncher.java
new file mode 100644
index 0000000..1c6510f
--- /dev/null
+++ b/src/com/android/launcher2/RocketLauncher.java
@@ -0,0 +1,426 @@
+/*);
+ * Copyright (C) 2011 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.
+ */
+
+// TODO:
+// background stellar matter:
+// - add some slow horizontal parallax motion, or perhaps veeeeery gradual outward drift
+
+package com.android.launcher2;
+
+import android.animation.AnimatorSet;
+import android.animation.PropertyValuesHolder;
+import android.animation.ObjectAnimator;
+import android.animation.TimeAnimator;
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.support.v13.dreams.BasicDream;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.os.Handler;
+import android.util.AttributeSet;
+import android.util.DisplayMetrics;
+import android.util.Pair;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import java.util.HashMap;
+import java.util.Random;
+
+import com.android.launcher.R;
+
+public class RocketLauncher extends BasicDream {
+ public static final boolean ROCKET_LAUNCHER = true;
+
+ public static class Board extends FrameLayout
+ {
+ public static final boolean FIXED_STARS = true;
+ public static final boolean FLYING_STARS = true;
+ public static final int NUM_ICONS = 20;
+
+ public static final float MANEUVERING_THRUST_SCALE = 0.1f; // tenth speed
+ private boolean mManeuveringThrusters = false;
+ private float mSpeedScale = 1.0f;
+
+ public static final int LAUNCH_ZOOM_TIME = 400; // ms
+
+ HashMap<ComponentName, Bitmap> mIcons;
+ ComponentName[] mComponentNames;
+
+ static Random sRNG = new Random();
+
+ static float lerp(float a, float b, float f) {
+ return (b-a)*f + a;
+ }
+
+ static float randfrange(float a, float b) {
+ return lerp(a, b, sRNG.nextFloat());
+ }
+
+ static int randsign() {
+ return sRNG.nextBoolean() ? 1 : -1;
+ }
+
+ static <E> E pick(E[] array) {
+ if (array.length == 0) return null;
+ return array[sRNG.nextInt(array.length)];
+ }
+
+ public class FlyingIcon extends ImageView {
+ public static final float VMAX = 1000.0f;
+ public static final float VMIN = 100.0f;
+ public static final float ANGULAR_VMAX = 45f;
+ public static final float ANGULAR_VMIN = 0f;
+ public static final float SCALE_MIN = 0.5f;
+ public static final float SCALE_MAX = 4f;
+
+ public float v, vr;
+
+ public final float[] hsv = new float[3];
+
+ public float angle, anglex, angley;
+ public float fuse;
+ public float dist;
+ public float endscale;
+ public float boardCenterX, boardCenterY;
+
+ public ComponentName component;
+
+ public FlyingIcon(Context context, AttributeSet as) {
+ super(context, as);
+ setLayerType(View.LAYER_TYPE_HARDWARE, null);
+
+ setBackgroundResource(R.drawable.flying_icon_bg);
+ //android.util.Log.d("RocketLauncher", "ctor: " + this);
+ hsv[1] = 1f;
+ hsv[2] = 1f;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (!mManeuveringThrusters || component == null) {
+ return false;
+ }
+ if (getAlpha() < 0.5f) {
+ setPressed(false);
+ return false;
+ }
+
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ setPressed(true);
+ Board.this.resetWarpTimer();
+ break;
+ case MotionEvent.ACTION_MOVE:
+ final Rect hit = new Rect();
+ final Point offset = new Point();
+ getGlobalVisibleRect(hit, offset);
+ final int globx = (int) event.getX() + offset.x;
+ final int globy = (int) event.getY() + offset.y;
+ setPressed(hit.contains(globx, globy));
+ Board.this.resetWarpTimer();
+ break;
+ case MotionEvent.ACTION_UP:
+ if (isPressed()) {
+ setPressed(false);
+ postDelayed(new Runnable() {
+ public void run() {
+ try {
+ getContext().startActivity(new Intent(Intent.ACTION_MAIN)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .setComponent(component));
+ } catch (android.content.ActivityNotFoundException e) {
+ } catch (SecurityException e) {
+ }
+ }
+ }, LAUNCH_ZOOM_TIME);
+ endscale = 0;
+ AnimatorSet s = new AnimatorSet();
+ s.playTogether(
+ ObjectAnimator.ofFloat(this, "scaleX", 15f),
+ ObjectAnimator.ofFloat(this, "scaleY", 15f),
+ ObjectAnimator.ofFloat(this, "alpha", 0f)
+ );
+
+ // make sure things are still moving until the very last instant the
+ // activity is visible
+ s.setDuration((int)(LAUNCH_ZOOM_TIME * 1.25));
+ s.setInterpolator(new android.view.animation.AccelerateInterpolator(3));
+ s.start();
+ }
+ break;
+ }
+ return true;
+ }
+
+ public String toString() {
+ return String.format("<'%s' @ (%.1f, %.1f) v=%.1f a=%.1f dist/fuse=%.1f/%.1f>",
+ "icon", getX(), getY(), v, angle, dist, fuse);
+ }
+
+ public void randomizeIcon() {
+ component = pick(mComponentNames);
+ setImageBitmap(mIcons.get(component));
+ }
+
+ public void randomize() {
+ v = randfrange(VMIN, VMAX);
+ angle = randfrange(0, 360f);
+ anglex = (float) Math.sin(angle / 180. * Math.PI);
+ angley = (float) Math.cos(angle / 180. * Math.PI);
+ vr = randfrange(ANGULAR_VMIN, ANGULAR_VMAX) * randsign();
+ endscale = randfrange(SCALE_MIN, SCALE_MAX);
+
+ randomizeIcon();
+ }
+ public void reset() {
+ randomize();
+ boardCenterX = (Board.this.getWidth() - getWidth()) / 2;
+ boardCenterY = (Board.this.getHeight() - getHeight()) / 2;
+ setX(boardCenterX);
+ setY(boardCenterY);
+ fuse = (float) Math.max(boardCenterX, boardCenterY);
+ setRotation(180-angle);
+ setScaleX(0f);
+ setScaleY(0f);
+ dist = 0;
+ setAlpha(0f);
+ }
+ public void update(float dt) {
+ dist += v * dt;
+ setX(getX() + anglex * v * dt);
+ setY(getY() + angley * v * dt);
+ //setRotation(getRotation() + vr * dt);
+ if (endscale > 0) {
+ float scale = lerp(0, endscale, (float) Math.sqrt(dist / fuse));
+ setScaleX(scale * lerp(1f, 0.75f, (float) Math.pow((v-VMIN)/(VMAX-VMIN),3)));
+ setScaleY(scale * lerp(1f, 1.5f, (float) Math.pow((v-VMIN)/(VMAX-VMIN),3)));
+ final float q1 = fuse*0.15f;
+ final float q4 = fuse*0.75f;
+ if (dist < q1) {
+ setAlpha((float) Math.sqrt(dist/q1));
+ } else if (dist > q4) {
+ setAlpha((dist >= fuse) ? 0f : (1f-(float)Math.pow((dist-q4)/(fuse-q4),2)));
+ } else {
+ setAlpha(1f);
+ }
+ }
+ }
+ }
+
+ public class FlyingStar extends FlyingIcon {
+ public FlyingStar(Context context, AttributeSet as) {
+ super(context, as);
+ }
+ public void randomizeIcon() {
+ setImageResource(R.drawable.widget_resize_handle_bottom);
+ }
+ public void randomize() {
+ super.randomize();
+ v = randfrange(VMAX*0.75f, VMAX*2f); // fasticate
+ endscale = randfrange(1f, 2f); // ensmallen
+ }
+ }
+
+ TimeAnimator mAnim;
+
+ public Board(Context context, AttributeSet as) {
+ super(context, as);
+
+ setBackgroundColor(0xFF000000);
+
+ LauncherApplication app = (LauncherApplication)context.getApplicationContext();
+ mIcons = app.getIconCache().getAllIcons();
+ mComponentNames = new ComponentName[mIcons.size()];
+ mComponentNames = mIcons.keySet().toArray(mComponentNames);
+ }
+
+ private void reset() {
+ removeAllViews();
+
+ final ViewGroup.LayoutParams wrap = new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
+
+ if (FIXED_STARS) {
+ for(int i=0; i<20; i++) {
+ ImageView fixedStar = new ImageView(getContext(), null);
+ fixedStar.setImageResource(R.drawable.widget_resize_handle_bottom);
+ final float s = randfrange(0.25f, 0.75f);
+ fixedStar.setScaleX(s);
+ fixedStar.setScaleY(s);
+ fixedStar.setAlpha(0.75f);
+ addView(fixedStar, wrap);
+ fixedStar.setX(randfrange(0, getWidth()));
+ fixedStar.setY(randfrange(0, getHeight()));
+ }
+ }
+
+ for(int i=0; i<NUM_ICONS*2; i++) {
+ FlyingIcon nv = (FLYING_STARS && (i < NUM_ICONS))
+ ? new FlyingStar(getContext(), null)
+ : new FlyingIcon(getContext(), null);
+ addView(nv, wrap);
+ nv.reset();
+ }
+
+ mAnim = new TimeAnimator();
+ mAnim.setTimeListener(new TimeAnimator.TimeListener() {
+ public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
+ // setRotation(totalTime * 0.01f); // not as cool as you would think
+
+ final int START_ZOOM_TIME = 3000;
+ if (totalTime < START_ZOOM_TIME) {
+ final float x = totalTime/(float)START_ZOOM_TIME;
+ final float s = 1f-(float)Math.pow(x-1, 4);
+ setScaleX(s); setScaleY(s);
+ } else {
+ setScaleX(1.0f); setScaleY(1.0f);
+ }
+
+ if (mManeuveringThrusters) {
+ if (mSpeedScale > MANEUVERING_THRUST_SCALE) {
+ mSpeedScale -= (2*deltaTime/1000f);
+ }
+ if (mSpeedScale < MANEUVERING_THRUST_SCALE) {
+ mSpeedScale = MANEUVERING_THRUST_SCALE;
+ }
+ } else {
+ if (mSpeedScale < 1.0f) {
+ mSpeedScale += (deltaTime/1000f);
+ }
+ if (mSpeedScale > 1.0f) {
+ mSpeedScale = 1.0f;
+ }
+ }
+
+ for (int i=0; i<getChildCount(); i++) {
+ View v = getChildAt(i);
+ if (!(v instanceof FlyingIcon)) continue;
+ FlyingIcon nv = (FlyingIcon) v;
+ nv.update(deltaTime / 1000f * mSpeedScale);
+ final float scaledWidth = nv.getWidth() * nv.getScaleX();
+ final float scaledHeight = nv.getHeight() * nv.getScaleY();
+ if ( nv.getX() + scaledWidth < 0
+ || nv.getX() - scaledWidth > getWidth()
+ || nv.getY() + scaledHeight < 0
+ || nv.getY() - scaledHeight > getHeight())
+ {
+ nv.reset();
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ setLayerType(View.LAYER_TYPE_HARDWARE, null);
+ setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
+
+ reset();
+ mAnim.start();
+ }
+
+ protected void onSizeChanged (int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w,h,oldw,oldh);
+ mAnim.cancel();
+ reset();
+ mAnim.start();
+ }
+
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ mAnim.cancel();
+ }
+
+ @Override
+ public boolean isOpaque() {
+ return true;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent e) {
+ // we want to eat touch events ourselves if we're in warp speed
+ return (!(ROCKET_LAUNCHER && mManeuveringThrusters));
+ }
+
+ final Runnable mEngageWarp = new Runnable() {
+ @Override
+ public void run() {
+ mManeuveringThrusters = false;
+ }
+ };
+ public void resetWarpTimer() {
+ final Handler h = getHandler();
+ h.removeCallbacks(mEngageWarp);
+ h.postDelayed(mEngageWarp, 5000);
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (!ROCKET_LAUNCHER) {
+ return true;
+ }
+
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ if (!mManeuveringThrusters) {
+ mManeuveringThrusters = true;
+ resetWarpTimer();
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ DisplayMetrics metrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ final int longside = metrics.widthPixels > metrics.heightPixels
+ ? metrics.widthPixels : metrics.heightPixels;
+
+ Board b = new Board(this, null);
+ setContentView(b, new ViewGroup.LayoutParams(longside, longside));
+ b.setX((metrics.widthPixels - longside) / 2);
+ b.setY((metrics.heightPixels - longside) / 2);
+ }
+
+ @Override
+ public void onUserInteraction() {
+ if (!ROCKET_LAUNCHER) {
+ finish();
+ }
+ }
+}
diff --git a/src/com/android/launcher2/ShortcutsAdapter.java b/src/com/android/launcher2/ShortcutsAdapter.java
deleted file mode 100644
index de73c3e..0000000
--- a/src/com/android/launcher2/ShortcutsAdapter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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 java.util.ArrayList;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
-
-import com.android.launcher.R;
-
-/**
- * GridView adapter to show the list of applications and shortcuts
- */
-public class ShortcutsAdapter extends ArrayAdapter<ShortcutInfo> {
- private final LayoutInflater mInflater;
- private final IconCache mIconCache;
-
- public ShortcutsAdapter(Context context, ArrayList<ShortcutInfo> apps) {
- super(context, 0, apps);
- mInflater = LayoutInflater.from(context);
- mIconCache = ((LauncherApplication)context.getApplicationContext()).getIconCache();
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- final ShortcutInfo info = getItem(position);
-
- if (convertView == null) {
- convertView = mInflater.inflate(R.layout.application_boxed, parent, false);
- }
-
- final TextView textView = (TextView) convertView;
- textView.setCompoundDrawablesWithIntrinsicBounds(null,
- new FastBitmapDrawable(info.getIcon(mIconCache)), null, null);
- textView.setText(info.title);
-
- return convertView;
- }
-}
diff --git a/src/com/android/launcher2/Utilities.java b/src/com/android/launcher2/Utilities.java
index ba25893..04abd77 100644
--- a/src/com/android/launcher2/Utilities.java
+++ b/src/com/android/launcher2/Utilities.java
@@ -68,28 +68,6 @@
sCanvas.setDrawFilter(new PaintFlagsDrawFilter(Paint.DITHER_FLAG,
Paint.FILTER_BITMAP_FLAG));
}
-
- static Bitmap centerToFit(Bitmap bitmap, int width, int height, Context context) {
- final int bitmapWidth = bitmap.getWidth();
- final int bitmapHeight = bitmap.getHeight();
-
- if (bitmapWidth < width || bitmapHeight < height) {
- int color = context.getResources().getColor(R.color.window_background);
-
- Bitmap centered = Bitmap.createBitmap(bitmapWidth < width ? width : bitmapWidth,
- bitmapHeight < height ? height : bitmapHeight, Bitmap.Config.RGB_565);
- centered.setDensity(bitmap.getDensity());
- Canvas canvas = new Canvas(centered);
- canvas.drawColor(color);
- canvas.drawBitmap(bitmap, (width - bitmapWidth) / 2.0f, (height - bitmapHeight) / 2.0f,
- null);
-
- bitmap = centered;
- }
-
- return bitmap;
- }
-
static int sColors[] = { 0xffff0000, 0xff00ff00, 0xff0000ff };
static int sColorIndex = 0;
diff --git a/tests/Android.mk b/tests/Android.mk
new file mode 100644
index 0000000..84e9559
--- /dev/null
+++ b/tests/Android.mk
@@ -0,0 +1,15 @@
+# Copyright (C) 2011 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.
+#
+include $(call all-subdir-makefiles)
diff --git a/tests/stress/Android.mk b/tests/stress/Android.mk
new file mode 100644
index 0000000..da22bb9
--- /dev/null
+++ b/tests/stress/Android.mk
@@ -0,0 +1,33 @@
+# Copyright (C) 2011 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.
+#
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+# We only want this apk build for tests.
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := LauncherRotationStressTest
+
+LOCAL_CERTIFICATE := shared
+
+LOCAL_INSTRUMENTATION_FOR := Launcher2
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/tests/stress/AndroidManifest.xml b/tests/stress/AndroidManifest.xml
new file mode 100644
index 0000000..ce5dbe4
--- /dev/null
+++ b/tests/stress/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="2.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.launcher.stress.launcherrotation">
+
+ <uses-sdk android:minSdkVersion="8" />
+
+ <application>
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <instrumentation
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.launcher"
+ android:label="Rotation stress test using Launcher2">
+ </instrumentation>
+</manifest>
diff --git a/tests/stress/src/com/android/launcher2/stress/LauncherRotationStressTest.java b/tests/stress/src/com/android/launcher2/stress/LauncherRotationStressTest.java
new file mode 100644
index 0000000..3d787f2
--- /dev/null
+++ b/tests/stress/src/com/android/launcher2/stress/LauncherRotationStressTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 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.stress;
+
+
+import com.android.launcher2.Launcher;
+
+import android.content.pm.ActivityInfo;
+import android.os.SystemClock;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.TimedTest;
+import android.util.Log;
+
+/**
+ * Run rotation stress test using Launcher2 for 50 iterations.
+ */
+public class LauncherRotationStressTest extends ActivityInstrumentationTestCase2<Launcher> {
+
+ private static final int NUM_ITERATIONS = 50;
+ private static final String LOG_TAG = "LauncherRotationStressTest";
+
+ public LauncherRotationStressTest() {
+ super(Launcher.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ @TimedTest(includeDetailedStats=true)
+ public void testLauncherRotationStress() throws Exception {
+ Launcher launcher = getActivity();
+ for (int i = 0; i < NUM_ITERATIONS; i++) {
+ Log.i(LOG_TAG, "Starting LauncherRotationStressTest " + (i + 1) + " of " +
+ NUM_ITERATIONS);
+ getInstrumentation().waitForIdleSync();
+ SystemClock.sleep(500);
+ launcher.setRequestedOrientation(
+ ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ getInstrumentation().waitForIdleSync();
+ SystemClock.sleep(500);
+ launcher.setRequestedOrientation(
+ ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ Log.i(LOG_TAG, "Finished LauncherRotationStressTest " + (i + 1) + " of " +
+ NUM_ITERATIONS);
+ }
+ }
+}