From 4e1b5c7bb62508bb62c67c8e02cdd36841e7098e Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Tue, 25 Jan 2022 17:27:37 -0500 Subject: [PATCH] Rem Dependency#get from WMShell and GarbageMonitor Bug: 138786270 Test: manual Change-Id: I6a24cc23c33722f0fbeb0e288ec718fa30a47706 --- .../android/systemui/util/leak/DumpTruck.java | 27 ++++++++----------- .../systemui/util/leak/GarbageMonitor.java | 2 +- .../com/android/systemui/wmshell/WMShell.java | 7 ++--- .../android/systemui/wmshell/WMShellTest.java | 4 ++- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java b/packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java index be5e0a0b12c5a..089650c0fc54a 100644 --- a/packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java +++ b/packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java @@ -26,8 +26,6 @@ import android.util.Log; import androidx.core.content.FileProvider; -import com.android.systemui.Dependency; - import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -35,7 +33,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -53,12 +50,14 @@ public class DumpTruck { private static final int BUFSIZ = 1024 * 1024; // 1MB private final Context context; + private GarbageMonitor mGarbageMonitor; private Uri hprofUri; private long rss; final StringBuilder body = new StringBuilder(); - public DumpTruck(Context context) { + public DumpTruck(Context context, GarbageMonitor garbageMonitor) { this.context = context; + mGarbageMonitor = garbageMonitor; } /** @@ -68,8 +67,6 @@ public class DumpTruck { * @return this, for chaining */ public DumpTruck captureHeaps(List pids) { - final GarbageMonitor gm = Dependency.get(GarbageMonitor.class); - final File dumpDir = new File(context.getCacheDir(), FILEPROVIDER_PATH); dumpDir.mkdirs(); hprofUri = null; @@ -83,16 +80,14 @@ public class DumpTruck { for (Long pidL : pids) { final int pid = pidL.intValue(); body.append(" pid ").append(pid); - if (gm != null) { - GarbageMonitor.ProcessMemInfo info = gm.getMemInfo(pid); - if (info != null) { - body.append(":") - .append(" up=") - .append(info.getUptime()) - .append(" rss=") - .append(info.currentRss); - rss = info.currentRss; - } + GarbageMonitor.ProcessMemInfo info = mGarbageMonitor.getMemInfo(pid); + if (info != null) { + body.append(":") + .append(" up=") + .append(info.getUptime()) + .append(" rss=") + .append(info.currentRss); + rss = info.currentRss; } if (pid == myPid) { final String path = diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java index 612b7cb100071..9fed158563d31 100644 --- a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java +++ b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java @@ -150,7 +150,7 @@ public class GarbageMonitor implements Dumpable { mTrackedGarbage = leakDetector.getTrackedGarbage(); mLeakReporter = leakReporter; - mDumpTruck = new DumpTruck(mContext); + mDumpTruck = new DumpTruck(mContext, this); dumpManager.registerDumpable(getClass().getSimpleName(), this); diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java index 31b17f8dd11dd..6fefce2be19b1 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java @@ -41,7 +41,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.CoreStartable; -import com.android.systemui.Dependency; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.WMComponent; import com.android.systemui.dagger.qualifiers.Main; @@ -125,6 +124,7 @@ public final class WMShell extends CoreStartable private final SysUiState mSysUiState; private final WakefulnessLifecycle mWakefulnessLifecycle; private final ProtoTracer mProtoTracer; + private final UserInfoController mUserInfoController; private final Executor mSysUiMainExecutor; private boolean mIsSysUiStateValid; @@ -153,6 +153,7 @@ public final class WMShell extends CoreStartable SysUiState sysUiState, ProtoTracer protoTracer, WakefulnessLifecycle wakefulnessLifecycle, + UserInfoController userInfoController, @Main Executor sysUiMainExecutor) { super(context); mCommandQueue = commandQueue; @@ -171,6 +172,7 @@ public final class WMShell extends CoreStartable mShellCommandHandler = shellCommandHandler; mCompatUIOptional = sizeCompatUIOptional; mDragAndDropOptional = dragAndDropOptional; + mUserInfoController = userInfoController; mSysUiMainExecutor = sysUiMainExecutor; } @@ -231,8 +233,7 @@ public final class WMShell extends CoreStartable }); // The media session listener needs to be re-registered when switching users - UserInfoController userInfoController = Dependency.get(UserInfoController.class); - userInfoController.addCallback((String name, Drawable picture, String userAccount) -> + mUserInfoController.addCallback((String name, Drawable picture, String userAccount) -> pip.registerSessionListenerForCurrentUser()); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java index 2f2e536322db2..6593823183f8d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java @@ -32,6 +32,7 @@ import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.policy.ConfigurationController; +import com.android.systemui.statusbar.policy.UserInfoController; import com.android.systemui.tracing.ProtoTracer; import com.android.wm.shell.ShellCommandHandler; import com.android.wm.shell.common.ShellExecutor; @@ -79,6 +80,7 @@ public class WMShellTest extends SysuiTestCase { @Mock ProtoTracer mProtoTracer; @Mock ShellCommandHandler mShellCommandHandler; @Mock CompatUI mCompatUI; + @Mock UserInfoController mUserInfoController; @Mock ShellExecutor mSysUiMainExecutor; @Mock DragAndDrop mDragAndDrop; @@ -92,7 +94,7 @@ public class WMShellTest extends SysuiTestCase { Optional.of(mDragAndDrop), mCommandQueue, mConfigurationController, mKeyguardUpdateMonitor, mNavigationModeController, mScreenLifecycle, mSysUiState, mProtoTracer, - mWakefulnessLifecycle, mSysUiMainExecutor); + mWakefulnessLifecycle, mUserInfoController, mSysUiMainExecutor); } @Test