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
This commit is contained in:
Oli Lan
2022-05-09 15:36:10 +01:00
parent 003535ddbe
commit 0ef54ab219
3 changed files with 10 additions and 4 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
/**