From cee402a5f4452b3d35db3da10f9b91a4f6cb7d28 Mon Sep 17 00:00:00 2001 From: Alexandra Gherghina Date: Fri, 12 Dec 2014 18:04:19 +0000 Subject: [PATCH] Make spinner icons circular Bug: 18311493 Change-Id: I73bd3951e2613254c1db3e8c0f2f1d174e1e4b6c --- res/values/dimens.xml | 2 +- .../android/settings/UserSpinnerAdapter.java | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 4c4dbdae016..0085a089e87 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -213,7 +213,7 @@ 56dp 72dp - 8dp + 4dp 56dp diff --git a/src/com/android/settings/UserSpinnerAdapter.java b/src/com/android/settings/UserSpinnerAdapter.java index eb4a118f9e5..5e2b16f3f8f 100644 --- a/src/com/android/settings/UserSpinnerAdapter.java +++ b/src/com/android/settings/UserSpinnerAdapter.java @@ -32,6 +32,7 @@ import android.widget.SpinnerAdapter; import android.widget.TextView; import com.android.internal.util.UserIcons; +import com.android.settings.drawable.CircleFramedDrawable; import java.util.ArrayList; @@ -43,18 +44,19 @@ public class UserSpinnerAdapter implements SpinnerAdapter { /** Holder for user details */ public static class UserDetails { private final UserHandle mUserHandle; - private final String name; - private final Drawable icon; + private final String mName; + private final Drawable mIcon; public UserDetails(UserHandle userHandle, UserManager um, Context context) { mUserHandle = userHandle; UserInfo userInfo = um.getUserInfo(mUserHandle.getIdentifier()); + Drawable icon; if (userInfo.isManagedProfile()) { - name = context.getString(R.string.managed_user_title); + mName = context.getString(R.string.managed_user_title); icon = context.getDrawable( com.android.internal.R.drawable.ic_corp_icon); } else { - name = userInfo.name; + mName = userInfo.name; final int userId = userInfo.id; if (um.getUserIcon(userId) != null) { icon = new BitmapDrawable(context.getResources(), um.getUserIcon(userId)); @@ -62,6 +64,11 @@ public class UserSpinnerAdapter implements SpinnerAdapter { icon = UserIcons.getDefaultUserIcon(userId, /* light= */ false); } } + this.mIcon = encircle(context, icon); + } + + private static Drawable encircle(Context context, Drawable icon) { + return CircleFramedDrawable.getInstance(context, UserIcons.convertToBitmap(icon)); } } private ArrayList data; @@ -87,8 +94,8 @@ public class UserSpinnerAdapter implements SpinnerAdapter { final View row = convertView != null ? convertView : createUser(parent); UserDetails user = data.get(position); - ((ImageView) row.findViewById(android.R.id.icon)).setImageDrawable(user.icon); - ((TextView) row.findViewById(android.R.id.title)).setText(user.name); + ((ImageView) row.findViewById(android.R.id.icon)).setImageDrawable(user.mIcon); + ((TextView) row.findViewById(android.R.id.title)).setText(user.mName); return row; }