package Ġstudio . aqu atan . pl ann ap . ui . plan . search result Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġdagger . android . Android Injection Ċ import Ġstudio . aqu atan . pl ann ap . R Ċ import Ġstudio . aqu atan . pl ann ap . databinding . Activity Plan SearchResult Binding Ċ import Ġstudio . aqu atan . pl ann ap . ui . ViewModel Factory Ċ import Ġstudio . aqu atan . pl ann ap . ui . plan . Plan Adapter Ċ import Ġstudio . aqu atan . pl ann ap . ui . plan . detail . Plan Detail Activity Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠPlan SearchResult Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ AREA _ NAME Ġ= Ġ" AREA _ NAME " ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Intent ( context : ĠContext , ĠareaName : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠPlan SearchResult Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ AREA _ NAME , ĠareaName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Factory ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Plan SearchResult Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPlan SearchResult ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ plan _ search _ result ) ĊĠĠĠĠĠĠĠ Ġbinding . set Lifecycle Owner ( this ) ĊĊĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this , ĠviewModel Factory ). get ( Plan SearchResult ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠPlan Adapter ( layout Inflater , ĠviewModel :: on Plan Click ) ĊĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Adapter ( adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Divider Item Decoration ( context , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . subscribe ( adapter ) ĊĠĠĠĠĠĠĠ ĠviewModel . on Activity Created ( intent . getString Extra ( EXTRA _ AREA _ NAME )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlan SearchResult ViewModel . subscribe ( adapter : ĠPlan Adapter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġthis @ Plan SearchResult Activity ĊĊĠĠĠĠĠĠĠ Ġtitle . observe ( activity , ĠObserver Ġ{ Ġactivity . title Ġ= Ġit Ġ}) ĊĊĠĠĠĠĠĠĠ Ġplan List . observe ( activity , ĠObserver Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . not Found Text . isVisible Ġ= Ġlist . isEmpty () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( list ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġstart Plan Detail Activity . observe ( activity , ĠObserver Ġ{ Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Plan Detail Activity . create Intent ( activity , Ġid )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ