package Ġcom . leaf . rx android . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ Ċ import Ġcom . leaf . rx android . R Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . ob servers . Disposable Observer Ċ import Ġkotlinx . android . synt hetic . main . fragment _ on _ click .* Ċ Ċ class ĠOnClick Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ on _ click , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġget Click Event Observable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ_ Ġ-> Ġ" clicked " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( get Observer ()) ĊĊĠĠĠĠĠĠĠ Ġget Click Event Observable Extra () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ_ Ġ-> Ġ 7 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap ( this :: compare Numbers ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġs Ġ-> ĠLog . i (" log ", Ġs ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Click Event Observable () Ġ: ĠObservable < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create Ġ{ Ġe Ġ-> Ġbtn _ click _ observer . setOnClickListener ( e :: onNext ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Click Event Observable Extra (): ĠObservable < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create Ġ{ Ġs Ġ-> Ġbtn _ click _ observer _ extra . setOnClickListener ( s :: onNext ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Numbers ( input Ġ: ĠInt ): ĠObservable < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġ( 1 .. 1 0 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap ĠObservable . just (" local Ġ: Ġ$ i ", Ġ" remote Ġ: Ġ$ data ", Ġ" result Ġ= Ġ", Ġ( i Ġ== Ġdata ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Observer (): ĠDis posable Observer < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠDis posable Observer < String >() Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( s : ĠString ) Ġ{ ĠLog . i (" log ", Ġs ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĠLog . i (" log ", Ġe . message . toString ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĠLog . i (" log ", Ġ" complete ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ