Fixed
Status Update
Comments
an...@google.com <an...@google.com>
ap...@google.com <ap...@google.com> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
Description
Version used: 1.4.2
Devices/Android versions reproduced on: Pixel 4
If this is a bug in the library, we would appreciate if you could attach:
- Sample project to trigger the issue.
- A screenrecord or screenshots showing the issue (if UI related).
Step to reproduce:
1) Import project from google3/experimental/users/ychr/java/dev/viewpager/
2) patch cl/362126372
3) build and deploy the app: a view pager with 5 pages
4) select "Gray" tab to go to gray page
The followings are in log
2021-03-10 12:03:06.532 30105-30105/dev.viewpager I/ViewPagerState: before rememberSaveable content.value.items.size 5
2021-03-10 12:03:06.532 30105-30105/dev.viewpager I/ViewPagerState: state dev.viewpager.render.ViewPagerState@19b483b current page 2
5) tap on "Delete this page" button to delete gray page --> view page switches to first tab(page) : blue page
The followings are in log
2021-03-10 12:03:30.345 30105-30105/dev.viewpager I/ViewPagerState: before rememberSaveable content.value.items.size 4
2021-03-10 12:03:30.345 30105-30105/dev.viewpager I/ViewPagerState: state dev.viewpager.render.ViewPagerState@5caf269 current page 0
6) rotate the screen, green page (page index 2) is displayed instead of blue page
The followings are in log
2021-03-10 12:03:36.849 30105-30105/dev.viewpager I/ViewPagerState: before rememberSaveable content.value.items.size 4
2021-03-10 12:03:36.850 30105-30105/dev.viewpager I/ViewPagerState: state dev.viewpager.render.ViewPagerState@2ab65be current page 2
Examing `rememberSaveable` source code,
If the `value` changes in
it won't trigger a re-save, because the sideeffect only runs when `registry` and `finalKey` changes
A fix like
will address the issue