Log the application uid in PipUiEventLogger
Regression from ag/12132203, we should log the application uid instead of the running user id. Bug: 168342514 Test: $ANDROID_HOST_OUT/bin/statsd_testdrive -terse 90 Change-Id: If5d1bfe9ce38ea21bb9e5e13f51622f732dd85b9
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.pip;
|
package com.android.systemui.pip;
|
||||||
|
|
||||||
import android.app.TaskInfo;
|
import android.app.TaskInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
|
||||||
import com.android.internal.logging.UiEvent;
|
import com.android.internal.logging.UiEvent;
|
||||||
import com.android.internal.logging.UiEventLogger;
|
import com.android.internal.logging.UiEventLogger;
|
||||||
@@ -28,26 +29,48 @@ import com.android.systemui.dagger.SysUISingleton;
|
|||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
public class PipUiEventLogger {
|
public class PipUiEventLogger {
|
||||||
|
|
||||||
|
private static final int INVALID_PACKAGE_UID = -1;
|
||||||
|
|
||||||
private final UiEventLogger mUiEventLogger;
|
private final UiEventLogger mUiEventLogger;
|
||||||
|
private final PackageManager mPackageManager;
|
||||||
|
|
||||||
private TaskInfo mTaskInfo;
|
private String mPackageName;
|
||||||
|
private int mPackageUid = INVALID_PACKAGE_UID;
|
||||||
|
|
||||||
public PipUiEventLogger(UiEventLogger uiEventLogger) {
|
public PipUiEventLogger(UiEventLogger uiEventLogger, PackageManager packageManager) {
|
||||||
mUiEventLogger = uiEventLogger;
|
mUiEventLogger = uiEventLogger;
|
||||||
|
mPackageManager = packageManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaskInfo(TaskInfo taskInfo) {
|
public void setTaskInfo(TaskInfo taskInfo) {
|
||||||
mTaskInfo = taskInfo;
|
if (taskInfo == null) {
|
||||||
|
mPackageName = null;
|
||||||
|
mPackageUid = INVALID_PACKAGE_UID;
|
||||||
|
} else {
|
||||||
|
mPackageName = taskInfo.topActivity.getPackageName();
|
||||||
|
mPackageUid = getUid(mPackageName, taskInfo.userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends log via UiEvent, reference go/uievent for how to debug locally
|
* Sends log via UiEvent, reference go/uievent for how to debug locally
|
||||||
*/
|
*/
|
||||||
public void log(PipUiEventEnum event) {
|
public void log(PipUiEventEnum event) {
|
||||||
if (mTaskInfo == null) {
|
if (mPackageName == null || mPackageUid == INVALID_PACKAGE_UID) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mUiEventLogger.log(event, mTaskInfo.userId, mTaskInfo.topActivity.getPackageName());
|
mUiEventLogger.log(event, mPackageUid, mPackageName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getUid(String packageName, int userId) {
|
||||||
|
int uid = INVALID_PACKAGE_UID;
|
||||||
|
try {
|
||||||
|
uid = mPackageManager.getApplicationInfoAsUser(
|
||||||
|
packageName, 0 /* ApplicationInfoFlags */, userId).uid;
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
// do nothing.
|
||||||
|
}
|
||||||
|
return uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.wmshell;
|
package com.android.systemui.wmshell;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.view.IWindowManager;
|
import android.view.IWindowManager;
|
||||||
@@ -76,8 +77,9 @@ public abstract class WMShellBaseModule {
|
|||||||
|
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
@Provides
|
@Provides
|
||||||
static PipUiEventLogger providePipUiEventLogger(UiEventLogger uiEventLogger) {
|
static PipUiEventLogger providePipUiEventLogger(UiEventLogger uiEventLogger,
|
||||||
return new PipUiEventLogger(uiEventLogger);
|
PackageManager packageManager) {
|
||||||
|
return new PipUiEventLogger(uiEventLogger, packageManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
|
|||||||
Reference in New Issue
Block a user