Merge "Rem Dependency#get from WMShell and GarbageMonitor"

This commit is contained in:
Dave Mankoff
2022-01-26 01:36:55 +00:00
committed by Android (Google) Code Review
4 changed files with 19 additions and 21 deletions

View File

@@ -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<Long> 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 =

View File

@@ -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);

View File

@@ -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());
}

View File

@@ -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