diff options
| author | 2020-09-11 17:03:03 -0700 | |
|---|---|---|
| committer | 2020-09-15 12:53:11 -0700 | |
| commit | c993b0314baf13bd2f9aba82528a841e4b217c23 (patch) | |
| tree | 6013e809e1d711606559b6ad04fbcc6625a10c90 | |
| parent | e9897deb31553c96fcce8e7d20500afc65a41766 (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.java | 33 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java | 6 |
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 |