Remove Dependency.get(MAIN_HANDLER) from NotificationLockscreenUserManagerImpl

Also, clean up a bunch of other injectable objects.

Bug: 144503618
Test: atest SystemUITests
Change-Id: I5ec005ee21689d800238fa30c86ef6e08b832bbf
This commit is contained in:
Dave Mankoff
2019-11-19 21:52:51 -05:00
parent ad51c4d85f
commit 9427d1fc6d
4 changed files with 66 additions and 35 deletions

View File

@@ -27,7 +27,6 @@ import android.os.HandlerThread;
import android.os.Looper;
import android.os.Process;
import android.os.ServiceManager;
import android.os.UserManager;
import android.util.DisplayMetrics;
import android.view.IWindowManager;
import android.view.LayoutInflater;
@@ -235,13 +234,6 @@ public class DependencyProvider {
return new AlwaysOnDisplayPolicy(context);
}
/** */
@Singleton
@Provides
public UserManager providesUserManager(Context context) {
return context.getSystemService(UserManager.class);
}
/** */
@Provides
public ViewMediatorCallback providesViewMediatorCallback(KeyguardViewMediator viewMediator) {

View File

@@ -24,6 +24,7 @@ import android.app.IActivityManager;
import android.app.IWallpaperManager;
import android.app.KeyguardManager;
import android.app.WallpaperManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.res.Resources;
import android.hardware.SensorPrivacyManager;
@@ -31,6 +32,7 @@ import android.os.Handler;
import android.os.PowerManager;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.dreams.DreamService;
import android.service.dreams.IDreamManager;
import android.view.IWindowManager;
@@ -61,6 +63,12 @@ public class SystemServicesModule {
return context.getSystemService(AlarmManager.class);
}
@Provides
@Singleton
static DevicePolicyManager provideDevicePolicyManager(Context context) {
return context.getSystemService(DevicePolicyManager.class);
}
@Singleton
@Provides
static IActivityManager provideIActivityManager() {
@@ -140,6 +148,12 @@ public class SystemServicesModule {
return context.getSystemService(SensorPrivacyManager.class);
}
@Provides
@Singleton
static UserManager provideUserManager(Context context) {
return context.getSystemService(UserManager.class);
}
@Provides
static WallpaperManager provideWallpaperManager(Context context) {
return (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);

View File

@@ -32,8 +32,8 @@ import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -48,6 +48,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.MainHandler;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.recents.OverviewProxyService;
@@ -76,10 +77,8 @@ public class NotificationLockscreenUserManagerImpl implements
private static final String TAG = "LockscreenUserManager";
private static final boolean ENABLE_LOCK_SCREEN_ALLOW_REMOTE_INPUT = false;
private final DeviceProvisionedController mDeviceProvisionedController =
Dependency.get(DeviceProvisionedController.class);
private final KeyguardStateController mKeyguardStateController = Dependency.get(
KeyguardStateController.class);
private final DeviceProvisionedController mDeviceProvisionedController;
private final KeyguardStateController mKeyguardStateController;
// Lazy
private NotificationEntryManager mEntryManager;
@@ -168,6 +167,7 @@ public class NotificationLockscreenUserManagerImpl implements
};
protected final Context mContext;
private final Handler mMainHandler;
protected final SparseArray<UserInfo> mCurrentProfiles = new SparseArray<>();
protected int mCurrentUserId = 0;
@@ -184,24 +184,33 @@ public class NotificationLockscreenUserManagerImpl implements
@Inject
public NotificationLockscreenUserManagerImpl(Context context,
BroadcastDispatcher broadcastDispatcher) {
BroadcastDispatcher broadcastDispatcher,
DevicePolicyManager devicePolicyManager,
UserManager userManager,
IStatusBarService iStatusBarService,
KeyguardManager keyguardManager,
StatusBarStateController statusBarStateController,
@MainHandler Handler mainHandler,
DeviceProvisionedController deviceProvisionedController,
KeyguardStateController keyguardStateController) {
mContext = context;
mDevicePolicyManager = (DevicePolicyManager) mContext.getSystemService(
Context.DEVICE_POLICY_SERVICE);
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
mMainHandler = mainHandler;
mDevicePolicyManager = devicePolicyManager;
mUserManager = userManager;
mCurrentUserId = ActivityManager.getCurrentUser();
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
Dependency.get(StatusBarStateController.class).addCallback(this);
mBarService = iStatusBarService;
statusBarStateController.addCallback(this);
mLockPatternUtils = new LockPatternUtils(context);
mKeyguardManager = context.getSystemService(KeyguardManager.class);
mKeyguardManager = keyguardManager;
mBroadcastDispatcher = broadcastDispatcher;
mDeviceProvisionedController = deviceProvisionedController;
mKeyguardStateController = keyguardStateController;
}
public void setUpWithPresenter(NotificationPresenter presenter) {
mPresenter = presenter;
mLockscreenSettingsObserver = new ContentObserver(Dependency.get(Dependency.MAIN_HANDLER)) {
mLockscreenSettingsObserver = new ContentObserver(mMainHandler) {
@Override
public void onChange(boolean selfChange) {
// We don't know which user changed LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS or
@@ -215,7 +224,7 @@ public class NotificationLockscreenUserManagerImpl implements
}
};
mSettingsObserver = new ContentObserver(Dependency.get(Dependency.MAIN_HANDLER)) {
mSettingsObserver = new ContentObserver(mMainHandler) {
@Override
public void onChange(boolean selfChange) {
updateLockscreenNotificationSetting();

View File

@@ -31,6 +31,8 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.ActivityManager;
import android.app.KeyguardManager;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -45,12 +47,13 @@ import android.testing.TestableLooper;
import androidx.test.filters.SmallTest;
import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -66,14 +69,28 @@ import org.mockito.MockitoAnnotations;
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
public class NotificationLockscreenUserManagerTest extends SysuiTestCase {
@Mock private NotificationPresenter mPresenter;
@Mock private UserManager mUserManager;
@Mock
private NotificationPresenter mPresenter;
@Mock
private UserManager mUserManager;
// Dependency mocks:
@Mock private NotificationEntryManager mEntryManager;
@Mock private DeviceProvisionedController mDeviceProvisionedController;
@Mock private StatusBarKeyguardViewManager mKeyguardViewManager;
@Mock private BroadcastDispatcher mBroadcastDispatcher;
@Mock
private NotificationEntryManager mEntryManager;
@Mock
private DevicePolicyManager mDevicePolicyManager;
@Mock
private IStatusBarService mIStatusBarService;
@Mock
private KeyguardManager mKeyguardManager;
@Mock
private DeviceProvisionedController mDeviceProvisionedController;
@Mock
private StatusBarStateController mStatusBarStateController;
@Mock
private BroadcastDispatcher mBroadcastDispatcher;
@Mock
private KeyguardStateController mKeyguardStateController;
private int mCurrentUserId;
private TestNotificationLockscreenUserManager mLockscreenUserManager;
@@ -82,11 +99,7 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase {
public void setUp() {
MockitoAnnotations.initMocks(this);
mDependency.injectTestDependency(NotificationEntryManager.class, mEntryManager);
mDependency.injectTestDependency(DeviceProvisionedController.class,
mDeviceProvisionedController);
mDependency.injectMockDependency(KeyguardStateController.class);
mContext.addMockSystemService(UserManager.class, mUserManager);
mCurrentUserId = ActivityManager.getCurrentUser();
when(mUserManager.getProfiles(mCurrentUserId)).thenReturn(Lists.newArrayList(
@@ -196,7 +209,10 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase {
private class TestNotificationLockscreenUserManager
extends NotificationLockscreenUserManagerImpl {
public TestNotificationLockscreenUserManager(Context context) {
super(context, mBroadcastDispatcher);
super(context, mBroadcastDispatcher, mDevicePolicyManager, mUserManager,
mIStatusBarService, NotificationLockscreenUserManagerTest.this.mKeyguardManager,
mStatusBarStateController, Handler.createAsync(Looper.myLooper()),
mDeviceProvisionedController, mKeyguardStateController);
}
public BroadcastReceiver getBaseBroadcastReceiverForTest() {