Loading packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java +11 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; } /** Loading @@ -68,8 +67,6 @@ public class DumpTruck { * @return this, for chaining */ public DumpTruck captureHeaps(List<Long> pids) { final GarbageMonitor gm = Dependency.get(GarbageMonitor.class); final File dumpDir = new File(context.getCacheDir(), FILEPROVIDER_PATH); dumpDir.mkdirs(); hprofUri = null; Loading @@ -83,8 +80,7 @@ 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); GarbageMonitor.ProcessMemInfo info = mGarbageMonitor.getMemInfo(pid); if (info != null) { body.append(":") .append(" up=") Loading @@ -93,7 +89,6 @@ public class DumpTruck { .append(info.currentRss); rss = info.currentRss; } } if (pid == myPid) { final String path = new File(dumpDir, String.format("heap-%d.ahprof", pid)).getPath(); Loading packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java +4 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -171,6 +172,7 @@ public final class WMShell extends CoreStartable mShellCommandHandler = shellCommandHandler; mCompatUIOptional = sizeCompatUIOptional; mDragAndDropOptional = dragAndDropOptional; mUserInfoController = userInfoController; mSysUiMainExecutor = sysUiMainExecutor; } Loading Loading @@ -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()); } Loading packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading Loading
packages/SystemUI/src/com/android/systemui/util/leak/DumpTruck.java +11 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; } /** Loading @@ -68,8 +67,6 @@ public class DumpTruck { * @return this, for chaining */ public DumpTruck captureHeaps(List<Long> pids) { final GarbageMonitor gm = Dependency.get(GarbageMonitor.class); final File dumpDir = new File(context.getCacheDir(), FILEPROVIDER_PATH); dumpDir.mkdirs(); hprofUri = null; Loading @@ -83,8 +80,7 @@ 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); GarbageMonitor.ProcessMemInfo info = mGarbageMonitor.getMemInfo(pid); if (info != null) { body.append(":") .append(" up=") Loading @@ -93,7 +89,6 @@ public class DumpTruck { .append(info.currentRss); rss = info.currentRss; } } if (pid == myPid) { final String path = new File(dumpDir, String.format("heap-%d.ahprof", pid)).getPath(); Loading
packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java +4 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -171,6 +172,7 @@ public final class WMShell extends CoreStartable mShellCommandHandler = shellCommandHandler; mCompatUIOptional = sizeCompatUIOptional; mDragAndDropOptional = dragAndDropOptional; mUserInfoController = userInfoController; mSysUiMainExecutor = sysUiMainExecutor; } Loading Loading @@ -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()); } Loading
packages/SystemUI/tests/src/com/android/systemui/wmshell/WMShellTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading