package Ġcom . zh u inden . simple stack kot l ind agger example . user detail Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout . VERTICAL Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . Android App Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . ApiService Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . Base Fragment Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . R Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . clear IfNot Disposed Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . real mo bject s . User RO Ċ import Ġcom . zh u inden . simple stack kot l ind agger example . schedul ers . Scheduler Provider Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . plus Assign Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm Results Ċ import Ġio . realm . Sort Ċ import Ġio . realm . kotlin . where Ċ import Ġkotlinx . android . synt hetic . main . fragment _ users . contacts View Ċ import Ġkotlinx . android . synt hetic . main . fragment _ users . content View Ċ import Ġkotlinx . android . synt hetic . main . fragment _ users . users Search View Ċ import Ġkotlinx . android . synt hetic . main . fragment _ users . view Animator Ċ import Ġkotlinx . android . synt hetic . main . view _ loading . loading View Ċ import Ġorg . jetbrains . ank o . sdk 1 5 . listeners . text Changed Listener Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠUsers Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġapi Service : ĠApi Service ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġcomposite Disposable : ĠComposite Disposable ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġscheduler Provider : ĠScheduler Provider ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrealm : ĠRealm ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġusers Adapter : ĠUsers Adapter ĊĠĠĠ Ġprivate Ġvar ĠindexOf ContentView : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar ĠindexOf Loading View : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ users , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠAndroid App . app Component . inject ( this ) ĊĠĠĠĠĠĠĠ ĠindexOf ContentView Ġ= Ġview Animator . indexOf Child ( content View ) ĊĠĠĠĠĠĠĠ ĠindexOf Loading View Ġ= Ġview Animator . indexOf Child ( loading View ) ĊĠĠĠĠĠĠĠ Ġrealm Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġusers Adapter Ġ= ĠUsers Adapter ( realm . where < User RO >(). findAll Async ()) ĊĠĠĠĠĠĠĠ Ġusers Search View . text Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġafter TextChanged Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers Adapter . update Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . where < User RO >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains (" userName ", Ġit . toString ()). findAll Async () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontacts View . layout Manager Ġ= ĠLinearLayoutManager ( context , ĠV ERT ICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġcontacts View . adapter Ġ= Ġusers Adapter ĊĠĠĠĠĠĠĠ Ġload Users () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Users () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġapi Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Users () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( scheduler Provider . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ Ġusers Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser RO s Ġ= Ġusers . result . map Ġ{ Ġuser Ġ-> ĠUser RO . createFrom User ( user ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Thread Ġdo On Next : Ġ% s " Ġ+ ĠThread . currentThread (). name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRealm . getDefaultInstance (). use Ġ{ Ġrealm Instance Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm Instance . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm Instance . insert OrUpdate ( user RO s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( scheduler Provider . ui ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Finally Ġ{ Ġloading View . visibility Ġ= ĠView . GONE Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" onNext !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Done !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġrealm . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear IfNot Disposed () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ Ċ }