Merge "Avoid double logging for app overlay"

This commit is contained in:
Chenjie Yu
2018-03-03 03:26:23 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 18 deletions

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.util.Pair;
import android.util.StatsLog;
import android.view.WindowManager.LayoutParams;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -103,13 +104,27 @@ public class MetricsLoggerWrapper {
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 logAppOverlayEnter(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) {
if (changed) {
if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) {
StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, true,
StatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
} else if (!usingAlertWindow){
StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, false,
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);
public static void logAppOverlayExit(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) {
if (changed) {
if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) {
StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, true,
StatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
} else if (!usingAlertWindow){
StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, false,
StatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
}
}
}
}

View File

@@ -509,14 +509,10 @@ 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);
}
MetricsLoggerWrapper.logAppOverlayEnter(mUid, mPackageName, changed, type, true);
} else {
changed = mAlertWindowSurfaces.remove(surfaceController);
if (changed) {
MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, true);
}
MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, changed, type, true);
}
if (changed) {
@@ -537,14 +533,10 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
if (visible) {
changed = mAppOverlaySurfaces.add(surfaceController);
if (changed) {
MetricsLoggerWrapper.logAppOverlayEnter(mUid, mPackageName, false);
}
MetricsLoggerWrapper.logAppOverlayEnter(mUid, mPackageName, changed, type, false);
} else {
changed = mAppOverlaySurfaces.remove(surfaceController);
if (changed) {
MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, false);
}
MetricsLoggerWrapper.logAppOverlayExit(mUid, mPackageName, changed, type, false);
}
if (changed) {