Loading packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java +14 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,13 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.drawable.CircleFramedDrawable; import com.android.systemui.R; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.qs.PseudoGridView; import com.android.systemui.qs.QSUserSwitcherEvent; import com.android.systemui.statusbar.policy.UserSwitcherController; import javax.inject.Inject; /** * Quick settings detail view for user switching. */ Loading @@ -54,9 +57,9 @@ public class UserDetailView extends PseudoGridView { R.layout.qs_user_detail, parent, attach); } public void createAndSetAdapter(UserSwitcherController controller, UiEventLogger uiEventLogger) { mAdapter = new Adapter(mContext, controller, uiEventLogger); /** Set a {@link android.widget.BaseAdapter} */ public void setAdapter(Adapter adapter) { mAdapter = adapter; ViewGroupAdapterBridge.link(this, mAdapter); } Loading @@ -71,13 +74,16 @@ public class UserDetailView extends PseudoGridView { protected UserSwitcherController mController; private View mCurrentUserView; private final UiEventLogger mUiEventLogger; private final FalsingManager mFalsingManager; @Inject public Adapter(Context context, UserSwitcherController controller, UiEventLogger uiEventLogger) { UiEventLogger uiEventLogger, FalsingManager falsingManager) { super(controller); mContext = context; mController = controller; mUiEventLogger = uiEventLogger; mFalsingManager = falsingManager; } @Override Loading Loading @@ -140,6 +146,10 @@ public class UserDetailView extends PseudoGridView { @Override public void onClick(View view) { if (mFalsingManager.isFalseTap(FalsingManager.MODERATE_PENALTY)) { return; } UserSwitcherController.UserRecord tag = (UserSwitcherController.UserRecord) view.getTag(); if (tag.isDisabledByAdmin) { Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java +7 −7 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; import com.android.internal.logging.UiEventLogger; import com.android.keyguard.KeyguardConstants; import com.android.keyguard.KeyguardVisibilityHelper; import com.android.keyguard.dagger.KeyguardUserSwitcherScope; Loading @@ -37,6 +36,7 @@ import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.tiles.UserDetailView; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.AnimatableProperty; import com.android.systemui.statusbar.notification.PropertyAnimator; Loading @@ -48,6 +48,7 @@ import com.android.systemui.statusbar.phone.UserAvatarView; import com.android.systemui.util.ViewController; import javax.inject.Inject; import javax.inject.Provider; /** * Manages the user switch on the Keyguard that is used for opening the QS user panel. Loading Loading @@ -108,7 +109,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie KeyguardStateController keyguardStateController, SysuiStatusBarStateController statusBarStateController, DozeParameters dozeParameters, UiEventLogger uiEventLogger) { Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { super(view); if (DEBUG) Log.d(TAG, "New KeyguardQsUserSwitchController"); mContext = context; Loading @@ -120,8 +121,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie mStatusBarStateController = statusBarStateController; mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, keyguardStateController, dozeParameters); mUserDetailAdapter = new KeyguardUserDetailAdapter(mUserSwitcherController, mContext, uiEventLogger); mUserDetailAdapter = new KeyguardUserDetailAdapter(context, userDetailViewAdapterProvider); } @Override Loading Loading @@ -304,9 +304,9 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie } class KeyguardUserDetailAdapter extends UserSwitcherController.UserDetailAdapter { KeyguardUserDetailAdapter(UserSwitcherController userSwitcherController, Context context, UiEventLogger uiEventLogger) { super(userSwitcherController, context, uiEventLogger); KeyguardUserDetailAdapter(Context context, Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { super(context, userDetailViewAdapterProvider); } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +9 −9 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import javax.inject.Provider; /** * Keeps a list of all users on the device for user switching. Loading Loading @@ -128,14 +129,14 @@ public class UserSwitcherController implements Dumpable { @Main Handler handler, ActivityStarter activityStarter, BroadcastDispatcher broadcastDispatcher, UiEventLogger uiEventLogger, TelephonyListenerManager telephonyListenerManager, IActivityTaskManager activityTaskManager) { IActivityTaskManager activityTaskManager, UserDetailAdapter userDetailAdapter) { mContext = context; mBroadcastDispatcher = broadcastDispatcher; mTelephonyListenerManager = telephonyListenerManager; mActivityTaskManager = activityTaskManager; mUiEventLogger = uiEventLogger; mGuestResumeSessionReceiver = new GuestResumeSessionReceiver(mUiEventLogger); mUserDetailAdapter = new UserDetailAdapter(this, mContext, mUiEventLogger); mUserDetailAdapter = userDetailAdapter; if (!UserManager.isGuestUserEphemeral()) { mGuestResumeSessionReceiver.register(mBroadcastDispatcher); } Loading Loading @@ -789,15 +790,14 @@ public class UserSwitcherController implements Dumpable { public static class UserDetailAdapter implements DetailAdapter { private final Intent USER_SETTINGS_INTENT = new Intent(Settings.ACTION_USER_SETTINGS); private final UserSwitcherController mUserSwitcherController; private final Context mContext; private final UiEventLogger mUiEventLogger; private final Provider<UserDetailView.Adapter> mUserDetailViewAdapterProvider; UserDetailAdapter(UserSwitcherController userSwitcherController, Context context, UiEventLogger uiEventLogger) { mUserSwitcherController = userSwitcherController; @Inject UserDetailAdapter(Context context, Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { mContext = context; mUiEventLogger = uiEventLogger; mUserDetailViewAdapterProvider = userDetailViewAdapterProvider; } @Override Loading @@ -810,7 +810,7 @@ public class UserSwitcherController implements Dumpable { UserDetailView v; if (!(convertView instanceof UserDetailView)) { v = UserDetailView.inflate(context, parent, false); v.createAndSetAdapter(mUserSwitcherController, mUiEventLogger); v.setAdapter(mUserDetailViewAdapterProvider.get()); } else { v = (UserDetailView) convertView; } Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.internal.logging.testing.UiEventLoggerFake import com.android.internal.util.UserIcons import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingManagerFake import com.android.systemui.qs.QSUserSwitcherEvent import com.android.systemui.statusbar.policy.UserSwitcherController import org.junit.Assert.assertEquals Loading @@ -53,6 +54,7 @@ class UserDetailViewAdapterTest : SysuiTestCase() { @Mock private lateinit var mInflatedUserDetailItemView: UserDetailItemView @Mock private lateinit var mUserInfo: UserInfo @Mock private lateinit var mLayoutInflater: LayoutInflater private var falsingManagerFake: FalsingManagerFake = FalsingManagerFake() private lateinit var adapter: UserDetailView.Adapter private lateinit var uiEventLogger: UiEventLoggerFake private lateinit var mPicture: Bitmap Loading @@ -65,7 +67,8 @@ class UserDetailViewAdapterTest : SysuiTestCase() { mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE, mLayoutInflater) `when`(mLayoutInflater.inflate(anyInt(), any(ViewGroup::class.java), anyBoolean())) .thenReturn(mInflatedUserDetailItemView) adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger) adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger, falsingManagerFake) mPicture = UserIcons.convertToBitmap(mContext.getDrawable(R.drawable.ic_avatar_user)) } Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java +14 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,13 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.drawable.CircleFramedDrawable; import com.android.systemui.R; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.qs.PseudoGridView; import com.android.systemui.qs.QSUserSwitcherEvent; import com.android.systemui.statusbar.policy.UserSwitcherController; import javax.inject.Inject; /** * Quick settings detail view for user switching. */ Loading @@ -54,9 +57,9 @@ public class UserDetailView extends PseudoGridView { R.layout.qs_user_detail, parent, attach); } public void createAndSetAdapter(UserSwitcherController controller, UiEventLogger uiEventLogger) { mAdapter = new Adapter(mContext, controller, uiEventLogger); /** Set a {@link android.widget.BaseAdapter} */ public void setAdapter(Adapter adapter) { mAdapter = adapter; ViewGroupAdapterBridge.link(this, mAdapter); } Loading @@ -71,13 +74,16 @@ public class UserDetailView extends PseudoGridView { protected UserSwitcherController mController; private View mCurrentUserView; private final UiEventLogger mUiEventLogger; private final FalsingManager mFalsingManager; @Inject public Adapter(Context context, UserSwitcherController controller, UiEventLogger uiEventLogger) { UiEventLogger uiEventLogger, FalsingManager falsingManager) { super(controller); mContext = context; mController = controller; mUiEventLogger = uiEventLogger; mFalsingManager = falsingManager; } @Override Loading Loading @@ -140,6 +146,10 @@ public class UserDetailView extends PseudoGridView { @Override public void onClick(View view) { if (mFalsingManager.isFalseTap(FalsingManager.MODERATE_PENALTY)) { return; } UserSwitcherController.UserRecord tag = (UserSwitcherController.UserRecord) view.getTag(); if (tag.isDisabledByAdmin) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java +7 −7 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; import com.android.internal.logging.UiEventLogger; import com.android.keyguard.KeyguardConstants; import com.android.keyguard.KeyguardVisibilityHelper; import com.android.keyguard.dagger.KeyguardUserSwitcherScope; Loading @@ -37,6 +36,7 @@ import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.tiles.UserDetailView; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.AnimatableProperty; import com.android.systemui.statusbar.notification.PropertyAnimator; Loading @@ -48,6 +48,7 @@ import com.android.systemui.statusbar.phone.UserAvatarView; import com.android.systemui.util.ViewController; import javax.inject.Inject; import javax.inject.Provider; /** * Manages the user switch on the Keyguard that is used for opening the QS user panel. Loading Loading @@ -108,7 +109,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie KeyguardStateController keyguardStateController, SysuiStatusBarStateController statusBarStateController, DozeParameters dozeParameters, UiEventLogger uiEventLogger) { Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { super(view); if (DEBUG) Log.d(TAG, "New KeyguardQsUserSwitchController"); mContext = context; Loading @@ -120,8 +121,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie mStatusBarStateController = statusBarStateController; mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, keyguardStateController, dozeParameters); mUserDetailAdapter = new KeyguardUserDetailAdapter(mUserSwitcherController, mContext, uiEventLogger); mUserDetailAdapter = new KeyguardUserDetailAdapter(context, userDetailViewAdapterProvider); } @Override Loading Loading @@ -304,9 +304,9 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie } class KeyguardUserDetailAdapter extends UserSwitcherController.UserDetailAdapter { KeyguardUserDetailAdapter(UserSwitcherController userSwitcherController, Context context, UiEventLogger uiEventLogger) { super(userSwitcherController, context, uiEventLogger); KeyguardUserDetailAdapter(Context context, Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { super(context, userDetailViewAdapterProvider); } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +9 −9 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import javax.inject.Provider; /** * Keeps a list of all users on the device for user switching. Loading Loading @@ -128,14 +129,14 @@ public class UserSwitcherController implements Dumpable { @Main Handler handler, ActivityStarter activityStarter, BroadcastDispatcher broadcastDispatcher, UiEventLogger uiEventLogger, TelephonyListenerManager telephonyListenerManager, IActivityTaskManager activityTaskManager) { IActivityTaskManager activityTaskManager, UserDetailAdapter userDetailAdapter) { mContext = context; mBroadcastDispatcher = broadcastDispatcher; mTelephonyListenerManager = telephonyListenerManager; mActivityTaskManager = activityTaskManager; mUiEventLogger = uiEventLogger; mGuestResumeSessionReceiver = new GuestResumeSessionReceiver(mUiEventLogger); mUserDetailAdapter = new UserDetailAdapter(this, mContext, mUiEventLogger); mUserDetailAdapter = userDetailAdapter; if (!UserManager.isGuestUserEphemeral()) { mGuestResumeSessionReceiver.register(mBroadcastDispatcher); } Loading Loading @@ -789,15 +790,14 @@ public class UserSwitcherController implements Dumpable { public static class UserDetailAdapter implements DetailAdapter { private final Intent USER_SETTINGS_INTENT = new Intent(Settings.ACTION_USER_SETTINGS); private final UserSwitcherController mUserSwitcherController; private final Context mContext; private final UiEventLogger mUiEventLogger; private final Provider<UserDetailView.Adapter> mUserDetailViewAdapterProvider; UserDetailAdapter(UserSwitcherController userSwitcherController, Context context, UiEventLogger uiEventLogger) { mUserSwitcherController = userSwitcherController; @Inject UserDetailAdapter(Context context, Provider<UserDetailView.Adapter> userDetailViewAdapterProvider) { mContext = context; mUiEventLogger = uiEventLogger; mUserDetailViewAdapterProvider = userDetailViewAdapterProvider; } @Override Loading @@ -810,7 +810,7 @@ public class UserSwitcherController implements Dumpable { UserDetailView v; if (!(convertView instanceof UserDetailView)) { v = UserDetailView.inflate(context, parent, false); v.createAndSetAdapter(mUserSwitcherController, mUiEventLogger); v.setAdapter(mUserDetailViewAdapterProvider.get()); } else { v = (UserDetailView) convertView; } Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.internal.logging.testing.UiEventLoggerFake import com.android.internal.util.UserIcons import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingManagerFake import com.android.systemui.qs.QSUserSwitcherEvent import com.android.systemui.statusbar.policy.UserSwitcherController import org.junit.Assert.assertEquals Loading @@ -53,6 +54,7 @@ class UserDetailViewAdapterTest : SysuiTestCase() { @Mock private lateinit var mInflatedUserDetailItemView: UserDetailItemView @Mock private lateinit var mUserInfo: UserInfo @Mock private lateinit var mLayoutInflater: LayoutInflater private var falsingManagerFake: FalsingManagerFake = FalsingManagerFake() private lateinit var adapter: UserDetailView.Adapter private lateinit var uiEventLogger: UiEventLoggerFake private lateinit var mPicture: Bitmap Loading @@ -65,7 +67,8 @@ class UserDetailViewAdapterTest : SysuiTestCase() { mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE, mLayoutInflater) `when`(mLayoutInflater.inflate(anyInt(), any(ViewGroup::class.java), anyBoolean())) .thenReturn(mInflatedUserDetailItemView) adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger) adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger, falsingManagerFake) mPicture = UserIcons.convertToBitmap(mContext.getDrawable(R.drawable.ic_avatar_user)) } Loading