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

Commit 0ef54ab2 authored by Oli Lan's avatar Oli Lan
Browse files

Fix avatar picker issues relating to screen rotation.

This fixes two issues relating to rotation:

- in the avatar picker, the done button becomes deactivated and
  does not reactivate after screen rotation

- from the profile dialog, if an image has been chosen, it does
  not get applied if the device is rotated.

Bug: 231922829
Bug: 231923131
Test: run through repro steps and confirm issues do not occur
Change-Id: I3dfc4016012b690a6547f7c7eb70c88cc236d7d9
parent 003535dd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ public class AvatarPickerActivity extends Activity {
            mWaitingForActivityResult = savedInstanceState.getBoolean(KEY_AWAITING_RESULT, false);
            mAdapter.mSelectedPosition =
                    savedInstanceState.getInt(KEY_SELECTED_POSITION, AvatarAdapter.NONE);
            mDoneButton.setEnabled(mAdapter.mSelectedPosition != AvatarAdapter.NONE);
        }
    }

+5 −2
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class EditUserInfoController {

    private Dialog mEditUserInfoDialog;
    private Bitmap mSavedPhoto;
    private Drawable mSavedDrawable;
    private EditUserPhotoController mEditUserPhotoController;
    private boolean mWaitingForActivityResult = false;
    private final String mFileAuthority;
@@ -68,6 +69,7 @@ public class EditUserInfoController {
        }
        mEditUserInfoDialog = null;
        mSavedPhoto = null;
        mSavedDrawable = null;
    }

    /**
@@ -170,7 +172,8 @@ public class EditUserInfoController {

    private Drawable getUserIcon(Activity activity, Drawable defaultUserIcon) {
        if (mSavedPhoto != null) {
            return CircleFramedDrawable.getInstance(activity, mSavedPhoto);
            mSavedDrawable = CircleFramedDrawable.getInstance(activity, mSavedPhoto);
            return mSavedDrawable;
        }
        return defaultUserIcon;
    }
@@ -229,6 +232,6 @@ public class EditUserInfoController {
    EditUserPhotoController createEditUserPhotoController(Activity activity,
            ActivityStarter activityStarter, ImageView userPhotoView) {
        return new EditUserPhotoController(activity, activityStarter, userPhotoView,
                mSavedPhoto, mFileAuthority);
                mSavedPhoto, mSavedDrawable, mFileAuthority);
    }
}
+4 −2
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ public class EditUserPhotoController {
    private Drawable mNewUserPhotoDrawable;

    public EditUserPhotoController(Activity activity, ActivityStarter activityStarter,
            ImageView view, Bitmap bitmap, String fileAuthority) {
            ImageView view, Bitmap savedBitmap, Drawable savedDrawable, String fileAuthority) {
        mActivity = activity;
        mActivityStarter = activityStarter;
        mFileAuthority = fileAuthority;
@@ -71,7 +71,9 @@ public class EditUserPhotoController {
        mImagesDir.mkdir();
        mImageView = view;
        mImageView.setOnClickListener(v -> showAvatarPicker());
        mNewUserPhotoBitmap = bitmap;

        mNewUserPhotoBitmap = savedBitmap;
        mNewUserPhotoDrawable = savedDrawable;
    }

    /**