Get rid of the built-in search widget in Launcher2
Uses the widget from packages/apps/QuickSearchBox instead. Change-Id: I85d64defe155c0cad97fafef6a3db62c6cab504a
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 836 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2009 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_window_focused="false" android:state_enabled="true"
|
||||
android:drawable="@drawable/textfield_searchwidget_default" />
|
||||
|
||||
<item android:state_pressed="true"
|
||||
android:drawable="@drawable/textfield_searchwidget_pressed" />
|
||||
|
||||
<item android:state_enabled="true" android:state_focused="true"
|
||||
android:drawable="@drawable/textfield_searchwidget_selected" />
|
||||
|
||||
<item android:state_enabled="true"
|
||||
android:drawable="@drawable/textfield_searchwidget_default" />
|
||||
|
||||
</selector>
|
||||
@@ -1,61 +0,0 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<com.android.launcher2.Search
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher2"
|
||||
android:id="@+id/widget_search"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/search_plate"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="14dip"
|
||||
android:paddingRight="14dip"
|
||||
android:paddingTop="13dip"
|
||||
android:paddingBottom="12dip"
|
||||
android:background="@drawable/search_floater" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/search_src_text"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="42dip"
|
||||
android:layout_weight="1.0"
|
||||
android:editable="false"
|
||||
android:focusable="true"
|
||||
android:inputType="none"
|
||||
android:background="@drawable/textfield_searchwidget"
|
||||
android:textAppearance="?android:attr/textAppearanceMediumInverse"
|
||||
android:textColor="@android:color/primary_text_light"
|
||||
/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/search_voice_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="42dip"
|
||||
android:layout_marginLeft="4dip"
|
||||
android:background="@*android:drawable/btn_search_dialog_voice"
|
||||
android:src="@*android:drawable/ic_btn_speak_now"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.android.launcher2.Search>
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Přidat na plochu"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplikace"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Zástupce"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Hledat"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nová složka"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Složky"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgety"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Složka"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Hodiny"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Rámeček fotografie"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Vyhledávání"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Na této ploše již není místo."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Zástupce <xliff:g id="NAME">%s</xliff:g> byl vytvořen."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Zástupce <xliff:g id="NAME">%s</xliff:g> byl odebrán."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Povoluje aplikaci číst nastavení a odkazy plochy."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"zápis nastavení a odkazů plochy"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Povoluje aplikaci změnit nastavení a odkazy plochy."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Vyhledávání Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problém s načtením widgetu"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Føj til Startskærm"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Programmer"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Genveje"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Søg"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Ny mappe"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Mapper"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Mappe"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Ur"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Billedramme"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Søg"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Der er ikke mere plads på Startskærmen."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Genvejen \"<xliff:g id="NAME">%s</xliff:g>\" blev oprettet."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Genvejen \"<xliff:g id="NAME">%s</xliff:g>\" blev fjernet."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Tillader et program at læse indstillingerne og genvejene i Start."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"skriv indstillinger og genveje for Start"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Tillader et program at ændre indstillingerne og genvejene i Start."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Google-søgning"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Der er problemer med at indlæse widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Zum Startbildschirm hinzufügen"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Anwendungen"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Verknüpfungen"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Suchen"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Neuer Ordner"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Ordner"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Ordner"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Uhr"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Bildrahmen"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Suchen"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Auf dem Startbildschirm ist kein Platz mehr vorhanden."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"\"<xliff:g id="NAME">%s</xliff:g>\"-Verknüpfung wurde erstellt."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"\"<xliff:g id="NAME">%s</xliff:g>\"-Verknüpfung wurde entfernt."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Ermöglicht einer Anwendung, die Einstellungen und Shortcuts auf der Startseite zu lesen."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"Einstellungen und Shortcuts für Startseite schreiben"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Ermöglicht einer Anwendung, die Einstellungen und Shortcuts auf der Startseite zu ändern."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Google-Suche"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problem beim Laden des Widgets"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"Αναζήτηση"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Νέος φάκελος"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Φάκελοι"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Γραφικά στοιχεία"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Φάκελος"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Ρολόι"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Πλαίσιο εικόνας"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Αναζήτηση"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Δεν υπάρχει χώρος σε αυτήν την αρχική οθόνη."</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Αναζήτηση Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Παρουσιάστηκε πρόβλημα στη φόρτωση του γραφικού στοιχείου"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Agregar a la pantalla Página principal"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplicaciones"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Accesos directos"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Buscar"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Carpeta nueva"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Carpetas"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Controles"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Carpeta"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Reloj"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Marco de imagen"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Buscar"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"No hay más espacio en esta pantalla de la página principal"</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Acceso directo \"<xliff:g id="NAME">%s</xliff:g>\" creado."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"El acceso directo \"<xliff:g id="NAME">%s</xliff:g>\" ha sido eliminado."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Permite a una aplicación leer la configuración y los accesos directos de la página principal."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"escribir configuración y accesos directos de la página principal"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Permite a una aplicación cambiar la configuración y los accesos directos de la página principal."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Búsqueda de Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problema al cargar el widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Añadir a pantalla de página principal"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplicaciones"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Accesos directos"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Búsqueda"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nueva carpeta"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Carpetas"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Carpeta"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Reloj"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Picture frame"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Búsqueda de Google"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"No queda espacio en esta pantalla de página principal."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Se ha creado el acceso directo \"<xliff:g id="NAME">%s</xliff:g>\"."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Se ha eliminado el acceso directo \"<xliff:g id="NAME">%s</xliff:g>\"."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Permite que una aplicación lea la información de configuración y accesos directos de la página principal."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"escribir información de accesos directos y de configuración de la página principal"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Permite que una aplicación modifique la configuración y los accesos directos de la página principal."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Búsqueda de Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problema al cargar el widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Ajouter à l\'écran d\'accueil"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Applications"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Raccourcis"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Recherche"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nouveau dossier"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Dossiers"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Dossier"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Horloge"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Cadre d\'image"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Recherche"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Plus d\'espace libre sur l\'écran d\'accueil."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Le raccourci \"<xliff:g id="NAME">%s</xliff:g>\" a été créé."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Le raccourci \"<xliff:g id="NAME">%s</xliff:g>\" a été supprimé."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Permet à une application de lire les paramètres et raccourcis de la page d\'accueil."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"Enregistrer les paramètres de la page d\'accueil et des raccourcis"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Permet à une application de modifier les paramètres et les raccourcis de la page d\'accueil."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Recherche Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problème lors du chargement du widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Aggiungi a schermata Home"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Applicazioni"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Collegamenti"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Ricerca"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nuova cartella"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Cartelle"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widget"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Cartella"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Orologio"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Cornice immagini"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Ricerca"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Spazio nella schermata Home esaurito."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Collegamento \"<xliff:g id="NAME">%s</xliff:g>\" creato."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Il collegamento \"<xliff:g id="NAME">%s</xliff:g>\" è stato rimosso."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Consente a un\'applicazione di leggere le impostazioni e le scorciatoie in Home."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"creare impostazioni e scorciatoie in Home"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Consente a un\'applicazione di modificare le impostazioni e le scorciatoie in Home."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Ricerca Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Errore durante il caricamento del widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"検索"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"新しいフォルダ"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"フォルダ"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"ウィジェット"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"フォルダ"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"時計"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"写真フレーム"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"検索"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"ホーム画面に空きスペースがありません。"</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Google検索"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"ウィジェットを表示できません"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"검색"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"새 폴더"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"폴더"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"위젯"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"폴더"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"시계"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"사진 프레임"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"검색"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"홈 화면에 더 이상 공간이 없습니다."</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Google 검색"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"위젯을 로드하는 중 문제가 발생했습니다."</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<resources>
|
||||
<dimen name="workspace_cell_width">106dip</dimen>
|
||||
<dimen name="workspace_cell_height">74dip</dimen>
|
||||
<dimen name="search_widget_inset">19dip</dimen>
|
||||
<dimen name="gesture_thumbnail_inset">8dip</dimen>
|
||||
<dimen name="gesture_thumbnail_size">64dip</dimen>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Legg til skrivebord"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Applikasjoner"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Snarveier"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Søk"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Ny mappe"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Mapper"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Skrivebordselementer"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Mappe"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Klokke"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Bilderamme"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Søk"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Ikke nok plass på skrivebordet."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Opprettet snarveien «<xliff:g id="NAME">%s</xliff:g>»."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Fjernet snarveien «<xliff:g id="NAME">%s</xliff:g>»."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Lar applikasjonen lese innstillinger og snarveier fra skrivebordet."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"skrive skrivebordsinnstillinger og -snarveier"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Lar applikasjonen endre innstillinger og snarveier på skrivebordet."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Google-søk"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problem under lasting av gadget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Toevoegen aan startpagina"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Toepassingen"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Sneltoetsen"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Zoeken"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nieuwe map"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Mappen"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Map"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Klok"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Fotolijstje"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Zoeken"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Er is geen ruimte meer op dit startscherm."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Snelkoppeling \'<xliff:g id="NAME">%s</xliff:g>\' is gemaakt."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Snelkoppeling \'<xliff:g id="NAME">%s</xliff:g>\' is verwijderd."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Hiermee kan een toepassing de instellingen en snelkoppelingen op de startpagina lezen."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"instellingen en snelkoppelingen voor de startpagina schrijven"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Hiermee kan een toepassing de instellingen en snelkoppelingen op de startpagina wijzigen."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Google Zoeken"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Probleem bij het laden van widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Dodaj do strony głównej"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplikacje"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Skróty"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Wyszukiwarka"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nowy folder"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Foldery"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widżety"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Folder"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Zegar"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Ramka obrazu"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Wyszukiwarka"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Brak miejsca na tej stronie głównej"</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Skrót „<xliff:g id="NAME">%s</xliff:g>” został utworzony."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Skrót „<xliff:g id="NAME">%s</xliff:g>” został usunięty."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Umożliwia aplikacji odczytywanie ustawień i skrótów strony głównej."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"zapisywanie ustawień i skrótów strony głównej"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Umożliwia aplikacji zmianę ustawień i skrótów strony głównej."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Szukaj w Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problem podczas ładowania widżetu"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Adicionar ao ecrã principal"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplicações"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Atalhos"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Pesquisar"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nova pasta"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Pastas"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Pasta"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Relógio"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Moldura de imagem"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Pesquisar"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Não existe espaço suficiente neste ecrã principal."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"O atalho \"<xliff:g id="NAME">%s</xliff:g>\" foi criado."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"O atalho \"<xliff:g id="NAME">%s</xliff:g>\" foi removido."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Permite que uma aplicação leia as definições e os atalhos do ecrã principal."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"escrever definições e atalhos do ecrã principal"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Permite que uma aplicação altere as definições e os atalhos do ecrã principal."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Pesquisa do Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Erro ao carregar o widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Adicionar à tela da Página inicial"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Aplicativos"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Atalhos"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Pesquisar"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Nova pasta"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Pastas"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgets"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Pasta"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Relógio"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Frame da imagem"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Pesquisar"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Não há mais espaço nesta tela da Página inicial."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Atalho \"<xliff:g id="NAME">%s</xliff:g>\" criado."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"O atalho \"<xliff:g id="NAME">%s</xliff:g>\" foi removido."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Permite que um aplicativo leia as configurações e atalhos na Página inicial."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"gravar configurações e atalhos da Página inicial"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Permite que um aplicativo altere as configurações e atalhos na Página inicial."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Pesquisa do Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Problema ao carregar o widget"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"Поиск"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Новая папка"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Папки"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Виджеты"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Папка"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Часы"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Рамка фотографии"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Поиск"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"На этом главном экране нет свободного места."</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Поиск Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Не удалось загрузить виджет"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Lägg till på startsidan"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Program"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Genvägar"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Sök"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Ny mapp"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Mappar"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widgetar"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Mapp"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Klocka"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Bildram"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Sök"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Det finns inte plats för mer på den här startsidan."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"Genvägen \"<xliff:g id="NAME">%s</xliff:g>\" har skapats."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"Genvägen \"<xliff:g id="NAME">%s</xliff:g>\" har tagits bort."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Tillåter att ett program läser inställningar och genvägar på startsidan."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"skriva inställningar och genvägar för startsidan"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Tillåter att ett program ändrar inställningar och genvägar på startsidan."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Sök på Google"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Det gick inte att läsa in widgeten"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<string name="menu_item_add_item" msgid="6233177331075781114">"Ana ekrana ekle"</string>
|
||||
<string name="group_applications" msgid="4118484163419674240">"Uygulamalar"</string>
|
||||
<string name="group_shortcuts" msgid="9133529424900391877">"Kısayollar"</string>
|
||||
<string name="group_search" msgid="5905328940867162196">"Arama"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"Yeni klasör"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"Klasörler"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"Widget\'lar"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"Klasör"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"Saat"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"Resim çerçevesi"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"Arama"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"Bu Ana ekranda başka yer yok."</string>
|
||||
<string name="shortcut_installed" msgid="7071557296331322355">"\"<xliff:g id="NAME">%s</xliff:g>\" kısayolu oluşturuldu."</string>
|
||||
<string name="shortcut_uninstalled" msgid="2129499669449749995">"\"<xliff:g id="NAME">%s</xliff:g>\" kısayolu kaldırıldı."</string>
|
||||
@@ -59,6 +57,5 @@
|
||||
<string name="permdesc_read_settings" msgid="8377434937176025492">"Bir uygulamaya Ana Sayfadaki ayarları ve kısayolları okuma izni verir."</string>
|
||||
<string name="permlab_write_settings" msgid="1360567537236705628">"Ana Sayfa ayarlarını ve kısayollarını yaz"</string>
|
||||
<string name="permdesc_write_settings" msgid="1098648778383349818">"Bir uygulamaya Ana Sayfadaki ayarları ve kısayolları değiştirme izni verir."</string>
|
||||
<string name="search_hint" msgid="6974176141372467453">"Google Arama"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"Widget yüklenirken sorun oluştu"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"搜索"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"新建文件夹"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"文件夹"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"窗口小部件"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"文件夹"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"时钟"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"相框"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"搜索"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"此主屏幕上已没有更多空间。"</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Google 搜索"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"载入窗口小部件时出现问题"</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<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_search" msgid="5905328940867162196">"搜尋"</string>
|
||||
<string name="group_folder" msgid="5143593791798929193">"新資料夾"</string>
|
||||
<string name="group_live_folders" msgid="2664945399140647217">"資料夾"</string>
|
||||
<string name="group_widgets" msgid="6704978494073105844">"小工具"</string>
|
||||
@@ -38,7 +37,6 @@
|
||||
<string name="add_folder" msgid="3521088587367839879">"資料夾"</string>
|
||||
<string name="add_clock" msgid="2337943840175865746">"時鐘"</string>
|
||||
<string name="add_photo_frame" msgid="3154058437359487954">"相框"</string>
|
||||
<string name="add_search" msgid="7104834713685095105">"搜尋"</string>
|
||||
<string name="out_of_space" msgid="8365249326091984698">"首頁已無空間"</string>
|
||||
<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>
|
||||
@@ -59,6 +57,5 @@
|
||||
<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="search_hint" msgid="6974176141372467453">"Google 搜尋"</string>
|
||||
<string name="gadget_error_text" msgid="8359351016167075858">"載入小工具時發生問題"</string>
|
||||
</resources>
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<dimen name="search_widget_inset">19dip</dimen>
|
||||
<dimen name="gesture_thumbnail_inset">8dip</dimen>
|
||||
<dimen name="gesture_thumbnail_size">64dip</dimen>
|
||||
<dimen name="button_bar_height">56dip</dimen>
|
||||
|
||||
@@ -56,8 +56,6 @@
|
||||
<string name="group_applications">Applications</string>
|
||||
<!-- Options in "Add to Home" dialog box; Title of the group containing the list of all shortcuts -->
|
||||
<string name="group_shortcuts">Shortcuts</string>
|
||||
<!-- Options in "Add to Home" dialog box; Title of the search gadget -->
|
||||
<string name="group_search">Search</string>
|
||||
<!-- Options in "Add to Home" dialog box; Title of the folder gadget -->
|
||||
<string name="group_folder">New folder</string>
|
||||
<!-- Options in "Add to Home" dialog box; Title of the group containing the list of all live folders -->
|
||||
@@ -72,8 +70,6 @@
|
||||
<string name="add_clock">Clock</string>
|
||||
<!-- Options in "Add to Home" dialog box; Name of the Picture frame widget-->
|
||||
<string name="add_photo_frame">Picture frame</string>
|
||||
<!-- Options in "Add to Home" dialog box; Name of the global search widget-->
|
||||
<string name="add_search">Search</string>
|
||||
<!-- Error message when user has filled a home screen, possibly not used -->
|
||||
<string name="out_of_space">No more room on this Home screen.</string>
|
||||
<!-- Message displayed when a shortcut is created by an external application -->
|
||||
@@ -126,12 +122,6 @@
|
||||
<!-- Widgets: -->
|
||||
<skip />
|
||||
|
||||
<!-- TODO: Determine if this can be removed.
|
||||
This is the hint text shown in the search widget, before text is entered.
|
||||
This translation SHOULD MATCH the string "search_hint" which is found in
|
||||
GoogleSearch/res/values/strings.xml -->
|
||||
<string name="search_hint">Google Search</string>
|
||||
|
||||
<!-- Text to show user in place of a gadget when we can't display it properly -->
|
||||
<string name="gadget_error_text">Problem loading widget</string>
|
||||
|
||||
|
||||
@@ -110,9 +110,6 @@ public final class Launcher extends Activity
|
||||
|
||||
static final String EXTRA_SHORTCUT_DUPLICATE = "duplicate";
|
||||
|
||||
static final String EXTRA_CUSTOM_WIDGET = "custom_widget";
|
||||
static final String SEARCH_WIDGET = "search_widget";
|
||||
|
||||
static final int SCREEN_COUNT = 5;
|
||||
static final int DEFAULT_SCREEN = 2;
|
||||
static final int NUMBER_CELLS_X = 4;
|
||||
@@ -180,8 +177,6 @@ public final class Launcher extends Activity
|
||||
|
||||
private SpannableStringBuilder mDefaultKeySsb = null;
|
||||
|
||||
private boolean mIsNewIntent;
|
||||
|
||||
private boolean mWorkspaceLoading = true;
|
||||
|
||||
private boolean mRestoring;
|
||||
@@ -406,21 +401,6 @@ public final class Launcher extends Activity
|
||||
mModel.startLoader(this, true);
|
||||
mRestoring = false;
|
||||
}
|
||||
|
||||
// If this was a new intent (i.e., the mIsNewIntent flag got set to true by
|
||||
// onNewIntent), then close the search dialog if needed, because it probably
|
||||
// came from the user pressing 'home' (rather than, for example, pressing 'back').
|
||||
if (mIsNewIntent) {
|
||||
// Post to a handler so that this happens after the search dialog tries to open
|
||||
// itself again.
|
||||
mWorkspace.post(new Runnable() {
|
||||
public void run() {
|
||||
stopSearch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mIsNewIntent = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -841,11 +821,6 @@ public final class Launcher extends Activity
|
||||
// also will cancel mWaitingForResult.
|
||||
closeSystemDialogs();
|
||||
|
||||
// Set this flag so that onResume knows to close the search dialog if it's open,
|
||||
// because this was a new intent (thus a press of 'home' or some such) rather than
|
||||
// for example onResume being called when the user pressed the 'back' button.
|
||||
mIsNewIntent = true;
|
||||
|
||||
boolean alreadyOnHome = ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
|
||||
!= Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
|
||||
boolean allAppsVisible = isAllAppsVisible();
|
||||
@@ -947,26 +922,6 @@ public final class Launcher extends Activity
|
||||
|
||||
closeAllApps(true);
|
||||
|
||||
// Slide the search widget to the top, if it's on the current screen,
|
||||
// otherwise show the search dialog immediately.
|
||||
Search searchWidget = mWorkspace.findSearchWidgetOnCurrentScreen();
|
||||
if (searchWidget == null) {
|
||||
showSearchDialog(initialQuery, selectInitialQuery, appSearchData, globalSearch);
|
||||
} else {
|
||||
searchWidget.startSearch(initialQuery, selectInitialQuery, appSearchData, globalSearch);
|
||||
// show the currently typed text in the search widget while sliding
|
||||
searchWidget.setQuery(getTypedText());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the search dialog immediately, without changing the search widget.
|
||||
*
|
||||
* @see Activity#startSearch(String, boolean, android.os.Bundle, boolean)
|
||||
*/
|
||||
void showSearchDialog(String initialQuery, boolean selectInitialQuery,
|
||||
Bundle appSearchData, boolean globalSearch) {
|
||||
|
||||
if (initialQuery == null) {
|
||||
// Use any text typed in the launcher as the initial query
|
||||
initialQuery = getTypedText();
|
||||
@@ -979,37 +934,10 @@ public final class Launcher extends Activity
|
||||
|
||||
final SearchManager searchManager =
|
||||
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
|
||||
|
||||
final Search searchWidget = mWorkspace.findSearchWidgetOnCurrentScreen();
|
||||
if (searchWidget != null) {
|
||||
// This gets called when the user leaves the search dialog to go back to
|
||||
// the Launcher.
|
||||
searchManager.setOnCancelListener(new SearchManager.OnCancelListener() {
|
||||
public void onCancel() {
|
||||
searchManager.setOnCancelListener(null);
|
||||
stopSearch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
searchManager.startSearch(initialQuery, selectInitialQuery, getComponentName(),
|
||||
appSearchData, globalSearch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel search dialog if it is open.
|
||||
*/
|
||||
void stopSearch() {
|
||||
// Close search dialog
|
||||
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
|
||||
searchManager.stopSearch();
|
||||
// Restore search widget to its normal position
|
||||
Search searchWidget = mWorkspace.findSearchWidgetOnCurrentScreen();
|
||||
if (searchWidget != null) {
|
||||
searchWidget.stopSearch(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
if (isWorkspaceLocked()) {
|
||||
@@ -1094,51 +1022,21 @@ public final class Launcher extends Activity
|
||||
void addAppWidget(Intent data) {
|
||||
// TODO: catch bad widget exception when sent
|
||||
int appWidgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
|
||||
AppWidgetProviderInfo appWidget = mAppWidgetManager.getAppWidgetInfo(appWidgetId);
|
||||
|
||||
String customWidget = data.getStringExtra(EXTRA_CUSTOM_WIDGET);
|
||||
if (SEARCH_WIDGET.equals(customWidget)) {
|
||||
// We don't need this any more, since this isn't a real app widget.
|
||||
mAppWidgetHost.deleteAppWidgetId(appWidgetId);
|
||||
// add the search widget
|
||||
addSearch();
|
||||
if (appWidget.configure != null) {
|
||||
// Launch over to configure widget, if needed
|
||||
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
|
||||
intent.setComponent(appWidget.configure);
|
||||
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
||||
|
||||
startActivityForResult(intent, REQUEST_CREATE_APPWIDGET);
|
||||
} else {
|
||||
AppWidgetProviderInfo appWidget = mAppWidgetManager.getAppWidgetInfo(appWidgetId);
|
||||
|
||||
if (appWidget.configure != null) {
|
||||
// Launch over to configure widget, if needed
|
||||
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
|
||||
intent.setComponent(appWidget.configure);
|
||||
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
||||
|
||||
startActivityForResult(intent, REQUEST_CREATE_APPWIDGET);
|
||||
} else {
|
||||
// Otherwise just add it
|
||||
onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data);
|
||||
}
|
||||
// Otherwise just add it
|
||||
onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data);
|
||||
}
|
||||
}
|
||||
|
||||
void addSearch() {
|
||||
final Widget info = Widget.makeSearch();
|
||||
final CellLayout.CellInfo cellInfo = mAddItemCellInfo;
|
||||
|
||||
final int[] xy = mCellCoordinates;
|
||||
final int spanX = info.spanX;
|
||||
final int spanY = info.spanY;
|
||||
|
||||
if (!findSlot(cellInfo, xy, spanX, spanY)) return;
|
||||
|
||||
LauncherModel.addItemToDatabase(this, info, LauncherSettings.Favorites.CONTAINER_DESKTOP,
|
||||
mWorkspace.getCurrentScreen(), xy[0], xy[1], false);
|
||||
|
||||
final View view = mInflater.inflate(info.layoutResource, null);
|
||||
view.setTag(info);
|
||||
Search search = (Search) view.findViewById(R.id.widget_search);
|
||||
search.setLauncher(this);
|
||||
|
||||
mWorkspace.addInCurrentScreen(view, xy[0], xy[1], info.spanX, spanY);
|
||||
}
|
||||
|
||||
void processShortcut(Intent intent, int requestCodeApplication, int requestCodeShortcut) {
|
||||
// Handle case where user selected "Applications"
|
||||
String applicationName = getResources().getString(R.string.group_applications);
|
||||
@@ -1937,22 +1835,6 @@ public final class Launcher extends Activity
|
||||
|
||||
Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
|
||||
pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
||||
// add the search widget
|
||||
ArrayList<AppWidgetProviderInfo> customInfo =
|
||||
new ArrayList<AppWidgetProviderInfo>();
|
||||
AppWidgetProviderInfo info = new AppWidgetProviderInfo();
|
||||
info.provider = new ComponentName(getPackageName(), "XXX.YYY");
|
||||
info.label = getString(R.string.group_search);
|
||||
info.icon = R.drawable.ic_search_widget;
|
||||
customInfo.add(info);
|
||||
pickIntent.putParcelableArrayListExtra(
|
||||
AppWidgetManager.EXTRA_CUSTOM_INFO, customInfo);
|
||||
ArrayList<Bundle> customExtras = new ArrayList<Bundle>();
|
||||
Bundle b = new Bundle();
|
||||
b.putString(EXTRA_CUSTOM_WIDGET, SEARCH_WIDGET);
|
||||
customExtras.add(b);
|
||||
pickIntent.putParcelableArrayListExtra(
|
||||
AppWidgetManager.EXTRA_CUSTOM_EXTRAS, customExtras);
|
||||
// start the pick activity
|
||||
startActivityForResult(pickIntent, REQUEST_PICK_APPWIDGET);
|
||||
break;
|
||||
@@ -2097,19 +1979,6 @@ public final class Launcher extends Activity
|
||||
workspace.addInScreen(newLiveFolder, item.screen, item.cellX, item.cellY, 1, 1,
|
||||
false);
|
||||
break;
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH:
|
||||
final int screen = workspace.getCurrentScreen();
|
||||
final View view = mInflater.inflate(R.layout.widget_search,
|
||||
(ViewGroup) workspace.getChildAt(screen), false);
|
||||
|
||||
Search search = (Search) view.findViewById(R.id.widget_search);
|
||||
search.setLauncher(this);
|
||||
|
||||
final Widget widget = (Widget) item;
|
||||
view.setTag(widget);
|
||||
|
||||
workspace.addWidget(view, widget, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2230,7 +2099,6 @@ public final class Launcher extends Activity
|
||||
public void dumpState() {
|
||||
Log.d(TAG, "BEGIN launcher2 dump state for launcher " + this);
|
||||
Log.d(TAG, "mSavedState=" + mSavedState);
|
||||
Log.d(TAG, "mIsNewIntent=" + mIsNewIntent);
|
||||
Log.d(TAG, "mWorkspaceLoading=" + mWorkspaceLoading);
|
||||
Log.d(TAG, "mRestoring=" + mRestoring);
|
||||
Log.d(TAG, "mWaitingForResult=" + mWaitingForResult);
|
||||
|
||||
@@ -651,7 +651,6 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
|
||||
ApplicationInfo info;
|
||||
String intentDescription;
|
||||
Widget widgetInfo;
|
||||
LauncherAppWidgetInfo appWidgetInfo;
|
||||
int container;
|
||||
long id;
|
||||
@@ -770,25 +769,6 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
mFolders.put(liveFolderInfo.id, liveFolderInfo);
|
||||
break;
|
||||
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH:
|
||||
widgetInfo = Widget.makeSearch();
|
||||
|
||||
container = c.getInt(containerIndex);
|
||||
if (container != LauncherSettings.Favorites.CONTAINER_DESKTOP) {
|
||||
Log.e(TAG, "Widget found where container "
|
||||
+ "!= CONTAINER_DESKTOP ignoring!");
|
||||
continue;
|
||||
}
|
||||
|
||||
widgetInfo.id = c.getLong(idIndex);
|
||||
widgetInfo.screen = c.getInt(screenIndex);
|
||||
widgetInfo.container = container;
|
||||
widgetInfo.cellX = c.getInt(cellXIndex);
|
||||
widgetInfo.cellY = c.getInt(cellYIndex);
|
||||
|
||||
mItems.add(widgetInfo);
|
||||
break;
|
||||
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET:
|
||||
// Read all Launcher-specific widget details
|
||||
int appWidgetId = c.getInt(appWidgetIdIndex);
|
||||
|
||||
@@ -58,7 +58,7 @@ public class LauncherProvider extends ContentProvider {
|
||||
|
||||
private static final String DATABASE_NAME = "launcher.db";
|
||||
|
||||
private static final int DATABASE_VERSION = 6;
|
||||
private static final int DATABASE_VERSION = 7;
|
||||
|
||||
static final String AUTHORITY = "com.android.launcher2.settings";
|
||||
|
||||
@@ -382,7 +382,13 @@ public class LauncherProvider extends ContentProvider {
|
||||
version = 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (version < 7) {
|
||||
// Version 7 gets rid of the special search widget.
|
||||
convertWidgets(db);
|
||||
version = 7;
|
||||
}
|
||||
|
||||
if (version != DATABASE_VERSION) {
|
||||
Log.w(TAG, "Destroying all old data.");
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE_FAVORITES);
|
||||
@@ -466,6 +472,7 @@ public class LauncherProvider extends ContentProvider {
|
||||
final int[] bindSources = new int[] {
|
||||
Favorites.ITEM_TYPE_WIDGET_CLOCK,
|
||||
Favorites.ITEM_TYPE_WIDGET_PHOTO_FRAME,
|
||||
Favorites.ITEM_TYPE_WIDGET_SEARCH,
|
||||
};
|
||||
|
||||
final ArrayList<ComponentName> bindTargets = new ArrayList<ComponentName>();
|
||||
@@ -473,7 +480,9 @@ public class LauncherProvider extends ContentProvider {
|
||||
"com.android.alarmclock.AnalogAppWidgetProvider"));
|
||||
bindTargets.add(new ComponentName("com.android.camera",
|
||||
"com.android.camera.PhotoAppWidgetProvider"));
|
||||
|
||||
bindTargets.add(new ComponentName("com.android.quicksearchbox",
|
||||
"com.android.quicksearchbox.SearchWidgetProvider"));
|
||||
|
||||
final String selectWhere = buildOrWhereString(Favorites.ITEM_TYPE, bindSources);
|
||||
|
||||
Cursor c = null;
|
||||
@@ -482,7 +491,7 @@ public class LauncherProvider extends ContentProvider {
|
||||
db.beginTransaction();
|
||||
try {
|
||||
// Select and iterate through each matching widget
|
||||
c = db.query(TABLE_FAVORITES, new String[] { Favorites._ID },
|
||||
c = db.query(TABLE_FAVORITES, new String[] { Favorites._ID, Favorites.ITEM_TYPE },
|
||||
selectWhere, null, null, null, null);
|
||||
|
||||
if (LOGD) Log.d(TAG, "found upgrade cursor count=" + c.getCount());
|
||||
@@ -490,7 +499,8 @@ public class LauncherProvider extends ContentProvider {
|
||||
final ContentValues values = new ContentValues();
|
||||
while (c != null && c.moveToNext()) {
|
||||
long favoriteId = c.getLong(0);
|
||||
|
||||
int favoriteType = c.getInt(1);
|
||||
|
||||
// Allocate and update database with new appWidgetId
|
||||
try {
|
||||
int appWidgetId = mAppWidgetHost.allocateAppWidgetId();
|
||||
@@ -499,13 +509,18 @@ public class LauncherProvider extends ContentProvider {
|
||||
Log.d(TAG, "allocated appWidgetId=" + appWidgetId
|
||||
+ " for favoriteId=" + favoriteId);
|
||||
}
|
||||
|
||||
values.clear();
|
||||
values.put(LauncherSettings.Favorites.APPWIDGET_ID, appWidgetId);
|
||||
|
||||
values.put(Favorites.ITEM_TYPE, Favorites.ITEM_TYPE_APPWIDGET);
|
||||
values.put(Favorites.APPWIDGET_ID, appWidgetId);
|
||||
|
||||
// Original widgets might not have valid spans when upgrading
|
||||
values.put(LauncherSettings.Favorites.SPANX, 2);
|
||||
values.put(LauncherSettings.Favorites.SPANY, 2);
|
||||
if (favoriteType == Favorites.ITEM_TYPE_WIDGET_SEARCH) {
|
||||
values.put(LauncherSettings.Favorites.SPANX, 4);
|
||||
values.put(LauncherSettings.Favorites.SPANY, 1);
|
||||
} else {
|
||||
values.put(LauncherSettings.Favorites.SPANX, 2);
|
||||
values.put(LauncherSettings.Favorites.SPANY, 2);
|
||||
}
|
||||
|
||||
String updateWhere = Favorites._ID + "=" + favoriteId;
|
||||
db.update(TABLE_FAVORITES, values, updateWhere, null);
|
||||
@@ -646,13 +661,9 @@ public class LauncherProvider extends ContentProvider {
|
||||
}
|
||||
|
||||
private boolean addSearchWidget(SQLiteDatabase db, ContentValues values) {
|
||||
// Add a search box
|
||||
values.put(Favorites.ITEM_TYPE, Favorites.ITEM_TYPE_WIDGET_SEARCH);
|
||||
values.put(Favorites.SPANX, 4);
|
||||
values.put(Favorites.SPANY, 1);
|
||||
db.insert(TABLE_FAVORITES, null, values);
|
||||
|
||||
return true;
|
||||
ComponentName cn = new ComponentName("com.android.quicksearchbox",
|
||||
"com.android.quicksearchbox.SearchWidgetProvider");
|
||||
return addAppWidget(db, values, cn, 4, 1);
|
||||
}
|
||||
|
||||
private boolean addClockWidget(SQLiteDatabase db, ContentValues values) {
|
||||
@@ -698,7 +709,13 @@ public class LauncherProvider extends ContentProvider {
|
||||
}
|
||||
|
||||
ComponentName cn = new ComponentName(packageName, className);
|
||||
|
||||
int spanX = a.getInt(R.styleable.Favorite_spanX, 0);
|
||||
int spanY = a.getInt(R.styleable.Favorite_spanY, 0);
|
||||
return addAppWidget(db, values, cn, spanX, spanY);
|
||||
}
|
||||
|
||||
private boolean addAppWidget(SQLiteDatabase db, ContentValues values, ComponentName cn,
|
||||
int spanX, int spanY) {
|
||||
boolean allocatedAppWidgets = false;
|
||||
final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(mContext);
|
||||
|
||||
@@ -706,8 +723,8 @@ public class LauncherProvider extends ContentProvider {
|
||||
int appWidgetId = mAppWidgetHost.allocateAppWidgetId();
|
||||
|
||||
values.put(Favorites.ITEM_TYPE, Favorites.ITEM_TYPE_APPWIDGET);
|
||||
values.put(Favorites.SPANX, a.getString(R.styleable.Favorite_spanX));
|
||||
values.put(Favorites.SPANY, a.getString(R.styleable.Favorite_spanY));
|
||||
values.put(Favorites.SPANX, spanX);
|
||||
values.put(Favorites.SPANY, spanY);
|
||||
values.put(Favorites.APPWIDGET_ID, appWidgetId);
|
||||
db.insert(TABLE_FAVORITES, null, values);
|
||||
|
||||
|
||||
@@ -1,380 +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 android.app.Activity;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnKeyListener;
|
||||
import android.view.View.OnLongClickListener;
|
||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.Interpolator;
|
||||
import android.view.animation.Transformation;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class Search extends LinearLayout
|
||||
implements OnClickListener, OnKeyListener, OnLongClickListener {
|
||||
|
||||
// Speed at which the widget slides up/down, in pixels/ms.
|
||||
private static final float ANIMATION_VELOCITY = 1.0f;
|
||||
|
||||
/** The distance in dips between the optical top of the widget and the top if its bounds */
|
||||
private static final float WIDGET_TOP_OFFSET = 9;
|
||||
|
||||
|
||||
private final String TAG = "Launcher.SearchWidget";
|
||||
|
||||
private Launcher mLauncher;
|
||||
|
||||
private TextView mSearchText;
|
||||
private ImageButton mVoiceButton;
|
||||
|
||||
/** The animation that morphs the search widget to the search dialog. */
|
||||
private Animation mMorphAnimation;
|
||||
|
||||
/** The animation that morphs the search widget back to its normal position. */
|
||||
private Animation mUnmorphAnimation;
|
||||
|
||||
// These four are passed to Launcher.startSearch() when the search widget
|
||||
// has finished morphing. They are instance variables to make it possible to update
|
||||
// them while the widget is morphing.
|
||||
private String mInitialQuery;
|
||||
private boolean mSelectInitialQuery;
|
||||
private Bundle mAppSearchData;
|
||||
private boolean mGlobalSearch;
|
||||
|
||||
// For voice searching
|
||||
private Intent mVoiceSearchIntent;
|
||||
|
||||
private int mWidgetTopOffset;
|
||||
|
||||
/**
|
||||
* Used to inflate the Workspace from XML.
|
||||
*
|
||||
* @param context The application's context.
|
||||
* @param attrs The attributes set containing the Workspace's customization values.
|
||||
*/
|
||||
public Search(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
final float scale = context.getResources().getDisplayMetrics().density;
|
||||
mWidgetTopOffset = Math.round(WIDGET_TOP_OFFSET * scale);
|
||||
|
||||
Interpolator interpolator = new AccelerateDecelerateInterpolator();
|
||||
|
||||
mMorphAnimation = new ToParentOriginAnimation();
|
||||
// no need to apply transformation before the animation starts,
|
||||
// since the gadget is already in its normal place.
|
||||
mMorphAnimation.setFillBefore(false);
|
||||
// stay in the top position after the animation finishes
|
||||
mMorphAnimation.setFillAfter(true);
|
||||
mMorphAnimation.setInterpolator(interpolator);
|
||||
mMorphAnimation.setAnimationListener(new Animation.AnimationListener() {
|
||||
// The amount of time before the animation ends to show the search dialog.
|
||||
private static final long TIME_BEFORE_ANIMATION_END = 80;
|
||||
|
||||
// The runnable which we'll pass to our handler to show the search dialog.
|
||||
private final Runnable mShowSearchDialogRunnable = new Runnable() {
|
||||
public void run() {
|
||||
showSearchDialog();
|
||||
}
|
||||
};
|
||||
|
||||
public void onAnimationEnd(Animation animation) { }
|
||||
public void onAnimationRepeat(Animation animation) { }
|
||||
public void onAnimationStart(Animation animation) {
|
||||
// Make the search dialog show up ideally *just* as the animation reaches
|
||||
// the top, to aid the illusion that the widget becomes the search dialog.
|
||||
// Otherwise, there is a short delay when the widget reaches the top before
|
||||
// the search dialog shows. We do this roughly 80ms before the animation ends.
|
||||
getHandler().postDelayed(
|
||||
mShowSearchDialogRunnable,
|
||||
Math.max(mMorphAnimation.getDuration() - TIME_BEFORE_ANIMATION_END, 0));
|
||||
}
|
||||
});
|
||||
|
||||
mUnmorphAnimation = new FromParentOriginAnimation();
|
||||
// stay in the top position until the animation starts
|
||||
mUnmorphAnimation.setFillBefore(true);
|
||||
// no need to apply transformation after the animation finishes,
|
||||
// since the gadget is now back in its normal place.
|
||||
mUnmorphAnimation.setFillAfter(false);
|
||||
mUnmorphAnimation.setInterpolator(interpolator);
|
||||
mUnmorphAnimation.setAnimationListener(new Animation.AnimationListener(){
|
||||
public void onAnimationEnd(Animation animation) {
|
||||
clearAnimation();
|
||||
}
|
||||
public void onAnimationRepeat(Animation animation) { }
|
||||
public void onAnimationStart(Animation animation) { }
|
||||
});
|
||||
|
||||
mVoiceSearchIntent = new Intent(android.speech.RecognizerIntent.ACTION_WEB_SEARCH);
|
||||
mVoiceSearchIntent.putExtra(android.speech.RecognizerIntent.EXTRA_LANGUAGE_MODEL,
|
||||
android.speech.RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements OnClickListener.
|
||||
*/
|
||||
public void onClick(View v) {
|
||||
if (v == mVoiceButton) {
|
||||
startVoiceSearch();
|
||||
} else {
|
||||
mLauncher.onSearchRequested();
|
||||
}
|
||||
}
|
||||
|
||||
private void startVoiceSearch() {
|
||||
try {
|
||||
getContext().startActivity(mVoiceSearchIntent);
|
||||
} catch (ActivityNotFoundException ex) {
|
||||
// Should not happen, since we check the availability of
|
||||
// voice search before showing the button. But just in case...
|
||||
Log.w(TAG, "Could not find voice search activity");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the query text. The query field is not editable, instead we forward
|
||||
* the key events to the launcher, which keeps track of the text,
|
||||
* calls setQuery() to show it, and gives it to the search dialog.
|
||||
*/
|
||||
public void setQuery(String query) {
|
||||
mSearchText.setText(query, TextView.BufferType.NORMAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Morph the search gadget to the search dialog.
|
||||
* See {@link Activity#startSearch()} for the arguments.
|
||||
*/
|
||||
public void startSearch(String initialQuery, boolean selectInitialQuery,
|
||||
Bundle appSearchData, boolean globalSearch) {
|
||||
mInitialQuery = initialQuery;
|
||||
mSelectInitialQuery = selectInitialQuery;
|
||||
mAppSearchData = appSearchData;
|
||||
mGlobalSearch = globalSearch;
|
||||
|
||||
if (isAtTop()) {
|
||||
showSearchDialog();
|
||||
} else {
|
||||
// Call up the keyboard before we actually call the search dialog so that it
|
||||
// (hopefully) animates in at about the same time as the widget animation, and
|
||||
// so that it becomes available as soon as possible. Only do this if a hard
|
||||
// keyboard is not currently available.
|
||||
if (getContext().getResources().getConfiguration().hardKeyboardHidden ==
|
||||
Configuration.HARDKEYBOARDHIDDEN_YES) {
|
||||
InputMethodManager inputManager = (InputMethodManager)
|
||||
getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
inputManager.showSoftInputUnchecked(0, null);
|
||||
}
|
||||
|
||||
// Start the animation, unless it has already started.
|
||||
if (getAnimation() != mMorphAnimation) {
|
||||
mMorphAnimation.setDuration(getAnimationDuration());
|
||||
startAnimation(mMorphAnimation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the system search dialog immediately, without any animation.
|
||||
*/
|
||||
private void showSearchDialog() {
|
||||
mLauncher.showSearchDialog(
|
||||
mInitialQuery, mSelectInitialQuery, mAppSearchData, mGlobalSearch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the search gadget to its normal position.
|
||||
*
|
||||
* @param animate Whether to animate the movement of the gadget.
|
||||
*/
|
||||
public void stopSearch(boolean animate) {
|
||||
setQuery("");
|
||||
|
||||
// Only restore if we are not already restored.
|
||||
if (getAnimation() == mMorphAnimation) {
|
||||
if (animate && !isAtTop()) {
|
||||
mUnmorphAnimation.setDuration(getAnimationDuration());
|
||||
startAnimation(mUnmorphAnimation);
|
||||
} else {
|
||||
clearAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAtTop() {
|
||||
return getWidgetTop() == 0;
|
||||
}
|
||||
|
||||
private int getAnimationDuration() {
|
||||
return (int) (getWidgetTop() / ANIMATION_VELOCITY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify clearAnimation() to invalidate the parent. This works around
|
||||
* an issue where the region where the end of the animation placed the view
|
||||
* was not redrawn after clearing the animation.
|
||||
*/
|
||||
@Override
|
||||
public void clearAnimation() {
|
||||
Animation animation = getAnimation();
|
||||
if (animation != null) {
|
||||
super.clearAnimation();
|
||||
if (animation.hasEnded()
|
||||
&& animation.getFillAfter()
|
||||
&& animation.willChangeBounds()) {
|
||||
View parent = (View) getParent();
|
||||
if (parent != null) parent.invalidate();
|
||||
} else {
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onKey(View v, int keyCode, KeyEvent event) {
|
||||
if (!event.isSystem() &&
|
||||
(keyCode != KeyEvent.KEYCODE_DPAD_UP) &&
|
||||
(keyCode != KeyEvent.KEYCODE_DPAD_DOWN) &&
|
||||
(keyCode != KeyEvent.KEYCODE_DPAD_LEFT) &&
|
||||
(keyCode != KeyEvent.KEYCODE_DPAD_RIGHT) &&
|
||||
(keyCode != KeyEvent.KEYCODE_DPAD_CENTER)) {
|
||||
// Forward key events to Launcher, which will forward text
|
||||
// to search dialog
|
||||
switch (event.getAction()) {
|
||||
case KeyEvent.ACTION_DOWN:
|
||||
return mLauncher.onKeyDown(keyCode, event);
|
||||
case KeyEvent.ACTION_MULTIPLE:
|
||||
return mLauncher.onKeyMultiple(keyCode, event.getRepeatCount(), event);
|
||||
case KeyEvent.ACTION_UP:
|
||||
return mLauncher.onKeyUp(keyCode, event);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements OnLongClickListener to pass long clicks on child views
|
||||
* to the widget. This makes it possible to pick up the widget by long
|
||||
* clicking on the text field or a button.
|
||||
*/
|
||||
public boolean onLongClick(View v) {
|
||||
return performLongClick();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFinishInflate() {
|
||||
super.onFinishInflate();
|
||||
|
||||
mSearchText = (TextView) findViewById(R.id.search_src_text);
|
||||
mVoiceButton = (ImageButton) findViewById(R.id.search_voice_btn);
|
||||
|
||||
mSearchText.setOnKeyListener(this);
|
||||
|
||||
mSearchText.setOnClickListener(this);
|
||||
mVoiceButton.setOnClickListener(this);
|
||||
setOnClickListener(this);
|
||||
|
||||
mSearchText.setOnLongClickListener(this);
|
||||
mVoiceButton.setOnLongClickListener(this);
|
||||
|
||||
// Set the placeholder text to be the Google logo within the search widget.
|
||||
Drawable googlePlaceholder =
|
||||
getContext().getResources().getDrawable(R.drawable.placeholder_google);
|
||||
mSearchText.setCompoundDrawablesWithIntrinsicBounds(googlePlaceholder, null, null, null);
|
||||
|
||||
configureVoiceSearchButton();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
/**
|
||||
* If appropriate & available, configure voice search
|
||||
*
|
||||
* Note: Because the home screen search widget is always web search, we only check for
|
||||
* getVoiceSearchLaunchWebSearch() modes. We don't support the alternate form of app-specific
|
||||
* voice search.
|
||||
*/
|
||||
private void configureVoiceSearchButton() {
|
||||
// Enable the voice search button if there is an activity that can handle it
|
||||
PackageManager pm = getContext().getPackageManager();
|
||||
ResolveInfo ri = pm.resolveActivity(mVoiceSearchIntent,
|
||||
PackageManager.MATCH_DEFAULT_ONLY);
|
||||
boolean voiceSearchVisible = ri != null;
|
||||
|
||||
// finally, set visible state of voice search button, as appropriate
|
||||
mVoiceButton.setVisibility(voiceSearchVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link Launcher} that this gadget will call on to display the search dialog.
|
||||
*/
|
||||
public void setLauncher(Launcher launcher) {
|
||||
mLauncher = launcher;
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the view to the top left corner of its parent.
|
||||
*/
|
||||
private class ToParentOriginAnimation extends Animation {
|
||||
@Override
|
||||
protected void applyTransformation(float interpolatedTime, Transformation t) {
|
||||
float dx = -getLeft() * interpolatedTime;
|
||||
float dy = -getWidgetTop() * interpolatedTime;
|
||||
t.getMatrix().setTranslate(dx, dy);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the view from the top left corner of its parent.
|
||||
*/
|
||||
private class FromParentOriginAnimation extends Animation {
|
||||
@Override
|
||||
protected void applyTransformation(float interpolatedTime, Transformation t) {
|
||||
float dx = -getLeft() * (1.0f - interpolatedTime);
|
||||
float dy = -getWidgetTop() * (1.0f - interpolatedTime);
|
||||
t.getMatrix().setTranslate(dx, dy);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The widget is centered vertically within it's 4x1 slot. This is accomplished by nesting
|
||||
* the actual widget inside another view. For animation purposes, we care about the top of the
|
||||
* actual widget rather than it's container. This method return the top of the actual widget.
|
||||
*/
|
||||
private int getWidgetTop() {
|
||||
return getTop() + getChildAt(0).getTop() + mWidgetTopOffset;
|
||||
}
|
||||
}
|
||||
@@ -1,36 +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 android.content.ContentValues;
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
/**
|
||||
* Represents one instance of a Launcher widget, such as search.
|
||||
*/
|
||||
class Widget extends ItemInfo {
|
||||
int layoutResource;
|
||||
|
||||
static Widget makeSearch() {
|
||||
Widget w = new Widget();
|
||||
w.itemType = LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH;
|
||||
w.spanX = 4;
|
||||
w.spanY = 1;
|
||||
w.layoutResource = R.layout.widget_search;
|
||||
return w;
|
||||
}
|
||||
}
|
||||
@@ -332,16 +332,6 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||
}
|
||||
}
|
||||
|
||||
void addWidget(View view, Widget widget) {
|
||||
addInScreen(view, widget.screen, widget.cellX, widget.cellY, widget.spanX,
|
||||
widget.spanY, false);
|
||||
}
|
||||
|
||||
void addWidget(View view, Widget widget, boolean insert) {
|
||||
addInScreen(view, widget.screen, widget.cellX, widget.cellY, widget.spanX,
|
||||
widget.spanY, insert);
|
||||
}
|
||||
|
||||
CellLayout.CellInfo findAllVacantCells(boolean[] occupied) {
|
||||
CellLayout group = (CellLayout) getChildAt(mCurrentScreen);
|
||||
if (group != null) {
|
||||
@@ -856,8 +846,7 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||
View child = cellInfo.cell;
|
||||
|
||||
// Make sure the drag was started by a long press as opposed to a long click.
|
||||
// Note that Search takes focus when clicked rather than entering touch mode
|
||||
if (!child.isInTouchMode() && !(child instanceof Search)) {
|
||||
if (!child.isInTouchMode()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1123,29 +1112,6 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a search widget on the given screen
|
||||
*/
|
||||
private Search findSearchWidget(CellLayout screen) {
|
||||
final int count = screen.getChildCount();
|
||||
for (int i = 0; i < count; i++) {
|
||||
View v = screen.getChildAt(i);
|
||||
if (v instanceof Search) {
|
||||
return (Search) v;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the first search widget on the current screen, if there is one.
|
||||
* Returns <code>null</code> otherwise.
|
||||
*/
|
||||
public Search findSearchWidgetOnCurrentScreen() {
|
||||
CellLayout currentScreen = (CellLayout)getChildAt(mCurrentScreen);
|
||||
return findSearchWidget(currentScreen);
|
||||
}
|
||||
|
||||
public Folder getFolderForTag(Object tag) {
|
||||
int screenCount = getChildCount();
|
||||
for (int screen = 0; screen < screenCount; screen++) {
|
||||
|
||||