summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hongwei Wang <hwwang@google.com> 2020-09-11 17:03:03 -0700
committer Hongwei Wang <hwwang@google.com> 2020-09-15 12:53:11 -0700
commitc993b0314baf13bd2f9aba82528a841e4b217c23 (patch)
tree6013e809e1d711606559b6ad04fbcc6625a10c90
parente9897deb31553c96fcce8e7d20500afc65a41766 (diff)
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
-rw-r--r--packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java33
-rw-r--r--packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java6
2 files changed, 32 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java b/packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java
index 8bcaa8ab5404..22adbb77d70a 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipUiEventLogger.java
@@ -17,6 +17,7 @@
package com.android.systemui.pip;
import android.app.TaskInfo;
+import android.content.pm.PackageManager;
import com.android.internal.logging.UiEvent;
import com.android.internal.logging.UiEventLogger;
@@ -28,26 +29,48 @@ import com.android.systemui.dagger.SysUISingleton;
@SysUISingleton
public class PipUiEventLogger {
+ private static final int INVALID_PACKAGE_UID = -1;
+
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;
+ mPackageManager = packageManager;
}
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
*/
public void log(PipUiEventEnum event) {
- if (mTaskInfo == null) {
+ if (mPackageName == null || mPackageUid == INVALID_PACKAGE_UID) {
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;
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
index 3faa8a7996b7..7c129ac92fe3 100644
--- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
+++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
@@ -17,6 +17,7 @@
package com.android.systemui.wmshell;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.IWindowManager;
@@ -76,8 +77,9 @@ public abstract class WMShellBaseModule {
@SysUISingleton
@Provides
- static PipUiEventLogger providePipUiEventLogger(UiEventLogger uiEventLogger) {
- return new PipUiEventLogger(uiEventLogger);
+ static PipUiEventLogger providePipUiEventLogger(UiEventLogger uiEventLogger,
+ PackageManager packageManager) {
+ return new PipUiEventLogger(uiEventLogger, packageManager);
}
@SysUISingleton