package Ġcom . luc id soft works ll c . s abot community . fragments Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Search Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Image Decoder Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . view .* Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . widget . Search View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android . vol ley . Default Retry Policy Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Request Queue Ċ import Ġcom . android . vol ley . toolbox . JsonObject Request Ċ import Ġcom . android . vol ley . toolbox . String Request Ċ import Ġcom . android . vol ley . toolbox . Vol ley Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . kar umi . dex ter . Dex ter Ċ import Ġcom . kar umi . dex ter . Multiple Permissions Report Ċ import Ġcom . kar umi . dex ter . Permission Token Ċ import Ġcom . kar umi . dex ter . listener . Permission Request Ċ import Ġcom . kar umi . dex ter . listener . multi . Multiple Permissions Listener Ċ import Ġcom . luc id soft works ll c . s abot community .* Ċ import Ġcom . luc id soft works ll c . s abot community . activities . Chat Activity Ċ import Ġcom . luc id soft works ll c . s abot community . adapters . New Group Message User Adapter Ċ import Ġcom . luc id soft works ll c . s abot community . adapters . UserList Group Message Adapter Ċ import Ġcom . luc id soft works ll c . s abot community . models . Search Recycler Ċ import Ġcom . luc id soft works ll c . s abot community . models . UserList Recycler Ċ import Ġcom . luc id soft works ll c . s abot community . others . Constants Ċ import Ġcom . luc id soft works ll c . s abot community . others . Shared Pref Manager Ċ import Ġcom . luc id soft works ll c . s abot community . ret rofit . User Ċ import Ġcom . luc id soft works ll c . s abot community . ret rofit . User Api Interface Ċ import Ġcom . luc id soft works ll c . s abot community . ret rofit . Users ApiClient Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ class ĠNew Group Message Ġ: ĠFragment (), ĠNew Group Message User Adapter . Adapter Callback , ĠUser List Group Message Adapter . Adapter Callback Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġnew Message In sign ia : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġset In sign ia Button : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġet New Group Message Name : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnew Message Search : ĠSearch View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġre cycler Search : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġre cycler Users To Invite : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġall Users Can Invite : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadmins Can Invite : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġall Users Can Change Group Image : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadmins Can Change Group Image : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġall Users Can Change GroupName : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadmins Can Change GroupName : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġall Users Can Message : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadmins Can Message : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadmins Can Remove Users : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbtn Submit : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġapi Interface : ĠUser Api Interface ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġusers : ĠList < User ?> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠNew Group Message User Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter 2 : ĠUser List Group Message Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnew Group Message ProgressBar : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Recycler List : ĠList < Search Recycler >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġuser List Recycler : ĠMutable List < UserList Recycler >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġusers To Invite : ĠArrayList < String >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlayout Manager : ĠRecyclerView . LayoutManager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlayout Manager 2 : ĠRecyclerView . LayoutManager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġgallery In sign ia Ġ= Ġ 2 ĊĠĠĠ Ġprivate Ġvar Ġnew Group In sign i abit map : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġvar ĠjsonObject : ĠJSONObject ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġr Queue : ĠRequest Queue ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Method Callback UserList ( position : ĠInt , Ġusername : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser List Recycler !!. remove At ( position ) ĊĠĠĠĠĠĠĠ Ġadapter 2 !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġusers To Invite !!. remove ( username ) ĊĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Removed Ġ@$ username ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Group Root View Ġ= Ġinflater . inflate ( R . layout . fragment _ new _ group _ message , Ġnull ) ĊĠĠĠĠĠĠĠ Ġnew Message In sign ia Ġ= Ġnew Group Root View . findViewById ( R . id . new _ message _ in sign ia ) ĊĠĠĠĠĠĠĠ Ġset In sign ia Button Ġ= Ġnew Group Root View . findViewById ( R . id . set In sign ia Button ) ĊĠĠĠĠĠĠĠ Ġet New Group Message Name Ġ= Ġnew Group Root View . findViewById ( R . id . et New Group Message Name ) ĊĠĠĠĠĠĠĠ Ġnew Message Search Ġ= Ġnew Group Root View . findViewById ( R . id . new Message Search ) ĊĠĠĠĠĠĠĠ Ġre cycler Search Ġ= Ġnew Group Root View . findViewById ( R . id . recycler Search ) ĊĠĠĠĠĠĠĠ Ġre cycler Users To Invite Ġ= Ġnew Group Root View . findViewById ( R . id . recycler Users To Invite ) ĊĠĠĠĠĠĠĠ Ġall Users Can Invite Ġ= Ġnew Group Root View . findViewById ( R . id . all Users Can Invite ) ĊĠĠĠĠĠĠĠ Ġadmins Can Invite Ġ= Ġnew Group Root View . findViewById ( R . id . admins Can Invite ) ĊĠĠĠĠĠĠĠ Ġall Users Can Change Group Image Ġ= Ġnew Group Root View . findViewById ( R . id . all Users Can Change Group Image ) ĊĠĠĠĠĠĠĠ Ġadmins Can Change Group Image Ġ= Ġnew Group Root View . findViewById ( R . id . admins Can Change Group Image ) ĊĠĠĠĠĠĠĠ Ġall Users Can Change GroupName Ġ= Ġnew Group Root View . findViewById ( R . id . all Users Can Change GroupName ) ĊĠĠĠĠĠĠĠ Ġadmins Can Change GroupName Ġ= Ġnew Group Root View . findViewById ( R . id . admins Can Change GroupName ) ĊĠĠĠĠĠĠĠ Ġall Users Can Message Ġ= Ġnew Group Root View . findViewById ( R . id . all Users Can Message ) ĊĠĠĠĠĠĠĠ Ġadmins Can Message Ġ= Ġnew Group Root View . findViewById ( R . id . admins Can Message ) ĊĠĠĠĠĠĠĠ Ġadmins Can Remove Users Ġ= Ġnew Group Root View . findViewById ( R . id . admins Can Remove Users ) ĊĠĠĠĠĠĠĠ Ġbtn Submit Ġ= Ġnew Group Root View . findViewById ( R . id . btn Submit ) ĊĠĠĠĠĠĠĠ Ġnew Group Message ProgressBar Ġ= Ġnew Group Root View . findViewById ( R . id . new Group Message ProgressBar ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġnew Group In sign i abit map Ġ= Ġnull ĊĠĠĠĠĠĠĠ ĠG lide . with ( mContext !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Constants . BASE _ URL Ġ+ Ġ" assets / images / profile _ p ics / defaults / s abot black . gif ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( new Message In sign ia !! ) ĊĠĠĠĠĠĠĠ Ġsearch Recycler List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġuser List Recycler Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġusers To Invite Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( mContext ) ĊĠĠĠĠĠĠĠ Ġre cycler Search ?. layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġlayout Manager 2 Ġ= ĠLinearLayoutManager ( mContext ) ĊĠĠĠĠĠĠĠ Ġre cycler Users To Invite ?. layout Manager Ġ= Ġlayout Manager 2 ĊĠĠĠĠĠĠĠ Ġadapter 2 Ġ= ĠUser List Group Message Adapter ( user List Recycler !! , ĠmContext !! , Ġthis @ New Group Message ) ĊĠĠĠĠĠĠĠ Ġre cycler Users To Invite ?. adapter Ġ= Ġadapter 2 ĊĠĠĠĠĠĠĠ Ġset In sign ia Button ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Multiple Permissions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgallery Intent Ġ= ĠIntent ( Intent . ACTION _ P ICK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Store . Images . Media . EXTERNAL _ CONTENT _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( gallery Intent , Ġgallery In sign ia ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Submit ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( et New Group Message Name ?. text . toString (). length Ġin Ġ 3 .. 2 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Group Message ProgressBar ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Submit ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoption Array Ġ= Ġgroup Options ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinvite Array Ġ= Ġusers To Invite . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Group Message ( et New Group Message Name ?. text . toString (), Ġoption Array , Ġinvite Array ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Group Ġname Ġmust Ġbe Ġ 3 - 2 5 Ġcharacters Ġlong ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġall Users Can Invite ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Invite ?. isChecked !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Invite ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Invite ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Invite ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġall Users Can Change Group Image ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Change Group Image ?. isChecked !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change Group Image ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change Group Image ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change Group Image ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġall Users Can Change GroupName ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Change GroupName ?. isChecked !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change GroupName ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change GroupName ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Change GroupName ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġall Users Can Message ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Message ?. isChecked !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Message ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Message ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadmins Can Message ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnew Message Search ?. setOn Query Text Listener ( object Ġ: ĠSearch View . On Query Text Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Submit ( query : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch User (" users _ only ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Change ( new Text : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch User (" users _ only ", Ġnew Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Group Root View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch User ( type : ĠString ?, Ġkey : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġapi Interface Ġ= ĠUsers ApiClient . apiClient ?. create ( User Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġapi Interface ?. get Users ( type , Ġkey ) ĊĠĠĠĠĠĠĠ Ġcall ?. enqueue ( object Ġ: ĠCallback < List < User ?> ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < List < User ?> ? >, Ġresponse : ĠResponse < List < User ?> ?> ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers Ġ= Ġresponse . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠNew Group Message User Adapter ( users !! Ġas ĠMutable List < User >, ĠmContext !! , Ġthis @ New Group Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < User ?> ? >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Error \ n $ t ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . search , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġval Ġsearch Manager Ġ= Ġrequire Activity (). getSystem Service ( Context . SEARCH _ SERVICE ) Ġas ĠSearch Manager ĊĠĠĠĠĠĠĠ Ġval Ġsearch View Ġ= Ġmenu . find Item ( R . id . search View ). action View Ġas ĠSearch View ĊĠĠĠĠĠĠĠ Ġsearch View . set Search able Info ( search Manager . get Search able Info ( require Activity (). component Name )) ĊĠĠĠĠĠĠĠ Ġsearch View . is Submit Button Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsearch View . setIcon ified ByDefault ( false ) ĊĠĠĠĠĠĠĠ Ġsearch View . setOn Query Text Listener ( object Ġ: ĠSearch View . On Query Text Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Submit ( query : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch User (" users _ only ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Change ( new Text : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch User (" users _ only ", Ġnew Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler Search !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġgroup Options : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions List Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Change Group Image !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" all Users Can Change Group Image ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Change GroupName !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" all Users Can Change GroupName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Invite !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" all Users Can Invite ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Users Can Message !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" all Users Can Message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( admins Can Change Group Image !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" admins Can Change Group Image ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( admins Can Change GroupName !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" admins Can Change GroupName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( admins Can Invite !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" admins Can Invite ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( admins Can Message !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" admins Can Message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( admins Can Remove Users !!. isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List . add (" admins Can Remove Users ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoptions List . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubmit Group Message ( group Message Name : ĠString , Ġoption Array : ĠString , Ġinvite Array : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Request : ĠString Request Ġ= Ġobject Ġ: ĠString Request ( Method . POST , ĠURL _ GROUP _ SUBMIT , Ġcom . android . vol ley . Response . Listener Ġ{ Ġresponse : ĠString ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject ( response !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jsonObject . getString (" error ") Ġ== Ġ" false ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠgroupId Ġ= ĠjsonObject . getString (" group id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Group In sign i abit map Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload In sign ia Image ( new Group In sign i abit map !! , ĠgroupId , Ġet New Group Message Name !!. text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl df Ġ= ĠConv os Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠFragment Activity ?) !!. support FragmentManager . beginTransaction (). set Custom Animations ( R . anim . slide _ in , ĠR . anim . fade _ out , ĠR . anim . fade _ in , ĠR . anim . slide _ out ). replace ( R . id . chat _ fragment _ container , Ġl df ). commit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Network ĠError !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Submit !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Group Message ProgressBar !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġcom . android . vol ley . Response . Error Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Group Message ProgressBar !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Network ĠError !", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Params (): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams : ĠMutable Map < String , ĠString > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" group _ name "] Ġ= Ġgroup Message Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" option _ array "] Ġ= Ġoption Array ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" invite _ array "] Ġ= Ġinvite Array ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" username "] Ġ= ĠShared Pref Manager . getInstance ( mContext !! ) !!. username !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" userid "] Ġ= ĠShared Pref Manager . getInstance ( mContext !! ) !!. userID !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠChat Activity ?) !!. addTo Request Queue ( string Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ C ANCE LED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġgallery In sign ia ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent URI Ġ= Ġdata . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbitmap 1 : ĠBitmap ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource : ĠImage Decoder . Source Ġ= ĠImage Decoder . create Source ( mContext !!. content Resolver , Ġcontent URI !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap 1 Ġ= ĠImage Decoder . decode Bitmap ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap 1 Ġ= ĠMedia Store . Images . Media . get Bitmap ( mContext !!. content Resolver , Ġcontent URI !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Message In sign ia !!. setImage Bitmap ( bitmap 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Group In sign i abit map Ġ= Ġbitmap 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Failed !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupload In sign ia Image ( bitmap : ĠBitmap , Ġgroup _ id : ĠString , Ġgroup name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray OutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġbitmap . compress ( Bitmap . Compress Format . JPEG , Ġ 6 5 , ĠbyteArray OutputStream ) ĊĠĠĠĠĠĠĠ Ġval Ġencoded Image Ġ= ĠBase 6 4 . encode ToString ( byteArray OutputStream . toByteArray (), ĠBase 6 4 . DEFAULT ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg name Ġ= ĠCalendar . getInstance (). time In Millis . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject !!. put (" name ", Ġimg name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject !!. put (" group _ id ", Ġgroup _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject !!. put (" group _ name ", Ġgroup name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject !!. put (" image ", Ġencoded Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject !!. put (" username ", ĠShared Pref Manager . getInstance ( mContext !! ) !!. username ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Request Ġ= ĠJsonObject Request ( Request . Method . POST , ĠUP LOAD _ IN SIGN IA _ URL , ĠjsonObject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠjsonObject : ĠJSONObject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Queue !!. cache . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jsonObject . getString (" error ") Ġ== Ġ" true ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , ĠjsonObject . getString (" message "), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Failed !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġr Queue Ġ= ĠVol ley . new Request Queue ( mContext ) ĊĠĠĠĠĠĠĠ ĠjsonObject Request . retry Policy Ġ= ĠDefault Retry Policy ( 2 0 Ġ* Ġ 1 0 0 0 , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Retry Policy . DEFAULT _ BACK OFF _ MULT ) ĊĠĠĠĠĠĠĠ Ġr Queue ?. add ( jsonObject Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Multiple Permissions () Ġ{ ĊĠĠĠĠĠĠĠ ĠDex ter . with Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Listener ( object Ġ: ĠMultiple Permissions Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permissions Checked ( report : ĠMultiple Permissions Report ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( report . is Any Permission Per manently Denied ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext !!. application Context , Ġ" No Ġpermissions Ġare Ġgranted Ġby Ġuser !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission R ationale ShouldBe Shown ( permissions : ĠList < Permission Request >, Ġtoken : ĠPermission Token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken . continue Permission Request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). with Error Listener Ġ{ ĠToast . makeText ( mContext !!. application Context , Ġ" Error !", ĠToast . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Same Thread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠURL _ GROUP _ SUBMIT Ġ= ĠConstants . ROOT _ URL Ġ+ Ġ" messages . php / new group " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUP LOAD _ IN SIGN IA _ URL Ġ= ĠConstants . ROOT _ URL Ġ+ Ġ" upload In sign ia Group Message . php " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Group Method Callback ( user _ id : ĠString ?, Ġprofile _ pic : ĠString ?, Ġnickname : ĠString ?, Ġusername : ĠString ?, Ġverified : ĠString ?, Ġonline : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġis Object Exist Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġuser List Recycler !!. indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthing y Ġ= Ġuser List Recycler ! ![ i ]. user _ id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( thing y Ġ== Ġuser _ id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Object Exist Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! isObject Exist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser ToAdd Ġ= ĠUser List Recycler ( null . toString (), Ġuser _ id !! , Ġprofile _ pic !! , Ġnickname !! , Ġusername !! , Ġverified !! , Ġ"", Ġnull . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser List Recycler !!. add ( user ToAdd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter 2 !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers To Invite !!. add ( username !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Adding Ġ@$ username ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" Already Ġadded Ġ@$ username !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }