Fix OnCancelListener for Dialogs on swipe to dismiss. am: 67639a5f67 am: 5a0c0ffd03
am: 95ccfb0dcc
Change-Id: I25f9462c60a59582d26a68c2cc7a2ca5a1c11857
This commit is contained in:
@@ -185,6 +185,11 @@ public class Dialog implements DialogInterface, Window.Callback,
|
||||
mWindow = w;
|
||||
w.setCallback(this);
|
||||
w.setOnWindowDismissedCallback(this);
|
||||
w.setOnWindowSwipeDismissedCallback(() -> {
|
||||
if (mCancelable) {
|
||||
cancel();
|
||||
}
|
||||
});
|
||||
w.setWindowManager(mWindowManager, null, null);
|
||||
w.setGravity(Gravity.CENTER);
|
||||
|
||||
|
||||
@@ -274,6 +274,7 @@ public abstract class Window {
|
||||
private TypedArray mWindowStyle;
|
||||
private Callback mCallback;
|
||||
private OnWindowDismissedCallback mOnWindowDismissedCallback;
|
||||
private OnWindowSwipeDismissedCallback mOnWindowSwipeDismissedCallback;
|
||||
private WindowControllerCallback mWindowControllerCallback;
|
||||
private OnRestrictedCaptionAreaChangedListener mOnRestrictedCaptionAreaChangedListener;
|
||||
private Rect mRestrictedCaptionAreaRect;
|
||||
@@ -586,6 +587,18 @@ public abstract class Window {
|
||||
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 */
|
||||
public interface WindowControllerCallback {
|
||||
/**
|
||||
@@ -879,6 +892,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 */
|
||||
public final void setWindowControllerCallback(WindowControllerCallback wccb) {
|
||||
mWindowControllerCallback = wccb;
|
||||
|
||||
Reference in New Issue
Block a user