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

Commit d5e116a7 authored by Tony Wickham's avatar Tony Wickham
Browse files

Don't set Taskbar window to non-fullscreen while folder animates closed

Test: Open an app, open a folder in taskbar, and drag an app from the folder. Ensure the folder close animation plays completely.
Fixes: 199954907
Change-Id: I1caec4ef24b5325724d74f10ddbeae6ef8f9e959
parent 94c673c6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ public class TaskbarDragLayerController {
         * Called when a child is removed from TaskbarDragLayer.
         */
        public void onDragLayerViewRemoved() {
            if (AbstractFloatingView.getOpenView(mActivity, TYPE_ALL) == null) {
            if (AbstractFloatingView.getAnyView(mActivity, TYPE_ALL) == null) {
                mActivity.setTaskbarWindowFullscreen(false);
            }
        }
+16 −2
Original line number Diff line number Diff line
@@ -195,10 +195,24 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
    }

    /**
     * Returns a view matching FloatingViewType
     * Returns a view matching FloatingViewType and {@link #isOpen()} == true.
     */
    public static <T extends AbstractFloatingView> T getOpenView(
            ActivityContext activity, @FloatingViewType int type) {
        return getView(activity, type, true /* mustBeOpen */);
    }

    /**
     * Returns a view matching FloatingViewType, and {@link #isOpen()} may be false (if animating
     * closed).
     */
    public static <T extends AbstractFloatingView> T getAnyView(
            ActivityContext activity, @FloatingViewType int type) {
        return getView(activity, type, false /* mustBeOpen */);
    }

    private static <T extends AbstractFloatingView> T getView(
            ActivityContext activity, @FloatingViewType int type, boolean mustBeOpen) {
        BaseDragLayer dragLayer = activity.getDragLayer();
        if (dragLayer == null) return null;
        // Iterate in reverse order. AbstractFloatingView is added later to the dragLayer,
@@ -207,7 +221,7 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
            View child = dragLayer.getChildAt(i);
            if (child instanceof AbstractFloatingView) {
                AbstractFloatingView view = (AbstractFloatingView) child;
                if (view.isOfType(type) && view.isOpen()) {
                if (view.isOfType(type) && (!mustBeOpen || view.isOpen())) {
                    return (T) view;
                }
            }