Use a single list for available and committed rollbacks.
So that there is a single source of truth for pending backups and
pending restores. This fixes rollback of userdata for staged rollbacks.
Included in this change:
* Distinguish between PENDING_AVAILABLE, AVAILABLE, and COMMITTED
rollback states.
* Separate completeEnableRollback from makeRollbackAvailable.
* Make timestamp @NonNull and set it when rollback is made available.
* Don't listen for SESSION_UPDATED broadcasts.
* Factor out common code for ignoring saveRollbackData IOException.
* Other minor cleanups.
Test: atest RollbackTest
Test: atest StagedRollbackTest
Test: atest AppDataRollbackHelperTest
Bug:
124044231
Change-Id: I654a7827e9ed15659d0cb80e5a2c29c2660aea08