Merge "Fix missing resource issue when running on Passion device."
diff --git a/res/drawable-xlarge-hdpi/homescreen_small_blue.9.png b/res/drawable-xlarge-hdpi/homescreen_small_blue.9.png
index c3faa24..db93b3c 100644
--- a/res/drawable-xlarge-hdpi/homescreen_small_blue.9.png
+++ b/res/drawable-xlarge-hdpi/homescreen_small_blue.9.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/homescreen_small_blue.9.png b/res/drawable-xlarge-mdpi/homescreen_small_blue.9.png
index 096df7f..28bc33b 100644
--- a/res/drawable-xlarge-mdpi/homescreen_small_blue.9.png
+++ b/res/drawable-xlarge-mdpi/homescreen_small_blue.9.png
Binary files differ
diff --git a/res/values-es-rUS-xlarge/strings.xml b/res/values-es-rUS-xlarge/strings.xml
index f73a394..68b2f56 100644
--- a/res/values-es-rUS-xlarge/strings.xml
+++ b/res/values-es-rUS-xlarge/strings.xml
@@ -1,24 +1,38 @@
 <?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.
-*/
- -->
-
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wallpaper_dialog_title" msgid="5764793286524787718">"Seleccionar fondo de pantalla"</string>
-    <string name="wallpaper_cancel" msgid="6502936522490675611">"Cancelar"</string>
+    <!-- XL -->
+    <string name="application_name" msgid="8444202179223900837">"Selector"</string>
+    <!-- XL -->
+    <string name="uid_name" msgid="2634595491534329164">"Aplicaciones del núcleo de Androide"</string>
+    <!-- XL -->
+    <string name="chooser_wallpaper" msgid="3766864787811545058">"Seleccionar fondo de pantalla desde"</string>
+    <!-- XL -->
+    <string name="pick_wallpaper" msgid="7392838767723380127">"Fondos de pantalla"</string>
+    <!-- XL -->
+    <string name="activity_not_found" msgid="742483216109058344">"La aplicación no está instalada."</string>
+    <!-- XL -->
+    <string name="wallpapers_tab_label" msgid="1659635260989419263">"Fondos de pantalla"</string>
+    <!-- XL -->
+    <string name="wallpapers_temp_tab_text" msgid="1406600851510062325">"Ésta será la pestaña para los fondos de pantalla"</string>
+    <!-- XL -->
+    <string name="all_apps_tab_apps" msgid="827864997519186499">"Google Apps"</string>
+    <!-- XL -->
+    <string name="all_apps_no_downloads" msgid="6687010155766000796">"No se encontraron apps."</string>
+    <!-- XL -->
+    <string name="group_wallpapers" msgid="5356616257147378618">"Fondos de pantalla"</string>
+    <!-- XL -->
+    <string name="all_apps_button_label" msgid="825988103463804114">"Google Apps"</string>
+    <!-- XL -->
+    <string name="all_apps_home_button_label" msgid="4573985169183891042">"Pantalla principal"</string>
+    <!-- XL -->
+    <string name="menu_wallpaper" msgid="7079815810001779627">"Fondo de pantalla"</string>
+    <!-- XL -->
+    <string name="permlab_uninstall_shortcut" msgid="9081019297773923949">"desinstalar accesos directos"</string>
+    <!-- XL -->
+    <string name="delete_zone_label_workspace" msgid="7170653385628744300">"Eliminar"</string>
+    <!-- XL xlarge -->
+    <string name="wallpaper_dialog_title" msgid="8158909859337893047">"Seleccionar fondo de pantalla"</string>
+    <!-- XL xlarge -->
+    <string name="wallpaper_cancel" msgid="6726455585784483952">"Cancelar"</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 05d37d9..addea4b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -39,7 +39,7 @@
     <string name="wallpaper_instructions">Set wallpaper</string>
     <!-- Option in "Select wallpaper from" dialog box -->
     <string name="pick_wallpaper">Wallpapers</string>
-    <!-- Displayed when user selects a shortcut for an app that was uninstalled -->
+    <!-- Displayed when user selects a shortcut for an app that was uninstalled [CHAR_LIMIT=none]-->
     <string name="activity_not_found">Application is not installed.</string>
     <!-- List item for configuring the current wallpaper -->
     <string name="configure_wallpaper">Configure...</string>
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 53a584e..fd1f048 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -437,8 +437,9 @@
             }
         }
 
+        boolean useBitmapCache = mIsCacheEnabled && getScaleX() < mMaxScaleForUsingBitmapCache;
         if (mForceCacheUpdate ||
-                (mIsCacheEnabled && !mDisableCacheUpdates)) {
+                (useBitmapCache && !mDisableCacheUpdates)) {
             // Sometimes we force a cache update-- this is used to make sure the cache will look as
             // up-to-date as possible right when we disable cache updates
             if (mIsCacheDirty) {
@@ -447,7 +448,7 @@
             mForceCacheUpdate = false;
         }
 
-        if (mIsCacheEnabled && getScaleX() < mMaxScaleForUsingBitmapCache) {
+        if (useBitmapCache) {
             mCachePaint.setAlpha((int)(255*getAlpha()));
             canvas.drawBitmap(mCache, mCacheRect, mBackgroundRect, mCachePaint);
         } else {
@@ -474,7 +475,7 @@
         // When we're small, we are either drawn normally or in the "accepts drops" state (during
         // a drag). However, we also drag the mini hover background *over* one of those two
         // backgrounds
-        if (mBackgroundAlpha > 0.0f) {
+        if (LauncherApplication.isScreenXLarge() && mBackgroundAlpha > 0.0f) {
             Drawable bg;
             boolean mini = getScaleX() < 0.5f;
 
@@ -646,11 +647,13 @@
 
     @Override
     public void removeAllViews() {
+        super.removeAllViews();
         clearOccupiedCells();
     }
 
     @Override
     public void removeAllViewsInLayout() {
+        super.removeAllViewsInLayout();
         clearOccupiedCells();
     }
 
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index ee9e7a8..1ec326b 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -88,6 +88,7 @@
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.View.OnLongClickListener;
+import android.view.accessibility.AccessibilityEvent;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Advanceable;
 import android.widget.EditText;
@@ -416,6 +417,21 @@
         }
     }
 
+    @Override
+    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        super.dispatchPopulateAccessibilityEvent(event);
+
+        // we want to take over text population so it is context dependent
+        event.getText().clear();
+        if (mState == State.ALL_APPS) {
+            event.getText().add(getString(R.string.all_apps_button_label));
+        } else if (mState == State.WORKSPACE) {
+            event.getText().add(getString(R.string.all_apps_home_button_label));
+        }
+
+        return true;
+    }
+
     private void checkForLocaleChange() {
         if (sLocaleConfiguration == null) {
             new AsyncTask<Void, Void, LocaleConfiguration>() {
@@ -995,9 +1011,9 @@
         final View configureButton = findViewById(R.id.configure_button);
 
         if (LauncherApplication.isScreenXLarge()) {
-            mDeleteZone.setOverlappingViews(new View[] { allAppsButton, divider, configureButton });
+            deleteZone.setOverlappingViews(new View[] { allAppsButton, divider, configureButton });
         } else {
-            deleteZone.setOverlappingView(configureButton);
+            deleteZone.setOverlappingView(findViewById(R.id.all_apps_button_cluster));
         }
         dragController.addDragListener(deleteZone);
 
@@ -2878,8 +2894,10 @@
 
         // Change the state *after* we've called all the transition code
         mState = State.ALL_APPS;
-    }
 
+        // send an accessibility event to announce the context change
+        getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
+    }
 
     void showWorkspace(boolean animated) {
         showWorkspace(animated, null);
@@ -2901,6 +2919,9 @@
 
         // Change the state *after* we've called all the transition code
         mState = State.WORKSPACE;
+
+        // send an accessibility event to announce the context change
+        getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
     }
 
     void enterSpringLoadedDragMode(CellLayout layout) {