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

Commit a46c5310 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add atom and logging for app overlay"

parents 0d01987e e8904195
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ message Atom {
        ShutdownSequenceReported shutdown_sequence_reported = 56;
        BootSequenceReported boot_sequence_reported = 57;
        DaveyOccurred davey_occurred = 58;
        OverlayStateChanged overlay_state_changed = 59;
        // TODO: Reorder the numbering so that the most frequent occur events occur in the first 15.
    }

@@ -978,6 +979,25 @@ message PictureInPictureStateChanged {
    optional State state = 4;
}

/**
 * Logs overlay action
 * Logged from:
 *     services/core/java/com/android/server/wm/Session.java
 */
message OverlayStateChanged {
    optional int32 uid = 1;

    optional string package_name = 2;

    optional bool using_alert_window = 3;

    enum State {
        ENTERED = 1;
        EXITED = 2;
    }
    optional State state = 4;
}

/**
 * Pulls bytes transferred via wifi (Sum of foreground and background usage).
 *
+10 −0
Original line number Diff line number Diff line
@@ -96,4 +96,14 @@ public class MetricsLoggerWrapper {
                context.getApplicationInfo().className,
                StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN);
    }

    public static void logAppOverlayEnter(int uid, String packageName, boolean usingAlertWindow) {
        StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, usingAlertWindow,
                StatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
    }

    public static void logAppOverlayExit(int uid, String packageName, boolean usingAlertWindow) {
        StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, usingAlertWindow,
                StatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
    }
}
+13 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import android.view.SurfaceControl;
import android.view.SurfaceSession;
import android.view.WindowManager;

import com.android.internal.os.logging.MetricsLoggerWrapper;
import com.android.internal.view.IInputContext;
import com.android.internal.view.IInputMethodClient;
import com.android.internal.view.IInputMethodManager;
@@ -508,8 +509,14 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
            // on-going notification for the user to control their visibility.
            if (visible) {
                changed = mAlertWindowSurfaces.add(surfaceController);
                if (changed) {
                    MetricsLoggerWrapper.logAppOverlayEnter(mUid, mPackageName, true);
                }
            } else {
                changed = mAlertWindowSurfaces.remove(surfaceController);
                if (changed) {
                    MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, true);
                }
            }

            if (changed) {
@@ -530,8 +537,14 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {

        if (visible) {
            changed = mAppOverlaySurfaces.add(surfaceController);
            if (changed) {
                MetricsLoggerWrapper.logAppOverlayEnter(mUid, mPackageName, false);
            }
        } else {
            changed = mAppOverlaySurfaces.remove(surfaceController);
            if (changed) {
                MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, false);
            }
        }

        if (changed) {