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

Commit e123080e authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Add exit logs to various points

* This solution still isn't comprehensive. We're
missing exits from things like screen off,
swiping up from overview, etc. However, we probably need
to do a much larger overhaul of how we're logging metrics and be
better about defining what "enter" and "exit" mean
* Couple minor bug-fixes

Bug: 349930269
Test: Tested via logging
Flag: EXEMPT bugfix
Change-Id: I096e0a6bf11edf4bcf1b9fd0964285ecd812996c
parent 807c9c04
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED_
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__CHILD_TASK_ENTER_PIP;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DEVICE_FOLDED;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DRAG_DIVIDER;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_REQUEST;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_SHORTCUT;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__DESKTOP_MODE;
import static com.android.internal.util.FrameworkStatsLog.SPLITSCREEN_UICHANGED__EXIT_REASON__RECREATE_SPLIT;
@@ -44,6 +45,7 @@ import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DEVICE_FOLDED;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DRAG_DIVIDER;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTOP_MODE;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_FULLSCREEN_REQUEST;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_FULLSCREEN_SHORTCUT;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_RECREATE_SPLIT;
import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_RETURN_HOME;
@@ -196,6 +198,8 @@ public class SplitscreenEventLogger {
                return SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_SHORTCUT;
            case EXIT_REASON_DESKTOP_MODE:
                return SPLITSCREEN_UICHANGED__EXIT_REASON__DESKTOP_MODE;
            case EXIT_REASON_FULLSCREEN_REQUEST:
                return SPLITSCREEN_UICHANGED__EXIT_REASON__FULLSCREEN_REQUEST;
            case EXIT_REASON_UNKNOWN:
                // Fall through
            default:
+10 −2
Original line number Diff line number Diff line
@@ -1167,6 +1167,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        mSplitTransitions.startDismissTransition(wct, this, mLastActiveStage, reason);
        setSplitsVisible(false);
        mBreakOnNextWake = false;
        logExit(reason);
    }

    void exitSplitScreenOnHide(boolean exitSplitScreenOnHide) {
@@ -1257,6 +1258,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        final WindowContainerTransaction wct = new WindowContainerTransaction();
        prepareExitSplitScreen(stage, wct);
        mSplitTransitions.startDismissTransition(wct, this, stage, exitReason);
        logExit(exitReason);
    }

    /**
@@ -1353,6 +1355,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            mMainStage.doForAllChildTasks(taskId -> recentTasks.removeSplitPair(taskId));
            mSideStage.doForAllChildTasks(taskId -> recentTasks.removeSplitPair(taskId));
        });
        logExit(exitReason);
    }

    /**
@@ -1572,7 +1575,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        if (stage == STAGE_TYPE_MAIN) {
            mLogger.logMainStageAppChange(getMainStagePosition(), mMainStage.getTopChildTaskUid(),
                    mSplitLayout.isLeftRightSplit());
        } else {
        } else if (stage == STAGE_TYPE_SIDE) {
            mLogger.logSideStageAppChange(getSideStagePosition(), mSideStage.getTopChildTaskUid(),
                    mSplitLayout.isLeftRightSplit());
        }
@@ -2270,6 +2273,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        if (isOpening && inFullscreen) {
            // One task is opening into fullscreen mode, remove the corresponding split record.
            mRecentTasks.ifPresent(recentTasks -> recentTasks.removeSplitPair(triggerTask.taskId));
            logExit(EXIT_REASON_FULLSCREEN_REQUEST);
        }

        if (isSplitActive()) {
@@ -2397,6 +2401,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
            if (triggerTask != null) {
                mRecentTasks.ifPresent(
                        recentTasks -> recentTasks.removeSplitPair(triggerTask.taskId));
                logExit(EXIT_REASON_CHILD_TASK_ENTER_PIP);
            }
            @StageType int topStage = STAGE_TYPE_UNDEFINED;
            if (isSplitScreenVisible()) {
@@ -2738,7 +2743,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
                final int dismissTop = mainChild != null ? STAGE_TYPE_MAIN :
                        (sideChild != null ? STAGE_TYPE_SIDE : STAGE_TYPE_UNDEFINED);
                pendingEnter.cancel(
                        (cancelWct, cancelT) -> prepareExitSplitScreen(dismissTop, cancelWct));
                        (cancelWct, cancelT) -> {
                            prepareExitSplitScreen(dismissTop, cancelWct);
                            logExit(EXIT_REASON_UNKNOWN);
                        });
                Log.w(TAG, splitFailureMessage("startPendingEnterAnimation",
                        "launched 2 tasks in split, but didn't receive "
                        + "2 tasks in transition. Possibly one of them failed to launch"));