Merge branch 'master' into honeycomb-release

This commit is contained in:
The Android Automerger
2010-11-11 07:28:02 -08:00
34 changed files with 418 additions and 244 deletions
@@ -19,6 +19,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
launcher:wallpaperCellSpanX="4"
launcher:widgetCellCountX="16"
launcher:cellCountX="8"
launcher:cellCountY="3"
@@ -19,6 +19,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
launcher:wallpaperCellSpanX="4"
launcher:widgetCellCountX="10"
launcher:cellCountX="5"
launcher:cellCountY="3"
@@ -0,0 +1,60 @@
<?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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="365dp"
android:paddingLeft="12.5dp"
android:paddingRight="12.5dp"
android:paddingBottom="50dp"
android:gravity="top"
android:orientation="vertical">
<!-- The preview image for the wallpaper. -->
<ImageView
android:id="@+id/wallpaper_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:scaleType="fitStart" />
<!-- The divider image. -->
<ImageView
android:id="@+id/divider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/widget_divider" />
<!-- The name of the wallpaper -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wallpaper_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:textColor="#FFFFFFFF"
android:textSize="14sp"
android:shadowColor="#FF000000"
android:shadowDx="0.0"
android:shadowDy="1.0"
android:shadowRadius="1.0"
android:maxLines="2"
android:fadingEdge="horizontal" />
</LinearLayout>
@@ -13,7 +13,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<com.android.launcher2.PagedViewWidgetIcon
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
@@ -76,4 +76,4 @@
android:shadowDx="0.0"
android:shadowDy="1.0"
android:shadowRadius="1.0" />
</com.android.launcher2.PagedViewWidgetIcon>
</LinearLayout>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikace"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Hry"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Stažené"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenalezeny žádné hry."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Žádné stažené aplikace."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Název složky"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Přejmenovat složku"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Programmer"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spil"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Downloadet"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Ingen spil."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Ingen hentede programmer."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Mappenavn"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Omdøb mappe"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spiele"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Heruntergeladen"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Keine Spiele gefunden."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Keine heruntergeladenen Apps"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Ordnername"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Ordner umbenennen"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Εφαρμογές"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Παιχνίδια"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Η λήψη ολοκληρώθηκε"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Δεν βρέθηκαν παιχνίδια."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Δεν βρέθηκαν ληφθ. εφαρμ."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Όνομα φακέλου"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Μετονομασία φακέλου"</string>
+6 -2
View File
@@ -37,8 +37,12 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Google Apps"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Juegos"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Descargado"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No"</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"No Google Apps"</string>
<string name="all_apps_no_games" msgid="5293893733372793696">"No se encontraron juegos."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"No se encontraron apps."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nombre de carpeta"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Cambiar nombre de carpeta"</string>
<string name="rename_action" msgid="6016003384693240896">"Aceptar"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicaciones"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Juegos"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Descargadas"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"No hay juegos."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Sin aplicaciones descarg."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nombre de carpeta"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Cambiar nombre de carpeta"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Applications"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jeux"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Téléchargées"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Aucun jeu n\'a été trouvé."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Pas d\'application téléchargée"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nom du dossier"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Renommer le dossier"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Applicazioni"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Giochi"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Scaricate"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Nessun gioco trovato."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Nessuna appl. scaricata"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nome cartella"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Rinomina cartella"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"アプリ"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"ゲーム"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"ダウンロード済み"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"ゲームなし"</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"ダウンロードアプリなし"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"フォルダ名"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"フォルダ名を変更"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"애플리케이션"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"게임"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"다운로드앱"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"게임이 없습니다."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"다운로드한 애플리케이션이 없습니다."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"폴더 이름"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"폴더 이름 바꾸기"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Programmer"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spill"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Nedlastet"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Finner ingen spill."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Finner ingen nedl.prog."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Mappenavn"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Gi nytt navn til mappe"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Toepassingen"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Games"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Gedownload"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Geen games gevonden."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Geen gedownl. apps gevond."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Mapnaam"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Naam van map wijzigen"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplikacje"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Gry"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Pobrane"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Nie znaleziono gier."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Brak pobranych aplikacji."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nazwa folderu"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Zmień nazwę folderu"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicações"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jogos"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Transferidas"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Sem jogos."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Sem aplic. transferidas."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nome da pasta"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Mudar o nome da pasta"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Aplicativos"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Jogos"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Download concluído"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Nenhum jogo encontrado."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Nenhum aplic. encontrado."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Nome da pasta"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Renomear pasta"</string>
+4
View File
@@ -51,6 +51,10 @@
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<skip />
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Num da l\'ordinatur"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Renumnar l\'ordinatur"</string>
<string name="rename_action" msgid="6016003384693240896">"OK"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Приложения"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Игры"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Загруженные"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Игр не найдено."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Нет загруженных приложений."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Название папки"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Переименовать папку"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Program"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Spel"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"Hämtade"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Inga spel hittades."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"Inga hämtade appar."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Mappnamn"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Byt namn på mapp"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"Uygulamalar"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"Oyunlar"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"İndirilenler"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"Oyun bulunamadı."</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"İndirilmş uyg bulunamadı."</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"Klasör adı"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"Klasörü yeniden adlandır"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"应用程序"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"游戏"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"已下载"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"未找到游戏。"</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"未找到已下载的应用程序。"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"文件夹名称"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"重命名文件夹"</string>
+4 -2
View File
@@ -37,9 +37,11 @@
<string name="all_apps_tab_apps" msgid="5468972551904071712">"應用程式"</string>
<string name="all_apps_tab_games" msgid="1855736784923494918">"遊戲"</string>
<string name="all_apps_tab_downloaded" msgid="2300935549064726963">"下載內容"</string>
<!-- no translation found for all_apps_no_games (5293893733372793696) -->
<string name="all_apps_no_games" msgid="5293893733372793696">"找不到遊戲。"</string>
<string name="all_apps_no_downloads" msgid="6145042636084482299">"找不到已下載的應用程式。"</string>
<!-- no translation found for external_drop_widget_error (7794528430439958736) -->
<skip />
<!-- no translation found for all_apps_no_downloads (6145042636084482299) -->
<!-- no translation found for external_drop_widget_pick_title (4481311720134376218) -->
<skip />
<string name="rename_folder_label" msgid="5646236631298452787">"資料夾名稱"</string>
<string name="rename_folder_title" msgid="4544573104191526550">"重新命名資料夾"</string>
+2 -9
View File
@@ -74,15 +74,6 @@
<attr name="checkedOutlineColor" format="color" />
</declare-styleable>
<!-- PagedViewWidgetIcon specific attributes. These attributes are used to
customize a PagedViewWidgetIcon view in XML files. -->
<declare-styleable name="PagedViewWidgetIcon">
<!-- The checked blur color of the holographic outline -->
<attr name="checkedBlurColor" />
<!-- The checked outline color of the holographic outline -->
<attr name="checkedOutlineColor" />
</declare-styleable>
<!-- PagedView specific attributes. These attributes are used to customize
a PagedView view in XML files. -->
<declare-styleable name="PagedView">
@@ -105,6 +96,8 @@
<!-- CustomizePagedView specific attributes. These attributes are used to customize
a CustomizePagedView view in XML files. -->
<declare-styleable name="CustomizePagedView">
<!-- The cell span of an item in the wallpapers tab -->
<attr name="wallpaperCellSpanX" format="integer" />
<!-- The number of horizontal cells for the widget tab -->
<attr name="widgetCellCountX" format="integer" />
</declare-styleable>
+110 -18
View File
@@ -77,12 +77,18 @@ public class CustomizePagedView extends PagedView
// The mapping between the pages and the widgets that will be laid out on them
private ArrayList<ArrayList<AppWidgetProviderInfo>> mWidgetPages;
// The max dimensions for the ImageView we use for displaying the widget
// The max dimensions for the ImageView we use for displaying a widget
private int mMaxWidgetWidth;
// The max number of widget cells to take a "page" of widget
// The max number of widget cells to take a "page" of widgets
private int mMaxWidgetsCellHSpan;
// The size of the items on the wallpaper tab
private int mWallpaperCellHSpan;
// The max dimensions for the ImageView we use for displaying a wallpaper
private int mMaxWallpaperWidth;
// The raw sources of data for each of the different tabs of the customization page
private List<AppWidgetProviderInfo> mWidgetList;
private List<ResolveInfo> mShortcutList;
@@ -112,15 +118,15 @@ public class CustomizePagedView extends PagedView
super(context, attrs, defStyle);
TypedArray a;
a = context.obtainStyledAttributes(attrs, R.styleable.CustomizePagedView,
defStyle, 0);
a = context.obtainStyledAttributes(attrs, R.styleable.CustomizePagedView, defStyle, 0);
mWallpaperCellHSpan = a.getInt(R.styleable.CustomizePagedView_wallpaperCellSpanX, 4);
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>>();
mWorkspaceWidgetLayout = new PagedViewCellLayout(context);
@@ -449,21 +455,58 @@ public class CustomizePagedView extends PagedView
/**
* Helper function to draw a drawable to the specified canvas with the specified bounds.
*/
private void renderDrawableToBitmap(Drawable d, Bitmap bitmap, int l, int t, int r, int b) {
private void renderDrawableToBitmap(Drawable d, Bitmap bitmap, int x, int y, int w, int h) {
if (bitmap != null) mCanvas.setBitmap(bitmap);
mCanvas.save();
d.setBounds(l, t, r, b);
d.setBounds(x, y, x+w, y+h);
d.draw(mCanvas);
mCanvas.restore();
}
/**
* This method will extract the preview image specified by the wallpaper source provider (if it
* exists) otherwise, it will try to generate a default image preview.
*/
private Drawable getWallpaperPreview(ResolveInfo info) {
// To be implemented later: resolving the up-to-date wallpaper thumbnail
final int minDim = mWorkspaceWidgetLayout.estimateCellWidth(1);
final int dim = mWorkspaceWidgetLayout.estimateCellWidth(mWallpaperCellHSpan);
Resources resources = mLauncher.getResources();
// Create a new bitmap to hold the widget preview
int width = (int) (dim * sScaleFactor);
int height = (int) (dim * sScaleFactor);
final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
final Drawable background = resources.getDrawable(R.drawable.default_widget_preview);
renderDrawableToBitmap(background, bitmap, 0, 0, width, height);
// Draw the icon flush left
try {
final IconCache iconCache =
((LauncherApplication) mLauncher.getApplication()).getIconCache();
Drawable icon = new FastBitmapDrawable(Utilities.createIconBitmap(
iconCache.getFullResIcon(info, mPackageManager), mContext));
final int iconSize = minDim / 2;
final int offset = iconSize / 4;
renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize);
} catch (Resources.NotFoundException e) {
// if we can't find the icon, then just don't draw it
}
Drawable drawable = new FastBitmapDrawable(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
/**
* This method will extract the preview image specified by the widget developer (if it exists),
* otherwise, it will try to generate a default image preview with the widget's package icon.
* @return the drawable will be used and sized in the ImageView to represent the widget
* @return the drawable that will be used and sized in the ImageView to represent the widget
*/
private Drawable getWidgetPreview(AppWidgetProviderInfo info) {
PackageManager packageManager = mLauncher.getPackageManager();
final PackageManager packageManager = mPackageManager;
String packageName = info.provider.getPackageName();
Drawable drawable = null;
if (info.previewImage != 0) {
@@ -487,9 +530,8 @@ public class CustomizePagedView extends PagedView
final Drawable background = resources.getDrawable(R.drawable.default_widget_preview);
renderDrawableToBitmap(background, bitmap, 0, 0, width, height);
// Draw the icon vertically centered, flush left
// Draw the icon flush left
try {
Rect tmpRect = new Rect();
Drawable icon = null;
if (info.icon > 0) {
icon = packageManager.getDrawable(packageName, info.icon, null);
@@ -497,12 +539,10 @@ public class CustomizePagedView extends PagedView
if (icon == null) {
icon = resources.getDrawable(R.drawable.ic_launcher_application);
}
background.getPadding(tmpRect);
final int iconSize = minDim / 2;
final int offset = iconSize / 4;
final int offsetIconSize = offset + iconSize;
renderDrawableToBitmap(icon, null, offset, offset, offsetIconSize, offsetIconSize);
renderDrawableToBitmap(icon, null, offset, offset, iconSize, iconSize);
} catch (Resources.NotFoundException e) {
// if we can't find the icon, then just don't draw it
}
@@ -548,6 +588,7 @@ public class CustomizePagedView extends PagedView
mWorkspaceWidgetLayout.setPadding(20, 10, 20, 0);
mMaxWidgetWidth = mWorkspaceWidgetLayout.estimateCellWidth(sMaxWidgetCellHSpan);
mMaxWallpaperWidth = mWorkspaceWidgetLayout.estimateCellWidth(mWallpaperCellHSpan);
}
private void syncWidgetPages() {
@@ -557,7 +598,7 @@ public class CustomizePagedView extends PagedView
removeAllViews();
int numPages = relayoutWidgets();
for (int i = 0; i < numPages; ++i) {
LinearLayout layout = new PagedViewWidgetLayout(getContext());
LinearLayout layout = new PagedViewExtendedLayout(getContext());
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop,
mPageLayoutPaddingRight, mPageLayoutPaddingBottom);
@@ -610,6 +651,58 @@ public class CustomizePagedView extends PagedView
}
}
private void syncWallpaperPages() {
if (mWallpaperList == null) return;
// We need to repopulate the LinearLayout for the wallpaper pages
removeAllViews();
int numPages = (int) Math.ceil((float) (mWallpaperList.size() * mWallpaperCellHSpan) /
mMaxWidgetsCellHSpan);
for (int i = 0; i < numPages; ++i) {
LinearLayout layout = new PagedViewExtendedLayout(getContext());
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop,
mPageLayoutPaddingRight, mPageLayoutPaddingBottom);
// Temporary change to prevent the last page from being too small (and items bleeding
// onto it). We can remove this once we properly fix the fading algorithm
if (i < numPages - 1) {
addView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT));
} else {
addView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
}
}
}
private void syncWallpaperPageItems(int page) {
// Load the items on to the pages
LinearLayout layout = (LinearLayout) getChildAt(page);
layout.removeAllViews();
final int count = mWallpaperList.size();
for (int i = 0; i < count; ++i) {
final ResolveInfo info = mWallpaperList.get(i);
LinearLayout l = (LinearLayout) mInflater.inflate(
R.layout.customize_paged_view_wallpaper, layout, false);
l.setTag(info);
l.setOnClickListener(this);
final Drawable icon = getWallpaperPreview(info);
ImageView image = (ImageView) l.findViewById(R.id.wallpaper_preview);
image.setMaxWidth(mMaxWidgetWidth);
image.setImageDrawable(icon);
TextView name = (TextView) l.findViewById(R.id.wallpaper_name);
name.setText(info.loadLabel(mPackageManager));
layout.addView(l);
}
}
private void syncListPages(List<ResolveInfo> list) {
// we need to repopulate with PagedViewCellLayouts
removeAllViews();
@@ -716,8 +809,7 @@ public class CustomizePagedView extends PagedView
centerPagedViewCellLayouts = true;
break;
case WallpaperCustomization:
syncListPages(mWallpaperList);
centerPagedViewCellLayouts = true;
syncWallpaperPages();
break;
case ApplicationCustomization:
syncAppPages();
@@ -757,7 +849,7 @@ public class CustomizePagedView extends PagedView
syncListPageItems(page, mShortcutList);
break;
case WallpaperCustomization:
syncListPageItems(page, mWallpaperList);
syncWallpaperPageItems(page);
break;
case ApplicationCustomization:
syncAppPageItems(page);
@@ -16,12 +16,13 @@
package com.android.launcher2;
import android.graphics.drawable.Drawable;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
class FastBitmapDrawable extends Drawable {
private Bitmap mBitmap;
@@ -41,7 +42,8 @@ class FastBitmapDrawable extends Drawable {
@Override
public void draw(Canvas canvas) {
canvas.drawBitmap(mBitmap, 0.0f, 0.0f, mPaint);
final Rect r = getBounds();
canvas.drawBitmap(mBitmap, r.left, r.top, mPaint);
}
@Override
+133 -8
View File
@@ -47,12 +47,12 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.Intent.ShortcutIconResource;
import android.content.IntentFilter;
import android.content.Intent.ShortcutIconResource;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -67,6 +67,7 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.os.SystemClock;
import android.os.SystemProperties;
@@ -85,25 +86,27 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.View.OnLongClickListener;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.view.inputmethod.InputMethodManager;
import android.widget.Advanceable;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import com.android.common.Search;
import com.android.launcher.R;
/**
* Default launcher application.
*/
@@ -205,6 +208,7 @@ public final class Launcher extends Activity
private HandleView mHandleView;
private AllAppsView mAllAppsGrid;
private TabHost mHomeCustomizationDrawer;
private boolean mAutoAdvanceRunning = false;
private PagedView mAllAppsPagedView = null;
private CustomizePagedView mCustomizePagedView = null;
@@ -228,6 +232,7 @@ public final class Launcher extends Activity
private static LocaleConfiguration sLocaleConfiguration = null;
private ArrayList<ItemInfo> mDesktopItems = new ArrayList<ItemInfo>();
private static HashMap<Long, FolderInfo> sFolders = new HashMap<Long, FolderInfo>();
private ImageView mPreviousView;
@@ -241,6 +246,15 @@ public final class Launcher extends Activity
private Intent mAppMarketIntent = null;
// Related to the auto-advancing of widgets
private final int ADVANCE_MSG = 1;
private final int mAdvanceInterval = 20000;
private final int mAdvanceStagger = 250;
private long mAutoAdvanceSentTime;
private long mAutoAdvanceTimeLeft = -1;
private HashMap<View, AppWidgetProviderInfo> mWidgetsToAdvance =
new HashMap<View, AppWidgetProviderInfo>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -1060,7 +1074,6 @@ public final class Launcher extends Activity
}
}
/**
* Add a widget to the workspace.
*
@@ -1133,18 +1146,128 @@ public final class Launcher extends Activity
mWorkspace.addInScreen(launcherInfo.hostView, screen, cellXY[0], cellXY[1],
launcherInfo.spanX, launcherInfo.spanY, isWorkspaceLocked());
addWidgetToAutoAdvanceIfNeeded(launcherInfo.hostView, appWidgetInfo);
}
}
void showOutOfSpaceMessage() {
Toast.makeText(this, getString(R.string.out_of_space), Toast.LENGTH_SHORT).show();
private boolean mUserPresent = true;
private boolean mVisible = false;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_OFF.equals(action)) {
mUserPresent = false;
updateRunning();
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
mUserPresent = true;
updateRunning();
}
}
};
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
// Listen for broadcasts related to user-presence
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mReceiver, filter);
mVisible = true;
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
mVisible = false;
unregisterReceiver(mReceiver);
updateRunning();
}
public void onWindowVisibilityChanged(int visibility) {
mVisible = visibility == View.VISIBLE;
updateRunning();
}
private void sendAdvanceMessage(long delay) {
mHandler.removeMessages(ADVANCE_MSG);
Message msg = mHandler.obtainMessage(ADVANCE_MSG);
mHandler.sendMessageDelayed(msg, delay);
mAutoAdvanceSentTime = System.currentTimeMillis();
}
private void updateRunning() {
boolean autoAdvanceRunning = mVisible && mUserPresent && !mWidgetsToAdvance.isEmpty();
if (autoAdvanceRunning != mAutoAdvanceRunning) {
mAutoAdvanceRunning = autoAdvanceRunning;
if (autoAdvanceRunning) {
long delay = mAutoAdvanceTimeLeft == -1 ? mAdvanceInterval : mAutoAdvanceTimeLeft;
sendAdvanceMessage(delay);
} else {
if (!mWidgetsToAdvance.isEmpty()) {
mAutoAdvanceTimeLeft = Math.max(0, mAdvanceInterval -
(System.currentTimeMillis() - mAutoAdvanceSentTime));
}
mHandler.removeMessages(ADVANCE_MSG);
}
}
}
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == ADVANCE_MSG) {
int i = 0;
for (View key: mWidgetsToAdvance.keySet()) {
final View v = key.findViewById(mWidgetsToAdvance.get(key).autoAdvanceViewId);
final int delay = mAdvanceStagger * i;
if (v instanceof Advanceable) {
postDelayed(new Runnable() {
public void run() {
((Advanceable) v).advance();
}
}, delay);
}
i++;
}
sendAdvanceMessage(mAdvanceInterval);
}
}
};
void addWidgetToAutoAdvanceIfNeeded(View hostView, AppWidgetProviderInfo appWidgetInfo) {
if (appWidgetInfo.autoAdvanceViewId == -1) return;
View v = hostView.findViewById(appWidgetInfo.autoAdvanceViewId);
if (v instanceof Advanceable) {
mWidgetsToAdvance.put(hostView, appWidgetInfo);
((Advanceable) v).willBeAdvancedByHost();
updateRunning();
}
}
void removeWidgetToAutoAdvance(View hostView) {
if (mWidgetsToAdvance.containsKey(hostView)) {
mWidgetsToAdvance.remove(hostView);
updateRunning();
}
}
public void removeAppWidget(LauncherAppWidgetInfo launcherInfo) {
mDesktopItems.remove(launcherInfo);
removeWidgetToAutoAdvance(launcherInfo.hostView);
launcherInfo.hostView = null;
}
void showOutOfSpaceMessage() {
Toast.makeText(this, getString(R.string.out_of_space), Toast.LENGTH_SHORT).show();
}
public LauncherAppWidgetHost getAppWidgetHost() {
return mAppWidgetHost;
}
@@ -3064,6 +3187,8 @@ public final class Launcher extends Activity
workspace.addInScreen(item.hostView, item.screen, item.cellX,
item.cellY, item.spanX, item.spanY, false);
addWidgetToAutoAdvanceIfNeeded(item.hostView, appWidgetInfo);
workspace.requestLayout();
mDesktopItems.add(item);
@@ -37,7 +37,7 @@ class LauncherAppWidgetInfo extends ItemInfo {
int appWidgetId = NO_ID;
ComponentName providerName;
// TODO: Are these necessary here?
int minWidth = -1;
int minHeight = -1;
@@ -65,7 +65,7 @@ class LauncherAppWidgetInfo extends ItemInfo {
itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
this.appWidgetId = appWidgetId;
}
@Override
void onAddToDatabase(ContentValues values) {
super.onAddToDatabase(values);
+6
View File
@@ -621,6 +621,9 @@ public abstract class PagedView extends ViewGroup {
* scrolling there.
*/
// Skip touch handling if there are no pages to swipe
if (getChildCount() <= 0) return super.onInterceptTouchEvent(ev);
/*
* Shortcut the most recurring case: the user is in the dragging
* state and he is moving his finger. We want to intercept this
@@ -775,6 +778,9 @@ public abstract class PagedView extends ViewGroup {
@Override
public boolean onTouchEvent(MotionEvent ev) {
// Skip touch handling if there are no pages to swipe
if (getChildCount() <= 0) return super.onTouchEvent(ev);
acquireVelocityTrackerAndAddMovement(ev);
final int action = ev.getAction();
@@ -22,20 +22,20 @@ import android.view.MotionEvent;
import android.widget.LinearLayout;
/**
* The linear layout used strictly for the widget tab of the customization tray
* The linear layout used strictly for the widget/wallpaper tab of the customization tray
*/
public class PagedViewWidgetLayout extends LinearLayout {
public class PagedViewExtendedLayout extends LinearLayout {
static final String TAG = "PagedViewWidgetLayout";
public PagedViewWidgetLayout(Context context) {
public PagedViewExtendedLayout(Context context) {
this(context, null);
}
public PagedViewWidgetLayout(Context context, AttributeSet attrs) {
public PagedViewExtendedLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public PagedViewWidgetLayout(Context context, AttributeSet attrs, int defStyle) {
public PagedViewExtendedLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@@ -1,156 +0,0 @@
/*
* 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.
*/
package com.android.launcher2;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Checkable;
import android.widget.LinearLayout;
import com.android.launcher.R;
/**
* An widget icon for use specifically in the CustomizePagedView. In class form so that
* we can add logic for how it will look when checked/unchecked.
*/
public class PagedViewWidgetIcon extends LinearLayout implements Checkable {
private static final String TAG = "PagedViewIcon";
// Holographic outline
private final Paint mPaint = new Paint();
private static HolographicOutlineHelper sHolographicOutlineHelper;
private final Paint mErasePaint = new Paint();
private Bitmap mCheckedOutline;
private Canvas mHolographicOutlineCanvas;
private boolean mIsHolographicUpdatePass;
private int mAlpha;
private boolean mIsChecked;
// Highlight colours
private int mCheckedBlurColor;
private int mCheckedOutlineColor;
public PagedViewWidgetIcon(Context context) {
this(context, null);
}
public PagedViewWidgetIcon(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public PagedViewWidgetIcon(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PagedViewWidgetIcon,
defStyle, 0);
mCheckedBlurColor = a.getColor(R.styleable.PagedViewWidgetIcon_checkedBlurColor, 0);
mCheckedOutlineColor = a.getColor(R.styleable.PagedViewWidgetIcon_checkedOutlineColor, 0);
mErasePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
mErasePaint.setFilterBitmap(true);
a.recycle();
if (sHolographicOutlineHelper == null) {
sHolographicOutlineHelper = new HolographicOutlineHelper();
}
setWillNotDraw(false);
}
public void invalidateCheckedImage() {
if (mCheckedOutline != null) {
mCheckedOutline.recycle();
mCheckedOutline = null;
}
}
@Override
protected void onDraw(Canvas canvas) {
// Draw the view itself
if (mIsHolographicUpdatePass) {
canvas.save();
final float alpha = getAlpha();
super.setAlpha(1.0f);
super.onDraw(canvas);
super.setAlpha(alpha);
canvas.restore();
} else {
if (mAlpha > 0) {
super.onDraw(canvas);
}
}
// Draw the holographic checked overlay if necessary
if (!mIsHolographicUpdatePass) {
if (mCheckedOutline != null) {
mPaint.setAlpha(255);
canvas.drawBitmap(mCheckedOutline, 0, 0, mPaint);
}
}
}
@Override
public boolean isChecked() {
return mIsChecked;
}
@Override
public void setChecked(boolean checked) {
if (mIsChecked != checked) {
mIsChecked = checked;
if (mIsChecked) {
// set a flag to indicate that we are going to draw the view at full alpha
mIsHolographicUpdatePass = true;
final int width = getMeasuredWidth();
final int height = getMeasuredHeight();
mCheckedOutline = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
mHolographicOutlineCanvas = new Canvas(mCheckedOutline);
mHolographicOutlineCanvas.concat(getMatrix());
draw(mHolographicOutlineCanvas);
sHolographicOutlineHelper.applyExpensiveOutlineWithBlur(mCheckedOutline,
mHolographicOutlineCanvas, mCheckedBlurColor, mCheckedOutlineColor);
// Unlike PagedViewIcon, we can't seem to properly set the clip rect for all the
// children to respect when drawing... so for now, we erase over those parts in the
// checked highlight image
mHolographicOutlineCanvas.drawRect(0, findViewById(R.id.divider).getTop(),
width, height, mErasePaint);
mIsHolographicUpdatePass = false;
mHolographicOutlineCanvas = null;
} else {
invalidateCheckedImage();
}
invalidate();
}
}
@Override
public void toggle() {
setChecked(!mIsChecked);
}
}
+4
View File
@@ -426,6 +426,10 @@ public class Workspace extends SmoothPagedView
return false;
}
protected void onWindowVisibilityChanged (int visibility) {
mLauncher.onWindowVisibilityChanged(visibility);
}
@Override
public boolean dispatchUnhandledMove(View focused, int direction) {
if (mIsSmall || mIsInUnshrinkAnimation) {