Update user manager check
UserManager.isSystem was always returning true. Now using user tracker. Bug: 231588826 Test: updated unit tests. Change-Id: I8f0e9b0fabc0eeabd638746ec7f541ef58bf351b
This commit is contained in:
@@ -27,7 +27,6 @@ import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.service.quicksettings.Tile;
|
||||
@@ -52,6 +51,7 @@ import com.android.systemui.qs.QSHost;
|
||||
import com.android.systemui.qs.SettingObserver;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -66,7 +66,7 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
private final BroadcastDispatcher mBroadcastDispatcher;
|
||||
private final SettingObserver mEnabledSettingObserver;
|
||||
private final SettingObserver mDreamSettingObserver;
|
||||
private final UserManager mUserManager;
|
||||
private final UserTracker mUserTracker;
|
||||
private final boolean mDreamSupported;
|
||||
private final boolean mDreamOnlyEnabledForSystemUser;
|
||||
|
||||
@@ -90,7 +90,7 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
IDreamManager dreamManager,
|
||||
SecureSettings secureSettings,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
UserManager userManager,
|
||||
UserTracker userTracker,
|
||||
@Named(DreamModule.DREAM_SUPPORTED) boolean dreamSupported,
|
||||
@Named(DreamModule.DREAM_ONLY_ENABLED_FOR_SYSTEM_USER)
|
||||
boolean dreamOnlyEnabledForSystemUser
|
||||
@@ -113,7 +113,7 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
refreshState();
|
||||
}
|
||||
};
|
||||
mUserManager = userManager;
|
||||
mUserTracker = userTracker;
|
||||
mDreamSupported = dreamSupported;
|
||||
mDreamOnlyEnabledForSystemUser = dreamOnlyEnabledForSystemUser;
|
||||
}
|
||||
@@ -194,7 +194,7 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
// For now, restrict to debug users.
|
||||
return Build.isDebuggable()
|
||||
&& mDreamSupported
|
||||
&& (!mDreamOnlyEnabledForSystemUser || mUserManager.isSystemUser());
|
||||
&& (!mDreamOnlyEnabledForSystemUser || mUserTracker.getUserHandle().isSystem());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertEquals;
|
||||
import static junit.framework.TestCase.assertFalse;
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -27,7 +28,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.ComponentName;
|
||||
import android.os.Handler;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserManager;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.service.quicksettings.Tile;
|
||||
@@ -45,6 +46,7 @@ import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.QSTileHost;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.util.settings.FakeSettings;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
@@ -74,7 +76,7 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private BroadcastDispatcher mBroadcastDispatcher;
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
private UserTracker mUserTracker;
|
||||
|
||||
private TestableLooper mTestableLooper;
|
||||
|
||||
@@ -196,15 +198,21 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
|
||||
DreamTile supportedTileAllUsers = constructTileForTest(true, false);
|
||||
|
||||
when(mUserManager.isSystemUser()).thenReturn(true);
|
||||
UserHandle systemUserHandle = mock(UserHandle.class);
|
||||
when(systemUserHandle.isSystem()).thenReturn(true);
|
||||
|
||||
UserHandle nonSystemUserHandle = mock(UserHandle.class);
|
||||
when(nonSystemUserHandle.isSystem()).thenReturn(false);
|
||||
|
||||
when(mUserTracker.getUserHandle()).thenReturn(systemUserHandle);
|
||||
assertTrue(supportedTileAllUsers.isAvailable());
|
||||
when(mUserManager.isSystemUser()).thenReturn(false);
|
||||
when(mUserTracker.getUserHandle()).thenReturn(nonSystemUserHandle);
|
||||
assertTrue(supportedTileAllUsers.isAvailable());
|
||||
|
||||
DreamTile supportedTileOnlySystemUser = constructTileForTest(true, true);
|
||||
when(mUserManager.isSystemUser()).thenReturn(true);
|
||||
when(mUserTracker.getUserHandle()).thenReturn(systemUserHandle);
|
||||
assertTrue(supportedTileOnlySystemUser.isAvailable());
|
||||
when(mUserManager.isSystemUser()).thenReturn(false);
|
||||
when(mUserTracker.getUserHandle()).thenReturn(nonSystemUserHandle);
|
||||
assertFalse(supportedTileOnlySystemUser.isAvailable());
|
||||
}
|
||||
|
||||
@@ -227,7 +235,7 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
mDreamManager,
|
||||
mSecureSettings,
|
||||
mBroadcastDispatcher,
|
||||
mUserManager,
|
||||
mUserTracker,
|
||||
dreamSupported, dreamOnlyEnabledForSystemUser);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user