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

Commit 865ee02d authored by Tony's avatar Tony
Browse files

Show back button when a floating view is visible

Bug: 74184060
Bug: 74243869
Change-Id: I3b1806e10d3f910ce3a8a980c2b1e0609e01582b
parent 5589583d
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -19,11 +19,14 @@ package com.android.launcher3.uioverrides;
import static com.android.launcher3.LauncherState.NORMAL;

import android.graphics.PointF;
import android.view.View;
import android.view.View.AccessibilityDelegate;

import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherStateManager.StateHandler;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.util.TouchController;
import com.android.quickstep.OverviewInteractionState;
import com.android.quickstep.RecentsModel;
@@ -62,8 +65,21 @@ public class UiFactory {
    }

    public static void onLauncherStateOrFocusChanged(Launcher launcher) {
        OverviewInteractionState.setBackButtonVisible(launcher, launcher == null
                || !launcher.isInState(NORMAL) || !launcher.hasWindowFocus());
        boolean shouldBackButtonBeVisible = launcher == null
                || !launcher.isInState(NORMAL)
                || !launcher.hasWindowFocus();
        if (!shouldBackButtonBeVisible) {
            // Show the back button if there is a floating view visible.
            DragLayer dragLayer = launcher.getDragLayer();
            for (int i = dragLayer.getChildCount() - 1; i >= 0; i--) {
                View child = dragLayer.getChildAt(i);
                if (child instanceof AbstractFloatingView) {
                    shouldBackButtonBeVisible = true;
                    break;
                }
            }
        }
        OverviewInteractionState.setBackButtonVisible(launcher, shouldBackButtonBeVisible);
    }

    public static void resetOverview(Launcher launcher) {
+2 −0
Original line number Diff line number Diff line
@@ -709,12 +709,14 @@ public class DragLayer extends InsettableFrameLayout {
    public void onViewAdded(View child) {
        super.onViewAdded(child);
        updateChildIndices();
        UiFactory.onLauncherStateOrFocusChanged(mLauncher);
    }

    @Override
    public void onViewRemoved(View child) {
        super.onViewRemoved(child);
        updateChildIndices();
        UiFactory.onLauncherStateOrFocusChanged(mLauncher);
    }

    @Override