diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java index d373fdd6ccc..94ab11dc64a 100644 --- a/src/com/android/settings/applications/RunningState.java +++ b/src/com/android/settings/applications/RunningState.java @@ -32,6 +32,7 @@ import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.graphics.drawable.Drawable.ConstantState; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; @@ -671,7 +672,12 @@ public class RunningState { return super.loadIcon(context, state); } if (mUser.mIcon != null) { - return mUser.mIcon.getConstantState().newDrawable(); + ConstantState constState = mUser.mIcon.getConstantState(); + if (constState == null) { + return mUser.mIcon; + } else { + return constState.newDrawable(); + } } return context.getResources().getDrawable( com.android.internal.R.drawable.ic_menu_cc); @@ -831,8 +837,8 @@ public class RunningState { UserInfo info = mUm.getUserInfo(newItem.mUserId); userItem.mUser.mInfo = info; if (info != null) { - userItem.mUser.mIcon = UserUtils.getUserIcon(mUm, info, - context.getResources()); + userItem.mUser.mIcon = UserUtils.getUserIcon(context, mUm, + info, context.getResources()); } String name = info != null ? info.name : null; if (name == null) { diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 2a3d5f86eef..39dc1d690ef 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -768,6 +768,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { } private void addUserUsage() { + final Context context = getActivity(); + if (context == null) return; for (int i=0; i sippers = mUserSippers.valueAt(i); @@ -775,16 +777,16 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { Drawable icon; String name; if (info != null) { - icon = UserUtils.getUserIcon(mUm, info, getResources()); + icon = UserUtils.getUserIcon(context, mUm, info, getResources()); name = info != null ? info.name : null; if (name == null) { name = Integer.toString(info.id); } - name = getActivity().getResources().getString( + name = context.getResources().getString( R.string.running_process_item_user_label, name); } else { icon = null; - name = getActivity().getResources().getString( + name = context.getResources().getString( R.string.running_process_item_removed_user_label); } double power = mUserPower.get(userId); diff --git a/src/com/android/settings/net/UidDetailProvider.java b/src/com/android/settings/net/UidDetailProvider.java index 63672b7348d..aca3e5d9308 100644 --- a/src/com/android/settings/net/UidDetailProvider.java +++ b/src/com/android/settings/net/UidDetailProvider.java @@ -121,7 +121,7 @@ public class UidDetailProvider { final UserInfo info = um.getUserInfo(userHandle); if (info != null) { detail.label = res.getString(R.string.running_process_item_user_label, info.name); - detail.icon = UserUtils.getUserIcon(um, info, res); + detail.icon = UserUtils.getUserIcon(mContext, um, info, res); return detail; } } diff --git a/src/com/android/settings/users/UserUtils.java b/src/com/android/settings/users/UserUtils.java index 1d16bcf6c9a..946d871eabf 100644 --- a/src/com/android/settings/users/UserUtils.java +++ b/src/com/android/settings/users/UserUtils.java @@ -16,6 +16,7 @@ package com.android.settings.users; +import android.content.Context; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; @@ -24,10 +25,10 @@ import android.graphics.drawable.Drawable; import android.os.UserManager; public class UserUtils { - public static Drawable getUserIcon(UserManager um, UserInfo user, Resources res) { + public static Drawable getUserIcon(Context context, UserManager um, UserInfo user, Resources res) { if (user.iconPath == null) return null; Bitmap icon = um.getUserIcon(user.id); if (icon == null) return null; - return new BitmapDrawable(res, icon); + return CircleFramedDrawable.getInstance(context, icon); } }