Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81454e99 authored by Brad Hinegardner's avatar Brad Hinegardner Committed by Automerger Merge Worker
Browse files

Merge "Downscale user icon when used for user switcher, bouncer and user chip...

Merge "Downscale user icon when used for user switcher, bouncer and user chip bar" into udc-dev am: 9fc75ac2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22822056



Change-Id: Iaf25a18eb5a8fb1c3424781f7eb0ccfc1971299b
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents fcdb153c 9fc75ac2
Loading
Loading
Loading
Loading
+9 −4
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@ import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.LayerDrawable;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings;
@@ -1022,11 +1023,15 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
            mUserSwitcherController.removeUserSwitchCallback(mUserSwitchCallback);
            mUserSwitcherController.removeUserSwitchCallback(mUserSwitchCallback);
        }
        }


        private Drawable findUserIcon(int userId) {
        private Drawable findLargeUserIcon(int userId) {
            Bitmap userIcon = UserManager.get(mView.getContext()).getUserIcon(userId);
            Bitmap userIcon = UserManager.get(mView.getContext()).getUserIcon(userId);
            if (userIcon != null) {
            if (userIcon != null) {
                return CircleFramedDrawable.getInstance(mView.getContext(),
                int iconSize =
                        userIcon);
                        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);
            return UserIcons.getDefaultUserIcon(mResources, userId, false);
@@ -1085,7 +1090,7 @@ public class KeyguardSecurityContainer extends ConstraintLayout {
                return;
                return;
            }
            }
            final String currentUserName = mUserSwitcherController.getCurrentUserName();
            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);
            ((ImageView) mView.findViewById(R.id.user_icon)).setImageDrawable(userIcon);
            mUserSwitcher.setText(currentUserName);
            mUserSwitcher.setText(currentUserName);


+13 −2
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.IntentFilter
import android.content.pm.UserInfo
import android.content.pm.UserInfo
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.Icon
import android.os.RemoteException
import android.os.RemoteException
import android.os.UserHandle
import android.os.UserHandle
import android.os.UserManager
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): 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) {
        val userIcon = withContext(backgroundDispatcher) { manager.getUserIcon(userId) }
            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) {
        if (userIcon != null) {
            return BitmapDrawable(userIcon)
            return BitmapDrawable(userIcon)
        }
        }