summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/users
diff options
context:
space:
mode:
authorRaff Tsai <rafftsai@google.com>2019-02-26 08:51:10 +0800
committerRaff Tsai <rafftsai@google.com>2019-02-27 09:38:52 +0800
commit3fd80809ccd74caf85e8ebd167d0a38e5f8f1520 (patch)
tree74d1470274dfd725fbbe1745a9938425738f5234 /src/com/android/settings/users
parentd5a04e191229a60ee5e05ed84ee4e4835bee068c (diff)
downloadpackages_apps_Settings-3fd80809ccd74caf85e8ebd167d0a38e5f8f1520.tar.gz
packages_apps_Settings-3fd80809ccd74caf85e8ebd167d0a38e5f8f1520.tar.bz2
packages_apps_Settings-3fd80809ccd74caf85e8ebd167d0a38e5f8f1520.zip
Use Device Policy dialog in switchbar
We need to pop dialog when switchbar is disabled by Device Policy Test: visual, robolectric Fixes: 124855614 Change-Id: Ief65baa2c4912cb7c85d5eccc2c0f363d2fc898b
Diffstat (limited to 'src/com/android/settings/users')
-rw-r--r--src/com/android/settings/users/MultiUserSwitchBarController.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index 9588f71464..58de14963f 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -17,27 +17,34 @@
package com.android.settings.users;
import android.content.Context;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
+import androidx.annotation.VisibleForTesting;
+
import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
public class MultiUserSwitchBarController implements SwitchWidgetController.OnSwitchChangeListener,
LifecycleObserver, OnStart, OnStop {
+ private static final String TAG = "MultiUserSwitchBarCtrl";
interface OnMultiUserSwitchChangedListener {
void onMultiUserSwitchChanged(boolean newState);
}
+ @VisibleForTesting
+ final SwitchWidgetController mSwitchBar;
- private static final String TAG = "MultiUserSwitchBarCtrl";
private final Context mContext;
- private final SwitchWidgetController mSwitchBar;
private final UserCapabilities mUserCapabilities;
private final OnMultiUserSwitchChangedListener mListener;
+
MultiUserSwitchBarController(Context context, SwitchWidgetController switchBar,
OnMultiUserSwitchChangedListener listener) {
mContext = context;
@@ -45,8 +52,15 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw
mListener = listener;
mUserCapabilities = UserCapabilities.create(context);
mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled);
- mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
- && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
+
+ if (mUserCapabilities.mDisallowSwitchUser) {
+ mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
+ .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
+ UserHandle.myUserId()));
+ } else {
+ mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
+ && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
+ }
mSwitchBar.setListener(this);
}