From 19e0fc53c43a7746d7ae3d7c6027166bded33f0f Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Fri, 22 Jul 2011 18:00:21 -0700 Subject: [PATCH] Fix two crashes - NPE: bug #4984219 - IllegalStateException: bug #4969695 Change-Id: Iaf02e669b26f9277388e0e7bffd532220ebf9bb1 --- .../launcher2/AppsCustomizeTabHost.java | 5 ++++- src/com/android/launcher2/Launcher.java | 18 +++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java index ed408df48e..d3215f093d 100644 --- a/src/com/android/launcher2/AppsCustomizeTabHost.java +++ b/src/com/android/launcher2/AppsCustomizeTabHost.java @@ -207,7 +207,10 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona /* 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 af8d986b91..e318960f8c 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -2593,14 +2593,18 @@ public final class Launcher extends Activity 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) {