package Ġcom . dub ed iv ine . samples . features . main Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġbutter knife . BindView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . dub ed iv ine . samples . R Ċ import Ġcom . dub ed iv ine . samples . data . local . Preferences Helper Ċ import Ġcom . dub ed iv ine . samples . data . model . Question Ċ import Ġcom . dub ed iv ine . samples . features . base . Base Activity Ċ import Ġcom . dub ed iv ine . samples . features . common . Search Array Adapter Ċ import Ġcom . dub ed iv ine . samples . features . main . fragment . subscribe . Tags Sub scribed Fragment Ċ import Ġcom . dub ed iv ine . samples . features . main . fragment . Welcome Fragment Ċ import Ġcom . dub ed iv ine . samples . features . search Results . Search Activity Ċ import Ġcom . dub ed iv ine . samples . features . signIn . SignIn Ċ import Ġcom . dub ed iv ine . samples . features . signIn . SignIn More Details Ċ import Ġcom . dub ed iv ine . samples . util . sn ack Ċ import Ġcom . dub ed iv ine . samples . util . toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject ĊĊ Ċ // todo Ġwe Ġshould Ġhave Ġbetter Ġfont Ġth inner Ġfont Ġplease Ċ Ċ class ĠMainActivity Ġ: ĊĠĠĠĠĠĠĠ ĠBase Activity (), ĊĠĠĠĠĠĠĠ ĠMain M vp View , ĊĠĠĠĠĠĠĠ ĠPokemon Adapter . ClickListener , ĊĠĠĠĠĠĠĠ ĠSearch Array Adapter . On ItemClickListener Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm Search Array Adapter : ĠSearch Array Adapter ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm Main Presenter : ĠMain Presenter ĊĊĠĠĠ Ġ@ BindView ( R . id . progress ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġ@ BindView ( R . id . swipe _ to _ refresh ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Swipe Refresh Layout : ĠSw ipe Refresh Layout ? Ġ= Ġnull ĊĠĠĠ Ġ@ BindView ( R . id . toolbar ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Toolbar : ĠToolbar ? Ġ= Ġnull ĊĠĠĠ Ġ@ BindView ( R . id . main _ auto _ complete _ input _ search ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Auto Complete Search Input View : ĠAuto Complete TextView ? Ġ= Ġnull ĊĠĠĠ Ġ@ BindView ( R . id . search _ progress _ bar ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Search ProgressBar : ĠProgress Bar ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Preferences Helper : ĠPreferences Helper ĊĠĠĠ Ġprivate Ġvar Ġhas Back Been Pressed : ĠBoolean Ġ= Ġfalse ĊĊĊĠĠĠ Ġoverride Ġval Ġlayout : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . activity _ main ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġactivity Component (). inject ( this ) ĊĠĠĠĠĠĠĠ Ġm Main Presenter . attach View ( this ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( m Toolbar ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġsome Ġb read Ġcr umb s !! ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Home As Up Indicator ( R . drawable . ic _ menu ) ĊĠĠĠĠĠĠĠ Ġ// instantiate Ġour Ġprefs Ġhelper Ġclass ĊĠĠĠĠĠĠĠ Ġm Preferences Helper Ġ= ĠPreferences Helper ( this ) ĊĠĠĠĠĠĠ Ġ// ĠFirebase Messaging . getInstance (). subscribe To Topic (" Peer link ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġstart Ġthe Ġsign Ġin Ġactivity Ġif Ġthe Ġuser Ġis Ġnot Ġsigned Ġin ĊĠĠĠĠĠĠĠ Ġcheck If User Signed Up () ĊĠĠĠĠĠĠĠ Ġm Main Presenter . push F CM Token () ĊĠĠĠĠĠĠĠ Ġsetup Side Navigation () ĊĊĊĠĠĠĠĠĠĠ Ġ// m Auto Complete Search Input View Ġ------------------------------------------------ ---- ĊĠĠĠĠĠĠĠ Ġm Search Array Adapter . on Item Click Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ// set Ġthe Ġadapter Ġfor Ġthe Ġauto Ġcomplete Ġsearch ĊĠĠĠĠĠĠĠ Ġm Auto Complete Search Input View ?. setAdapter ( m Search Array Adapter ) ĊĊĠĠĠĠĠĠĠ Ġm Auto Complete Search Input View ?. add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( text : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( text : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( chars : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo : Ġthis Ġget Ġthe Ġchars Ġ 2 .. infinity Ġwhich Ġis Ġbad Ġmight Ġhave Ġto Ġuse Ġrx Bind ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Main Presenter . get Suggestions ( chars ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠĠĠĠĠ Ġm Auto Complete Search Input View ?. setOn ItemClickListener Ġ{ Ġadapter View , Ġview , Ġi , Ġl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ("$ adapter View Ġis Ġ$ view Ġ$ i Ġ$ l Ġay ob a $$$$ $$$$ $$$$ $$$$ $$ $ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġthe Ġmain Ġaction Ġbar Ġsearch Ġbutton ĊĠĠĠĠĠĠĠ Ġmain _ btn _ search . setOnClickListener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Search Button Click () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinitially Ġthe Ġfragment Ġthat Ġis Ġthere Ġis Ġthe Ġmain Ġfragment Ġwith Ġthe Ġdetails Ġabout Ġthe Ġapp ĊĠĠĠĠĠĠĠ Ġadd Fragment ( savedInstanceState , Ġ 1 ) ĊĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġitem Ġas Ġselected Ġto Ġpersist Ġhighlight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item . isChecked Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Fragment ( savedInstanceState , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ interest s Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Fragment ( savedInstanceState , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ trend ing Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Fragment ( savedInstanceState , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Preferences Helper . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck If User Signed Up () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack (" Successfully ĠLog ged Ġout .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġclose Ġdrawer Ġwhen Ġitem Ġis Ġt apped ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġcode Ġhere Ġto Ġupdate Ġthe ĠUI Ġbased Ġon Ġthe Ġitem Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor Ġexample , Ġswap ĠUI Ġfragments Ġhere ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Side Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader View Ġ= Ġnav _ view . getHeader View ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtv UserName : ĠTextView Ġ= Ġheader View . findViewById ( R . id . tv _ user _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġtv User Email : ĠTextView Ġ= Ġheader View . findViewById ( R . id . tv _ user _ email ) ĊĠĠĠĠĠĠĠ Ġval Ġtv User Degree : ĠTextView Ġ= Ġheader View . findViewById ( R . id . tv _ user _ degree ) ĊĠĠĠĠĠĠĠ Ġval Ġtv User UserProfile Photo : ĠImageView Ġ= Ġheader View . findViewById ( R . id . img _ user _ profile ) ĊĊĠĠĠĠĠĠĠ Ġtv UserName . text Ġ= Ġm Preferences Helper . getString ( SignIn More Details . P _ N ICK NAME ) ĊĠĠĠĠĠĠĠ Ġtv User Email . text Ġ= Ġm Preferences Helper . getString ( SignIn More Details . P _ EMAIL ) ĊĠĠĠĠĠĠĠ Ġtv User Degree . text Ġ= Ġm Preferences Helper . getString ( SignIn More Details . P _ DEG REE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġphoto Url Ġ= Ġm Preferences Helper . getString ( SignIn More Details . P _ PH OTO _ URL ) ĊĠĠĠĠĠĠĠ ĠTim ber . d (" the Ġpic Ġurl Ġis Ġ$ photoUrl ") ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . circle Crop Transform ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( tv User UserProfile Photo ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġis User LoggedIn (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Preferences Helper . getString ( SignIn More Details . P _ EMAIL ). isBlank () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck If User Signed Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is User LoggedIn ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( SignIn . getStart Intent ( this )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Fragment ( savedInstanceState : ĠBundle ?, Ġnum : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// this Ġis Ġwhen Ġwe Ġare Ġrot ating Ġthe Ġscreen Ġbru v Ġso Ġthat Ġwe Ġdont Ġover l apt Ġthe Ġfragments ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . fragment _ frame layout , ĠWelcome Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ Ġ Ġ// Ġthese Ġadds Ġto Ġback Ġstack Ġbecause Ġwe Ġneed Ġthe Ġback Ġbutton Ġto Ġtake Ġme Ġback ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . fragment _ frame layout , ĠTags Sub scribed Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . fragment _ frame layout , ĠTags Sub scribed Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġwhen Ġanother Ġactivity Ġcome Ġinto Ġthe Ġforeground ĊĠĠĠ Ġ// Ġwe Ġreset Ġthe Ġstate Ġthat Ġthe Ġback Ġwas Ġever Ġpressed ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġhas Back Been Pressed Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Main Presenter . detach View () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . open Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is User LoggedIn ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Back Been Pressed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" press Ġagain Ġto Ġexit ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Back Been Pressed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġgo Ġback Ġas Ġnormal ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// p ver iden Ġmethod Ġfrom Ġm vp View ĊĠĠĠ Ġoverride Ġfun Ġshow Pokemon ( pokemon : ĠList < String >) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġm Pokemon Adapter . set Pokemon ( pokemon ) Ċ // ĠĠĠĠĠĠĠ Ġm Pokemon Adapter . notify DataSet Changed () Ċ // Ċ // ĠĠĠĠĠĠĠ Ġm Pokemon Recycler ?. visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Progress ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . i (" show Ġprogress Ġis Ġbeing Ġcalled Ġdw ag Ġfor Ġlo ") Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Pokemon Recycler ?. visibility Ġ== ĠView . VISIBLE Ġ&& Ġm Pokemon Adapter . item Count Ġ> Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout ?. is Refresh ing Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress ?. visibility Ġ= ĠView . VISIBLE Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pokemon Recycler ?. visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout ?. visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout ?. is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm Progress ?. visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Error ( error : ĠThrowable ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġm Pokemon Recycler ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġm Swipe Refresh Layout ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ// if Ġthe Ġkeyboard Ġis Ġcurrently Ġactive Ġjust Ġshow Ġtoast Ġjust Ġin Ġcase ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" There Ġwas Ġan Ġerror ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ ĠTim ber . e ( error , Ġ" There Ġwas Ġan Ġerror Ġretrieving Ġthe Ġpokemon ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pokemon Click ( pokemon : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠstartActivity ( Detail Activity . getStart Intent ( this , Ġpokemon )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Search Button Click () Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" btn Ġsearch Ġclicked ") ĊĠĠĠĠĠĠĠ Ġif Ġ( m Auto Complete Search Input View !!. text . toString (). isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Search Activity . getStart Intent ( this , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Auto Complete Search Input View !!. text . toString ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack (" Please Ġtype Ġsomething Ġto Ġsearch Ġ:) ") Ġ Ġ// ĠI Ġneed Ġto Ġadd Ġemo j ies Ġhere ! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġclick Ġevent Ġfrom Ġthe Ġsearch Adapter ĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( question : ĠQuestion ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Search Activity . getStart Intent ( this , Ġquestion , Ġm Auto Complete Search Input View !!. text . toString ())) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġshow Progress On Auto Complete ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtodo : Ġshould Ġadd Ġa Ġspinner Ġto Ġthe Ġsearch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtodo : Ġshould Ġmake Ġthe Ġitem Ġun Ġclick able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Search ProgressBar ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Search Array Adapter . clear () Ġ// Ġclear Ġthe Ġavailable Ġdata Ġand Ġthen Ġjust Ġadd Ġone Ġitem Ġthat Ġjust Ġsays Ġsearching ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtoast (" Searching ...", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Search ProgressBar ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Search Array Adapter . clear () Ġ// Ġjust Ġmake Ġthe Ġadapter Ġready Ġfor Ġmore Ġinput ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Suggestions ( question : ĠList < Question >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Search ProgressBar ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ ĠTim ber . i (" show Suggestions : Ġis Ġcalled Ġwith Ġsuggestions : Ġ$ question ") ĊĠĠĠĠĠĠĠ Ġm Search Array Adapter . addAll ( question ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Start Intent ( context : ĠContext ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ