Getting rid of Dependency.get
Moving Dependency.get from HeadsUpManager class and its children classes by passing the AccessibiltyManagerWrapper and UIEventLogger object in the constructor. Bug: 218354106 Test: manual Change-Id: I5cd2435c0608968a2d880d742ebb1a307c48b02b Merged-In: I5cd2435c0608968a2d880d742ebb1a307c48b02b
This commit is contained in:
@@ -26,6 +26,7 @@ import android.os.PowerManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.keyguard.KeyguardViewController;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
@@ -61,6 +62,7 @@ import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
import com.android.systemui.statusbar.policy.BatteryControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
@@ -190,7 +192,10 @@ public abstract class ReferenceSystemUIModule {
|
||||
KeyguardBypassController bypassController,
|
||||
GroupMembershipManager groupManager,
|
||||
VisualStabilityProvider visualStabilityProvider,
|
||||
ConfigurationController configurationController) {
|
||||
ConfigurationController configurationController,
|
||||
@Main Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger) {
|
||||
return new HeadsUpManagerPhone(
|
||||
context,
|
||||
headsUpManagerLogger,
|
||||
@@ -198,7 +203,10 @@ public abstract class ReferenceSystemUIModule {
|
||||
bypassController,
|
||||
groupManager,
|
||||
visualStabilityProvider,
|
||||
configurationController
|
||||
configurationController,
|
||||
handler,
|
||||
accessibilityManagerWrapper,
|
||||
uiEventLogger
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,13 +19,13 @@ package com.android.systemui.statusbar;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.SystemClock;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManagerLogger;
|
||||
@@ -43,14 +43,15 @@ public abstract class AlertingNotificationManager {
|
||||
protected final ArrayMap<String, AlertEntry> mAlertEntries = new ArrayMap<>();
|
||||
protected final HeadsUpManagerLogger mLogger;
|
||||
|
||||
public AlertingNotificationManager(HeadsUpManagerLogger logger) {
|
||||
public AlertingNotificationManager(HeadsUpManagerLogger logger, @Main Handler handler) {
|
||||
mLogger = logger;
|
||||
mHandler = handler;
|
||||
}
|
||||
|
||||
protected int mMinimumDisplayTime;
|
||||
protected int mAutoDismissNotificationDecay;
|
||||
@VisibleForTesting
|
||||
public Handler mHandler = new Handler(Looper.getMainLooper());
|
||||
public Handler mHandler;
|
||||
|
||||
/**
|
||||
* Called when posting a new notification that should alert the user and appear on screen.
|
||||
|
||||
@@ -21,14 +21,17 @@ import android.annotation.Nullable;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Region;
|
||||
import android.os.Handler;
|
||||
import android.util.Pools;
|
||||
|
||||
import androidx.collection.ArraySet;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.policy.SystemBarUtils;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
@@ -37,6 +40,7 @@ import com.android.systemui.statusbar.notification.collection.provider.OnReorder
|
||||
import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider;
|
||||
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
|
||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManagerLogger;
|
||||
@@ -104,8 +108,11 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
|
||||
KeyguardBypassController bypassController,
|
||||
GroupMembershipManager groupMembershipManager,
|
||||
VisualStabilityProvider visualStabilityProvider,
|
||||
ConfigurationController configurationController) {
|
||||
super(context, logger);
|
||||
ConfigurationController configurationController,
|
||||
@Main Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger) {
|
||||
super(context, logger, handler, accessibilityManagerWrapper, uiEventLogger);
|
||||
Resources resources = mContext.getResources();
|
||||
mExtensionTime = resources.getInteger(R.integer.ambient_notification_extension_time);
|
||||
statusBarStateController.addCallback(mStatusBarStateListener);
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.util.ArrayMap;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
@@ -31,9 +32,9 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.EventLogTags;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.statusbar.AlertingNotificationManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
|
||||
@@ -79,11 +80,15 @@ public abstract class HeadsUpManager extends AlertingNotificationManager {
|
||||
}
|
||||
}
|
||||
|
||||
public HeadsUpManager(@NonNull final Context context, HeadsUpManagerLogger logger) {
|
||||
super(logger);
|
||||
public HeadsUpManager(@NonNull final Context context,
|
||||
HeadsUpManagerLogger logger,
|
||||
@Main Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger) {
|
||||
super(logger, handler);
|
||||
mContext = context;
|
||||
mAccessibilityMgr = Dependency.get(AccessibilityManagerWrapper.class);
|
||||
mUiEventLogger = Dependency.get(UiEventLogger.class);
|
||||
mAccessibilityMgr = accessibilityManagerWrapper;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
Resources resources = context.getResources();
|
||||
mMinimumDisplayTime = resources.getInteger(R.integer.heads_up_notification_minimum_time);
|
||||
mAutoDismissNotificationDecay = resources.getInteger(R.integer.heads_up_notification_decay);
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.os.PowerManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.keyguard.KeyguardViewController;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
@@ -63,6 +64,7 @@ import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
import com.android.systemui.statusbar.policy.BatteryControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
@@ -172,7 +174,10 @@ public abstract class TvSystemUIModule {
|
||||
KeyguardBypassController bypassController,
|
||||
GroupMembershipManager groupManager,
|
||||
VisualStabilityProvider visualStabilityProvider,
|
||||
ConfigurationController configurationController) {
|
||||
ConfigurationController configurationController,
|
||||
@Main Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger) {
|
||||
return new HeadsUpManagerPhone(
|
||||
context,
|
||||
headsUpManagerLogger,
|
||||
@@ -180,7 +185,10 @@ public abstract class TvSystemUIModule {
|
||||
bypassController,
|
||||
groupManager,
|
||||
visualStabilityProvider,
|
||||
configurationController
|
||||
configurationController,
|
||||
handler,
|
||||
accessibilityManagerWrapper,
|
||||
uiEventLogger
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -82,12 +82,10 @@ public class AlertingNotificationManagerTest extends SysuiTestCase {
|
||||
private final class TestableAlertingNotificationManager extends AlertingNotificationManager {
|
||||
private AlertEntry mLastCreatedEntry;
|
||||
|
||||
private TestableAlertingNotificationManager() {
|
||||
super(mock(HeadsUpManagerLogger.class));
|
||||
private TestableAlertingNotificationManager(Handler handler) {
|
||||
super(mock(HeadsUpManagerLogger.class), handler);
|
||||
mMinimumDisplayTime = TEST_MINIMUM_DISPLAY_TIME;
|
||||
mAutoDismissNotificationDecay = TEST_AUTO_DISMISS_TIME;
|
||||
mHandler.removeCallbacksAndMessages(null);
|
||||
mHandler = mTestHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -108,8 +106,8 @@ public class AlertingNotificationManagerTest extends SysuiTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
protected AlertingNotificationManager createAlertingNotificationManager() {
|
||||
return new TestableAlertingNotificationManager();
|
||||
protected AlertingNotificationManager createAlertingNotificationManager(Handler handler) {
|
||||
return new TestableAlertingNotificationManager(handler);
|
||||
}
|
||||
|
||||
protected StatusBarNotification createNewSbn(int id, Notification.Builder n) {
|
||||
@@ -143,7 +141,7 @@ public class AlertingNotificationManagerTest extends SysuiTestCase {
|
||||
.build();
|
||||
mEntry.setRow(mRow);
|
||||
|
||||
mAlertingNotificationManager = createAlertingNotificationManager();
|
||||
mAlertingNotificationManager = createAlertingNotificationManager(mTestHandler);
|
||||
}
|
||||
|
||||
@After
|
||||
|
||||
@@ -48,6 +48,7 @@ import android.view.LayoutInflater;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.TestableDependency;
|
||||
import com.android.systemui.classifier.FalsingCollectorFake;
|
||||
import com.android.systemui.classifier.FalsingManagerFake;
|
||||
@@ -75,6 +76,7 @@ import com.android.systemui.statusbar.notification.row.NotificationRowContentBin
|
||||
import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
|
||||
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManagerLogger;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyState;
|
||||
import com.android.systemui.statusbar.policy.InflatedSmartReplyViewHolder;
|
||||
@@ -144,7 +146,10 @@ public class NotificationTestHelper {
|
||||
mock(KeyguardBypassController.class),
|
||||
mock(GroupMembershipManager.class),
|
||||
mock(VisualStabilityProvider.class),
|
||||
mock(ConfigurationControllerImpl.class)
|
||||
mock(ConfigurationControllerImpl.class),
|
||||
new Handler(mTestLooper.getLooper()),
|
||||
mock(AccessibilityManagerWrapper.class),
|
||||
mock(UiEventLogger.class)
|
||||
);
|
||||
mHeadsUpManager.mHandler.removeCallbacksAndMessages(null);
|
||||
mHeadsUpManager.mHandler = new Handler(mTestLooper.getLooper());
|
||||
|
||||
@@ -23,11 +23,13 @@ import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.AlertingNotificationManager;
|
||||
import com.android.systemui.statusbar.AlertingNotificationManagerTest;
|
||||
@@ -64,6 +66,8 @@ public class HeadsUpManagerPhoneTest extends AlertingNotificationManagerTest {
|
||||
@Mock private StatusBarStateController mStatusBarStateController;
|
||||
@Mock private KeyguardBypassController mBypassController;
|
||||
@Mock private ConfigurationControllerImpl mConfigurationController;
|
||||
@Mock private AccessibilityManagerWrapper mAccessibilityManagerWrapper;
|
||||
@Mock private UiEventLogger mUiEventLogger;
|
||||
private boolean mLivesPastNormalTime;
|
||||
|
||||
private static final class TestableHeadsUpManagerPhone extends HeadsUpManagerPhone {
|
||||
@@ -74,7 +78,10 @@ public class HeadsUpManagerPhoneTest extends AlertingNotificationManagerTest {
|
||||
VisualStabilityProvider visualStabilityProvider,
|
||||
StatusBarStateController statusBarStateController,
|
||||
KeyguardBypassController keyguardBypassController,
|
||||
ConfigurationController configurationController
|
||||
ConfigurationController configurationController,
|
||||
Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger
|
||||
) {
|
||||
super(
|
||||
context,
|
||||
@@ -83,7 +90,10 @@ public class HeadsUpManagerPhoneTest extends AlertingNotificationManagerTest {
|
||||
keyguardBypassController,
|
||||
groupManager,
|
||||
visualStabilityProvider,
|
||||
configurationController
|
||||
configurationController,
|
||||
handler,
|
||||
accessibilityManagerWrapper,
|
||||
uiEventLogger
|
||||
);
|
||||
mMinimumDisplayTime = TEST_MINIMUM_DISPLAY_TIME;
|
||||
mAutoDismissNotificationDecay = TEST_AUTO_DISMISS_TIME;
|
||||
@@ -103,6 +113,8 @@ public class HeadsUpManagerPhoneTest extends AlertingNotificationManagerTest {
|
||||
when(mVSProvider.isReorderingAllowed()).thenReturn(true);
|
||||
mDependency.injectMockDependency(NotificationShadeWindowController.class);
|
||||
mDependency.injectMockDependency(ConfigurationController.class);
|
||||
super.setUp();
|
||||
|
||||
mHeadsUpManager = new TestableHeadsUpManagerPhone(
|
||||
mContext,
|
||||
mHeadsUpManagerLogger,
|
||||
@@ -110,11 +122,11 @@ public class HeadsUpManagerPhoneTest extends AlertingNotificationManagerTest {
|
||||
mVSProvider,
|
||||
mStatusBarStateController,
|
||||
mBypassController,
|
||||
mConfigurationController
|
||||
mConfigurationController,
|
||||
mTestHandler,
|
||||
mAccessibilityManagerWrapper,
|
||||
mUiEventLogger
|
||||
);
|
||||
super.setUp();
|
||||
mHeadsUpManager.mHandler.removeCallbacksAndMessages(null);
|
||||
mHeadsUpManager.mHandler = mTestHandler;
|
||||
}
|
||||
|
||||
@After
|
||||
|
||||
@@ -36,6 +36,7 @@ import android.app.PendingIntent;
|
||||
import android.app.Person;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
@@ -62,7 +63,6 @@ public class HeadsUpManagerTest extends AlertingNotificationManagerTest {
|
||||
private static final int TEST_A11Y_AUTO_DISMISS_TIME = 600;
|
||||
private static final int TEST_A11Y_TIMEOUT_TIME = 5_000;
|
||||
|
||||
private AccessibilityManagerWrapper mAccessibilityMgr;
|
||||
private HeadsUpManager mHeadsUpManager;
|
||||
private boolean mLivesPastNormalTime;
|
||||
private UiEventLoggerFake mUiEventLoggerFake = new UiEventLoggerFake();
|
||||
@@ -71,10 +71,15 @@ public class HeadsUpManagerTest extends AlertingNotificationManagerTest {
|
||||
@Mock private StatusBarNotification mSbn;
|
||||
@Mock private Notification mNotification;
|
||||
@Mock private HeadsUpManagerLogger mLogger;
|
||||
@Mock private AccessibilityManagerWrapper mAccessibilityMgr;
|
||||
|
||||
private final class TestableHeadsUpManager extends HeadsUpManager {
|
||||
TestableHeadsUpManager(Context context, HeadsUpManagerLogger logger) {
|
||||
super(context, logger);
|
||||
TestableHeadsUpManager(Context context,
|
||||
HeadsUpManagerLogger logger,
|
||||
Handler handler,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
UiEventLogger uiEventLogger) {
|
||||
super(context, logger, handler, accessibilityManagerWrapper, uiEventLogger);
|
||||
mMinimumDisplayTime = TEST_MINIMUM_DISPLAY_TIME;
|
||||
mAutoDismissNotificationDecay = TEST_AUTO_DISMISS_TIME;
|
||||
}
|
||||
@@ -87,14 +92,11 @@ public class HeadsUpManagerTest extends AlertingNotificationManagerTest {
|
||||
@Before
|
||||
public void setUp() {
|
||||
initMocks(this);
|
||||
mAccessibilityMgr = mDependency.injectMockDependency(AccessibilityManagerWrapper.class);
|
||||
mDependency.injectTestDependency(UiEventLogger.class, mUiEventLoggerFake);
|
||||
when(mEntry.getSbn()).thenReturn(mSbn);
|
||||
when(mSbn.getNotification()).thenReturn(mNotification);
|
||||
mHeadsUpManager = new TestableHeadsUpManager(mContext, mLogger);
|
||||
super.setUp();
|
||||
mHeadsUpManager.mHandler.removeCallbacksAndMessages(null);
|
||||
mHeadsUpManager.mHandler = mTestHandler;
|
||||
mHeadsUpManager = new TestableHeadsUpManager(mContext, mLogger, mTestHandler,
|
||||
mAccessibilityMgr, mUiEventLoggerFake);
|
||||
}
|
||||
|
||||
@After
|
||||
|
||||
Reference in New Issue
Block a user