Merge "Manually register Dumpables to DumpManager" into sc-v2-dev am: 768b3fb74c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15751628 Change-Id: Ifd07d84a5a9647347517341712806fde33fc6656
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