diff options
author | Raff Tsai <rafftsai@google.com> | 2019-02-26 08:51:10 +0800 |
---|---|---|
committer | Raff Tsai <rafftsai@google.com> | 2019-02-27 09:38:52 +0800 |
commit | 3fd80809ccd74caf85e8ebd167d0a38e5f8f1520 (patch) | |
tree | 74d1470274dfd725fbbe1745a9938425738f5234 /src/com/android/settings/users | |
parent | d5a04e191229a60ee5e05ed84ee4e4835bee068c (diff) | |
download | packages_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.java | 22 |
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); } |