diff options
| author | 2022-05-09 15:36:10 +0100 | |
|---|---|---|
| committer | 2022-05-09 15:45:18 +0100 | |
| commit | 0ef54ab219039faa0d2947bb42b7238a58590c33 (patch) | |
| tree | 2803b7f34d94dafbc968f4f300353c83fa484369 | |
| parent | 003535ddbe13e96eaf7be5b3490a2c99cdb5ba8c (diff) | |
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
3 files changed, 10 insertions, 4 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java b/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java index 8a1e91b4dcd8..3e7481a61f89 100644 --- a/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java @@ -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); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/users/EditUserInfoController.java b/packages/SettingsLib/src/com/android/settingslib/users/EditUserInfoController.java index 80ee86f5e489..3b542ccea635 100644 --- a/packages/SettingsLib/src/com/android/settingslib/users/EditUserInfoController.java +++ b/packages/SettingsLib/src/com/android/settingslib/users/EditUserInfoController.java @@ -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); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/users/EditUserPhotoController.java b/packages/SettingsLib/src/com/android/settingslib/users/EditUserPhotoController.java index 5862f6095018..38cf383645aa 100644 --- a/packages/SettingsLib/src/com/android/settingslib/users/EditUserPhotoController.java +++ b/packages/SettingsLib/src/com/android/settingslib/users/EditUserPhotoController.java @@ -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; } /** |