summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt15
2 files changed, 22 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index 78021ad21a77..b19cc8cd4d35 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -54,6 +54,7 @@ import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
import android.graphics.drawable.LayerDrawable;
import android.os.UserManager;
import android.provider.Settings;
@@ -1022,11 +1023,15 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
mUserSwitcherController.removeUserSwitchCallback(mUserSwitchCallback);
}
- private Drawable findUserIcon(int userId) {
+ private Drawable findLargeUserIcon(int userId) {
Bitmap userIcon = UserManager.get(mView.getContext()).getUserIcon(userId);
if (userIcon != null) {
- return CircleFramedDrawable.getInstance(mView.getContext(),
- userIcon);
+ int iconSize =
+ mResources.getDimensionPixelSize(R.dimen.bouncer_user_switcher_icon_size);
+ return CircleFramedDrawable.getInstance(
+ mView.getContext(),
+ Icon.scaleDownIfNecessary(userIcon, iconSize, iconSize)
+ );
}
return UserIcons.getDefaultUserIcon(mResources, userId, false);
@@ -1085,7 +1090,7 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
return;
}
final String currentUserName = mUserSwitcherController.getCurrentUserName();
- Drawable userIcon = findUserIcon(currentUser.info.id);
+ Drawable userIcon = findLargeUserIcon(currentUser.info.id);
((ImageView) mView.findViewById(R.id.user_icon)).setImageDrawable(userIcon);
mUserSwitcher.setText(currentUserName);
diff --git a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt
index 0ec1a214660c..c2922c4d6f34 100644
--- a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt
@@ -26,6 +26,7 @@ import android.content.IntentFilter
import android.content.pm.UserInfo
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
+import android.graphics.drawable.Icon
import android.os.RemoteException
import android.os.UserHandle
import android.os.UserManager
@@ -762,8 +763,18 @@ constructor(
}
// TODO(b/246631653): cache the bitmaps to avoid the background work to fetch them.
- // TODO(b/246631653): downscale the bitmaps to R.dimen.max_avatar_size if requested.
- val userIcon = withContext(backgroundDispatcher) { manager.getUserIcon(userId) }
+ val userIcon = withContext(backgroundDispatcher) {
+ manager.getUserIcon(userId)
+ ?.let { bitmap ->
+ val iconSize =
+ applicationContext
+ .resources
+ .getDimensionPixelSize(R.dimen.bouncer_user_switcher_icon_size)
+ Icon.scaleDownIfNecessary(bitmap, iconSize, iconSize)
+ }
+ }
+
+
if (userIcon != null) {
return BitmapDrawable(userIcon)
}