Merge "Fix the multi-user keyguard dialog animation" into tm-dev

This commit is contained in:
Jordan Demeulenaere
2022-04-28 08:34:10 +00:00
committed by Android (Google) Code Review
3 changed files with 45 additions and 13 deletions

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/kg_framed_avatar_size"/>
<solid android:color="@color/kg_user_avatar_frame"/>
</shape>

View File

@@ -22,18 +22,25 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="end">
<com.android.systemui.statusbar.phone.UserAvatarView
android:id="@+id/kg_multi_user_avatar"
android:layout_width="@dimen/kg_framed_avatar_size"
android:layout_height="@dimen/kg_framed_avatar_size"
android:layout_centerHorizontal="true"
<!-- We add a background behind the UserAvatarView with the same color and with a circular shape
so that this view can be expanded into a Dialog or an Activity. -->
<FrameLayout
android:id="@+id/kg_multi_user_avatar_with_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|end"
android:layout_marginEnd="16dp"
systemui:avatarPadding="0dp"
systemui:badgeDiameter="18dp"
systemui:badgeMargin="1dp"
systemui:frameColor="@color/kg_user_avatar_frame"
systemui:framePadding="0dp"
systemui:frameWidth="0dp">
</com.android.systemui.statusbar.phone.UserAvatarView>
android:background="@drawable/keyguard_framed_avatar_background">
<com.android.systemui.statusbar.phone.UserAvatarView
android:id="@+id/kg_multi_user_avatar"
android:layout_width="@dimen/kg_framed_avatar_size"
android:layout_height="@dimen/kg_framed_avatar_size"
systemui:avatarPadding="0dp"
systemui:badgeDiameter="18dp"
systemui:badgeMargin="1dp"
systemui:frameColor="@color/kg_user_avatar_frame"
systemui:framePadding="0dp"
systemui:frameWidth="0dp">
</com.android.systemui.statusbar.phone.UserAvatarView>
</FrameLayout>
</FrameLayout>

View File

@@ -78,6 +78,7 @@ public class KeyguardQsUserSwitchController extends ViewController<FrameLayout>
private final UiEventLogger mUiEventLogger;
@VisibleForTesting
UserAvatarView mUserAvatarView;
private View mUserAvatarViewWithBackground;
UserSwitcherController.UserRecord mCurrentUser;
private boolean mIsKeyguardShowing;
@@ -167,6 +168,8 @@ public class KeyguardQsUserSwitchController extends ViewController<FrameLayout>
super.onInit();
if (DEBUG) Log.d(TAG, "onInit");
mUserAvatarView = mView.findViewById(R.id.kg_multi_user_avatar);
mUserAvatarViewWithBackground = mView.findViewById(
R.id.kg_multi_user_avatar_with_background);
mAdapter = new UserSwitcherController.BaseUserAdapter(mUserSwitcherController) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
@@ -186,7 +189,7 @@ public class KeyguardQsUserSwitchController extends ViewController<FrameLayout>
mUiEventLogger.log(
LockscreenGestureLogger.LockscreenUiEvent.LOCKSCREEN_SWITCH_USER_TAP);
mUserSwitchDialogController.showDialog(mView);
mUserSwitchDialogController.showDialog(mUserAvatarViewWithBackground);
});
mUserAvatarView.setAccessibilityDelegate(new View.AccessibilityDelegate() {