package Ġcom . j uv etic . calc io . ui . search team ĊĊ Ċ import Ġandroid . app . Search Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Search View Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . j uv etic . calc io . R Ċ import Ġcom . j uv etic . calc io . core . contract . League Contract Ċ import Ġcom . j uv etic . calc io . core . presenter . search team . Search Team Interactor Ċ import Ġcom . j uv etic . calc io . core . presenter . search team . Search Team Presenter Ċ import Ġcom . j uv etic . calc io . model . team . Team Ċ import Ġcom . j uv etic . calc io . ui . team detail . Team Detail Activity Ċ import Ġcom . j uv etic . calc io . ui . team detail . Team Detail Fragment Ċ import Ġcom . j uv etic . calc io . utils . Team Detail ClickListener Ċ import Ġorg . jetbrains . ank o . An ko Logger Ċ import Ġorg . jetbrains . ank o . debug Ċ import Ġorg . jetbrains . ank o . info Ċ import Ġorg . jetbrains . ank o . support . v 4 . startActivity Ċ import Ġorg . jetbrains . ank o . support . v 4 . toast Ċ import Ġjava . util .* Ċ import Ġkotlin . concurrent . schedule Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* Ċ Ġ*/ Ċ class ĠSearch Team Fragment Ġ: ĠFragment (), ĠLeague Contract < Team >, ĊĠĠĠ ĠTeam Detail ClickListener , ĠAn ko Logger Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtool Bar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġr cv Team : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsearch View : ĠSearch View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv NotFound : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġll Search Init : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġquery Text Listener : ĠSearch View . On Query Text Listener ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ search _ team , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġr cv Team Ġ= Ġview . findViewById ( R . id . rcv _ search _ team ) ĊĠĠĠĠĠĠĠ Ġtv NotFound Ġ= Ġview . findViewById ( R . id . tv _ not found ) ĊĠĠĠĠĠĠĠ Ġtool Bar Ġ= Ġview . findViewById ( R . id . toolbar ) ĊĠĠĠĠĠĠĠ Ġll Search Init Ġ= Ġview . findViewById ( R . id . ll _ search _ init ) ĊĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). set Support ActionBar ( tool Bar ) ĊĠĠĠĠĠĠĠ Ġtool Bar . title Ġ= Ġ" Search ĠTeams " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠAppCompatActivity ). menu Inflater . inflate ( R . menu . search , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġval Ġsearch Item Ġ= Ġmenu . find Item ( R . id . action _ search ) ĊĠĠĠĠĠĠĠ Ġval Ġsearch Manager Ġ= Ġactivity !!. getSystem Service ( Context . SEARCH _ SERVICE ) Ġas ĠSearch Manager ĊĊĠĠĠĠĠĠĠ Ġsearch View Ġ= Ġsearch Item ?. action View Ġas ĠSearch View ĊĊĠĠĠĠĠĠĠ Ġsearch View . set Search able Info ( search Manager . get Search able Info (( activity Ġas ĠAppCompatActivity ). component Name )) ĊĊĠĠĠĠĠĠĠ Ġquery Text Listener Ġ= Ġobject Ġ: ĠSearch View . On Query Text Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtimer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Submit ( query : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Change ( new Text : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsleep Ġ= Ġwhen Ġ( new Text ?. length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ 1 0 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , Ġ 3 Ġ-> Ġ 7 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 , Ġ 5 Ġ-> Ġ 5 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 3 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer . schedule ( sleep ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Text . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Team ( new Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsearch View . setOn Query Text Listener ( query Text Listener ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ search Ġ-> Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsearch View . setOn Query Text Listener ( query Text Listener ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon GetData Success ( data : ĠTeam ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġll Search Init . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġinfo (" Success Ġsearch Ġevent ") ĊĠĠĠĠĠĠĠ Ġshow List () ĊĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġit . teams ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Adapter : ĠSearch Team Adapter ? Ġ= Ġcontext ?. let Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Team Adapter ( it 1 , Ġresult , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġr cv Team . adapter Ġ= Ġsearch Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr cv Team . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr cv Team . addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Item Decoration ( rcv Team . context , Ġlinear LayoutManager . orientation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon GetData Failed ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow NotFound () ĊĠĠĠĠĠĠĠ Ġactivity ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug (" Error Ġ$ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Request Ġtimeout , Ġplease Ġtry Ġagain ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Team Click ( team Id : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity < Team Detail Activity >( Team Detail Fragment . TEAM _ ID Ġto Ġteam Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Team ( query : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠSearch Team Presenter ( this , ĠSearch Team Interactor ()) ĊĠĠĠĠĠĠĠ Ġquery ?. let Ġ{ Ġpresenter . search Team ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow List () Ġ{ ĊĠĠĠĠĠĠĠ Ġr cv Team . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtv NotFound . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow NotFound () Ġ{ ĊĠĠĠĠĠĠĠ Ġr cv Team . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtv NotFound . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} Ċ Ċ } Ċ