package Ġbr . com . jon athan ar od r . play movie . common . states Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . LiveData Ċ Ċ inline Ġfun Ġ< T > ĠLive Data < Ui State < T >> . observe On Success ( ĊĠĠĠ Ġowner : ĠLifecycle Owner , ĊĠĠĠ Ġcross inline Ġhandler : Ġ( T ) Ġ-> ĠUnit , Ċ ): ĠLive Data < Ui State < T >> Ġ{ ĊĠĠĠ Ġobserve ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUi State . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler ( it . data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠLive Data < Ui State < T >> . observe On Success ( ĊĠĠĠ Ġowner : ĠLifecycle Owner , ĊĠĠĠ Ġcross inline Ġhandler : Ġ() Ġ-> ĠUnit , Ċ ): ĠLive Data < Ui State < T >> Ġ{ ĊĠĠĠ Ġobserve ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUi State . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠLive Data < Ui State < T >> . observe OnError ( ĊĠĠĠ Ġowner : ĠLifecycle Owner , ĊĠĠĠ Ġcross inline Ġhandler : Ġ( Throwable ) Ġ-> ĠUnit , Ċ ): ĠLive Data < Ui State < T >> Ġ{ ĊĠĠĠ Ġobserve ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUi State . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler ( it . cause ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠLive Data < Ui State < T >> . observe On Empty ( ĊĠĠĠ Ġowner : ĠLifecycle Owner , ĊĠĠĠ Ġcross inline Ġhandler : Ġ() Ġ-> ĠUnit , Ċ ): ĠLive Data < Ui State < T >> Ġ{ ĊĠĠĠ Ġobserve ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUi State . Empty State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠLive Data < Ui State < T >> . observe On Loading ( ĊĠĠĠ Ġowner : ĠLifecycle Owner , ĊĠĠĠ Ġcross inline Ġhandler : Ġ() Ġ-> ĠUnit , Ċ ): ĠLive Data < Ui State < T >> Ġ{ ĊĠĠĠ Ġobserve ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠUi State . Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ