From f79810b58fa51417a253ca2717499aaec52b0aaa Mon Sep 17 00:00:00 2001 From: jiayongqiang Date: Sun, 5 Mar 2023 17:41:20 +0800 Subject: [PATCH] Add package name to WorkSource for Wakelock acquired from WindowManage. The PowerManager.SCREEN_BRIGHT_WAKE_LOCK wakelocks that acquired from WindowManager show the package name when the approach of WakeLock.toString() is called. This is more useful to check which app is holding a type of SCREEN_BRIGHT_WAKE_LOCK wakelock. Bug: 274493538 Test: adb shell dumpsys power | grep -Ei "Wake Locks:" -A Change-Id: If4722c73136835771a1eb26a1b6f411b28550009 Signed-off-by: jiayongqiang --- services/core/java/com/android/server/wm/DisplayContent.java | 3 ++- services/core/java/com/android/server/wm/Session.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 71c80fb9a97ce..4616d291946a4 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1161,7 +1161,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp private void finishHoldScreenUpdate() { final boolean hold = mTmpHoldScreenWindow != null; if (hold && mTmpHoldScreenWindow != mHoldScreenWindow) { - mHoldScreenWakeLock.setWorkSource(new WorkSource(mTmpHoldScreenWindow.mSession.mUid)); + mHoldScreenWakeLock.setWorkSource(new WorkSource(mTmpHoldScreenWindow.mSession.mUid, + mTmpHoldScreenWindow.mSession.mPackageName)); } mHoldScreenWindow = mTmpHoldScreenWindow; mTmpHoldScreenWindow = null; diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java index b9739f03bec5f..b64122d5ca72c 100644 --- a/services/core/java/com/android/server/wm/Session.java +++ b/services/core/java/com/android/server/wm/Session.java @@ -115,7 +115,7 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient { private boolean mShowingAlertWindowNotificationAllowed; private boolean mClientDead = false; private float mLastReportedAnimatorScale; - private String mPackageName; + protected String mPackageName; private String mRelayoutTag; private final InsetsVisibilities mDummyRequestedVisibilities = new InsetsVisibilities(); private final InsetsSourceControl[] mDummyControls = new InsetsSourceControl[0];