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

Commit e8904195 authored by Chenjie Yu's avatar Chenjie Yu
Browse files

Add atom and logging for app overlay

Test: will add cts test
Change-Id: I8573abd8ec920467047fd0db9d9ce22173d84960
parent d1af7d80
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) {