Manually register Dumpables to DumpManager
Dependency.get() automatically registers its managed objects to the DumpManager if they implement Dumpable. However, if code is refactored that removes all usages of Dependency.get() in favor of Dagger injection, then there is no longer a guarantee that the class in question will be registered to DumpManager (and so included in bug reports). Instead, remove the auto-registration feature of Dependency in favor of manually registering all dumpables with the DumpManager. Bug: 198713580 Test: atest Change-Id: Ie02a44fb7da0b76bf53da874cc9eee030a1b9173 Merged-In: Ie02a44fb7da0b76bf53da874cc9eee030a1b9173
This commit is contained in:
@@ -597,11 +597,6 @@ public class Dependency {
|
||||
if (obj == null) {
|
||||
obj = createDependency(key);
|
||||
mDependencies.put(key, obj);
|
||||
|
||||
// TODO: Get dependencies to register themselves instead
|
||||
if (autoRegisterModulesForDump() && obj instanceof Dumpable) {
|
||||
mDumpManager.registerDumpable(obj.getClass().getName(), (Dumpable) obj);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
@@ -619,17 +614,6 @@ public class Dependency {
|
||||
return provider.createDependency();
|
||||
}
|
||||
|
||||
// Currently, there are situations in tests where we might create more than one instance of a
|
||||
// thing that should be a singleton: the "real" one (created by Dagger, usually as a result of
|
||||
// inflating a view), and a mocked one (injected into Dependency). If we register the mocked
|
||||
// one, the DumpManager will throw an exception complaining (rightly) that we have too many
|
||||
// things registered with that name. So in tests, we disable the auto-registration until the
|
||||
// root cause is fixed, i.e. inflated views in tests with Dagger dependencies.
|
||||
@VisibleForTesting
|
||||
protected boolean autoRegisterModulesForDump() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static Dependency sDependency;
|
||||
|
||||
/**
|
||||
|
||||
@@ -42,7 +42,8 @@ public class ForegroundServiceController {
|
||||
private final Handler mMainHandler;
|
||||
|
||||
@Inject
|
||||
public ForegroundServiceController(AppOpsController appOpsController,
|
||||
public ForegroundServiceController(
|
||||
AppOpsController appOpsController,
|
||||
@Main Handler mainHandler) {
|
||||
mMainHandler = mainHandler;
|
||||
appOpsController.addCallback(APP_OPS, (code, uid, packageName, active) -> {
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.android.internal.colorextraction.types.Tonal;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
@@ -50,19 +51,32 @@ public class SysuiColorExtractor extends ColorExtractor implements Dumpable,
|
||||
private final GradientColors mBackdropColors;
|
||||
|
||||
@Inject
|
||||
public SysuiColorExtractor(Context context, ConfigurationController configurationController) {
|
||||
this(context, new Tonal(context), configurationController,
|
||||
context.getSystemService(WallpaperManager.class), false /* immediately */);
|
||||
public SysuiColorExtractor(
|
||||
Context context,
|
||||
ConfigurationController configurationController,
|
||||
DumpManager dumpManager) {
|
||||
this(
|
||||
context,
|
||||
new Tonal(context),
|
||||
configurationController,
|
||||
context.getSystemService(WallpaperManager.class),
|
||||
dumpManager,
|
||||
false /* immediately */);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public SysuiColorExtractor(Context context, ExtractionType type,
|
||||
public SysuiColorExtractor(
|
||||
Context context,
|
||||
ExtractionType type,
|
||||
ConfigurationController configurationController,
|
||||
WallpaperManager wallpaperManager, boolean immediately) {
|
||||
WallpaperManager wallpaperManager,
|
||||
DumpManager dumpManager,
|
||||
boolean immediately) {
|
||||
super(context, type, immediately, wallpaperManager);
|
||||
mTonal = type instanceof Tonal ? (Tonal) type : new Tonal(context);
|
||||
mNeutralColorsLock = new GradientColors();
|
||||
configurationController.addCallback(this);
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
mBackdropColors = new GradientColors();
|
||||
mBackdropColors.setMainColor(Color.BLACK);
|
||||
|
||||
@@ -36,11 +36,8 @@ import android.os.UserHandle;
|
||||
import android.view.Choreographer;
|
||||
import android.view.IWindowManager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.util.NotificationMessagingUtil;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
@@ -51,9 +48,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
|
||||
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
|
||||
import com.android.systemui.accessibility.ModeSwitchesController;
|
||||
import com.android.systemui.accessibility.SystemActions;
|
||||
import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController;
|
||||
import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
@@ -62,48 +57,28 @@ import com.android.systemui.doze.AlwaysOnDisplayPolicy;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.keyguard.LifecycleScreenStatusProvider;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.navigationbar.NavigationBarA11yHelper;
|
||||
import com.android.systemui.navigationbar.NavigationBarController;
|
||||
import com.android.systemui.navigationbar.NavigationBarOverlayController;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.navigationbar.TaskbarDelegate;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.ReduceBrightColorsController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.DevicePolicyManagerWrapper;
|
||||
import com.android.systemui.shared.system.TaskStackChangeListeners;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.phone.AutoHideController;
|
||||
import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
|
||||
import com.android.systemui.statusbar.phone.ShadeController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.DataSaverController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.theme.ThemeOverlayApplier;
|
||||
import com.android.systemui.util.leak.LeakDetector;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
import com.android.systemui.unfold.UnfoldTransitionFactory;
|
||||
import com.android.systemui.unfold.UnfoldTransitionProgressProvider;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
|
||||
import com.android.wm.shell.pip.Pip;
|
||||
import com.android.systemui.util.leak.LeakDetector;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Named;
|
||||
|
||||
import dagger.Lazy;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
@@ -171,9 +146,8 @@ public class DependencyProvider {
|
||||
/** */
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
public LeakDetector provideLeakDetector() {
|
||||
return LeakDetector.create();
|
||||
|
||||
public LeakDetector provideLeakDetector(DumpManager dumpManager) {
|
||||
return LeakDetector.create(dumpManager);
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
@@ -205,69 +179,6 @@ public class DependencyProvider {
|
||||
context.getString(R.string.themepicker_overlayable_package), dumpManager);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
public NavigationBarController provideNavigationBarController(Context context,
|
||||
WindowManager windowManager,
|
||||
Lazy<AssistManager> assistManagerLazy,
|
||||
AccessibilityManager accessibilityManager,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
DeviceProvisionedController deviceProvisionedController,
|
||||
MetricsLogger metricsLogger,
|
||||
OverviewProxyService overviewProxyService,
|
||||
NavigationModeController navigationModeController,
|
||||
AccessibilityButtonModeObserver accessibilityButtonModeObserver,
|
||||
StatusBarStateController statusBarStateController,
|
||||
SysUiState sysUiFlagsContainer,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
CommandQueue commandQueue,
|
||||
Optional<Pip> pipOptional,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
ShadeController shadeController,
|
||||
NotificationRemoteInputManager notificationRemoteInputManager,
|
||||
NotificationShadeDepthController notificationShadeDepthController,
|
||||
SystemActions systemActions,
|
||||
@Main Handler mainHandler,
|
||||
UiEventLogger uiEventLogger,
|
||||
NavigationBarOverlayController navBarOverlayController,
|
||||
ConfigurationController configurationController,
|
||||
NavigationBarA11yHelper navigationBarA11yHelper,
|
||||
TaskbarDelegate taskbarDelegate,
|
||||
UserTracker userTracker) {
|
||||
return new NavigationBarController(context,
|
||||
windowManager,
|
||||
assistManagerLazy,
|
||||
accessibilityManager,
|
||||
accessibilityManagerWrapper,
|
||||
deviceProvisionedController,
|
||||
metricsLogger,
|
||||
overviewProxyService,
|
||||
navigationModeController,
|
||||
accessibilityButtonModeObserver,
|
||||
statusBarStateController,
|
||||
sysUiFlagsContainer,
|
||||
broadcastDispatcher,
|
||||
commandQueue,
|
||||
pipOptional,
|
||||
splitScreenOptional,
|
||||
recentsOptional,
|
||||
statusBarOptionalLazy,
|
||||
shadeController,
|
||||
notificationRemoteInputManager,
|
||||
notificationShadeDepthController,
|
||||
systemActions,
|
||||
mainHandler,
|
||||
uiEventLogger,
|
||||
navBarOverlayController,
|
||||
configurationController,
|
||||
navigationBarA11yHelper,
|
||||
taskbarDelegate,
|
||||
userTracker);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
|
||||
@@ -143,8 +143,10 @@ public abstract class SystemUIModule {
|
||||
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static SysUiState provideSysUiState() {
|
||||
return new SysUiState();
|
||||
static SysUiState provideSysUiState(DumpManager dumpManager) {
|
||||
final SysUiState state = new SysUiState();
|
||||
dumpManager.registerDumpable(state);
|
||||
return state;
|
||||
}
|
||||
|
||||
@BindsOptionalOf
|
||||
|
||||
@@ -55,6 +55,15 @@ open class DumpManager @Inject constructor() {
|
||||
dumpables[name] = RegisteredDumpable(name, module)
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as the above override, but automatically uses the simple class name as the dumpable
|
||||
* name.
|
||||
*/
|
||||
@Synchronized
|
||||
fun registerDumpable(module: Dumpable) {
|
||||
registerDumpable(module::class.java.simpleName, module)
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters a previously-registered dumpable.
|
||||
*/
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.view.View;
|
||||
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.qs.QSFragment;
|
||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
@@ -60,11 +61,15 @@ public class FragmentService implements Dumpable {
|
||||
};
|
||||
|
||||
@Inject
|
||||
public FragmentService(FragmentCreator.Factory fragmentCreatorFactory,
|
||||
ConfigurationController configurationController) {
|
||||
public FragmentService(
|
||||
FragmentCreator.Factory fragmentCreatorFactory,
|
||||
ConfigurationController configurationController,
|
||||
DumpManager dumpManager) {
|
||||
mFragmentCreator = fragmentCreatorFactory.build();
|
||||
initInjectionMap();
|
||||
configurationController.addCallback(mConfigurationListener);
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
ArrayMap<String, Method> getInjectionMap() {
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.os.Trace;
|
||||
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -40,7 +41,8 @@ public class ScreenLifecycle extends Lifecycle<ScreenLifecycle.Observer> impleme
|
||||
private int mScreenState = SCREEN_OFF;
|
||||
|
||||
@Inject
|
||||
public ScreenLifecycle() {
|
||||
public ScreenLifecycle(DumpManager dumpManager) {
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
public int getScreenState() {
|
||||
|
||||
@@ -32,6 +32,7 @@ import androidx.annotation.Nullable;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -83,10 +84,13 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
|
||||
@Inject
|
||||
public WakefulnessLifecycle(
|
||||
Context context,
|
||||
@Nullable IWallpaperManager wallpaperManagerService) {
|
||||
@Nullable IWallpaperManager wallpaperManagerService,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mDisplayMetrics = context.getResources().getDisplayMetrics();
|
||||
mWallpaperManagerService = wallpaperManagerService;
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
public @Wakefulness int getWakefulness() {
|
||||
|
||||
@@ -125,6 +125,7 @@ import com.android.systemui.accessibility.SystemActions;
|
||||
import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.navigationbar.buttons.ButtonDispatcher;
|
||||
import com.android.systemui.navigationbar.buttons.KeyButtonView;
|
||||
@@ -676,7 +677,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
: new LightBarController(mContext,
|
||||
Dependency.get(DarkIconDispatcher.class),
|
||||
Dependency.get(BatteryController.class),
|
||||
Dependency.get(NavigationModeController.class));
|
||||
Dependency.get(NavigationModeController.class),
|
||||
Dependency.get(DumpManager.class));
|
||||
setLightBarController(lightBarController);
|
||||
|
||||
// TODO(b/118592525): to support multi-display, we start to add something which is
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.systemui.navigationbar;
|
||||
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
|
||||
|
||||
import static com.android.systemui.shared.recents.utilities.Utilities.isTablet;
|
||||
|
||||
@@ -52,6 +51,7 @@ import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
@@ -81,9 +81,11 @@ import dagger.Lazy;
|
||||
|
||||
/** A controller to handle navigation bars. */
|
||||
@SysUISingleton
|
||||
public class NavigationBarController implements Callbacks,
|
||||
public class NavigationBarController implements
|
||||
Callbacks,
|
||||
ConfigurationController.ConfigurationListener,
|
||||
NavigationModeController.ModeChangedListener, Dumpable {
|
||||
NavigationModeController.ModeChangedListener,
|
||||
Dumpable {
|
||||
|
||||
private static final String TAG = NavigationBarController.class.getSimpleName();
|
||||
|
||||
@@ -157,7 +159,8 @@ public class NavigationBarController implements Callbacks,
|
||||
ConfigurationController configurationController,
|
||||
NavigationBarA11yHelper navigationBarA11yHelper,
|
||||
TaskbarDelegate taskbarDelegate,
|
||||
UserTracker userTracker) {
|
||||
UserTracker userTracker,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mWindowManager = windowManager;
|
||||
mAssistManagerLazy = assistManagerLazy;
|
||||
@@ -195,6 +198,8 @@ public class NavigationBarController implements Callbacks,
|
||||
navigationBarA11yHelper, navigationModeController, sysUiFlagsContainer);
|
||||
mIsTablet = isTablet(mContext);
|
||||
mUserTracker = userTracker;
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -36,6 +36,7 @@ import android.util.Log;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
@@ -99,12 +100,15 @@ public class NavigationModeController implements Dumpable {
|
||||
public NavigationModeController(Context context,
|
||||
DeviceProvisionedController deviceProvisionedController,
|
||||
ConfigurationController configurationController,
|
||||
@UiBackground Executor uiBgExecutor) {
|
||||
@UiBackground Executor uiBgExecutor,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mCurrentUserContext = context;
|
||||
mOverlayManager = IOverlayManager.Stub.asInterface(
|
||||
ServiceManager.getService(Context.OVERLAY_SERVICE));
|
||||
mUiBgExecutor = uiBgExecutor;
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
deviceProvisionedController.addCallback(mDeviceProvisionedCallback);
|
||||
|
||||
IntentFilter overlayFilter = new IntentFilter(ACTION_OVERLAY_CHANGED);
|
||||
|
||||
@@ -78,6 +78,7 @@ import com.android.internal.util.ScreenshotHelper;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.navigationbar.NavigationBar;
|
||||
@@ -534,7 +535,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
ShellTransitions shellTransitions,
|
||||
ScreenLifecycle screenLifecycle,
|
||||
Optional<StartingSurface> startingSurface,
|
||||
SmartspaceTransitionController smartspaceTransitionController) {
|
||||
SmartspaceTransitionController smartspaceTransitionController,
|
||||
DumpManager dumpManager) {
|
||||
super(broadcastDispatcher);
|
||||
mContext = context;
|
||||
mPipOptional = pipOptional;
|
||||
@@ -558,6 +560,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
// Assumes device always starts with back button until launcher tells it that it does not
|
||||
mNavBarButtonAlpha = 1.0f;
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
// Listen for nav bar mode changes
|
||||
mNavBarMode = navModeController.addListener(this);
|
||||
|
||||
|
||||
@@ -79,7 +79,8 @@ import java.util.ArrayList;
|
||||
* coalescing these calls so they don't stack up. For the calls
|
||||
* are coalesced, note that they are all idempotent.
|
||||
*/
|
||||
public class CommandQueue extends IStatusBar.Stub implements CallbackController<Callbacks>,
|
||||
public class CommandQueue extends IStatusBar.Stub implements
|
||||
CallbackController<Callbacks>,
|
||||
DisplayManager.DisplayListener {
|
||||
private static final String TAG = CommandQueue.class.getSimpleName();
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
@@ -72,7 +73,9 @@ import javax.inject.Inject;
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class NotificationLockscreenUserManagerImpl implements
|
||||
Dumpable, NotificationLockscreenUserManager, StateListener {
|
||||
Dumpable,
|
||||
NotificationLockscreenUserManager,
|
||||
StateListener {
|
||||
private static final String TAG = "LockscreenUserManager";
|
||||
private static final boolean ENABLE_LOCK_SCREEN_ALLOW_REMOTE_INPUT = false;
|
||||
|
||||
@@ -202,7 +205,8 @@ public class NotificationLockscreenUserManagerImpl implements
|
||||
StatusBarStateController statusBarStateController,
|
||||
@Main Handler mainHandler,
|
||||
DeviceProvisionedController deviceProvisionedController,
|
||||
KeyguardStateController keyguardStateController) {
|
||||
KeyguardStateController keyguardStateController,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mMainHandler = mainHandler;
|
||||
mDevicePolicyManager = devicePolicyManager;
|
||||
@@ -215,6 +219,8 @@ public class NotificationLockscreenUserManagerImpl implements
|
||||
mBroadcastDispatcher = broadcastDispatcher;
|
||||
mDeviceProvisionedController = deviceProvisionedController;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
public void setUpWithPresenter(NotificationPresenter presenter) {
|
||||
|
||||
@@ -52,6 +52,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.media.MediaData;
|
||||
import com.android.systemui.media.MediaDataManager;
|
||||
@@ -73,7 +74,6 @@ import com.android.systemui.statusbar.phone.ScrimController;
|
||||
import com.android.systemui.statusbar.phone.ScrimState;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.Utils;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
|
||||
@@ -188,8 +188,8 @@ public class NotificationMediaManager implements Dumpable {
|
||||
NotifCollection notifCollection,
|
||||
FeatureFlags featureFlags,
|
||||
@Main DelayableExecutor mainExecutor,
|
||||
DeviceConfigProxy deviceConfig,
|
||||
MediaDataManager mediaDataManager) {
|
||||
MediaDataManager mediaDataManager,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mMediaArtworkProcessor = mediaArtworkProcessor;
|
||||
mKeyguardBypassController = keyguardBypassController;
|
||||
@@ -214,6 +214,8 @@ public class NotificationMediaManager implements Dumpable {
|
||||
setupNotifPipeline();
|
||||
mUsingNotifPipeline = true;
|
||||
}
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
private void setupNotifPipeline() {
|
||||
|
||||
@@ -54,6 +54,7 @@ import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
@@ -290,7 +291,8 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
@Main Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
NotificationClickNotifier clickNotifier,
|
||||
ActionClickLogger logger) {
|
||||
ActionClickLogger logger,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mLockscreenUserManager = lockscreenUserManager;
|
||||
mSmartReplyController = smartReplyController;
|
||||
@@ -307,6 +309,8 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
mRemoteInputUriController = remoteInputUriController;
|
||||
mClickNotifier = clickNotifier;
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
|
||||
notificationEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
||||
@Override
|
||||
public void onPreEntryUpdated(NotificationEntry entry) {
|
||||
|
||||
@@ -48,6 +48,7 @@ import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
|
||||
import com.android.systemui.statusbar.policy.CallbackController;
|
||||
@@ -63,8 +64,10 @@ import javax.inject.Inject;
|
||||
* Tracks and reports on {@link StatusBarState}.
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class StatusBarStateControllerImpl implements SysuiStatusBarStateController,
|
||||
CallbackController<StateListener>, Dumpable {
|
||||
public class StatusBarStateControllerImpl implements
|
||||
SysuiStatusBarStateController,
|
||||
CallbackController<StateListener>,
|
||||
Dumpable {
|
||||
private static final String TAG = "SbStateController";
|
||||
private static final boolean DEBUG_IMMERSIVE_APPS =
|
||||
SystemProperties.getBoolean("persist.debug.immersive_apps", false);
|
||||
@@ -146,11 +149,13 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
|
||||
private Interpolator mDozeInterpolator = Interpolators.FAST_OUT_SLOW_IN;
|
||||
|
||||
@Inject
|
||||
public StatusBarStateControllerImpl(UiEventLogger uiEventLogger) {
|
||||
public StatusBarStateControllerImpl(UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
mUiEventLogger = uiEventLogger;
|
||||
for (int i = 0; i < HISTORY_SIZE; i++) {
|
||||
mHistoricalRecords[i] = new HistoricalState();
|
||||
}
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Handler;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.media.MediaDataManager;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
@@ -65,7 +66,6 @@ import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallLogger;
|
||||
import com.android.systemui.statusbar.policy.RemoteInputUriController;
|
||||
import com.android.systemui.tracing.ProtoTracer;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
import com.android.systemui.util.time.SystemClock;
|
||||
import com.android.wm.shell.bubbles.Bubbles;
|
||||
@@ -98,7 +98,8 @@ public interface StatusBarDependenciesModule {
|
||||
Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
NotificationClickNotifier clickNotifier,
|
||||
ActionClickLogger actionClickLogger) {
|
||||
ActionClickLogger actionClickLogger,
|
||||
DumpManager dumpManager) {
|
||||
return new NotificationRemoteInputManager(
|
||||
context,
|
||||
lockscreenUserManager,
|
||||
@@ -109,7 +110,8 @@ public interface StatusBarDependenciesModule {
|
||||
mainHandler,
|
||||
remoteInputUriController,
|
||||
clickNotifier,
|
||||
actionClickLogger);
|
||||
actionClickLogger,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
/** */
|
||||
@@ -126,8 +128,8 @@ public interface StatusBarDependenciesModule {
|
||||
NotifCollection notifCollection,
|
||||
FeatureFlags featureFlags,
|
||||
@Main DelayableExecutor mainExecutor,
|
||||
DeviceConfigProxy deviceConfigProxy,
|
||||
MediaDataManager mediaDataManager) {
|
||||
MediaDataManager mediaDataManager,
|
||||
DumpManager dumpManager) {
|
||||
return new NotificationMediaManager(
|
||||
context,
|
||||
statusBarOptionalLazy,
|
||||
@@ -139,8 +141,8 @@ public interface StatusBarDependenciesModule {
|
||||
notifCollection,
|
||||
featureFlags,
|
||||
mainExecutor,
|
||||
deviceConfigProxy,
|
||||
mediaDataManager);
|
||||
mediaDataManager,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
/** */
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.NotificationLifetimeExtender;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
@@ -98,15 +99,16 @@ public class NotificationEntryManager implements
|
||||
CommonNotifCollection,
|
||||
Dumpable,
|
||||
VisualStabilityManager.Callback {
|
||||
private static final String TAG = "NotificationEntryMgr";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
/**
|
||||
* Used when a notification is removed and it doesn't have a reason that maps to one of the
|
||||
* reasons defined in NotificationListenerService
|
||||
* (e.g. {@link NotificationListenerService#REASON_CANCEL})
|
||||
*/
|
||||
public static final int UNDEFINED_DISMISS_REASON = 0;
|
||||
private final NotificationEntryManagerLogger mLogger;
|
||||
private final NotificationGroupManagerLegacy mGroupManager;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy;
|
||||
private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy;
|
||||
private final LeakDetector mLeakDetector;
|
||||
private final ForegroundServiceDismissalFeatureController mFgsFeatureController;
|
||||
private final IStatusBarService mStatusBarService;
|
||||
private final DumpManager mDumpManager;
|
||||
|
||||
private final Set<NotificationEntry> mAllNotifications = new ArraySet<>();
|
||||
private final Set<NotificationEntry> mReadOnlyAllNotifications =
|
||||
@@ -129,20 +131,8 @@ public class NotificationEntryManager implements
|
||||
private final Map<NotificationEntry, NotificationLifetimeExtender> mRetainedNotifications =
|
||||
new ArrayMap<>();
|
||||
|
||||
private final NotificationEntryManagerLogger mLogger;
|
||||
|
||||
private final IStatusBarService mStatusBarService;
|
||||
|
||||
// Lazily retrieved dependencies
|
||||
private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy;
|
||||
private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy;
|
||||
private final LeakDetector mLeakDetector;
|
||||
private final List<NotifCollectionListener> mNotifCollectionListeners = new ArrayList<>();
|
||||
|
||||
private final NotificationGroupManagerLegacy mGroupManager;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final ForegroundServiceDismissalFeatureController mFgsFeatureController;
|
||||
|
||||
private LegacyNotificationRanker mRanker = new LegacyNotificationRankerStub();
|
||||
private NotificationPresenter mPresenter;
|
||||
private RankingMap mLatestRankingMap;
|
||||
@@ -153,6 +143,40 @@ public class NotificationEntryManager implements
|
||||
private final List<NotificationEntryListener> mNotificationEntryListeners = new ArrayList<>();
|
||||
private final List<NotificationRemoveInterceptor> mRemoveInterceptors = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Injected constructor. See {@link NotificationsModule}.
|
||||
*/
|
||||
public NotificationEntryManager(
|
||||
NotificationEntryManagerLogger logger,
|
||||
NotificationGroupManagerLegacy groupManager,
|
||||
FeatureFlags featureFlags,
|
||||
Lazy<NotificationRowBinder> notificationRowBinderLazy,
|
||||
Lazy<NotificationRemoteInputManager> notificationRemoteInputManagerLazy,
|
||||
LeakDetector leakDetector,
|
||||
ForegroundServiceDismissalFeatureController fgsFeatureController,
|
||||
IStatusBarService statusBarService,
|
||||
DumpManager dumpManager
|
||||
) {
|
||||
mLogger = logger;
|
||||
mGroupManager = groupManager;
|
||||
mFeatureFlags = featureFlags;
|
||||
mNotificationRowBinderLazy = notificationRowBinderLazy;
|
||||
mRemoteInputManagerLazy = notificationRemoteInputManagerLazy;
|
||||
mLeakDetector = leakDetector;
|
||||
mFgsFeatureController = fgsFeatureController;
|
||||
mStatusBarService = statusBarService;
|
||||
mDumpManager = dumpManager;
|
||||
}
|
||||
|
||||
/** Once called, the NEM will start processing notification events from system server. */
|
||||
public void initialize(
|
||||
NotificationListener notificationListener,
|
||||
LegacyNotificationRanker ranker) {
|
||||
mRanker = ranker;
|
||||
notificationListener.addNotificationHandler(mNotifListener);
|
||||
mDumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||
pw.println("NotificationEntryManager state:");
|
||||
@@ -194,38 +218,6 @@ public class NotificationEntryManager implements
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Injected constructor. See {@link NotificationsModule}.
|
||||
*/
|
||||
public NotificationEntryManager(
|
||||
NotificationEntryManagerLogger logger,
|
||||
NotificationGroupManagerLegacy groupManager,
|
||||
FeatureFlags featureFlags,
|
||||
Lazy<NotificationRowBinder> notificationRowBinderLazy,
|
||||
Lazy<NotificationRemoteInputManager> notificationRemoteInputManagerLazy,
|
||||
LeakDetector leakDetector,
|
||||
ForegroundServiceDismissalFeatureController fgsFeatureController,
|
||||
IStatusBarService statusBarService
|
||||
) {
|
||||
mLogger = logger;
|
||||
mGroupManager = groupManager;
|
||||
mFeatureFlags = featureFlags;
|
||||
mNotificationRowBinderLazy = notificationRowBinderLazy;
|
||||
mRemoteInputManagerLazy = notificationRemoteInputManagerLazy;
|
||||
mLeakDetector = leakDetector;
|
||||
mFgsFeatureController = fgsFeatureController;
|
||||
mStatusBarService = statusBarService;
|
||||
}
|
||||
|
||||
/** Once called, the NEM will start processing notification events from system server. */
|
||||
public void attach(NotificationListener notificationListener) {
|
||||
notificationListener.addNotificationHandler(mNotifListener);
|
||||
}
|
||||
|
||||
public void setRanker(LegacyNotificationRanker ranker) {
|
||||
mRanker = ranker;
|
||||
}
|
||||
|
||||
/** Adds a {@link NotificationEntryListener}. */
|
||||
public void addNotificationEntryListener(NotificationEntryListener listener) {
|
||||
mNotificationEntryListeners.add(listener);
|
||||
@@ -976,4 +968,14 @@ public class NotificationEntryManager implements
|
||||
/** true if the notification is for the current profiles */
|
||||
boolean isNotificationForCurrentProfiles(StatusBarNotification sbn);
|
||||
}
|
||||
|
||||
private static final String TAG = "NotificationEntryMgr";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
/**
|
||||
* Used when a notification is removed and it doesn't have a reason that maps to one of the
|
||||
* reasons defined in NotificationListenerService
|
||||
* (e.g. {@link NotificationListenerService#REASON_CANCEL})
|
||||
*/
|
||||
public static final int UNDEFINED_DISMISS_REASON = 0;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.util.Log;
|
||||
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
@@ -60,8 +61,12 @@ import dagger.Lazy;
|
||||
* 2. Tracking group expansion states
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class NotificationGroupManagerLegacy implements OnHeadsUpChangedListener, StateListener,
|
||||
GroupMembershipManager, GroupExpansionManager, Dumpable {
|
||||
public class NotificationGroupManagerLegacy implements
|
||||
OnHeadsUpChangedListener,
|
||||
StateListener,
|
||||
GroupMembershipManager,
|
||||
GroupExpansionManager,
|
||||
Dumpable {
|
||||
|
||||
private static final String TAG = "NotifGroupManager";
|
||||
private static final boolean DEBUG = StatusBar.DEBUG;
|
||||
@@ -87,10 +92,13 @@ public class NotificationGroupManagerLegacy implements OnHeadsUpChangedListener,
|
||||
public NotificationGroupManagerLegacy(
|
||||
StatusBarStateController statusBarStateController,
|
||||
Lazy<PeopleNotificationIdentifier> peopleNotificationIdentifier,
|
||||
Optional<Bubbles> bubblesOptional) {
|
||||
Optional<Bubbles> bubblesOptional,
|
||||
DumpManager dumpManager) {
|
||||
statusBarStateController.addCallback(this);
|
||||
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
|
||||
mBubblesOptional = bubblesOptional;
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,6 +24,7 @@ import androidx.collection.ArraySet;
|
||||
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
@@ -71,9 +72,11 @@ public class VisualStabilityManager implements OnHeadsUpChangedListener, Dumpabl
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
@Main Handler handler,
|
||||
StatusBarStateController statusBarStateController,
|
||||
WakefulnessLifecycle wakefulnessLifecycle) {
|
||||
WakefulnessLifecycle wakefulnessLifecycle,
|
||||
DumpManager dumpManager) {
|
||||
|
||||
mHandler = handler;
|
||||
dumpManager.registerDumpable(this);
|
||||
|
||||
if (notificationEntryManager != null) {
|
||||
notificationEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
|
||||
@@ -109,7 +110,8 @@ public interface NotificationsModule {
|
||||
Lazy<NotificationRemoteInputManager> notificationRemoteInputManagerLazy,
|
||||
LeakDetector leakDetector,
|
||||
ForegroundServiceDismissalFeatureController fgsFeatureController,
|
||||
IStatusBarService statusBarService) {
|
||||
IStatusBarService statusBarService,
|
||||
DumpManager dumpManager) {
|
||||
return new NotificationEntryManager(
|
||||
logger,
|
||||
groupManager,
|
||||
@@ -118,7 +120,8 @@ public interface NotificationsModule {
|
||||
notificationRemoteInputManagerLazy,
|
||||
leakDetector,
|
||||
fgsFeatureController,
|
||||
statusBarService);
|
||||
statusBarService,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link NotificationGutsManager} */
|
||||
@@ -142,7 +145,8 @@ public interface NotificationsModule {
|
||||
Optional<BubblesManager> bubblesManagerOptional,
|
||||
UiEventLogger uiEventLogger,
|
||||
OnUserInteractionCallback onUserInteractionCallback,
|
||||
ShadeController shadeController) {
|
||||
ShadeController shadeController,
|
||||
DumpManager dumpManager) {
|
||||
return new NotificationGutsManager(
|
||||
context,
|
||||
statusBarOptionalLazy,
|
||||
@@ -161,23 +165,25 @@ public interface NotificationsModule {
|
||||
bubblesManagerOptional,
|
||||
uiEventLogger,
|
||||
onUserInteractionCallback,
|
||||
shadeController);
|
||||
shadeController,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link VisualStabilityManager} */
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static VisualStabilityManager provideVisualStabilityManager(
|
||||
FeatureFlags featureFlags,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
Handler handler,
|
||||
StatusBarStateController statusBarStateController,
|
||||
WakefulnessLifecycle wakefulnessLifecycle) {
|
||||
WakefulnessLifecycle wakefulnessLifecycle,
|
||||
DumpManager dumpManager) {
|
||||
return new VisualStabilityManager(
|
||||
notificationEntryManager,
|
||||
handler,
|
||||
statusBarStateController,
|
||||
wakefulnessLifecycle);
|
||||
wakefulnessLifecycle,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link NotificationLogger} */
|
||||
|
||||
@@ -128,8 +128,7 @@ class NotificationsControllerImpl @Inject constructor(
|
||||
groupManagerLegacy.get().setHeadsUpManager(headsUpManager)
|
||||
groupAlertTransferHelper.setHeadsUpManager(headsUpManager)
|
||||
|
||||
entryManager.setRanker(legacyRanker)
|
||||
entryManager.attach(notificationListener)
|
||||
entryManager.initialize(notificationListener, legacyRanker)
|
||||
}
|
||||
|
||||
peopleSpaceWidgetManager.attach(notificationListener)
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
|
||||
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
@@ -151,7 +152,8 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
Optional<BubblesManager> bubblesManagerOptional,
|
||||
UiEventLogger uiEventLogger,
|
||||
OnUserInteractionCallback onUserInteractionCallback,
|
||||
ShadeController shadeController) {
|
||||
ShadeController shadeController,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mMainHandler = mainHandler;
|
||||
@@ -171,6 +173,8 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
mOnUserInteractionCallback = onUserInteractionCallback;
|
||||
mShadeController = shadeController;
|
||||
mAppWidgetManager = AppWidgetManager.getInstance(context);
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
public void setUpWithPresenter(NotificationPresenter presenter,
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.widget.ImageView;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
@@ -50,11 +51,16 @@ public class DarkIconDispatcherImpl implements SysuiDarkIconDispatcher,
|
||||
/**
|
||||
*/
|
||||
@Inject
|
||||
public DarkIconDispatcherImpl(Context context, CommandQueue commandQueue) {
|
||||
public DarkIconDispatcherImpl(
|
||||
Context context,
|
||||
CommandQueue commandQueue,
|
||||
DumpManager dumpManager) {
|
||||
mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone);
|
||||
mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone);
|
||||
|
||||
mTransitionsController = new LightBarTransitionsController(context, this, commandQueue);
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
public LightBarTransitionsController getTransitionsController() {
|
||||
|
||||
@@ -48,8 +48,10 @@ import javax.inject.Inject;
|
||||
* Retrieve doze information
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class DozeParameters implements TunerService.Tunable,
|
||||
com.android.systemui.plugins.statusbar.DozeParameters, Dumpable {
|
||||
public class DozeParameters implements
|
||||
TunerService.Tunable,
|
||||
com.android.systemui.plugins.statusbar.DozeParameters,
|
||||
Dumpable {
|
||||
private static final int MAX_DURATION = 60 * 1000;
|
||||
public static final boolean FORCE_NO_BLANKING =
|
||||
SystemProperties.getBoolean("debug.force_no_blanking", false);
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.android.internal.view.AppearanceRegion;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
@@ -86,8 +87,12 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
|
||||
private boolean mNavbarColorManagedByIme;
|
||||
|
||||
@Inject
|
||||
public LightBarController(Context ctx, DarkIconDispatcher darkIconDispatcher,
|
||||
BatteryController batteryController, NavigationModeController navModeController) {
|
||||
public LightBarController(
|
||||
Context ctx,
|
||||
DarkIconDispatcher darkIconDispatcher,
|
||||
BatteryController batteryController,
|
||||
NavigationModeController navModeController,
|
||||
DumpManager dumpManager) {
|
||||
mDarkModeColor = Color.valueOf(ctx.getColor(R.color.dark_mode_icon_color_single_tone));
|
||||
mStatusBarIconController = (SysuiDarkIconDispatcher) darkIconDispatcher;
|
||||
mBatteryController = batteryController;
|
||||
@@ -95,6 +100,8 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
|
||||
mNavigationMode = navModeController.addListener((mode) -> {
|
||||
mNavigationMode = mode;
|
||||
});
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
public void setNavigationBar(LightBarTransitionsController navigationBar) {
|
||||
|
||||
@@ -146,6 +146,7 @@ import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.emergency.EmergencyGesture;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.fragments.ExtensionFragmentListener;
|
||||
@@ -780,7 +781,8 @@ public class StatusBar extends SystemUI implements
|
||||
WallpaperManager wallpaperManager,
|
||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||
Optional<StartingSurface> startingSurfaceOptional,
|
||||
TunerService tunerService) {
|
||||
TunerService tunerService,
|
||||
DumpManager dumpManager) {
|
||||
super(context);
|
||||
mNotificationsController = notificationsController;
|
||||
mLightBarController = lightBarController;
|
||||
@@ -896,6 +898,8 @@ public class StatusBar extends SystemUI implements
|
||||
data -> mCommandQueueCallbacks.animateExpandSettingsPanel(data.mSubpanel));
|
||||
mMessageRouter.subscribeTo(MSG_LAUNCH_TRANSITION_TIMEOUT,
|
||||
id -> onLaunchTransitionTimeout());
|
||||
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.demomode.DemoMode;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.StatusIconDisplayable;
|
||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.CallIndicatorIconState;
|
||||
@@ -72,7 +73,8 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu
|
||||
public StatusBarIconControllerImpl(
|
||||
Context context,
|
||||
CommandQueue commandQueue,
|
||||
DemoModeController demoModeController) {
|
||||
DemoModeController demoModeController,
|
||||
DumpManager dumpManager) {
|
||||
super(context.getResources().getStringArray(
|
||||
com.android.internal.R.array.config_statusBarIcons));
|
||||
Dependency.get(ConfigurationController.class).addCallback(this);
|
||||
@@ -84,6 +86,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu
|
||||
commandQueue.addCallback(this);
|
||||
Dependency.get(TunerService.class).addTunable(this, ICON_HIDE_LIST);
|
||||
demoModeController.addCallback(this);
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
/** */
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
@@ -225,7 +226,8 @@ public interface StatusBarPhoneModule {
|
||||
WallpaperManager wallpaperManager,
|
||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||
Optional<StartingSurface> startingSurfaceOptional,
|
||||
TunerService tunerService) {
|
||||
TunerService tunerService,
|
||||
DumpManager dumpManager) {
|
||||
return new StatusBar(
|
||||
context,
|
||||
notificationsController,
|
||||
@@ -318,6 +320,7 @@ public interface StatusBarPhoneModule {
|
||||
wallpaperManager,
|
||||
unlockedScreenOffAnimationController,
|
||||
startingSurfaceOptional,
|
||||
tunerService);
|
||||
tunerService,
|
||||
dumpManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,8 @@ public class ExtensionControllerImpl implements ExtensionController {
|
||||
/**
|
||||
*/
|
||||
@Inject
|
||||
public ExtensionControllerImpl(Context context,
|
||||
public ExtensionControllerImpl(
|
||||
Context context,
|
||||
LeakDetector leakDetector,
|
||||
PluginManager pluginManager,
|
||||
TunerService tunerService,
|
||||
|
||||
@@ -33,6 +33,7 @@ import android.util.Log;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -72,10 +73,11 @@ public class FlashlightControllerImpl implements FlashlightController {
|
||||
private boolean mTorchAvailable;
|
||||
|
||||
@Inject
|
||||
public FlashlightControllerImpl(Context context) {
|
||||
public FlashlightControllerImpl(Context context, DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
tryInitCamera();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.android.internal.util.ConcurrentUtils;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -91,14 +92,18 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
|
||||
* Controller used to retrieve information related to a hotspot.
|
||||
*/
|
||||
@Inject
|
||||
public HotspotControllerImpl(Context context, @Main Handler mainHandler,
|
||||
@Background Handler backgroundHandler) {
|
||||
public HotspotControllerImpl(
|
||||
Context context,
|
||||
@Main Handler mainHandler,
|
||||
@Background Handler backgroundHandler,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mTetheringManager = context.getSystemService(TetheringManager.class);
|
||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
mMainHandler = mainHandler;
|
||||
mTetheringManager.registerTetheringEventCallback(
|
||||
new HandlerExecutor(backgroundHandler), mTetheringCallback);
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.shared.system.smartspace.SmartspaceTransitionController;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
@@ -100,15 +101,20 @@ public class KeyguardStateControllerImpl implements KeyguardStateController, Dum
|
||||
/**
|
||||
*/
|
||||
@Inject
|
||||
public KeyguardStateControllerImpl(Context context,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor, LockPatternUtils lockPatternUtils,
|
||||
SmartspaceTransitionController smartspaceTransitionController) {
|
||||
public KeyguardStateControllerImpl(
|
||||
Context context,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
LockPatternUtils lockPatternUtils,
|
||||
SmartspaceTransitionController smartspaceTransitionController,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mLockPatternUtils = lockPatternUtils;
|
||||
mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback);
|
||||
mSmartspaceTransitionController = smartspaceTransitionController;
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
update(true /* updateAlways */);
|
||||
if (Build.IS_DEBUGGABLE && DEBUG_AUTH_WITH_ADB) {
|
||||
// Watch for interesting updates
|
||||
|
||||
@@ -55,6 +55,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.settings.CurrentUserTracker;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -109,7 +110,8 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
|
||||
Context context,
|
||||
@Background Handler bgHandler,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
@Background Executor bgExecutor
|
||||
@Background Executor bgExecutor,
|
||||
DumpManager dumpManager
|
||||
) {
|
||||
super(broadcastDispatcher);
|
||||
mContext = context;
|
||||
@@ -122,6 +124,8 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
|
||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
mBgExecutor = bgExecutor;
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(KeyChain.ACTION_TRUST_STORE_CHANGED);
|
||||
filter.addAction(Intent.ACTION_USER_UNLOCKED);
|
||||
|
||||
@@ -29,7 +29,8 @@ import java.util.List;
|
||||
* Controls sensor privacy state and notification.
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class SensorPrivacyControllerImpl implements SensorPrivacyController,
|
||||
public class SensorPrivacyControllerImpl implements
|
||||
SensorPrivacyController,
|
||||
SensorPrivacyManager.OnAllSensorPrivacyChangedListener {
|
||||
private SensorPrivacyManager mSensorPrivacyManager;
|
||||
private final List<OnSensorPrivacyChangedListener> mListeners = new ArrayList<>(1);
|
||||
|
||||
@@ -68,6 +68,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.plugins.qs.DetailAdapter;
|
||||
@@ -163,7 +164,8 @@ public class UserSwitcherController implements Dumpable {
|
||||
IActivityTaskManager activityTaskManager,
|
||||
UserDetailAdapter userDetailAdapter,
|
||||
SecureSettings secureSettings,
|
||||
@Background Executor bgExecutor) {
|
||||
@Background Executor bgExecutor,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mUserTracker = userTracker;
|
||||
mBroadcastDispatcher = broadcastDispatcher;
|
||||
@@ -231,6 +233,8 @@ public class UserSwitcherController implements Dumpable {
|
||||
keyguardStateController.addCallback(mCallback);
|
||||
listenForCallState();
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
refreshUsers(UserHandle.USER_NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.qs.GlobalSetting;
|
||||
import com.android.systemui.settings.CurrentUserTracker;
|
||||
import com.android.systemui.util.Utils;
|
||||
@@ -80,8 +81,11 @@ public class ZenModeControllerImpl extends CurrentUserTracker
|
||||
private NotificationManager.Policy mConsolidatedNotificationPolicy;
|
||||
|
||||
@Inject
|
||||
public ZenModeControllerImpl(Context context, @Main Handler handler,
|
||||
BroadcastDispatcher broadcastDispatcher) {
|
||||
public ZenModeControllerImpl(
|
||||
Context context,
|
||||
@Main Handler handler,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
DumpManager dumpManager) {
|
||||
super(broadcastDispatcher);
|
||||
mContext = context;
|
||||
mModeSetting = new GlobalSetting(mContext, handler, Global.ZEN_MODE) {
|
||||
@@ -108,6 +112,8 @@ public class ZenModeControllerImpl extends CurrentUserTracker
|
||||
mSetupObserver.register();
|
||||
mUserManager = context.getSystemService(UserManager.class);
|
||||
startTracking();
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -48,8 +48,13 @@ import javax.inject.Inject;
|
||||
* Controller for coordinating winscope proto tracing.
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class ProtoTracer implements Dumpable, ProtoTraceParams<MessageNano, SystemUiTraceFileProto,
|
||||
SystemUiTraceEntryProto, SystemUiTraceProto> {
|
||||
public class ProtoTracer implements
|
||||
Dumpable,
|
||||
ProtoTraceParams<
|
||||
MessageNano,
|
||||
SystemUiTraceFileProto,
|
||||
SystemUiTraceEntryProto,
|
||||
SystemUiTraceProto> {
|
||||
|
||||
private static final String TAG = "ProtoTracer";
|
||||
private static final long MAGIC_NUMBER_VALUE = ((long) MAGIC_NUMBER_H << 32) | MAGIC_NUMBER_L;
|
||||
@@ -62,7 +67,7 @@ public class ProtoTracer implements Dumpable, ProtoTraceParams<MessageNano, Syst
|
||||
public ProtoTracer(Context context, DumpManager dumpManager) {
|
||||
mContext = context;
|
||||
mProtoTracer = new FrameProtoTracer<>(this);
|
||||
dumpManager.registerDumpable(getClass().getName(), this);
|
||||
dumpManager.registerDumpable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -51,6 +51,7 @@ import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
@@ -137,7 +138,8 @@ public class GarbageMonitor implements Dumpable {
|
||||
@Background DelayableExecutor delayableExecutor,
|
||||
@Background MessageRouter messageRouter,
|
||||
LeakDetector leakDetector,
|
||||
LeakReporter leakReporter) {
|
||||
LeakReporter leakReporter,
|
||||
DumpManager dumpManager) {
|
||||
mContext = context.getApplicationContext();
|
||||
|
||||
mDelayableExecutor = delayableExecutor;
|
||||
@@ -150,6 +152,8 @@ public class GarbageMonitor implements Dumpable {
|
||||
|
||||
mDumpTruck = new DumpTruck(mContext);
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
|
||||
if (ENABLE_AM_HEAP_LIMIT) {
|
||||
mHeapLimit = Settings.Global.getInt(context.getContentResolver(),
|
||||
SETTINGS_KEY_AM_HEAP_LIMIT,
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.os.Build;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.util.IndentingPrintWriter;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -38,12 +39,16 @@ public class LeakDetector implements Dumpable {
|
||||
private final TrackedObjects mTrackedObjects;
|
||||
|
||||
@VisibleForTesting
|
||||
public LeakDetector(TrackedCollections trackedCollections,
|
||||
public LeakDetector(
|
||||
TrackedCollections trackedCollections,
|
||||
TrackedGarbage trackedGarbage,
|
||||
TrackedObjects trackedObjects) {
|
||||
TrackedObjects trackedObjects,
|
||||
DumpManager dumpManager) {
|
||||
mTrackedCollections = trackedCollections;
|
||||
mTrackedGarbage = trackedGarbage;
|
||||
mTrackedObjects = trackedObjects;
|
||||
|
||||
dumpManager.registerDumpable(getClass().getSimpleName(), this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -130,13 +135,16 @@ public class LeakDetector implements Dumpable {
|
||||
pw.println();
|
||||
}
|
||||
|
||||
public static LeakDetector create() {
|
||||
public static LeakDetector create(DumpManager dumpManager) {
|
||||
if (ENABLED) {
|
||||
TrackedCollections collections = new TrackedCollections();
|
||||
return new LeakDetector(collections, new TrackedGarbage(collections),
|
||||
new TrackedObjects(collections));
|
||||
return new LeakDetector(
|
||||
collections,
|
||||
new TrackedGarbage(collections),
|
||||
new TrackedObjects(collections),
|
||||
dumpManager);
|
||||
} else {
|
||||
return new LeakDetector(null, null, null);
|
||||
return new LeakDetector(null, null, null, dumpManager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,11 +56,6 @@ public class TestableDependency extends Dependency {
|
||||
return mParent.createDependency(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean autoRegisterModulesForDump() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public <T> boolean hasInstantiatedDependency(Class<T> key) {
|
||||
return mObjs.containsKey(key) || mInstantiatedObjects.contains(key);
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
import com.android.internal.colorextraction.ColorExtractor;
|
||||
import com.android.internal.colorextraction.types.Tonal;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -60,6 +61,8 @@ public class SysuiColorExtractorTests extends SysuiTestCase {
|
||||
|
||||
@Mock
|
||||
private WallpaperManager mWallpaperManager;
|
||||
@Mock
|
||||
private DumpManager mDumpManager;
|
||||
private ColorExtractor.GradientColors mColors;
|
||||
private SysuiColorExtractor mColorExtractor;
|
||||
|
||||
@@ -69,13 +72,18 @@ public class SysuiColorExtractorTests extends SysuiTestCase {
|
||||
mColors = new ColorExtractor.GradientColors();
|
||||
mColors.setMainColor(Color.RED);
|
||||
mColors.setSecondaryColor(Color.RED);
|
||||
mColorExtractor = new SysuiColorExtractor(getContext(),
|
||||
mColorExtractor = new SysuiColorExtractor(
|
||||
getContext(),
|
||||
(inWallpaperColors, outGradientColorsNormal, outGradientColorsDark,
|
||||
outGradientColorsExtraDark) -> {
|
||||
outGradientColorsNormal.set(mColors);
|
||||
outGradientColorsDark.set(mColors);
|
||||
outGradientColorsExtraDark.set(mColors);
|
||||
}, mock(ConfigurationController.class), mWallpaperManager, true /* immediately */);
|
||||
},
|
||||
mock(ConfigurationController.class),
|
||||
mWallpaperManager,
|
||||
mDumpManager,
|
||||
true /* immediately */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -111,8 +119,13 @@ public class SysuiColorExtractorTests extends SysuiTestCase {
|
||||
public void onUiModeChanged_reloadsColors() {
|
||||
Tonal tonal = mock(Tonal.class);
|
||||
ConfigurationController configurationController = mock(ConfigurationController.class);
|
||||
SysuiColorExtractor sysuiColorExtractor = new SysuiColorExtractor(getContext(),
|
||||
tonal, configurationController, mWallpaperManager, true /* immediately */);
|
||||
SysuiColorExtractor sysuiColorExtractor = new SysuiColorExtractor(
|
||||
getContext(),
|
||||
tonal,
|
||||
configurationController,
|
||||
mWallpaperManager,
|
||||
mDumpManager,
|
||||
true /* immediately */);
|
||||
verify(configurationController).addCallback(eq(sysuiColorExtractor));
|
||||
|
||||
reset(tonal);
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.testing.AndroidTestingRunner;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -43,7 +44,7 @@ public class ScreenLifecycleTest extends SysuiTestCase {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
mScreen = new ScreenLifecycle();
|
||||
mScreen = new ScreenLifecycle(mock(DumpManager.class));
|
||||
mScreenObserverMock = mock(ScreenLifecycle.Observer.class);
|
||||
mScreen.addObserver(mScreenObserverMock);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.testing.AndroidTestingRunner;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -49,7 +50,8 @@ public class WakefulnessLifecycleTest extends SysuiTestCase {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
mWallpaperManager = mock(IWallpaperManager.class);
|
||||
mWakefulness = new WakefulnessLifecycle(mContext, mWallpaperManager);
|
||||
mWakefulness =
|
||||
new WakefulnessLifecycle(mContext, mWallpaperManager, mock(DumpManager.class));
|
||||
mWakefulnessObserver = mock(WakefulnessLifecycle.Observer.class);
|
||||
mWakefulness.addObserver(mWakefulnessObserver);
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
|
||||
import com.android.systemui.accessibility.SystemActions;
|
||||
import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.model.SysUiState;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.recents.OverviewProxyService;
|
||||
@@ -116,7 +117,8 @@ public class NavigationBarControllerTest extends SysuiTestCase {
|
||||
mock(ConfigurationController.class),
|
||||
mock(NavigationBarA11yHelper.class),
|
||||
mock(TaskbarDelegate.class),
|
||||
mock(UserTracker.class)));
|
||||
mock(UserTracker.class),
|
||||
mock(DumpManager.class)));
|
||||
initializeNavigationBars();
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ import androidx.test.filters.SmallTest;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager.KeyguardNotificationSuppressor;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
@@ -423,7 +424,8 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase {
|
||||
mStatusBarStateController,
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mDeviceProvisionedController,
|
||||
mKeyguardStateController);
|
||||
mKeyguardStateController,
|
||||
mock(DumpManager.class));
|
||||
}
|
||||
|
||||
public BroadcastReceiver getBaseBroadcastReceiverForTest() {
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager.RemoteInputActiveExtender;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager.RemoteInputHistoryExtender;
|
||||
@@ -87,7 +88,8 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mRemoteInputUriController,
|
||||
mClickNotifier,
|
||||
mock(ActionClickLogger.class));
|
||||
mock(ActionClickLogger.class),
|
||||
mock(DumpManager.class));
|
||||
mEntry = new NotificationEntryBuilder()
|
||||
.setPkg(TEST_PACKAGE_NAME)
|
||||
.setOpPkg(TEST_PACKAGE_NAME)
|
||||
@@ -272,7 +274,8 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
NotificationClickNotifier clickNotifier,
|
||||
ActionClickLogger actionClickLogger) {
|
||||
ActionClickLogger actionClickLogger,
|
||||
DumpManager dumpManager) {
|
||||
super(
|
||||
context,
|
||||
lockscreenUserManager,
|
||||
@@ -283,7 +286,8 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
mainHandler,
|
||||
remoteInputUriController,
|
||||
clickNotifier,
|
||||
actionClickLogger);
|
||||
actionClickLogger,
|
||||
dumpManager);
|
||||
}
|
||||
|
||||
public void setUpWithPresenterForTest(Callback callback,
|
||||
|
||||
@@ -38,6 +38,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
@@ -97,7 +98,8 @@ public class SmartReplyControllerTest extends SysuiTestCase {
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mRemoteInputUriController,
|
||||
mClickNotifier,
|
||||
mock(ActionClickLogger.class));
|
||||
mock(ActionClickLogger.class),
|
||||
mock(DumpManager.class));
|
||||
mRemoteInputManager.setUpWithCallback(mCallback, mDelegate);
|
||||
mNotification = new Notification.Builder(mContext, "")
|
||||
.setSmallIcon(R.drawable.ic_person)
|
||||
|
||||
@@ -21,10 +21,12 @@ import android.testing.TestableLooper
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.internal.logging.testing.UiEventLoggerFake
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Mockito.mock
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner::class)
|
||||
@@ -37,7 +39,7 @@ class StatusBarStateControllerImplTest : SysuiTestCase() {
|
||||
@Before
|
||||
fun setUp() {
|
||||
uiEventLogger = UiEventLoggerFake()
|
||||
controller = StatusBarStateControllerImpl(uiEventLogger)
|
||||
controller = StatusBarStateControllerImpl(uiEventLogger, mock(DumpManager::class.java))
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -64,8 +64,10 @@ import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.NotificationLifetimeExtender;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.NotificationPresenter;
|
||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||
@@ -130,6 +132,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
@Mock private LeakDetector mLeakDetector;
|
||||
@Mock private NotificationMediaManager mNotificationMediaManager;
|
||||
@Mock private NotificationRowBinder mNotificationRowBinder;
|
||||
@Mock private NotificationListener mNotificationListener;
|
||||
|
||||
private int mId;
|
||||
private NotificationEntry mEntry;
|
||||
@@ -195,9 +198,11 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
() -> mRemoteInputManager,
|
||||
mLeakDetector,
|
||||
mock(ForegroundServiceDismissalFeatureController.class),
|
||||
mock(IStatusBarService.class)
|
||||
mock(IStatusBarService.class),
|
||||
mock(DumpManager.class)
|
||||
);
|
||||
mEntryManager.setRanker(
|
||||
mEntryManager.initialize(
|
||||
mNotificationListener,
|
||||
new NotificationRankingManager(
|
||||
() -> mNotificationMediaManager,
|
||||
mGroupManager,
|
||||
|
||||
@@ -42,6 +42,7 @@ import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.ForegroundServiceController;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.MediaFeatureFlag;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||
@@ -119,7 +120,8 @@ public class NotificationFilterTest extends SysuiTestCase {
|
||||
new NotificationGroupManagerLegacy(
|
||||
mock(StatusBarStateController.class),
|
||||
() -> mock(PeopleNotificationIdentifier.class),
|
||||
Optional.of(mock(Bubbles.class))));
|
||||
Optional.of(mock(Bubbles.class)),
|
||||
mock(DumpManager.class)));
|
||||
mDependency.injectMockDependency(ShadeController.class);
|
||||
mDependency.injectMockDependency(NotificationLockscreenUserManager.class);
|
||||
mDependency.injectTestDependency(KeyguardEnvironment.class, mEnvironment);
|
||||
|
||||
@@ -32,6 +32,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
@@ -70,7 +71,8 @@ public class VisualStabilityManagerTest extends SysuiTestCase {
|
||||
mock(NotificationEntryManager.class),
|
||||
new Handler(mTestableLooper.getLooper()),
|
||||
statusBarStateController,
|
||||
wakefulnessLifecycle);
|
||||
wakefulnessLifecycle,
|
||||
mock(DumpManager.class));
|
||||
|
||||
mVisualStabilityManager.setVisibilityLocationProvider(mLocationProvider);
|
||||
mEntry = new NotificationEntryBuilder().build();
|
||||
|
||||
@@ -47,11 +47,13 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.media.MediaFeatureFlag;
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.shared.plugins.PluginManager;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.NotificationPresenter;
|
||||
@@ -119,6 +121,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
||||
throw new RuntimeException("Timed out waiting to inflate");
|
||||
};
|
||||
|
||||
@Mock private NotificationListener mNotificationListener;
|
||||
@Mock private NotificationPresenter mPresenter;
|
||||
@Mock private NotificationEntryManager.KeyguardEnvironment mEnvironment;
|
||||
@Mock private NotificationListContainer mListContainer;
|
||||
@@ -186,9 +189,11 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase {
|
||||
() -> mRemoteInputManager,
|
||||
mLeakDetector,
|
||||
mock(ForegroundServiceDismissalFeatureController.class),
|
||||
mock(IStatusBarService.class)
|
||||
mock(IStatusBarService.class),
|
||||
mock(DumpManager.class)
|
||||
);
|
||||
mEntryManager.setRanker(
|
||||
mEntryManager.initialize(
|
||||
mNotificationListener,
|
||||
new NotificationRankingManager(
|
||||
() -> mock(NotificationMediaManager.class),
|
||||
mGroupMembershipManager,
|
||||
|
||||
@@ -68,6 +68,7 @@ import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.testing.UiEventLoggerFake;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
|
||||
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
|
||||
import com.android.systemui.settings.UserContextProvider;
|
||||
@@ -159,7 +160,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
mPeopleSpaceWidgetManager, mLauncherApps, mShortcutManager,
|
||||
mChannelEditorDialogController, mContextTracker, mAssistantFeedbackController,
|
||||
Optional.of(mBubblesManager), new UiEventLoggerFake(), mOnUserInteractionCallback,
|
||||
mShadeController);
|
||||
mShadeController, mock(DumpManager.class));
|
||||
mGutsManager.setUpWithPresenter(mPresenter, mNotificationListContainer,
|
||||
mCheckSaveListener, mOnSettingsClickListener);
|
||||
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||
|
||||
@@ -46,6 +46,7 @@ import android.widget.RemoteViews;
|
||||
import com.android.systemui.TestableDependency;
|
||||
import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.MediaFeatureFlag;
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
@@ -125,7 +126,8 @@ public class NotificationTestHelper {
|
||||
mGroupMembershipManager = new NotificationGroupManagerLegacy(
|
||||
mStatusBarStateController,
|
||||
() -> mock(PeopleNotificationIdentifier.class),
|
||||
Optional.of((mock(Bubbles.class))));
|
||||
Optional.of((mock(Bubbles.class))),
|
||||
mock(DumpManager.class));
|
||||
mGroupExpansionManager = mGroupMembershipManager;
|
||||
mHeadsUpManager = new HeadsUpManagerPhone(mContext, mStatusBarStateController,
|
||||
mock(KeyguardBypassController.class), mock(NotificationGroupManagerLegacy.class),
|
||||
|
||||
@@ -34,6 +34,7 @@ import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.view.AppearanceRegion;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
|
||||
@@ -56,8 +57,12 @@ public class LightBarControllerTest extends SysuiTestCase {
|
||||
mLightBarTransitionsController = mock(LightBarTransitionsController.class);
|
||||
when(mStatusBarIconController.getTransitionsController()).thenReturn(
|
||||
mLightBarTransitionsController);
|
||||
mLightBarController = new LightBarController(mContext, mStatusBarIconController,
|
||||
mock(BatteryController.class), mock(NavigationModeController.class));
|
||||
mLightBarController = new LightBarController(
|
||||
mContext,
|
||||
mStatusBarIconController,
|
||||
mock(BatteryController.class),
|
||||
mock(NavigationModeController.class),
|
||||
mock(DumpManager.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -37,6 +37,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
@@ -93,7 +94,8 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
|
||||
mGroupManager = new NotificationGroupManagerLegacy(
|
||||
mock(StatusBarStateController.class),
|
||||
() -> mPeopleNotificationIdentifier,
|
||||
Optional.of(mock(Bubbles.class)));
|
||||
Optional.of(mock(Bubbles.class)),
|
||||
mock(DumpManager.class));
|
||||
mDependency.injectTestDependency(NotificationGroupManagerLegacy.class, mGroupManager);
|
||||
mGroupManager.setHeadsUpManager(mHeadsUpManager);
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
|
||||
@@ -76,7 +77,8 @@ public class NotificationGroupManagerLegacyTest extends SysuiTestCase {
|
||||
mGroupManager = new NotificationGroupManagerLegacy(
|
||||
mock(StatusBarStateController.class),
|
||||
() -> mPeopleNotificationIdentifier,
|
||||
Optional.of(mock(Bubbles.class)));
|
||||
Optional.of(mock(Bubbles.class)),
|
||||
mock(DumpManager.class));
|
||||
mGroupManager.setHeadsUpManager(mHeadsUpManager);
|
||||
}
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
import com.android.systemui.controls.dagger.ControlsComponent;
|
||||
import com.android.systemui.doze.DozeLog;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.fragments.FragmentHostManager;
|
||||
import com.android.systemui.fragments.FragmentService;
|
||||
import com.android.systemui.media.KeyguardMediaController;
|
||||
@@ -299,6 +300,8 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
||||
private ControlsComponent mControlsComponent;
|
||||
@Mock
|
||||
private LockscreenGestureLogger mLockscreenGestureLogger;
|
||||
@Mock
|
||||
private DumpManager mDumpManager;
|
||||
|
||||
private SysuiStatusBarStateController mStatusBarStateController;
|
||||
private NotificationPanelViewController mNotificationPanelViewController;
|
||||
@@ -310,7 +313,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mStatusBarStateController = new StatusBarStateControllerImpl(mUiEventLogger);
|
||||
mStatusBarStateController = new StatusBarStateControllerImpl(mUiEventLogger, mDumpManager);
|
||||
|
||||
mKeyguardStatusView = new KeyguardStatusView(mContext);
|
||||
mKeyguardStatusView.setId(R.id.keyguard_status_view);
|
||||
@@ -367,7 +370,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
||||
NotificationWakeUpCoordinator coordinator =
|
||||
new NotificationWakeUpCoordinator(
|
||||
mock(HeadsUpManagerPhone.class),
|
||||
new StatusBarStateControllerImpl(new UiEventLoggerFake()),
|
||||
new StatusBarStateControllerImpl(new UiEventLoggerFake(), mDumpManager),
|
||||
mKeyguardBypassController,
|
||||
mDozeParameters,
|
||||
mUnlockedScreenOffAnimationController);
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.ViewMediatorCallback;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dock.DockManager;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.DismissCallbackRegistry;
|
||||
import com.android.systemui.keyguard.FaceAuthScreenBrightnessController;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
@@ -120,7 +121,10 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
|
||||
.thenReturn(mBouncer);
|
||||
|
||||
when(mContainer.findViewById(anyInt())).thenReturn(mKeyguardMessageArea);
|
||||
mWakefulnessLifecycle = new WakefulnessLifecycle(getContext(), null);
|
||||
mWakefulnessLifecycle = new WakefulnessLifecycle(
|
||||
getContext(),
|
||||
null,
|
||||
mock(DumpManager.class));
|
||||
mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager(
|
||||
getContext(),
|
||||
mViewMediatorCallback,
|
||||
|
||||
@@ -83,6 +83,7 @@ import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
@@ -326,7 +327,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
}).when(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any());
|
||||
|
||||
WakefulnessLifecycle wakefulnessLifecycle =
|
||||
new WakefulnessLifecycle(mContext, mIWallpaperManager);
|
||||
new WakefulnessLifecycle(mContext, mIWallpaperManager, mock(DumpManager.class));
|
||||
wakefulnessLifecycle.dispatchStartedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
|
||||
wakefulnessLifecycle.dispatchFinishedWakingUp();
|
||||
|
||||
@@ -381,7 +382,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mNetworkController,
|
||||
mBatteryController,
|
||||
mColorExtractor,
|
||||
new ScreenLifecycle(),
|
||||
new ScreenLifecycle(mock(DumpManager.class)),
|
||||
wakefulnessLifecycle,
|
||||
mStatusBarStateController,
|
||||
Optional.of(mBubblesManager),
|
||||
@@ -440,7 +441,8 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mWallpaperManager,
|
||||
mUnlockedScreenOffAnimationController,
|
||||
Optional.of(mStartingSurface),
|
||||
mTunerService);
|
||||
mTunerService,
|
||||
mock(DumpManager.class));
|
||||
when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),
|
||||
any(NotificationPanelViewController.class), any(BiometricUnlockController.class),
|
||||
any(ViewGroup.class), any(KeyguardBypassController.class)))
|
||||
|
||||
@@ -63,8 +63,12 @@ public class ExtensionControllerImplTest extends SysuiTestCase {
|
||||
mPluginManager = mDependency.injectMockDependency(PluginManager.class);
|
||||
mTunerService = mDependency.injectMockDependency(TunerService.class);
|
||||
mConfigurationController = mDependency.injectMockDependency(ConfigurationController.class);
|
||||
mExtensionController = new ExtensionControllerImpl(mContext,
|
||||
mock(LeakDetector.class), mPluginManager, mTunerService, mConfigurationController);
|
||||
mExtensionController = new ExtensionControllerImpl(
|
||||
mContext,
|
||||
mock(LeakDetector.class),
|
||||
mPluginManager,
|
||||
mTunerService,
|
||||
mConfigurationController);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -37,6 +37,7 @@ import android.testing.TestableLooper;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -56,6 +57,8 @@ import java.util.concurrent.Executor;
|
||||
@TestableLooper.RunWithLooper
|
||||
public class HotspotControllerImplTest extends SysuiTestCase {
|
||||
|
||||
@Mock
|
||||
private DumpManager mDumpManager;
|
||||
@Mock
|
||||
private TetheringManager mTetheringManager;
|
||||
@Mock
|
||||
@@ -95,7 +98,7 @@ public class HotspotControllerImplTest extends SysuiTestCase {
|
||||
|
||||
Handler handler = new Handler(mLooper.getLooper());
|
||||
|
||||
mController = new HotspotControllerImpl(mContext, handler, handler);
|
||||
mController = new HotspotControllerImpl(mContext, handler, handler, mDumpManager);
|
||||
verify(mTetheringManager)
|
||||
.registerTetheringEventCallback(any(), mTetheringCallbackCaptor.capture());
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import androidx.test.filters.SmallTest;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.shared.system.smartspace.SmartspaceTransitionController;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -52,12 +53,18 @@ public class KeyguardStateControllerTest extends SysuiTestCase {
|
||||
private KeyguardStateController mKeyguardStateController;
|
||||
@Mock
|
||||
private SmartspaceTransitionController mSmartSpaceTransitionController;
|
||||
@Mock
|
||||
private DumpManager mDumpManager;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mKeyguardStateController = new KeyguardStateControllerImpl(mContext,
|
||||
mKeyguardUpdateMonitor, mLockPatternUtils, mSmartSpaceTransitionController);
|
||||
mKeyguardStateController = new KeyguardStateControllerImpl(
|
||||
mContext,
|
||||
mKeyguardUpdateMonitor,
|
||||
mLockPatternUtils,
|
||||
mSmartSpaceTransitionController,
|
||||
mDumpManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -49,6 +49,7 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
|
||||
@@ -56,6 +57,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -105,7 +107,8 @@ public class SecurityControllerTest extends SysuiTestCase {
|
||||
mContext,
|
||||
mHandler,
|
||||
mBroadcastDispatcher,
|
||||
mBgExecutor);
|
||||
mBgExecutor,
|
||||
Mockito.mock(DumpManager.class));
|
||||
|
||||
verify(mBroadcastDispatcher).registerReceiverWithHandler(
|
||||
brCaptor.capture(),
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.android.systemui.GuestResumeSessionReceiver
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import com.android.systemui.plugins.ActivityStarter
|
||||
import com.android.systemui.plugins.FalsingManager
|
||||
import com.android.systemui.qs.QSUserSwitcherEvent
|
||||
@@ -76,6 +77,7 @@ class UserSwitcherControllerTest : SysuiTestCase() {
|
||||
@Mock private lateinit var telephonyListenerManager: TelephonyListenerManager
|
||||
@Mock private lateinit var secureSettings: SecureSettings
|
||||
@Mock private lateinit var falsingManager: FalsingManager
|
||||
@Mock private lateinit var dumpManager: DumpManager
|
||||
private lateinit var testableLooper: TestableLooper
|
||||
private lateinit var uiBgExecutor: FakeExecutor
|
||||
private lateinit var uiEventLogger: UiEventLoggerFake
|
||||
@@ -106,7 +108,8 @@ class UserSwitcherControllerTest : SysuiTestCase() {
|
||||
|
||||
`when`(userManager.canAddMoreUsers()).thenReturn(true)
|
||||
|
||||
userSwitcherController = UserSwitcherController(context,
|
||||
userSwitcherController = UserSwitcherController(
|
||||
context,
|
||||
userManager,
|
||||
userTracker,
|
||||
keyguardStateController,
|
||||
@@ -121,7 +124,8 @@ class UserSwitcherControllerTest : SysuiTestCase() {
|
||||
activityTaskManager,
|
||||
userDetailAdapter,
|
||||
secureSettings,
|
||||
uiBgExecutor)
|
||||
uiBgExecutor,
|
||||
dumpManager)
|
||||
userSwitcherController.mPauseRefreshUsers = true
|
||||
|
||||
picture = UserIcons.convertToBitmap(context.getDrawable(R.drawable.ic_avatar_user))
|
||||
|
||||
@@ -34,6 +34,7 @@ import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.statusbar.policy.ZenModeController.Callback;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -54,6 +55,8 @@ public class ZenModeControllerImplTest extends SysuiTestCase {
|
||||
ZenModeConfig mConfig;
|
||||
@Mock
|
||||
BroadcastDispatcher mBroadcastDispatcher;
|
||||
@Mock
|
||||
DumpManager mDumpManager;
|
||||
|
||||
private ZenModeControllerImpl mController;
|
||||
|
||||
@@ -63,8 +66,11 @@ public class ZenModeControllerImplTest extends SysuiTestCase {
|
||||
mContext.addMockSystemService(NotificationManager.class, mNm);
|
||||
when(mNm.getZenModeConfig()).thenReturn(mConfig);
|
||||
|
||||
mController = new ZenModeControllerImpl(mContext, Handler.createAsync(Looper.myLooper()),
|
||||
mBroadcastDispatcher);
|
||||
mController = new ZenModeControllerImpl(
|
||||
mContext,
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mBroadcastDispatcher,
|
||||
mDumpManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.testing.AndroidTestingRunner;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.concurrency.MessageRouterImpl;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
@@ -42,6 +43,7 @@ public class GarbageMonitorTest extends SysuiTestCase {
|
||||
|
||||
@Mock private LeakReporter mLeakReporter;
|
||||
@Mock private TrackedGarbage mTrackedGarbage;
|
||||
@Mock private DumpManager mDumpManager;
|
||||
private GarbageMonitor mGarbageMonitor;
|
||||
private final FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock());
|
||||
|
||||
@@ -53,8 +55,9 @@ public class GarbageMonitorTest extends SysuiTestCase {
|
||||
mContext,
|
||||
mFakeExecutor,
|
||||
new MessageRouterImpl(mFakeExecutor),
|
||||
new LeakDetector(null, mTrackedGarbage, null),
|
||||
mLeakReporter);
|
||||
new LeakDetector(null, mTrackedGarbage, null, mDumpManager),
|
||||
mLeakReporter,
|
||||
mDumpManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -21,12 +21,14 @@ import androidx.test.filters.SmallTest;
|
||||
import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.PrintWriter;
|
||||
@@ -67,7 +69,7 @@ public class LeakDetectorTest extends SysuiTestCase {
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
mLeakDetector = LeakDetector.create();
|
||||
mLeakDetector = LeakDetector.create(Mockito.mock(DumpManager.class));
|
||||
|
||||
// Note: Do not try to factor out object / collection waiter creation. The optimizer will
|
||||
// try and cache accesses to fields and thus create a GC root for the duration of the test
|
||||
@@ -112,7 +114,7 @@ public class LeakDetectorTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testDisabled() throws Exception {
|
||||
mLeakDetector = new LeakDetector(null, null, null);
|
||||
mLeakDetector = new LeakDetector(null, null, null, Mockito.mock(DumpManager.class));
|
||||
|
||||
Object o1 = new Object();
|
||||
Object o2 = new Object();
|
||||
|
||||
Reference in New Issue
Block a user