Merge "Set user icon to default when updating profile without photo" into nyc-dev

This commit is contained in:
Sudheer Shanka
2016-04-15 02:18:10 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 21 deletions

View File

@@ -336,24 +336,31 @@ public final class Utils extends com.android.settingslib.Utils {
} }
/* Used by UserSettings as well. Call this on a non-ui thread. */ /* Used by UserSettings as well. Call this on a non-ui thread. */
public static boolean copyMeProfilePhoto(Context context, UserInfo user) { public static void copyMeProfilePhoto(Context context, UserInfo user) {
Uri contactUri = Profile.CONTENT_URI; Uri contactUri = Profile.CONTENT_URI;
int userId = user != null ? user.id : UserHandle.myUserId();
InputStream avatarDataStream = Contacts.openContactPhotoInputStream( InputStream avatarDataStream = Contacts.openContactPhotoInputStream(
context.getContentResolver(), context.getContentResolver(),
contactUri, true); contactUri, true);
// If there's no profile photo, assign a default avatar // If there's no profile photo, assign a default avatar
if (avatarDataStream == null) { if (avatarDataStream == null) {
return false; assignDefaultPhoto(context, userId);
} else {
UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
Bitmap icon = BitmapFactory.decodeStream(avatarDataStream);
um.setUserIcon(userId, icon);
} }
int userId = user != null ? user.id : UserHandle.myUserId();
UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
Bitmap icon = BitmapFactory.decodeStream(avatarDataStream);
um.setUserIcon(userId, icon);
try { try {
avatarDataStream.close(); avatarDataStream.close();
} catch (IOException ioe) { } } catch (IOException ioe) { }
return true; }
public static void assignDefaultPhoto(Context context, int userId) {
UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
Bitmap bitmap = getDefaultUserIconAsBitmap(userId);
um.setUserIcon(userId, bitmap);
} }
public static String getMeProfileName(Context context, boolean full) { public static String getMeProfileName(Context context, boolean full) {

View File

@@ -331,7 +331,8 @@ public class UserSettings extends SettingsPreferenceFragment
protected String doInBackground(Void... values) { protected String doInBackground(Void... values) {
UserInfo user = mUserManager.getUserInfo(UserHandle.myUserId()); UserInfo user = mUserManager.getUserInfo(UserHandle.myUserId());
if (user.iconPath == null || user.iconPath.equals("")) { if (user.iconPath == null || user.iconPath.equals("")) {
assignProfilePhoto(user); // Assign profile photo.
Utils.copyMeProfilePhoto(getActivity(), user);
} }
return user.name; return user.name;
} }
@@ -404,14 +405,14 @@ public class UserSettings extends SettingsPreferenceFragment
private UserInfo createRestrictedProfile() { private UserInfo createRestrictedProfile() {
UserInfo newUserInfo = mUserManager.createRestrictedProfile(mAddingUserName); UserInfo newUserInfo = mUserManager.createRestrictedProfile(mAddingUserName);
assignDefaultPhoto(newUserInfo); Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
return newUserInfo; return newUserInfo;
} }
private UserInfo createTrustedUser() { private UserInfo createTrustedUser() {
UserInfo newUserInfo = mUserManager.createUser(mAddingUserName, 0); UserInfo newUserInfo = mUserManager.createUser(mAddingUserName, 0);
if (newUserInfo != null) { if (newUserInfo != null) {
assignDefaultPhoto(newUserInfo); Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
} }
return newUserInfo; return newUserInfo;
} }
@@ -898,17 +899,6 @@ public class UserSettings extends SettingsPreferenceFragment
}.execute(missingIcons); }.execute(missingIcons);
} }
private void assignProfilePhoto(final UserInfo user) {
if (!Utils.copyMeProfilePhoto(getActivity(), user)) {
assignDefaultPhoto(user);
}
}
private void assignDefaultPhoto(UserInfo user) {
Bitmap bitmap = Utils.getDefaultUserIconAsBitmap(user.id);
mUserManager.setUserIcon(user.id, bitmap);
}
private Drawable getEncircledDefaultIcon() { private Drawable getEncircledDefaultIcon() {
if (mDefaultIconDrawable == null) { if (mDefaultIconDrawable == null) {
mDefaultIconDrawable = encircle(Utils.getDefaultUserIconAsBitmap(UserHandle.USER_NULL)); mDefaultIconDrawable = encircle(Utils.getDefaultUserIconAsBitmap(UserHandle.USER_NULL));