Use destroy in transaction for animation
Previously, the code calls destroy which will be invoked immediately so there needed to be ways to delay destroy. This caused some overhead where there needed to be Runnables to ensure client state updates were called before the destroy. Instead, use the Transaction.destroy so the destroy doesn't get invoked until apply is called. This allows any other client states to get updated before the destroy is called. This is specifically necessary for reparent calls since a Surface can be reparented from a Surface that's about to get destroyed to a valid Surface that's not getting destroyed. This change ensures that Surfaces will get reparented before Surfaces are destroyed when Transactions are applied. Change-Id: I25bb94378de2c03565ee7df8ab5ef393b57f3aec Fixes: 72953020 Fixes: 71499373 Test: Tested issue from bug Test: Set animation duration to 0. Ensure no crash Test: SurfaceAnimatorTest
Loading
Please register or sign in to comment