Merge "Update user manager check" into tm-qpr-dev

This commit is contained in:
Justin Koh
2022-05-12 03:35:23 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 12 deletions

View File

@@ -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

View File

@@ -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);
}
}