Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Thanks for filing the issue.
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
Description
Component used: Fragment
Version used: 1.2.0-rc04
Devices/Android versions reproduced on: all
If you commit a reordered postponed transaction, followed by a non-reordered transaction (postponed or not), the non-reordered transaction can be executed before the postponed one. That means that transactions will be executed out of order and the final state of the app will be incorrect. This happens because non-reordered transactions completely ignore postponed transactions and are executed indiscriminately.
The attached sample commits two FragmentTransactions in the onCreate of the activity..
The first is a replace of with postponed fragment with a postponed timeout of 4 seconds that is reordered and the second is a replace with non-postponed fragment that is not reordered.
The postponed fragment has a purple background while the non-postponed fragment has a blue background.
Expected behavior:
The app is launched.
The reordered-postponed transaction is committed, then the non-reordered transaction is committed.
The postponed transaction is forced to execute immediately before the non-reordered transaction is executed.
The final state of the app is the non-postponed fragment with the blue background.
Observed behavior:
The app is launched.
The reordered-postponed transaction is committed, then the non-reordered transaction is committed.
The non-reordered transaction is executed immediately, but does not force the postponed transaction.
The blue background appears.
Once the postponed timeout finishes, the postponed transaction is executed.
The final state of the app is the postponed fragment with the purple background.