Add PICTURE_IN_PICTURE_SHOW_SETTING UI event log
Also, moved logging close to where the action happens Bug: 214434985 Test: $ANDROID_HOST_OUT/bin/statsd_testdrive -terse 90 Change-Id: I2fa3518820ba134d6e9d305c4517a2624ea4b299
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -149,7 +149,6 @@ public class PipTouchHandler {
|
||||
|
||||
@Override
|
||||
public void onPipDismiss() {
|
||||
mPipUiEventLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_TAP_TO_REMOVE);
|
||||
mTouchState.removeDoubleTapTimeoutCallback();
|
||||
mMotionHelper.dismissPip();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user