diff options
Diffstat (limited to 'src/com/android/launcher2/AppsCustomizeTabHost.java')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizeTabHost.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java index 25001b19a..8f067faa5 100644 --- a/src/com/android/launcher2/AppsCustomizeTabHost.java +++ b/src/com/android/launcher2/AppsCustomizeTabHost.java @@ -45,6 +45,9 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona private ViewGroup mTabsContainer; private AppsCustomizePagedView mAppsCustomizePane; + private boolean mInTransition; + private boolean mResetAfterTransition; + public AppsCustomizeTabHost(Context context, AttributeSet attrs) { super(context, attrs); mLayoutInflater = LayoutInflater.from(context); @@ -223,9 +226,20 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona return super.getDescendantFocusability(); } + void reset() { + if (mInTransition) { + // Defer to after the transition to reset + mResetAfterTransition = true; + } else { + // Reset immediately + mAppsCustomizePane.reset(); + } + } + /* LauncherTransitionable overrides */ @Override public void onLauncherTransitionStart(Animator animation, boolean toWorkspace) { + mInTransition = true; // 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 @@ -240,10 +254,15 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona if (!toWorkspace && !LauncherApplication.isScreenLarge()) { mAppsCustomizePane.showScrollingIndicator(false); } + if (mResetAfterTransition) { + mAppsCustomizePane.reset(); + mResetAfterTransition = false; + } } @Override public void onLauncherTransitionEnd(Animator animation, boolean toWorkspace) { + mInTransition = false; if (animation != null) { setLayerType(LAYER_TYPE_NONE, null); } |