package Ġandroid xx . core . animation Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġkotlinx . coroutines . suspend C ancellable Coroutine Ċ import Ġkotlin . coroutines . resume Ċ Ċ suspend Ġfun ĠAn imator . await End () Ġ= Ġsuspend C ancellable Coroutine < Unit > Ġ{ Ġcontinuation Ġ-> ĊĠ Ġcontinuation . invoke On Cancellation Ġ{ Ġcancel () Ġ} ĊĠ Ġadd Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġended Successfully Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠ Ġended Successfully Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠ Ġanimation . remove Listener ( this ) ĊĠĠĠĠĠ Ġif Ġ( continu ation . isActive ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ended Successfully ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume ( Unit ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġcontinuation . cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ}) Ċ }