Loading core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java +0 −81 Original line number Diff line number Diff line Loading @@ -16,14 +16,8 @@ package com.android.internal.os.logging; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.util.Pair; import android.view.WindowManager.LayoutParams; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.FrameworkStatsLog; /** Loading @@ -32,81 +26,6 @@ import com.android.internal.util.FrameworkStatsLog; */ public class MetricsLoggerWrapper { private static final int METRIC_VALUE_DISMISSED_BY_TAP = 0; private static final int METRIC_VALUE_DISMISSED_BY_DRAG = 1; public static void logPictureInPictureDismissByTap(Context context, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED, METRIC_VALUE_DISMISSED_BY_TAP); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED); } public static void logPictureInPictureDismissByDrag(Context context, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED, METRIC_VALUE_DISMISSED_BY_DRAG); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED); } public static void logPictureInPictureMinimize(Context context, boolean isMinimized, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_MINIMIZED, isMinimized); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__MINIMIZED); } /** * Get uid from component name and user Id * @return uid. -1 if not found. */ private static int getUid(Context context, ComponentName componentName, int userId) { int uid = -1; if (componentName == null) { return uid; } try { uid = context.getPackageManager().getApplicationInfoAsUser( componentName.getPackageName(), 0, userId).uid; } catch (NameNotFoundException e) { } return uid; } public static void logPictureInPictureMenuVisible(Context context, boolean menuStateFull) { MetricsLogger.visibility(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_MENU, menuStateFull); } public static void logPictureInPictureEnter(Context context, int uid, String shortComponentName, boolean supportsEnterPipOnTaskSwitch) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_ENTERED, supportsEnterPipOnTaskSwitch); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid, shortComponentName, FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__ENTERED); } public static void logPictureInPictureFullScreen(Context context, int uid, String shortComponentName) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_EXPANDED_TO_FULLSCREEN); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid, shortComponentName, FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN); } public static void logAppOverlayEnter(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) { if (changed) { if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) { Loading packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java +11 −2 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements private final Handler mUpdateHandler; private final PipBoundsHandler mPipBoundsHandler; private final PipAnimationController mPipAnimationController; private final PipUiEventLogger mPipUiEventLoggerLogger; private final List<PipTransitionCallback> mPipTransitionCallbacks = new ArrayList<>(); private final Rect mLastReportedBounds = new Rect(); private final int mEnterExitAnimationDuration; Loading Loading @@ -206,7 +207,8 @@ public class PipTaskOrganizer extends TaskOrganizer implements @NonNull PipSurfaceTransactionHelper surfaceTransactionHelper, @Nullable Divider divider, @NonNull DisplayController displayController, @NonNull PipAnimationController pipAnimationController) { @NonNull PipAnimationController pipAnimationController, @NonNull PipUiEventLogger pipUiEventLogger) { mMainHandler = new Handler(Looper.getMainLooper()); mUpdateHandler = new Handler(PipUpdateThread.get().getLooper(), mUpdateCallbacks); mPipBoundsHandler = boundsHandler; Loading @@ -214,6 +216,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements .getInteger(R.integer.config_pipResizeAnimationDuration); mSurfaceTransactionHelper = surfaceTransactionHelper; mPipAnimationController = pipAnimationController; mPipUiEventLoggerLogger = pipUiEventLogger; mSurfaceControlTransactionFactory = SurfaceControl.Transaction::new; mSplitDivider = divider; displayController.addDisplayWindowListener(this); Loading Loading @@ -276,6 +279,8 @@ public class PipTaskOrganizer extends TaskOrganizer implements return; } mPipUiEventLoggerLogger.log( PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN); final Configuration initialConfig = mInitialState.remove(mToken.asBinder()); final boolean orientationDiffers = initialConfig.windowConfiguration.getRotation() != mPipBoundsHandler.getDisplayRotation(); Loading Loading @@ -375,6 +380,9 @@ public class PipTaskOrganizer extends TaskOrganizer implements mInitialState.put(mToken.asBinder(), new Configuration(mTaskInfo.configuration)); mPictureInPictureParams = mTaskInfo.pictureInPictureParams; mPipUiEventLoggerLogger.setTaskInfo(mTaskInfo); mPipUiEventLoggerLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_ENTER); if (mShouldDeferEnteringPip) { if (DEBUG) Log.d(TAG, "Defer entering PiP animation, fixed rotation is ongoing"); // if deferred, hide the surface till fixed rotation is completed Loading Loading @@ -507,6 +515,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements mPictureInPictureParams = null; mInPip = false; mExitingPip = false; mPipUiEventLoggerLogger.setTaskInfo(null); } @Override Loading Loading @@ -622,7 +631,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements * {@link PictureInPictureParams} would affect the bounds. */ private boolean applyPictureInPictureParams(@NonNull PictureInPictureParams params) { final boolean changed = (mPictureInPictureParams == null) ? true : !Objects.equals( final boolean changed = (mPictureInPictureParams == null) || !Objects.equals( mPictureInPictureParams.getAspectRatioRational(), params.getAspectRatioRational()); if (changed) { mPictureInPictureParams = params; Loading packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.pip; import android.app.TaskInfo; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import javax.inject.Inject; import javax.inject.Singleton; /** * Helper class that ends PiP log to UiEvent, see also go/uievent */ @Singleton public class PipUiEventLogger { private final UiEventLogger mUiEventLogger; private TaskInfo mTaskInfo; @Inject public PipUiEventLogger(UiEventLogger uiEventLogger) { mUiEventLogger = uiEventLogger; } public void setTaskInfo(TaskInfo taskInfo) { mTaskInfo = taskInfo; } /** * Sends log via UiEvent, reference go/uievent for how to debug locally */ public void log(PipUiEventEnum event) { if (mTaskInfo == null) { return; } mUiEventLogger.log(event, mTaskInfo.userId, mTaskInfo.topActivity.getPackageName()); } /** * Enums for logging the PiP events to UiEvent */ public enum PipUiEventEnum implements UiEventLogger.UiEventEnum { @UiEvent(doc = "Activity enters picture-in-picture mode") PICTURE_IN_PICTURE_ENTER(603), @UiEvent(doc = "Expands from picture-in-picture to fullscreen") PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN(604), @UiEvent(doc = "Removes picture-in-picture by tap close button") PICTURE_IN_PICTURE_TAP_TO_REMOVE(605), @UiEvent(doc = "Removes picture-in-picture by drag to dismiss area") PICTURE_IN_PICTURE_DRAG_TO_REMOVE(606), @UiEvent(doc = "Shows picture-in-picture menu") PICTURE_IN_PICTURE_SHOW_MENU(607), @UiEvent(doc = "Hides picture-in-picture menu") PICTURE_IN_PICTURE_HIDE_MENU(608), @UiEvent(doc = "Changes the aspect ratio of picture-in-picture window. This is inherited" + " from previous Tron-based logging and currently not in use.") PICTURE_IN_PICTURE_CHANGE_ASPECT_RATIO(609), @UiEvent(doc = "User resize of the picture-in-picture window") PICTURE_IN_PICTURE_RESIZE(610); private final int mId; PipUiEventEnum(int id) { mId = id; } @Override public int getId() { return mId; } } } packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java +5 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.systemui.pip.BasePipManager; import com.android.systemui.pip.PipBoundsHandler; import com.android.systemui.pip.PipSnapAlgorithm; import com.android.systemui.pip.PipTaskOrganizer; import com.android.systemui.pip.PipUiEventLogger; import com.android.systemui.shared.recents.IPinnedStackAnimationListener; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.InputConsumerController; Loading Loading @@ -241,7 +242,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio PipBoundsHandler pipBoundsHandler, PipSnapAlgorithm pipSnapAlgorithm, PipTaskOrganizer pipTaskOrganizer, SysUiState sysUiState) { SysUiState sysUiState, PipUiEventLogger pipUiEventLogger) { mContext = context; mActivityManager = ActivityManager.getService(); Loading @@ -262,7 +264,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio mInputConsumerController); mTouchHandler = new PipTouchHandler(context, mActivityManager, mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer, floatingContentCoordinator, deviceConfig, pipSnapAlgorithm, sysUiState); floatingContentCoordinator, deviceConfig, pipSnapAlgorithm, sysUiState, pipUiEventLogger); mAppOpsListener = new PipAppOpsListener(context, mActivityManager, mTouchHandler.getMotionHelper()); displayController.addDisplayChangingController(mRotationController); Loading packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java +7 −2 Original line number Diff line number Diff line Loading @@ -53,12 +53,12 @@ import com.android.systemui.R; import com.android.systemui.model.SysUiState; import com.android.systemui.pip.PipBoundsHandler; import com.android.systemui.pip.PipTaskOrganizer; import com.android.systemui.pip.PipUiEventLogger; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; import java.util.concurrent.Executor; import java.util.function.Function; import java.util.function.Supplier; /** * Helper on top of PipTouchHandler that handles inputs OUTSIDE of the PIP window, which is used to Loading Loading @@ -110,13 +110,15 @@ public class PipResizeGestureHandler { private InputMonitor mInputMonitor; private InputEventReceiver mInputEventReceiver; private PipTaskOrganizer mPipTaskOrganizer; private PipUiEventLogger mPipUiEventLogger; private int mCtrlType; public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler, PipMotionHelper motionHelper, DeviceConfigProxy deviceConfig, PipTaskOrganizer pipTaskOrganizer, Function<Rect, Rect> movementBoundsSupplier, Runnable updateMovementBoundsRunnable, SysUiState sysUiState) { Runnable updateMovementBoundsRunnable, SysUiState sysUiState, PipUiEventLogger pipUiEventLogger) { mContext = context; mDisplayId = context.getDisplayId(); mMainExecutor = context.getMainExecutor(); Loading @@ -126,6 +128,7 @@ public class PipResizeGestureHandler { mMovementBoundsSupplier = movementBoundsSupplier; mUpdateMovementBoundsRunnable = updateMovementBoundsRunnable; mSysUiState = sysUiState; mPipUiEventLogger = pipUiEventLogger; context.getDisplay().getRealSize(mMaxSize); reloadResources(); Loading Loading @@ -338,6 +341,8 @@ public class PipResizeGestureHandler { resetState(); }); }); mPipUiEventLogger.log( PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_RESIZE); } else { resetState(); } Loading Loading
core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java +0 −81 Original line number Diff line number Diff line Loading @@ -16,14 +16,8 @@ package com.android.internal.os.logging; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.util.Pair; import android.view.WindowManager.LayoutParams; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.FrameworkStatsLog; /** Loading @@ -32,81 +26,6 @@ import com.android.internal.util.FrameworkStatsLog; */ public class MetricsLoggerWrapper { private static final int METRIC_VALUE_DISMISSED_BY_TAP = 0; private static final int METRIC_VALUE_DISMISSED_BY_DRAG = 1; public static void logPictureInPictureDismissByTap(Context context, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED, METRIC_VALUE_DISMISSED_BY_TAP); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED); } public static void logPictureInPictureDismissByDrag(Context context, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED, METRIC_VALUE_DISMISSED_BY_DRAG); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED); } public static void logPictureInPictureMinimize(Context context, boolean isMinimized, Pair<ComponentName, Integer> topActivityInfo) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_MINIMIZED, isMinimized); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, getUid(context, topActivityInfo.first, topActivityInfo.second), topActivityInfo.first.flattenToString(), FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__MINIMIZED); } /** * Get uid from component name and user Id * @return uid. -1 if not found. */ private static int getUid(Context context, ComponentName componentName, int userId) { int uid = -1; if (componentName == null) { return uid; } try { uid = context.getPackageManager().getApplicationInfoAsUser( componentName.getPackageName(), 0, userId).uid; } catch (NameNotFoundException e) { } return uid; } public static void logPictureInPictureMenuVisible(Context context, boolean menuStateFull) { MetricsLogger.visibility(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_MENU, menuStateFull); } public static void logPictureInPictureEnter(Context context, int uid, String shortComponentName, boolean supportsEnterPipOnTaskSwitch) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_ENTERED, supportsEnterPipOnTaskSwitch); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid, shortComponentName, FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__ENTERED); } public static void logPictureInPictureFullScreen(Context context, int uid, String shortComponentName) { MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_EXPANDED_TO_FULLSCREEN); FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid, shortComponentName, FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN); } public static void logAppOverlayEnter(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) { if (changed) { if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) { Loading
packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java +11 −2 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements private final Handler mUpdateHandler; private final PipBoundsHandler mPipBoundsHandler; private final PipAnimationController mPipAnimationController; private final PipUiEventLogger mPipUiEventLoggerLogger; private final List<PipTransitionCallback> mPipTransitionCallbacks = new ArrayList<>(); private final Rect mLastReportedBounds = new Rect(); private final int mEnterExitAnimationDuration; Loading Loading @@ -206,7 +207,8 @@ public class PipTaskOrganizer extends TaskOrganizer implements @NonNull PipSurfaceTransactionHelper surfaceTransactionHelper, @Nullable Divider divider, @NonNull DisplayController displayController, @NonNull PipAnimationController pipAnimationController) { @NonNull PipAnimationController pipAnimationController, @NonNull PipUiEventLogger pipUiEventLogger) { mMainHandler = new Handler(Looper.getMainLooper()); mUpdateHandler = new Handler(PipUpdateThread.get().getLooper(), mUpdateCallbacks); mPipBoundsHandler = boundsHandler; Loading @@ -214,6 +216,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements .getInteger(R.integer.config_pipResizeAnimationDuration); mSurfaceTransactionHelper = surfaceTransactionHelper; mPipAnimationController = pipAnimationController; mPipUiEventLoggerLogger = pipUiEventLogger; mSurfaceControlTransactionFactory = SurfaceControl.Transaction::new; mSplitDivider = divider; displayController.addDisplayWindowListener(this); Loading Loading @@ -276,6 +279,8 @@ public class PipTaskOrganizer extends TaskOrganizer implements return; } mPipUiEventLoggerLogger.log( PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN); final Configuration initialConfig = mInitialState.remove(mToken.asBinder()); final boolean orientationDiffers = initialConfig.windowConfiguration.getRotation() != mPipBoundsHandler.getDisplayRotation(); Loading Loading @@ -375,6 +380,9 @@ public class PipTaskOrganizer extends TaskOrganizer implements mInitialState.put(mToken.asBinder(), new Configuration(mTaskInfo.configuration)); mPictureInPictureParams = mTaskInfo.pictureInPictureParams; mPipUiEventLoggerLogger.setTaskInfo(mTaskInfo); mPipUiEventLoggerLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_ENTER); if (mShouldDeferEnteringPip) { if (DEBUG) Log.d(TAG, "Defer entering PiP animation, fixed rotation is ongoing"); // if deferred, hide the surface till fixed rotation is completed Loading Loading @@ -507,6 +515,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements mPictureInPictureParams = null; mInPip = false; mExitingPip = false; mPipUiEventLoggerLogger.setTaskInfo(null); } @Override Loading Loading @@ -622,7 +631,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements * {@link PictureInPictureParams} would affect the bounds. */ private boolean applyPictureInPictureParams(@NonNull PictureInPictureParams params) { final boolean changed = (mPictureInPictureParams == null) ? true : !Objects.equals( final boolean changed = (mPictureInPictureParams == null) || !Objects.equals( mPictureInPictureParams.getAspectRatioRational(), params.getAspectRatioRational()); if (changed) { mPictureInPictureParams = params; Loading
packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.pip; import android.app.TaskInfo; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import javax.inject.Inject; import javax.inject.Singleton; /** * Helper class that ends PiP log to UiEvent, see also go/uievent */ @Singleton public class PipUiEventLogger { private final UiEventLogger mUiEventLogger; private TaskInfo mTaskInfo; @Inject public PipUiEventLogger(UiEventLogger uiEventLogger) { mUiEventLogger = uiEventLogger; } public void setTaskInfo(TaskInfo taskInfo) { mTaskInfo = taskInfo; } /** * Sends log via UiEvent, reference go/uievent for how to debug locally */ public void log(PipUiEventEnum event) { if (mTaskInfo == null) { return; } mUiEventLogger.log(event, mTaskInfo.userId, mTaskInfo.topActivity.getPackageName()); } /** * Enums for logging the PiP events to UiEvent */ public enum PipUiEventEnum implements UiEventLogger.UiEventEnum { @UiEvent(doc = "Activity enters picture-in-picture mode") PICTURE_IN_PICTURE_ENTER(603), @UiEvent(doc = "Expands from picture-in-picture to fullscreen") PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN(604), @UiEvent(doc = "Removes picture-in-picture by tap close button") PICTURE_IN_PICTURE_TAP_TO_REMOVE(605), @UiEvent(doc = "Removes picture-in-picture by drag to dismiss area") PICTURE_IN_PICTURE_DRAG_TO_REMOVE(606), @UiEvent(doc = "Shows picture-in-picture menu") PICTURE_IN_PICTURE_SHOW_MENU(607), @UiEvent(doc = "Hides picture-in-picture menu") PICTURE_IN_PICTURE_HIDE_MENU(608), @UiEvent(doc = "Changes the aspect ratio of picture-in-picture window. This is inherited" + " from previous Tron-based logging and currently not in use.") PICTURE_IN_PICTURE_CHANGE_ASPECT_RATIO(609), @UiEvent(doc = "User resize of the picture-in-picture window") PICTURE_IN_PICTURE_RESIZE(610); private final int mId; PipUiEventEnum(int id) { mId = id; } @Override public int getId() { return mId; } } }
packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java +5 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.systemui.pip.BasePipManager; import com.android.systemui.pip.PipBoundsHandler; import com.android.systemui.pip.PipSnapAlgorithm; import com.android.systemui.pip.PipTaskOrganizer; import com.android.systemui.pip.PipUiEventLogger; import com.android.systemui.shared.recents.IPinnedStackAnimationListener; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.InputConsumerController; Loading Loading @@ -241,7 +242,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio PipBoundsHandler pipBoundsHandler, PipSnapAlgorithm pipSnapAlgorithm, PipTaskOrganizer pipTaskOrganizer, SysUiState sysUiState) { SysUiState sysUiState, PipUiEventLogger pipUiEventLogger) { mContext = context; mActivityManager = ActivityManager.getService(); Loading @@ -262,7 +264,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio mInputConsumerController); mTouchHandler = new PipTouchHandler(context, mActivityManager, mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer, floatingContentCoordinator, deviceConfig, pipSnapAlgorithm, sysUiState); floatingContentCoordinator, deviceConfig, pipSnapAlgorithm, sysUiState, pipUiEventLogger); mAppOpsListener = new PipAppOpsListener(context, mActivityManager, mTouchHandler.getMotionHelper()); displayController.addDisplayChangingController(mRotationController); Loading
packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java +7 −2 Original line number Diff line number Diff line Loading @@ -53,12 +53,12 @@ import com.android.systemui.R; import com.android.systemui.model.SysUiState; import com.android.systemui.pip.PipBoundsHandler; import com.android.systemui.pip.PipTaskOrganizer; import com.android.systemui.pip.PipUiEventLogger; import com.android.systemui.util.DeviceConfigProxy; import java.io.PrintWriter; import java.util.concurrent.Executor; import java.util.function.Function; import java.util.function.Supplier; /** * Helper on top of PipTouchHandler that handles inputs OUTSIDE of the PIP window, which is used to Loading Loading @@ -110,13 +110,15 @@ public class PipResizeGestureHandler { private InputMonitor mInputMonitor; private InputEventReceiver mInputEventReceiver; private PipTaskOrganizer mPipTaskOrganizer; private PipUiEventLogger mPipUiEventLogger; private int mCtrlType; public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler, PipMotionHelper motionHelper, DeviceConfigProxy deviceConfig, PipTaskOrganizer pipTaskOrganizer, Function<Rect, Rect> movementBoundsSupplier, Runnable updateMovementBoundsRunnable, SysUiState sysUiState) { Runnable updateMovementBoundsRunnable, SysUiState sysUiState, PipUiEventLogger pipUiEventLogger) { mContext = context; mDisplayId = context.getDisplayId(); mMainExecutor = context.getMainExecutor(); Loading @@ -126,6 +128,7 @@ public class PipResizeGestureHandler { mMovementBoundsSupplier = movementBoundsSupplier; mUpdateMovementBoundsRunnable = updateMovementBoundsRunnable; mSysUiState = sysUiState; mPipUiEventLogger = pipUiEventLogger; context.getDisplay().getRealSize(mMaxSize); reloadResources(); Loading Loading @@ -338,6 +341,8 @@ public class PipResizeGestureHandler { resetState(); }); }); mPipUiEventLogger.log( PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_RESIZE); } else { resetState(); } Loading