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

Commit 5a0c0ffd authored by Michael Kwan's avatar Michael Kwan Committed by android-build-merger
Browse files

Fix OnCancelListener for Dialogs on swipe to dismiss.

am: 67639a5f

Change-Id: I92bc472b3519020eeadf61b1e8047aee9e8bd96c
parents 67fd9f39 67639a5f
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -185,6 +185,11 @@ public class Dialog implements DialogInterface, Window.Callback,
        mWindow = w;
        mWindow = w;
        w.setCallback(this);
        w.setCallback(this);
        w.setOnWindowDismissedCallback(this);
        w.setOnWindowDismissedCallback(this);
        w.setOnWindowSwipeDismissedCallback(() -> {
            if (mCancelable) {
                cancel();
            }
        });
        w.setWindowManager(mWindowManager, null, null);
        w.setWindowManager(mWindowManager, null, null);
        w.setGravity(Gravity.CENTER);
        w.setGravity(Gravity.CENTER);


+25 −0
Original line number Original line Diff line number Diff line
@@ -275,6 +275,7 @@ public abstract class Window {
    private TypedArray mWindowStyle;
    private TypedArray mWindowStyle;
    private Callback mCallback;
    private Callback mCallback;
    private OnWindowDismissedCallback mOnWindowDismissedCallback;
    private OnWindowDismissedCallback mOnWindowDismissedCallback;
    private OnWindowSwipeDismissedCallback mOnWindowSwipeDismissedCallback;
    private WindowControllerCallback mWindowControllerCallback;
    private WindowControllerCallback mWindowControllerCallback;
    private OnRestrictedCaptionAreaChangedListener mOnRestrictedCaptionAreaChangedListener;
    private OnRestrictedCaptionAreaChangedListener mOnRestrictedCaptionAreaChangedListener;
    private Rect mRestrictedCaptionAreaRect;
    private Rect mRestrictedCaptionAreaRect;
@@ -587,6 +588,18 @@ public abstract class Window {
        void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition);
        void onWindowDismissed(boolean finishTask, boolean suppressWindowTransition);
    }
    }


    /** @hide */
    public interface OnWindowSwipeDismissedCallback {
        /**
         * Called when a window is swipe dismissed. This informs the callback that the
         * window is gone, and it should finish itself.
         * @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 onWindowSwipeDismissed();
    }

    /** @hide */
    /** @hide */
    public interface WindowControllerCallback {
    public interface WindowControllerCallback {
        /**
        /**
@@ -880,6 +893,18 @@ public abstract class Window {
        }
        }
    }
    }


    /** @hide */
    public final void setOnWindowSwipeDismissedCallback(OnWindowSwipeDismissedCallback sdcb) {
        mOnWindowSwipeDismissedCallback = sdcb;
    }

    /** @hide */
    public final void dispatchOnWindowSwipeDismissed() {
        if (mOnWindowSwipeDismissedCallback != null) {
            mOnWindowSwipeDismissedCallback.onWindowSwipeDismissed();
        }
    }

    /** @hide */
    /** @hide */
    public final void setWindowControllerCallback(WindowControllerCallback wccb) {
    public final void setWindowControllerCallback(WindowControllerCallback wccb) {
        mWindowControllerCallback = wccb;
        mWindowControllerCallback = wccb;
+1 −0
Original line number Original line Diff line number Diff line
@@ -2990,6 +2990,7 @@ 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) {
                dispatchOnWindowSwipeDismissed();
                dispatchOnWindowDismissed(false /*finishTask*/, true /*suppressWindowTransition*/);
                dispatchOnWindowDismissed(false /*finishTask*/, true /*suppressWindowTransition*/);
            }
            }
        });
        });