package Ġcom . j im ip ur ple . him ich at . ui . friends Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . j im ip ur ple . him ich at .* Ċ import Ġcom . j im ip ur ple . him ich at . models . User Ċ import Ġcom . j im ip ur ple . him ich at . ui . adapters . Friends ListAdapter Ċ import Ġcom . j im ip ur ple . him ich at . ut ills . SharedPreferences Utility Ċ import Ġcom . squareup . pic asso . L ru Cache Ċ import Ġkotlinx . android . synt hetic . main . fragment _ find _ friend .* Ċ import Ġjava . util . regex . Pattern ĊĊ Ċ class ĠFind Friend Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ find _ friend , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġnickname Edit . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġnickname Edit !!. text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno User Message . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Friends ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Friends List . adapter Ġas ĠF riends ListAdapter ?) ?. clear Items () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Friends ( request : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( Friends List . adapter Ġas ĠF riends ListAdapter ?) ?. clear Items () ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġfb Source !!. search Users ( request , Ġ{ Ġusers Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( users . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno User Message . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Adapter ( users ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno User Message . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Adapter ( users : ĠList < User >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= Ġ{ Ġu : ĠUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . putString (" profile _ id ", Ġu . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . nav _ profile , Ġb , Ġnav Options ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsend Msg Ġ= Ġ{ Ġu : ĠUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . putString (" friend _ id ", Ġu . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . putString (" nickname ", Ġu . nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . putString (" avatar ", Ġu . avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . nav _ dialog , Ġb , Ġnav Options ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Friends List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF riends ListAdapter ( c !!. application Context , Ġusers , Ġprofile , Ġsend Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF riends List . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ