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

Commit 3c8def9f authored by Jeremy Sim's avatar Jeremy Sim Committed by Android (Google) Code Review
Browse files

Merge "Fix bug where Taskbar was not auto-hiding after splitscreen launch from...

Merge "Fix bug where Taskbar was not auto-hiding after splitscreen launch from icon menu" into tm-qpr-dev
parents 56e660c6 8eed87ac
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -65,4 +65,10 @@ public abstract class BaseTaskbarContext extends ContextThemeWrapper implements

    /** Callback invoked when a popup is shown or closed within this context. */
    public abstract void onPopupVisibilityChanged(boolean isVisible);

    /**
     * Callback invoked when user attempts to split the screen through a long-press menu in Taskbar
     * or AllApps.
     */
    public abstract void onSplitScreenMenuButtonClicked();
}
+11 −1
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ import android.view.Gravity;
import android.view.RoundedCorner;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.widget.FrameLayout;
import android.widget.Toast;

@@ -80,6 +79,7 @@ import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.FolderInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.popup.PopupContainerWithArrow;
import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.taskbar.TaskbarAutohideSuspendController.AutohideSuspendFlag;
import com.android.launcher3.taskbar.TaskbarTranslationController.TransitionCallback;
@@ -524,6 +524,16 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
        setTaskbarWindowFocusable(isVisible);
    }

    @Override
    public void onSplitScreenMenuButtonClicked() {
        PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(this);
        if (popup != null) {
            popup.addOnCloseCallback(() -> {
                mControllers.taskbarStashController.updateAndAnimateTransientTaskbar(true);
            });
        }
    }

    /**
     * Sets a new data-source for this taskbar instance
     */
+9 −3
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import java.util.stream.Stream;

/**
 * Implements interfaces required to show and allow interacting with a PopupContainerWithArrow.
 * Controls the long-press menu on Taskbar and AllApps icons.
 */
public class TaskbarPopupController implements TaskbarControllers.LoggableTaskbarController {

@@ -191,9 +192,8 @@ public class TaskbarPopupController implements TaskbarControllers.LoggableTaskba

        // Make focusable to receive back events
        context.onPopupVisibilityChanged(true);
        container.setOnCloseCallback(() -> {
        container.addOnCloseCallback(() -> {
            context.getDragLayer().post(() -> context.onPopupVisibilityChanged(false));
            container.setOnCloseCallback(null);
        });

        return container;
@@ -294,13 +294,19 @@ public class TaskbarPopupController implements TaskbarControllers.LoggableTaskba

        @Override
        public void onClick(View view) {
            // Add callbacks depending on what type of Taskbar context we're in (Taskbar or AllApps)
            mTarget.onSplitScreenMenuButtonClicked();
            AbstractFloatingView.closeAllOpenViews(mTarget);

            // Depending on what app state we're in, we either want to initiate the split screen
            // staging process or immediately launch a split with an existing app.
            // - Initiate the split screen staging process
             if (mAllowInitialSplitSelection) {
                 super.onClick(view);
                 return;
             }

            // Initiate splitscreen from the in-app Taskbar or Taskbar All Apps
            // - Immediately launch split with the running app
            Pair<InstanceId, com.android.launcher3.logging.InstanceId> instanceIds =
                    LogUtils.getShellShareableInstanceId();
            mTarget.getStatsLogManager().logger()
+4 −6
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@
 */
package com.android.launcher3.taskbar.overlay;

import static android.app.ActivityTaskManager.INVALID_TASK_ID;

import android.content.Context;
import android.view.View;

@@ -33,10 +31,6 @@ import com.android.launcher3.taskbar.TaskbarStashController;
import com.android.launcher3.taskbar.TaskbarUIController;
import com.android.launcher3.taskbar.allapps.TaskbarAllAppsContainerView;
import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.recents.model.Task;

import java.util.function.Consumer;

/**
 * Window context for the taskbar overlays such as All Apps and EDU.
@@ -141,4 +135,8 @@ public class TaskbarOverlayContext extends BaseTaskbarContext {

    @Override
    public void onPopupVisibilityChanged(boolean isVisible) {}

    @Override
    public void onSplitScreenMenuButtonClicked() {
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ public class LauncherAccessibilityDelegate extends BaseAccessibilityDelegate<Lau
            mContext.getDragLayer().getDescendantRectRelativeToSelf(host, pos);
            ArrowPopup popup = OptionsPopupView.show(mContext, new RectF(pos), actions, false);
            popup.requestFocus();
            popup.setOnCloseCallback(() -> {
            popup.addOnCloseCallback(() -> {
                host.requestFocus();
                host.sendAccessibilityEvent(TYPE_VIEW_FOCUSED);
                host.performAccessibilityAction(ACTION_ACCESSIBILITY_FOCUS, null);
Loading