summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/settings/users/AppRestrictionsFragment.java3
-rw-r--r--src/com/android/settings/users/RestrictedProfileSettings.java24
2 files changed, 23 insertions, 4 deletions
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 96a7b47..f1022b9 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -347,6 +347,9 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen
protected Drawable getCircularUserIcon() {
Bitmap userIcon = mUserManager.getUserIcon(mUser.getIdentifier());
+ if (userIcon == null) {
+ return null;
+ }
CircleFramedDrawable circularIcon =
CircleFramedDrawable.getInstance(this.getActivity(), userIcon);
return circularIcon;
diff --git a/src/com/android/settings/users/RestrictedProfileSettings.java b/src/com/android/settings/users/RestrictedProfileSettings.java
index 1d712ac..c293536 100644
--- a/src/com/android/settings/users/RestrictedProfileSettings.java
+++ b/src/com/android/settings/users/RestrictedProfileSettings.java
@@ -37,6 +37,7 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.os.UserHandle;
import android.provider.MediaStore;
import android.provider.ContactsContract.DisplayPhoto;
import android.support.v4.content.FileProvider;
@@ -123,10 +124,25 @@ public class RestrictedProfileSettings extends AppRestrictionsFragment {
public void onResume() {
super.onResume();
- UserInfo info = mUserManager.getUserInfo(mUser.getIdentifier());
- ((TextView) mHeaderView.findViewById(android.R.id.title)).setText(info.name);
- ((ImageView) mHeaderView.findViewById(android.R.id.icon)).setImageDrawable(
- getCircularUserIcon());
+ // Check if user still exists
+ UserInfo info = getExistingUser(mUser);
+ if (info == null) {
+ finishFragment();
+ } else {
+ ((TextView) mHeaderView.findViewById(android.R.id.title)).setText(info.name);
+ ((ImageView) mHeaderView.findViewById(android.R.id.icon)).setImageDrawable(
+ getCircularUserIcon());
+ }
+ }
+
+ private UserInfo getExistingUser(UserHandle thisUser) {
+ final List<UserInfo> users = mUserManager.getUsers(true); // Only get non-dying
+ for (UserInfo user : users) {
+ if (user.id == thisUser.getIdentifier()) {
+ return user;
+ }
+ }
+ return null;
}
@Override