package Ġcom . android human . example . simple github . ui . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġcom . android human . example . simple github . R Ċ import Ġcom . android human . example . simple github . api . model . Github Repo Ċ import Ġcom . android human . example . simple github . data . provide Search History Dao Ċ import Ġcom . android human . example . simple github . extensions . plus Assign Ċ import Ġcom . android human . example . simple github . extensions . run On Io Scheduler Ċ import Ġcom . android human . example . simple github . rx . Auto Activated Disposable Ċ import Ġcom . android human . example . simple github . rx . Auto Cle ared Disposable Ċ import Ġcom . android human . example . simple github . ui . repo . Repository Activity Ċ import Ġcom . android human . example . simple github . ui . search . Search Activity Ċ import Ġcom . android human . example . simple github . ui . search . Search Adapter Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġorg . jetbrains . ank o . startActivity Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠSearch Adapter . ItemClickListener Ġ{ ĊĊĠĠĠ Ġinternal Ġval Ġadapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSearch Adapter (). apply Ġ{ Ġset ItemClickListener ( this @ MainActivity ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġval Ġsearch History Dao Ġby Ġlazy Ġ{ Ġprovide Search History Dao ( this ) Ġ} ĊĊĠĠĠ Ġinternal Ġval Ġdis pos ables Ġ= ĠAuto Cle ared Disposable ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġlifecycle Ġ+= Ġdis pos ables ĊĠĠĠĠĠĠĠ Ġlifecycle Ġ+= ĠAuto Activated Disposable ( this ) Ġ{ Ġfetch Search History () Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn Activity Main Search . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Search Activity >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( rv Activity Main List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġthis @ MainActivity . adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ activity _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( R . id . menu _ activity _ main _ clear _ all Ġ== Ġitem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( repository : ĠGithub Repo ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity < Repository Activity >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRepository Activity . KEY _ USER _ LOGIN Ġto Ġrepository . owner . login , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRepository Activity . KEY _ REPO _ NAME Ġto Ġrepository . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Search History (): ĠDis posable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġsearch History Dao . get History () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġitems Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( adapter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Items ( items ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( items . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message ( getString ( R . string . no _ recent _ repositories )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message ( it . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear All () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables Ġ+= Ġrun On Io Scheduler Ġ{ Ġsearch History Dao . clear All () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Message ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( tv Activity Main Message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġmessage Ġ?: Ġ" Unexpected Ġerror ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( tv Activity Main Message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ