Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92db56f7 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Fix bug 2838426 - timing issue with starting/finishing action bar context modes"

parents e31135a0 3461b32a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ public class ActionBarImpl extends ActionBar {
    
    private int mContextDisplayMode;

    private boolean mClosingContext;

    final Handler mHandler = new Handler();
    final Runnable mCloseContext = new Runnable() {
        public void run() {
@@ -77,6 +79,7 @@ public class ActionBarImpl extends ActionBar {
            if (mLowerContextView != null) {
                mLowerContextView.removeAllViews();
            }
            mClosingContext = false;
        }
    };

@@ -195,6 +198,14 @@ public class ActionBarImpl extends ActionBar {
        if (mContextMode != null) {
            mContextMode.finish();
        }

        // Don't wait for the close context mode animation to finish.
        if (mClosingContext) {
            mAnimatorView.clearAnimation();
            mHandler.removeCallbacks(mCloseContext);
            mCloseContext.run();
        }

        mContextMode = new ContextMode(callback);
        if (callback.onCreateContextMode(mContextMode, mContextMode.getMenu())) {
            mContextMode.invalidate();
@@ -344,6 +355,7 @@ public class ActionBarImpl extends ActionBar {
            mAnimatorView.setDisplayedChild(NORMAL_VIEW);

            // Clear out the context mode views after the animation finishes
            mClosingContext = true;
            mHandler.postDelayed(mCloseContext, mAnimatorView.getOutAnimation().getDuration());

            if (mLowerContextView != null && mLowerContextView.getVisibility() != View.GONE) {