Merge "Add is MainUser check for HSUM."
This commit is contained in:
committed by
Android (Google) Code Review
commit
255dc584a2
@@ -203,8 +203,7 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
// For now, restrict to debug users.
|
||||
return Build.isDebuggable()
|
||||
&& mDreamSupported
|
||||
// TODO(b/257333623): Allow the Dock User to be non-SystemUser user in HSUM.
|
||||
&& (!mDreamOnlyEnabledForDockUser || mUserTracker.getUserHandle().isSystem());
|
||||
&& (!mDreamOnlyEnabledForDockUser || mUserTracker.getUserInfo().isMain());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -224,7 +223,8 @@ public class DreamTile extends QSTileImpl<QSTile.BooleanState> {
|
||||
|
||||
private ComponentName getActiveDream() {
|
||||
try {
|
||||
final ComponentName[] dreams = mDreamManager.getDreamComponents();
|
||||
final ComponentName[] dreams = mDreamManager.getDreamComponentsForUser(
|
||||
mUserTracker.getUserId());
|
||||
return dreams != null && dreams.length > 0 ? dreams[0] : null;
|
||||
} catch (RemoteException e) {
|
||||
Log.w(TAG, "Failed to get active dream", e);
|
||||
|
||||
@@ -29,9 +29,9 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.Handler;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.service.quicksettings.Tile;
|
||||
@@ -123,7 +123,7 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
|
||||
// Should not be available if component is not set
|
||||
mSecureSettings.putInt(Settings.Secure.SCREENSAVER_ENABLED, 1);
|
||||
when(mDreamManager.getDreamComponents()).thenReturn(null);
|
||||
when(mDreamManager.getDreamComponentsForUser(mUserTracker.getUserId())).thenReturn(null);
|
||||
|
||||
mTestableLooper.processAllMessages();
|
||||
assertEquals(Tile.STATE_UNAVAILABLE, mTile.getState().state);
|
||||
@@ -134,9 +134,8 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
public void testInactiveWhenDreaming() throws RemoteException {
|
||||
setScreensaverEnabled(true);
|
||||
|
||||
when(mDreamManager.getDreamComponents()).thenReturn(new ComponentName[]{
|
||||
COLORS_DREAM_COMPONENT_NAME
|
||||
});
|
||||
when(mDreamManager.getDreamComponentsForUser(mUserTracker.getUserId()))
|
||||
.thenReturn(new ComponentName[]{COLORS_DREAM_COMPONENT_NAME});
|
||||
when(mDreamManager.isDreaming()).thenReturn(false);
|
||||
|
||||
mTile.refreshState();
|
||||
@@ -148,9 +147,8 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
public void testActive() throws RemoteException {
|
||||
setScreensaverEnabled(true);
|
||||
|
||||
when(mDreamManager.getDreamComponents()).thenReturn(new ComponentName[]{
|
||||
COLORS_DREAM_COMPONENT_NAME
|
||||
});
|
||||
when(mDreamManager.getDreamComponentsForUser(mUserTracker.getUserId()))
|
||||
.thenReturn(new ComponentName[]{COLORS_DREAM_COMPONENT_NAME});
|
||||
when(mDreamManager.isDreaming()).thenReturn(true);
|
||||
|
||||
mTile.refreshState();
|
||||
@@ -162,9 +160,8 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
public void testClick() throws RemoteException {
|
||||
// Set the AOSP dream enabled as the base setup.
|
||||
setScreensaverEnabled(true);
|
||||
when(mDreamManager.getDreamComponents()).thenReturn(new ComponentName[]{
|
||||
COLORS_DREAM_COMPONENT_NAME
|
||||
});
|
||||
when(mDreamManager.getDreamComponentsForUser(mUserTracker.getUserId()))
|
||||
.thenReturn(new ComponentName[]{COLORS_DREAM_COMPONENT_NAME});
|
||||
when(mDreamManager.isDreaming()).thenReturn(false);
|
||||
|
||||
mTile.refreshState();
|
||||
@@ -203,21 +200,21 @@ public class DreamTileTest extends SysuiTestCase {
|
||||
|
||||
DreamTile supportedTileAllUsers = constructTileForTest(true, false);
|
||||
|
||||
UserHandle systemUserHandle = mock(UserHandle.class);
|
||||
when(systemUserHandle.isSystem()).thenReturn(true);
|
||||
UserInfo mainUserInfo = mock(UserInfo.class);
|
||||
when(mainUserInfo.isMain()).thenReturn(true);
|
||||
|
||||
UserHandle nonSystemUserHandle = mock(UserHandle.class);
|
||||
when(nonSystemUserHandle.isSystem()).thenReturn(false);
|
||||
UserInfo nonMainUserInfo = mock(UserInfo.class);
|
||||
when(nonMainUserInfo.isMain()).thenReturn(false);
|
||||
|
||||
when(mUserTracker.getUserHandle()).thenReturn(systemUserHandle);
|
||||
when(mUserTracker.getUserInfo()).thenReturn(mainUserInfo);
|
||||
assertTrue(supportedTileAllUsers.isAvailable());
|
||||
when(mUserTracker.getUserHandle()).thenReturn(nonSystemUserHandle);
|
||||
when(mUserTracker.getUserInfo()).thenReturn(nonMainUserInfo);
|
||||
assertTrue(supportedTileAllUsers.isAvailable());
|
||||
|
||||
DreamTile supportedTileOnlySystemUser = constructTileForTest(true, true);
|
||||
when(mUserTracker.getUserHandle()).thenReturn(systemUserHandle);
|
||||
when(mUserTracker.getUserInfo()).thenReturn(mainUserInfo);
|
||||
assertTrue(supportedTileOnlySystemUser.isAvailable());
|
||||
when(mUserTracker.getUserHandle()).thenReturn(nonSystemUserHandle);
|
||||
when(mUserTracker.getUserInfo()).thenReturn(nonMainUserInfo);
|
||||
assertFalse(supportedTileOnlySystemUser.isAvailable());
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ import com.android.server.FgThread;
|
||||
import com.android.server.LocalServices;
|
||||
import com.android.server.SystemService;
|
||||
import com.android.server.input.InputManagerInternal;
|
||||
import com.android.server.pm.UserManagerInternal;
|
||||
import com.android.server.wm.ActivityInterceptorCallback;
|
||||
import com.android.server.wm.ActivityTaskManagerInternal;
|
||||
|
||||
@@ -639,8 +640,10 @@ public final class DreamManagerService extends SystemService {
|
||||
}
|
||||
|
||||
private boolean dreamsEnabledForUser(int userId) {
|
||||
// TODO(b/257333623): Support non-system Dock Users in HSUM.
|
||||
return !mDreamsOnlyEnabledForDockUser || (userId == UserHandle.USER_SYSTEM);
|
||||
if (!mDreamsOnlyEnabledForDockUser) return true;
|
||||
if (userId < 0) return false;
|
||||
final int mainUserId = LocalServices.getService(UserManagerInternal.class).getMainUserId();
|
||||
return userId == mainUserId;
|
||||
}
|
||||
|
||||
private ServiceInfo getServiceInfo(ComponentName name) {
|
||||
|
||||
Reference in New Issue
Block a user