package Ġcom . tech care er . mobile app hack athon . chat app . ui . search Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view .* Ċ import Ġandroidx . appcompat . widget . Search View Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġcom . tech care er . mobile app hack athon . chat app . R Ċ import Ġcom . tech care er . mobile app hack athon . chat app . databinding . Fragment Search Binding Ċ import Ġcom . tech care er . mobile app hack athon . chat app . repository . login . User Model Ċ import Ġcom . tech care er . mobile app hack athon . common . base . Base Fragment Ċ import Ġcom . tech care er . mobile app hack athon . common . util . ext ein sion . g one Ċ import Ġcom . tech care er . mobile app hack athon . common . util . ext ein sion . visible Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . delay Ċ Ċ /** Ċ Ġ* Ġ@ author : ĠHas an ĠK Ã¼ Ã§ Ã¼k Ġon Ġ 1 0 . 1 0 . 2 0 2 1 Ċ Ġ*/ Ċ Ċ @ Android EntryPoint Ċ class ĠFragment Search Ġ: ĠBase Fragment < Fragment Search Binding >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ= ĠR . layout . fragment _ search ĊĊĠĠĠ Ġoverride Ġfun Ġget Menu Id (): ĠInt Ġ= ĠR . menu . menu _ home ĊĊĠĠĠ Ġlateinit Ġvar Ġsearch Item : ĠMenuItem ĊĊĠĠĠ Ġprivate Ġval Ġsearch ViewModel : ĠSearch ViewModel Ġby Ġactivity ViewModels () ĊĠĠĠ Ġprivate Ġvar Ġsearch Adapter Ġ= ĠSearch Adapter ( emptyList (), Ġobject Ġ: ĠSearch Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon User Clicked ( user : ĠUser Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" SIGN _ "," t Ä± klad Ä±n Ġ${ user . uid }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser . uid ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search View Close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch ViewModel . get Chat Room ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . search RecyclerView . adapter Ġ= Ġsearch Adapter ĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= Ġsearch ViewModel ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// super . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠĠ Ġsearch Item Ġ= Ġmenu . find Item ( R . id . search ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġsearch View Ġ= Ġ( search Item . action View Ġas ĠSearch View ) ĊĠĠĠĠĠĠĠ Ġsearch View . setOn Query Text Focus ChangeListener Ġ{ Ġview , Ġfocus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search View Close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġon Search View Close (){ ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: search Item . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Item . collapse Action View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsearch Item Ġ= Ġmenu . find Item ( R . id . search ) Ġ?: Ġreturn Ċ // ĠĠĠĠĠĠĠ Ġsearch View Ġ= Ġsearch Item . action View Ġas ĠSearch View Ċ // ĠĠĠĠĠĠĠ Ġset On Query Text Focus ChangeListener () Ċ // ĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġset On Query Text Focus ChangeListener () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsearch View . setOn Query Text Focus ChangeListener Ġ{ Ġview , Ġb Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b . not ()) Ġon Search View Close () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . search View . visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ }