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

Commit f9566827 authored by Ned Burns's avatar Ned Burns Committed by android-build-merger
Browse files

Modify SwipeDismissLayout to perform its own exit animation

am: 7d6cb913

Change-Id: I17d086e1c24d9eb91a984c45b88f529006465d34
parents 615bda5b 7d6cb913
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -2946,8 +2946,11 @@ public class Activity extends ContextThemeWrapper
     * @hide
     * @hide
     */
     */
    @Override
    @Override
    public void onWindowDismissed(boolean finishTask) {
    public void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition) {
        finish(finishTask ? FINISH_TASK_WITH_ACTIVITY : DONT_FINISH_TASK_WITH_ACTIVITY);
        finish(finishTask ? FINISH_TASK_WITH_ACTIVITY : DONT_FINISH_TASK_WITH_ACTIVITY);
        if (suppressWindowTransition) {
            overridePendingTransition(0, 0);
        }
    }
    }




+1 −1
Original line number Original line Diff line number Diff line
@@ -744,7 +744,7 @@ public class Dialog implements DialogInterface, Window.Callback,


    /** @hide */
    /** @hide */
    @Override
    @Override
    public void onWindowDismissed(boolean finishTask) {
    public void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition) {
        dismiss();
        dismiss();
    }
    }


+6 −3
Original line number Original line Diff line number Diff line
@@ -581,8 +581,10 @@ public abstract class Window {
         * Called when a window is dismissed. This informs the callback that the
         * Called when a window is dismissed. This informs the callback that the
         * window is gone, and it should finish itself.
         * window is gone, and it should finish itself.
         * @param finishTask True if the task should also be finished.
         * @param finishTask True if the task should also be finished.
         * @param suppressWindowTransition True if the resulting exit and enter window transition
         * animations should be suppressed.
         */
         */
        void onWindowDismissed(boolean finishTask);
        void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition);
    }
    }


    /** @hide */
    /** @hide */
@@ -871,9 +873,10 @@ public abstract class Window {
    }
    }


    /** @hide */
    /** @hide */
    public final void dispatchOnWindowDismissed(boolean finishTask) {
    public final void dispatchOnWindowDismissed(
            boolean finishTask, boolean suppressWindowTransition) {
        if (mOnWindowDismissedCallback != null) {
        if (mOnWindowDismissedCallback != null) {
            mOnWindowDismissedCallback.onWindowDismissed(finishTask);
            mOnWindowDismissedCallback.onWindowDismissed(finishTask, suppressWindowTransition);
        }
        }
    }
    }


+3 −5
Original line number Original line Diff line number Diff line
@@ -2990,19 +2990,17 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        swipeDismiss.setOnDismissedListener(new SwipeDismissLayout.OnDismissedListener() {
        swipeDismiss.setOnDismissedListener(new SwipeDismissLayout.OnDismissedListener() {
            @Override
            @Override
            public void onDismissed(SwipeDismissLayout layout) {
            public void onDismissed(SwipeDismissLayout layout) {
                dispatchOnWindowDismissed(false /*finishTask*/);
                dispatchOnWindowDismissed(false /*finishTask*/, true /*suppressWindowTransition*/);
            }
            }
        });
        });
        swipeDismiss.setOnSwipeProgressChangedListener(
        swipeDismiss.setOnSwipeProgressChangedListener(
                new SwipeDismissLayout.OnSwipeProgressChangedListener() {
                new SwipeDismissLayout.OnSwipeProgressChangedListener() {
                    private static final float ALPHA_DECREASE = 0.5f;
                    private boolean mIsTranslucent = false;
                    @Override
                    @Override
                    public void onSwipeProgressChanged(
                    public void onSwipeProgressChanged(
                            SwipeDismissLayout layout, float progress, float translate) {
                            SwipeDismissLayout layout, float alpha, float translate) {
                        WindowManager.LayoutParams newParams = getAttributes();
                        WindowManager.LayoutParams newParams = getAttributes();
                        newParams.x = (int) translate;
                        newParams.x = (int) translate;
                        newParams.alpha = 1 - (progress * ALPHA_DECREASE);
                        newParams.alpha = alpha;
                        setAttributes(newParams);
                        setAttributes(newParams);


                        int flags = 0;
                        int flags = 0;
+2 −1
Original line number Original line Diff line number Diff line
@@ -416,7 +416,8 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener,
        if (mClickTarget == mMaximize) {
        if (mClickTarget == mMaximize) {
            maximizeWindow();
            maximizeWindow();
        } else if (mClickTarget == mClose) {
        } else if (mClickTarget == mClose) {
            mOwner.dispatchOnWindowDismissed(true /*finishTask*/);
            mOwner.dispatchOnWindowDismissed(
                    true /*finishTask*/, false /*suppressWindowTransition*/);
        }
        }
        return true;
        return true;
    }
    }
Loading