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

Commit 6c84a680 authored by tomnatan's avatar tomnatan Committed by Automerger Merge Worker
Browse files

Log the CameraCompatControlEventReported atom. am: 4e5bb886 am: a725b0b7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16510181

Change-Id: Iff891fedb7d2d1b1152ae56d6ea47832d7ea8241
parents 0f75b8e3 a725b0b7
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
@@ -60,6 +60,11 @@ import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_T
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_WARM_LAUNCH;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__NOT_LETTERBOXED;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__NOT_VISIBLE;
import static com.android.internal.util.FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__APPEARED_APPLY_TREATMENT;
import static com.android.internal.util.FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__APPEARED_REVERT_TREATMENT;
import static com.android.internal.util.FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_APPLY_TREATMENT;
import static com.android.internal.util.FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_DISMISS;
import static com.android.internal.util.FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_REVERT_TREATMENT;
import static com.android.server.am.MemoryStatUtil.MemoryStat;
import static com.android.server.am.MemoryStatUtil.readMemoryStatFromFilesystem;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_METRICS;
@@ -72,6 +77,8 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityOptions;
import android.app.ActivityOptions.SourceInfo;
import android.app.TaskInfo;
import android.app.TaskInfo.CameraCompatControlState;
import android.app.WaitResult;
import android.app.WindowConfiguration.WindowingMode;
import android.content.ComponentName;
@@ -1374,6 +1381,71 @@ class ActivityMetricsLogger {
        }
    }

    /**
     * Logs the Camera Compat Control appeared event that corresponds to the given {@code state}
     * with the given {@code packageUid}.
     */
    void logCameraCompatControlAppearedEventReported(@CameraCompatControlState int state,
            int packageUid) {
        switch (state) {
            case TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_SUGGESTED:
                logCameraCompatControlEventReported(
                        CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__APPEARED_APPLY_TREATMENT,
                        packageUid);
                break;
            case TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_APPLIED:
                logCameraCompatControlEventReported(
                        CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__APPEARED_REVERT_TREATMENT,
                        packageUid);
                break;
            case TaskInfo.CAMERA_COMPAT_CONTROL_HIDDEN:
                // Nothing to log.
                break;
            default:
                Slog.w(TAG, "Unexpected state in logCameraCompatControlAppearedEventReported: "
                        + state);
                break;
        }
    }

    /**
     * Logs the Camera Compat Control clicked event that corresponds to the given {@code state}
     * with the given {@code packageUid}.
     */
    void logCameraCompatControlClickedEventReported(@CameraCompatControlState int state,
            int packageUid) {
        switch (state) {
            case TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_APPLIED:
                logCameraCompatControlEventReported(
                        CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_APPLY_TREATMENT,
                        packageUid);
                break;
            case TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_SUGGESTED:
                logCameraCompatControlEventReported(
                        CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_REVERT_TREATMENT,
                        packageUid);
                break;
            case TaskInfo.CAMERA_COMPAT_CONTROL_DISMISSED:
                logCameraCompatControlEventReported(
                        CAMERA_COMPAT_CONTROL_EVENT_REPORTED__EVENT__CLICKED_DISMISS,
                        packageUid);
                break;
            default:
                Slog.w(TAG, "Unexpected state in logCameraCompatControlAppearedEventReported: "
                        + state);
                break;
        }
    }

    private void logCameraCompatControlEventReported(int event, int packageUid) {
        FrameworkStatsLog.write(FrameworkStatsLog.CAMERA_COMPAT_CONTROL_EVENT_REPORTED, packageUid,
                event);
        if (DEBUG_METRICS) {
            Slog.i(TAG, String.format("CAMERA_COMPAT_CONTROL_EVENT_REPORTED(%s, %s)", packageUid,
                    event));
        }
    }

    private ArtManagerInternal getArtManagerInternal() {
        if (mArtManagerInternal == null) {
            // Note that this may be null.
+4 −0
Original line number Diff line number Diff line
@@ -1615,6 +1615,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (!changed) {
            return;
        }
        mTaskSupervisor.getActivityMetricsLogger().logCameraCompatControlAppearedEventReported(
                newCameraCompatControlState, info.applicationInfo.uid);
        if (newCameraCompatControlState == TaskInfo.CAMERA_COMPAT_CONTROL_HIDDEN) {
            mCameraCompatControlClickedByUser = false;
            mCompatCameraControlCallback = null;
@@ -1637,6 +1639,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (!changed) {
            return;
        }
        mTaskSupervisor.getActivityMetricsLogger().logCameraCompatControlClickedEventReported(
                state, info.applicationInfo.uid);
        if (state == TaskInfo.CAMERA_COMPAT_CONTROL_DISMISSED) {
            mCompatCameraControlCallback = null;
            return;