package Ġio . github . aman sh ura ik war . how m uch . ui . search Ċ Ċ import Ġandroid . app . Search Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġio . github . aman sh ura ik war . how m uch . R Ċ import Ġio . github . aman sh ura ik war . how m uch . base . ui . base . Base Activity Ċ import Ġio . github . aman sh ura ik war . how m uch . protocol . Transaction Ċ import Ġio . github . aman sh ura ik war . how m uch . ui . expense . Expense Activity Ċ import Ġio . github . aman sh ura ik war . how m uch . ui . list . ListItem Type Factory Ċ import Ġio . github . aman sh ura ik war . multi item list adapter . ListItem Ċ import Ġio . github . aman sh ura ik war . multi item list adapter . Multi ItemList Adapter Ċ import Ġkotlinx . android . synt hetic . main . activity _ search .* Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠSearch Activity Ċ @ Inject Ġconstructor (): ĠBase Activity < Search Contract . View , ĠSearch Contract . Presenter >(), ĠSearch Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠMulti ItemList Adapter < *> ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQ _ CODE _ TRANSACTION Ġ= Ġ 1 0 0 6 9 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ search ) ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQ _ CODE _ TRANSACTION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . search ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġitems Rv . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMulti ItemList Adapter ( this , ĠList ItemType Factory ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitems Rv . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġback Ib . setOnClickListener Ġ{ Ġdismiss () Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Search View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Search View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Query Et . setOn Editor ActionListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv , Ġaction Id , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . search ( v . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġclear Ġthe Ġbackground Ġelse Ġthe Ġtouch Ġri pple Ġmoves Ġwith Ġthe Ġtranslation Ġwhich Ġlooks Ġbad ĊĠĠĠĠĠĠĠ Ġback Ib . background Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfinish After Transition () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit List ( list : ĠList < ListItem < *, Ġ* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter ?. submit List ( list ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Toast ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Snackbar ( message : ĠString ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpb . visibility Ġ= ĠVIS IBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġpb . visibility Ġ= ĠG ONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Transaction Activity ( transaction : ĠTransaction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠExp ense Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Expense Activity . KEY _ TRANSACTION , Ġtransaction ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQ _ CODE _ TRANSACTION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġabstract Ġclass ĠDi Module Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Bind s ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġpresenter ( presenter : ĠSearch Contract . Presenter Impl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠSearch Contract . Presenter ĊĠĠĠ Ġ} Ċ }