Merge "Replace SystemUser checks with MainUser."

This commit is contained in:
Victor Truong
2023-02-02 02:51:26 +00:00
committed by Android (Google) Code Review
7 changed files with 78 additions and 29 deletions

View File

@@ -1277,4 +1277,16 @@ public final class Utils extends com.android.settingslib.Utils {
}
return -1;
}
/**
* Returns if the current user is able to use Dreams.
*/
public static boolean canCurrentUserDream(Context context) {
final UserHandle mainUser = context.getSystemService(UserManager.class).getMainUser();
if (mainUser == null) {
return false;
}
return context.createContextAsUser(mainUser, 0).getSystemService(UserManager.class)
.isUserForeground();
}
}

View File

@@ -17,9 +17,9 @@
package com.android.settings.communal;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
/**
@@ -32,14 +32,8 @@ public class CommunalPreferenceController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
// TODO(b/257333623): Allow the communal user to be non-SystemUser user in HSUM.
return (mContext.getResources().getBoolean(R.bool.config_show_communal_settings)
&& isSystemUser())
&& Utils.canCurrentUserDream(mContext))
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
private boolean isSystemUser() {
final UserManager userManager = mContext.getSystemService(UserManager.class);
return userManager != null && userManager.isSystemUser();
}
}

View File

@@ -14,9 +14,9 @@
package com.android.settings.display;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dream.DreamSettings;
@@ -39,9 +39,8 @@ public class ScreenSaverPreferenceController extends BasePreferenceController im
com.android.internal.R.bool.config_dreamsSupported);
final boolean dreamsOnlyEnabledForDockUser = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsOnlyEnabledForDockUser);
final UserManager userManager = mContext.getSystemService(UserManager.class);
// TODO(b/257333623): Allow the Dock User to be non-SystemUser user in HSUM.
return (dreamsSupported && (!dreamsOnlyEnabledForDockUser || userManager.isMainUser()))
return (dreamsSupported && (!dreamsOnlyEnabledForDockUser
|| Utils.canCurrentUserDream(mContext)))
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}

View File

@@ -24,6 +24,7 @@ import android.provider.Settings;
import androidx.preference.PreferenceScreen;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import java.util.Arrays;
@@ -67,9 +68,7 @@ public class TimeoutToDockUserPreferenceController extends BasePreferenceControl
return CONDITIONALLY_UNAVAILABLE;
}
// Is currently user zero. Only non user zero can have this setting.
// TODO(b/257333623): Allow the Dock User to be non-SystemUser user in HSUM.
if (UserHandle.myUserId() == UserHandle.USER_SYSTEM) {
if (Utils.canCurrentUserDream(mContext)) {
return DISABLED_FOR_USER;
}