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

Commit c59c1af7 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Add PICTURE_IN_PICTURE_SHOW_SETTING UI event log"

parents f689c8df 98d764bc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -246,10 +246,11 @@ public class WMShellModule {
            PipBoundsState pipBoundsState, PipMediaController pipMediaController,
            SystemWindows systemWindows,
            Optional<SplitScreenController> splitScreenOptional,
            PipUiEventLogger pipUiEventLogger,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread Handler mainHandler) {
        return new PhonePipMenuController(context, pipBoundsState, pipMediaController,
                systemWindows, splitScreenOptional, mainExecutor, mainHandler);
                systemWindows, splitScreenOptional, pipUiEventLogger, mainExecutor, mainHandler);
    }

    @WMSingleton
+0 −2
Original line number Diff line number Diff line
@@ -397,8 +397,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
            return;
        }

        mPipUiEventLoggerLogger.log(
                PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN);
        final WindowContainerTransaction wct = new WindowContainerTransaction();

        if (ENABLE_SHELL_TRANSITIONS) {
+4 −1
Original line number Diff line number Diff line
@@ -107,7 +107,10 @@ public class PipUiEventLogger {
        PICTURE_IN_PICTURE_STASH_LEFT(710),

        @UiEvent(doc = "User stashed picture-in-picture to the right side")
        PICTURE_IN_PICTURE_STASH_RIGHT(711);
        PICTURE_IN_PICTURE_STASH_RIGHT(711),

        @UiEvent(doc = "User taps on the settings button in PiP menu")
        PICTURE_IN_PICTURE_SHOW_SETTINGS(933);

        private final int mId;

+5 −1
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.wm.shell.pip.PipBoundsState;
import com.android.wm.shell.pip.PipMediaController;
import com.android.wm.shell.pip.PipMediaController.ActionListener;
import com.android.wm.shell.pip.PipMenuController;
import com.android.wm.shell.pip.PipUiEventLogger;
import com.android.wm.shell.splitscreen.SplitScreenController;

import java.io.PrintWriter;
@@ -118,6 +119,7 @@ public class PhonePipMenuController implements PipMenuController {
    private final ArrayList<Listener> mListeners = new ArrayList<>();
    private final SystemWindows mSystemWindows;
    private final Optional<SplitScreenController> mSplitScreenController;
    private final PipUiEventLogger mPipUiEventLogger;
    private ParceledListSlice<RemoteAction> mAppActions;
    private ParceledListSlice<RemoteAction> mMediaActions;
    private SyncRtSurfaceTransactionApplier mApplier;
@@ -150,6 +152,7 @@ public class PhonePipMenuController implements PipMenuController {
    public PhonePipMenuController(Context context, PipBoundsState pipBoundsState,
            PipMediaController mediaController, SystemWindows systemWindows,
            Optional<SplitScreenController> splitScreenOptional,
            PipUiEventLogger pipUiEventLogger,
            ShellExecutor mainExecutor, Handler mainHandler) {
        mContext = context;
        mPipBoundsState = pipBoundsState;
@@ -158,6 +161,7 @@ public class PhonePipMenuController implements PipMenuController {
        mMainExecutor = mainExecutor;
        mMainHandler = mainHandler;
        mSplitScreenController = splitScreenOptional;
        mPipUiEventLogger = pipUiEventLogger;
    }

    public boolean isMenuVisible() {
@@ -187,7 +191,7 @@ public class PhonePipMenuController implements PipMenuController {
            detachPipMenuView();
        }
        mPipMenuView = new PipMenuView(mContext, this, mMainExecutor, mMainHandler,
                mSplitScreenController);
                mSplitScreenController, mPipUiEventLogger);
        mSystemWindows.addView(mPipMenuView,
                getPipMenuLayoutParams(MENU_WINDOW_TITLE, 0 /* width */, 0 /* height */),
                0, SHELL_ROOT_LAYER_PIP);
+11 −3
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import android.widget.LinearLayout;
import com.android.wm.shell.R;
import com.android.wm.shell.animation.Interpolators;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.pip.PipUiEventLogger;
import com.android.wm.shell.pip.PipUtils;
import com.android.wm.shell.splitscreen.SplitScreenController;

@@ -121,8 +122,9 @@ public class PipMenuView extends FrameLayout {
    private int mBetweenActionPaddingLand;

    private AnimatorSet mMenuContainerAnimator;
    private PhonePipMenuController mController;
    private Optional<SplitScreenController> mSplitScreenControllerOptional;
    private final PhonePipMenuController mController;
    private final Optional<SplitScreenController> mSplitScreenControllerOptional;
    private final PipUiEventLogger mPipUiEventLogger;

    private ValueAnimator.AnimatorUpdateListener mMenuBgUpdateListener =
            new ValueAnimator.AnimatorUpdateListener() {
@@ -152,13 +154,15 @@ public class PipMenuView extends FrameLayout {

    public PipMenuView(Context context, PhonePipMenuController controller,
            ShellExecutor mainExecutor, Handler mainHandler,
            Optional<SplitScreenController> splitScreenController) {
            Optional<SplitScreenController> splitScreenController,
            PipUiEventLogger pipUiEventLogger) {
        super(context, null, 0);
        mContext = context;
        mController = controller;
        mMainExecutor = mainExecutor;
        mMainHandler = mainHandler;
        mSplitScreenControllerOptional = splitScreenController;
        mPipUiEventLogger = pipUiEventLogger;

        mAccessibilityManager = context.getSystemService(AccessibilityManager.class);
        inflate(context, R.layout.pip_menu, this);
@@ -539,6 +543,8 @@ public class PipMenuView extends FrameLayout {
        // handles the message
        hideMenu(mController::onPipExpand, false /* notifyMenuVisibility */, true /* resize */,
                ANIM_TYPE_HIDE);
        mPipUiEventLogger.log(
                PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN);
    }

    private void dismissPip() {
@@ -547,6 +553,7 @@ public class PipMenuView extends FrameLayout {
            // any other dismissal that will update the touch state and fade out the PIP task
            // and the menu view at the same time.
            mController.onPipDismiss();
            mPipUiEventLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_TAP_TO_REMOVE);
        }
    }

@@ -566,6 +573,7 @@ public class PipMenuView extends FrameLayout {
                    Uri.fromParts("package", topPipActivityInfo.first.getPackageName(), null));
            settingsIntent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK);
            mContext.startActivityAsUser(settingsIntent, UserHandle.of(topPipActivityInfo.second));
            mPipUiEventLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_SHOW_SETTINGS);
        }
    }

Loading