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

Commit 2cae2f16 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

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

parents cdb089c9 71caf698
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -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. */
    public static boolean copyMeProfilePhoto(Context context, UserInfo user) {
    public static void copyMeProfilePhoto(Context context, UserInfo user) {
        Uri contactUri = Profile.CONTENT_URI;

        int userId = user != null ? user.id : UserHandle.myUserId();

        InputStream avatarDataStream = Contacts.openContactPhotoInputStream(
                    context.getContentResolver(),
                    contactUri, true);
        // If there's no profile photo, assign a default avatar
        if (avatarDataStream == null) {
            return false;
        }
        int userId = user != null ? user.id : UserHandle.myUserId();
            assignDefaultPhoto(context, userId);
        } else {
            UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
            Bitmap icon = BitmapFactory.decodeStream(avatarDataStream);
            um.setUserIcon(userId, icon);
        }
        try {
            avatarDataStream.close();
        } 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) {
+4 −14
Original line number Diff line number Diff line
@@ -331,7 +331,8 @@ public class UserSettings extends SettingsPreferenceFragment
            protected String doInBackground(Void... values) {
                UserInfo user = mUserManager.getUserInfo(UserHandle.myUserId());
                if (user.iconPath == null || user.iconPath.equals("")) {
                    assignProfilePhoto(user);
                    // Assign profile photo.
                    Utils.copyMeProfilePhoto(getActivity(), user);
                }
                return user.name;
            }
@@ -404,14 +405,14 @@ public class UserSettings extends SettingsPreferenceFragment

    private UserInfo createRestrictedProfile() {
        UserInfo newUserInfo = mUserManager.createRestrictedProfile(mAddingUserName);
        assignDefaultPhoto(newUserInfo);
        Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
        return newUserInfo;
    }

    private UserInfo createTrustedUser() {
        UserInfo newUserInfo = mUserManager.createUser(mAddingUserName, 0);
        if (newUserInfo != null) {
            assignDefaultPhoto(newUserInfo);
            Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
        }
        return newUserInfo;
    }
@@ -898,17 +899,6 @@ public class UserSettings extends SettingsPreferenceFragment
        }.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() {
        if (mDefaultIconDrawable == null) {
            mDefaultIconDrawable = encircle(Utils.getDefaultUserIconAsBitmap(UserHandle.USER_NULL));