Fix two crashes
- NPE: bug #4984219
- IllegalStateException: bug #4969695
Change-Id: Iaf02e669b26f9277388e0e7bffd532220ebf9bb1
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index ed408df..d3215f0 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -207,7 +207,10 @@
/* LauncherTransitionable overrides */
@Override
public void onLauncherTransitionStart(Animator animation) {
- if (animation != null) {
+ // isHardwareAccelerated() checks if we're attached to a window and if that
+ // window is HW accelerated-- we were sometimes not attached to a window
+ // and buildLayer was throwing an IllegalStateException
+ if (animation != null && isHardwareAccelerated()) {
// Turn on hardware layers for performance
setLayerType(LAYER_TYPE_HARDWARE, null);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index af8d986..e318960 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -2593,14 +2593,18 @@
ImageView button = (ImageView) findViewById(buttonId);
Drawable toolbarIcon = getExternalPackageToolbarIcon(activityName);
- // If we were unable to find the icon via the meta-data, use a generic one
- if (toolbarIcon == null) {
- button.setImageResource(fallbackDrawableId);
- return null;
- } else {
- button.setImageDrawable(toolbarIcon);
- return toolbarIcon.getConstantState();
+ if (button != null) {
+ // If we were unable to find the icon via the meta-data, use a
+ // generic one
+ if (toolbarIcon == null) {
+ button.setImageResource(fallbackDrawableId);
+ } else {
+ button.setImageDrawable(toolbarIcon);
+ }
}
+
+ return toolbarIcon != null ? toolbarIcon.getConstantState() : null;
+
}
private void updateTextButtonWithDrawable(int buttonId, Drawable.ConstantState d) {