package Ġit . uni par then ope . par then op ed dit . android . ui . search . posts Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġit . uni par then ope . par then op ed dit . Basic Activity Ċ import Ġit . uni par then ope . par then op ed dit . R Ċ import Ġit . uni par then ope . par then op ed dit . android .* Ċ import Ġit . uni par then ope . par then op ed dit . android . adapters . Post Adapter Ċ import Ġit . uni par then ope . par then op ed dit . api . requests . Posts Requests Ċ import Ġit . uni par then ope . par then op ed dit . auth . Auth Manager Ċ import Ġit . uni par then ope . par then op ed dit . model . Board Ċ import Ġit . uni par then ope . par then op ed dit . model . Like Dis like Score Ċ import Ġit . uni par then ope . par then op ed dit . model . Post Ċ import Ġit . uni par then ope . par then op ed dit . util . to Gson ĊĊ Ċ class ĠSearch Posts Fragment ( private Ġvar Ġsearch Query : ĠString ) Ġ: ĠFragment (), ĠPost Adapter . Post Item Click Listeners Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth Manager : ĠAuth Manager ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠPost Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cycler _ view : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġno _ posts _ text view : ĠTextView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . fragment _ search _ posts , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠPost Adapter () ĊĠĠĠĠĠĠĠ Ġadapter . setItem ClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġre cycler _ view Ġ= Ġroot . findViewById ( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġno _ posts _ text view Ġ= Ġroot . findViewById ( R . id . no _ posts _ text view ) ĊĊĠĠĠĠĠĠĠ Ġre cycler _ view . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġre cycler _ view . layout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġre cycler _ view . set Has Fixed Size ( true ) ĊĊĠĠĠĠĠĠĠ Ġauth Manager Ġ= Ġ( activity Ġas ĠBasic Activity ). app . auth ĊĊĠĠĠĠĠĠĠ Ġsearch ( search Query ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow List ( Ġvisible : ĠBoolean Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( Ġvisible Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler _ view . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ posts _ text view . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler _ view . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ posts _ text view . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch ( search Query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . set Post List ( listOf ()) ĊĠĠĠĠĠĠĠ ĠPosts Requests ( activity Ġas ĠContext , Ġauth Manager ). search Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set Post List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ},{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Like ( up vote _ text view : ĠTextView , Ġdown vote _ text view : ĠTextView , Ġscores : ĠLike Dis like Score ) Ġ{ ĊĠĠĠĠĠĠĠ Ġup vote _ text view . text Ġ= Ġscores . likes _ num . toString () ĊĠĠĠĠĠĠĠ Ġdown vote _ text view . text Ġ= Ġscores . dis likes _ num . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Like ( id _ post : ĠInt , Ġup vote _ text view : ĠTextView , Ġdown vote _ text view : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPosts Requests ( require Context (), Ġauth Manager ). like Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid _ post , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġit , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Dis like ( id _ post : ĠInt , Ġup vote _ text view : ĠTextView , Ġdown vote _ text view : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPosts Requests ( require Context (), Ġauth Manager ). dis like Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid _ post , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Like ( up vote _ text view , Ġdown vote _ text view , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġit , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Comments ( id _ post : ĠInt , Ġpost : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠPost Comments Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" id Post ", Ġid _ post ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" post ", Ġpost . to Gson ()) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Click ( id _ post : ĠInt , Ġpost : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠPost Comments Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" id Post ", Ġid _ post ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" post ", Ġpost . to Gson ()) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon User Click ( id _ user : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠUser Profile Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" id _ user ", Ġid _ user ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Board Click ( board _ id : ĠInt ?, Ġboard : ĠBoard ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( board _ id Ġ== Ġnull Ġ|| Ġboard _ id Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠBasic Activity ). goTo Activity ( Home Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( board ?. type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" course " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠCourse Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" id _ course ", Ġboard _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" group " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠGroup Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" id _ group ", Ġboard _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ Ġ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }