@ file : Jvm Name (" Rx View ") Ċ @ file : Jvm Mult if ile Class Ċ Ċ package Ġcom . jak ew h art on . r xb ind ing 3 . view Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . On System Ui Visibility ChangeListener Ċ import Ġandroidx . annotation . Check Result Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . android . MainThread Disposable Ċ Ċ import Ġcom . jak ew h art on . r xb ind ing 3 . internal . check MainThread Ċ Ċ /** Ċ Ġ* ĠCreate Ġan Ġobservable Ġof Ġintegers Ġrepresenting Ġa Ġnew Ġsystem ĠUI Ġvisibility Ġfor Ġ` view `. Ċ Ġ* Ċ Ġ* Ġ* Warning :* ĠThe Ġcreated Ġobservable Ġkeeps Ġa Ġstrong Ġreference Ġto Ġ` view `. ĠUn subscribe Ċ Ġ* Ġto Ġfree Ġthis Ġreference . Ċ Ġ* Ċ Ġ* Ġ* Warning :* ĠThe Ġcreated Ġobservable Ġuses Ċ Ġ* Ġ[ View . setOn System Ui Visibility ChangeListener ] Ġto Ġobserve Ġsystem ĠUI Ġvisibility Ġchanges . Ċ Ġ* ĠOnly Ġone Ġobservable Ġcan Ġbe Ġused Ġfor Ġa Ġview Ġat Ġa Ġtime . Ċ Ġ*/ Ċ @ Check Result Ċ fun ĠView . system Ui Visibility Changes (): ĠObservable < Int > Ġ{ ĊĠ Ġreturn ĠView System Ui Visibility Change Observable ( this ) Ċ } Ċ Ċ private Ġclass ĠView System Ui Visibility Change Observable ( ĊĠ Ġprivate Ġval Ġview : ĠView Ċ ) Ġ: ĠObservable < Int >() Ġ{ ĊĊĠ Ġoverride Ġfun Ġsubscribe Actual ( observer : ĠObserver < in ĠInt >) Ġ{ ĊĠĠĠ Ġif Ġ(! check MainThread ( observer )) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġlistener Ġ= ĠListener ( view , Ġobserver ) ĊĠĠĠ Ġobserver . on Subscribe ( listener ) ĊĠĠĠ Ġview . setOn System Ui Visibility ChangeListener ( listener ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠListener ( ĊĠĠĠ Ġprivate Ġval Ġview : ĠView , ĊĠĠĠ Ġprivate Ġval Ġobserver : ĠObserver < in ĠInt > ĊĠ Ġ) Ġ: ĠMain Thread Disposable (), ĠOn System Ui Visibility ChangeListener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon System Ui Visibility Change ( visibility : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠ Ġobserver . onNext ( visibility ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dispose () Ġ{ ĊĠĠĠĠĠ Ġview . setOn System Ui Visibility ChangeListener ( null ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ