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) {