Merge "Get rid of explicit GC requests" into jb-mr1-dev
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5dd726a..7e49aef 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -20,7 +20,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="8424725141379931883">"Покретач"</string>
-    <string name="home" msgid="5921706419368316758">"Кућни"</string>
+    <string name="home" msgid="5921706419368316758">"Почетна"</string>
     <string name="uid_name" msgid="3371120195364560632">"Основне Android апликације"</string>
     <string name="folder_name" msgid="8551881338202938211"></string>
     <string name="chooser_wallpaper" msgid="6063168087625352235">"Избор позадине из"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 04e45ae..0ea12c4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -266,12 +266,12 @@
 
     <!-- Clings -->
     <!-- Dummy string [CHAR_LIMIT=40] -->
-    <add-resource type="string" name="custom_workspace_cling_title_1"/>
+    <string name="custom_workspace_cling_title_1"></string>
     <!-- Dummy string [CHAR_LIMIT=60] -->
-    <add-resource type="string" name="custom_workspace_cling_description_1"/>
+    <string name="custom_workspace_cling_description_1"></string>
     <!-- Dummy string [CHAR_LIMIT=40] -->
-    <add-resource type="string" name="custom_workspace_cling_title_2"/>
+    <string name="custom_workspace_cling_title_2"></string>
     <!-- Dummy string [CHAR_LIMIT=60] -->
-    <add-resource type="string" name="custom_workspace_cling_description_2"/>
+    <string name="custom_workspace_cling_description_2"></string>
 
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0960269..c3fe7ef 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -46,6 +46,8 @@
         <item name="android:shadowRadius">2.0</item>
     </style>
     <style name="ClingText">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
         <item name="android:textSize">15sp</item>
         <item name="android:textColor">#FFFFFF</item>
         <item name="android:shadowColor">#000000</item>
diff --git a/src/com/android/launcher2/DragLayer.java b/src/com/android/launcher2/DragLayer.java
index fed0ad9..e870d0a 100644
--- a/src/com/android/launcher2/DragLayer.java
+++ b/src/com/android/launcher2/DragLayer.java
@@ -167,6 +167,9 @@
 
     @Override
     public boolean onInterceptHoverEvent(MotionEvent ev) {
+        if (mLauncher == null || mLauncher.getWorkspace() == null) {
+            return false;
+        }
         Folder currentFolder = mLauncher.getWorkspace().getOpenFolder();
         if (currentFolder == null) {
             return false;
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 6fcda8a..56fdbb6 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -2784,8 +2784,9 @@
         mUserPresent = true;
         updateRunning();
 
-        // send an accessibility event to announce the context change
-        getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
+        // Send an accessibility event to announce the context change
+        getWindow().getDecorView()
+                .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
     }
 
     void showAllApps(boolean animated) {
@@ -2803,7 +2804,8 @@
         closeFolder();
 
         // Send an accessibility event to announce the context change
-        getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
+        getWindow().getDecorView()
+                .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
     }
 
     void enterSpringLoadedDragMode() {
@@ -3177,10 +3179,15 @@
 
     @Override
     public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
-        boolean result = super.dispatchPopulateAccessibilityEvent(event);
+        final boolean result = super.dispatchPopulateAccessibilityEvent(event);
         final List<CharSequence> text = event.getText();
         text.clear();
-        text.add(getString(R.string.home));
+        // Populate event with a fake title based on the current state.
+        if (mState == State.APPS_CUSTOMIZE) {
+            text.add(getString(R.string.all_apps_button_label));
+        } else {
+            text.add(getString(R.string.all_apps_home_button_label));
+        }
         return result;
     }
 
@@ -3482,7 +3489,9 @@
             anim.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animator animation) {
-                    mWorkspace.postDelayed(mBuildLayersRunnable, 500);
+                    if (mWorkspace != null) {
+                        mWorkspace.postDelayed(mBuildLayersRunnable, 500);
+                    }
                 }
             });
             anim.start();