package Ġcom . tek food s . features . chat . presentation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Relative Layout Ċ import Ġcom . tek food s . R Ċ import Ġcom . tek food s . app . Network Constant Ċ import Ġcom . tek food s . app . Pref Ċ import Ġcom . tek food s . app . Search Listener Ċ import Ġcom . tek food s . app . types . Frag Type Ċ import Ġcom . tek food s . app . utils . App Utils Ċ import Ġcom . tek food s . base . Base Response Ċ import Ġcom . tek food s . base . presentation . Base Activity Ċ import Ġcom . tek food s . base . presentation . Base Fragment Ċ import Ġcom . tek food s . features . chat . api . Chat Repo Provider Ċ import Ġcom . tek food s . features . chat . model . Group UserData Model Ċ import Ġcom . tek food s . features . chat . model . Group User Response Model Ċ import Ġcom . tek food s . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . tek food s . widgets . App Custom TextView Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . pn ik osis . material ish progress . Progress Wheel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠAdd New Msg Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress _ wheel : ĠProgress Wheel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv _ no _ data : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv _ user _ list : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrl _ add _ new _ msg : ĠRelative Layout ĊĊĠĠĠ Ġprivate Ġvar Ġgroup UserList : ĠArrayList < Group UserData Model >? = Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgrp User Adapter : ĠGroup User ListAdapter ?= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ add _ new _ msg , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġget Chat UserList Api () ĊĊĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). set Search Listener ( object Ġ: ĠSearch Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Search Query Listener ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrp User Adapter ?. refresh List ( group UserList !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrp User Adapter ?. filter ?. filter ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel Ġ= ĠfindViewById ( R . id . progress _ wheel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data Ġ= ĠfindViewById ( R . id . tv _ no _ data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ user _ list Ġ= ĠfindViewById ( R . id . rv _ user _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ add _ new _ msg Ġ= ĠfindViewById ( R . id . rl _ add _ new _ msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠ Ġrv _ user _ list . layout Manager Ġ= ĠLinearLayoutManager ( mContext ) ĊĊĠĠĠĠĠĠĠ Ġrl _ add _ new _ msg . setOnClickListener ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Chat UserList Api () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utils . is Online ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠChat Repo Provider . provide Chat Repository () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . getGroup UserList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠGroup User Response Model ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Get ĠGroup ĠUser ĠList ĠSTATUS : Ġ" Ġ+ Ġresponse . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup UserList Ġ= Ġresponse . group _ user _ list ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Get ĠGroup ĠUser ĠList ĠERROR : Ġ" Ġ+ Ġerror . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġgrp User Adapter Ġ= ĠGroup User ListAdapter ( mContext , Ġgroup UserList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew User Model Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh Chat UserList Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv _ user _ list . adapter Ġ= Ġgrp User Adapter ĊĠĠĠ Ġ} Ċ }