package Ġcom . am ity . sample . as cs dk . channel list Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . LiveData Reactive Streams Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . list . list Items Ċ import Ġcom . am ity . sample . as cs dk . Build Config Ċ import Ġcom . am ity . sample . as cs dk . R Ċ import Ġcom . am ity . sample . as cs dk . channel list . dialog . Channel Inputs Dialog Ċ import Ġcom . am ity . sample . as cs dk . channel list . filter . Channel Query Filter Activity Ċ import Ġcom . am ity . sample . as cs dk . common . extensions . show Dialog Ċ import Ġcom . am ity . sample . as cs dk . common . extensions . show Toast Ċ import Ġcom . am ity . sample . as cs dk . common . preferences . Sample Preferences Ċ import Ġcom . am ity . sample . as cs dk . intent . Intent Request Code Ċ import Ġcom . am ity . social cloud . sdk . Am ity Core Client Ċ import Ġcom . am ity . social cloud . sdk . chat . Am ity Chat Client Ċ import Ġcom . am ity . social cloud . sdk . chat . channel . Am ity Channel Ċ import Ġcom . am ity . social cloud . sdk . chat . channel . Am ity Channel Filter Ċ import Ġcom . am ity . social cloud . sdk . core . Am ity Tags Ċ import Ġcom . am ity . social cloud . sdk . core . file . Am ity Image Ċ import Ġcom . am ity . social cloud . sdk . core . file . Am ity Upload Result Ċ import Ġcom . ek o app . ek os dk . internal . Am ity Paging Data Refresh er Ċ import Ġcom . google . common . base . Join er Ċ import Ġcom . google . common . collect . Fluent Iterable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ channel _ list .* ĊĊ Ċ class ĠChannel List Activity Ġ: ĠAppCompatActivity (), ĠChannel Inputs Dialog . On Dialog Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġchannels : ĠLive Data < Paged List < Am ity Channel >> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġchannel Repository Ġ= ĠAm ity Chat Client . new Channel Repository () ĊĠĠĠ Ġprivate Ġvar Ġchannel Type : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( saved State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( saved State ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ channel _ list ) ĊĠĠĠĠĠĠĠ Ġval ĠappName Ġ= ĠgetString ( R . string . app _ name ) ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= ĠString . format ("% s Ġ% s : Ġ% s ", ĠappName , Ġ" ASC ĠSDK ", ĠBuild Config . VERSION _ NAME ) ĊĠĠĠĠĠĠĠ Ġtoolbar . setTitle TextColor ( Context Compat . getColor ( this , Ġandroid . R . color . white )) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Subtitle TextColor ( Context Compat . getColor ( this , Ġandroid . R . color . white )) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġquery _ filter _ text view . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Intent ( this , ĠChannel Query Filter Activity :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Request Code . REQUEST _ CHANNEL _ FILTER _ OPTION ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLive Data Reactive Streams . from Publisher ( channel Repository . getTotal Un read Count ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( this , ĠObserver < Int > Ġ{ Ġtotal Un read Count Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Un read Count String Ġ= ĠgetString ( R . string . total _ unread _ d , Ġtotal Un read Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal _ unread _ text view . text Ġ= Ġtotal Un read Count String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġobserve Channel Collection () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ channel _ list , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ create _ channel Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Type Items Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Type Items . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Am ity Channel . Type . COMM UN ITY . apiKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Am ity Channel . Type . LI VE . apiKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( this ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Items ( items Ġ= Ġchannel Type Items ) Ġ{ Ġ_, Ġ_, Ġtext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Type Ġ= Ġtext . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Channel Inputs Dialog ( getString ( R . string . channel _ channel id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . channel _ display _ name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . channel _ user _ ids ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cancel ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . create )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ create _ conversation Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Type Ġ= ĠAm ity Channel . Type . CONVER S ATION . apiKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Channel Inputs Dialog ("", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . channel _ display _ name ), ĠgetString ( R . string . channel _ user _ id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cancel ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . create )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ join _ channel Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog ( R . string . join _ channel , Ġ" channelId ", Ġ"", Ġfalse ) Ġ{ Ġd , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Id Ġ= Ġinput . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjoin Channel ( channelId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Left Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO ĠHandle Ġwhen Ġuser Ġclick Ġon Ġleft Ġbutton ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Right Click ( channelId : ĠString , ĠdisplayName : ĠString , ĠuserId : ĠString , Ġphoto File Uri : ĠUri ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( channel Type . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photo File Uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAm ity Core Client . new File Repository () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. upload Image ( photo File Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Full Image ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transfer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ Ġam ity Image Upload Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( am ity Image Upload ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAm ity Upload Result . COMPLETE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate User ( channel Type , Ġchannel Id , ĠdisplayName , ĠuserId , Ġam ity Image Upload . getFile ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAm ity Upload Result . ERROR , ĠAm ity Upload Result . CANCEL LED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO ĠHandle Ġwhen Ġupload Ġphoto Ġis Ġerror Ġor Ġcancelled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. do OnError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO ĠHandle Ġwhen Ġupload Ġphoto Ġis Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate User ( channel Type , Ġchannel Id , ĠdisplayName , ĠuserId , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate User ( channel Type : ĠString , Ġchannel Id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName : ĠString , ĠuserId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Image : ĠAm ity Image ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( Am ity Channel . Type . enum Of ( channel Type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAm ity Channel . Type . COMM UN ITY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Community Channel ( channelId , ĠdisplayName , ĠuserId , Ġprofile Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAm ity Channel . Type . LI VE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Live Channel ( channelId , ĠdisplayName , ĠuserId , Ġprofile Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAm ity Channel . Type . CONVER S ATION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Conversation Channel ( displayName , ĠuserId , Ġprofile Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Channel Collection () Ġ{ ĊĠĠĠĠĠĠĠ Ġchannels ?. remove Observer s ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠChannel ListAdapter () ĊĠĠĠĠĠĠĠ Ġchannel _ list _ recyclerview . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġchannel _ list _ recyclerview . add On Scroll Listener ( Am ity Paging Data Refresh er ()) ĊĊĠĠĠĠĠĠĠ Ġdisplay Query Options () ĊĠĠĠĠĠĠĠ Ġchannels Ġ= Ġget Channels LiveData () ĊĠĠĠĠĠĠĠ Ġchannels ?. observe ( this , ĠObserver < Paged List < Am ity Channel >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Channels LiveData (): ĠLive Data < Paged List < Am ity Channel >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtypes Ġ= ĠFluent Iterable . from ( Sample Preferences . getChannel Type Options (). get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAm ity Channel . Type . enum Of ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠAm ity Channel Filter . from ApiKey ( Sample Preferences . getChannel Membership Option (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġincluding Tags Ġ= ĠAm ity Tags ( Sample Preferences . getIn cluding Channel Tags (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġexcluding Tags Ġ= ĠAm ity Tags ( Sample Preferences . get Ex cluding Channel Tags (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġinclude Deleted Ġ= ĠSample Preferences . get Include Deleted Options (). get () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠLive Data Reactive Streams . from Publisher ( channel Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Channels () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. types ( types ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. including Tags ( including Tags ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ex cluding Tags ( ex cluding Tags ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. include Deleted ( include Deleted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Query Options () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtypes Ġ= Ġ" Types : Ġ" Ġ+ ĠJoin er . on ("," ). join ( Sample Preferences . getChannel Type Options (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġ"\ n Membership : Ġ" Ġ+ ĠSample Preferences . getChannel Membership Option (). get () ĊĠĠĠĠĠĠĠ Ġval Ġinclude Tags Ġ= Ġ"\ n include Tags : Ġ" Ġ+ ĠJoin er . on ("," ). join ( Sample Preferences . getIn cluding Channel Tags (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġexcluding Tags Ġ= Ġ"\ nex cluding Tags : Ġ" Ġ+ ĠJoin er . on ("," ). join ( Sample Preferences . get Ex cluding Channel Tags (). get ()) ĊĠĠĠĠĠĠĠ Ġval Ġinclude Deleted Ġ= Ġ"\ n Include ĠDeleted : Ġ" Ġ+ ĠSample Preferences . get Include Deleted Options (). get () ĊĊĠĠĠĠĠĠĠ Ġquery _ filter _ text view . text Ġ= Ġtypes Ġ+ Ġfilter Ġ+ Ġinclude Tags Ġ+ Ġexcluding Tags Ġ+ Ġinclude Deleted ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġshouldn 't Ġbe Ġempty Ġvalue Ġwhen Ġset Ġany Ġmethod Ġin ĠBuilder ĊĠĠĠĠ Ġ* Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Community Channel ( channelId : ĠString , ĠdisplayName : ĠString , Ġuser Ids : ĠString , Ġprofile Image : ĠAm ity Image ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Creator Ġ= Ġchannel Repository . create Channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. community Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Channel Id ( channelId ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( displayName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . displayName ( displayName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( profile Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . avatar ( profile Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ids . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . user Ids ( user Ids . split ("," )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchannel Creator . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" Completed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( it . message Ġ?: Ġ" Failed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġshouldn 't Ġbe Ġempty Ġvalue Ġwhen Ġset Ġany Ġmethod Ġin ĠBuilder ĊĠĠĠĠ Ġ* Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Live Channel ( channelId : ĠString , ĠdisplayName : ĠString , Ġuser Ids : ĠString , Ġprofile Image : ĠAm ity Image ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Creator Ġ= Ġchannel Repository . create Channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. live Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Channel Id ( channelId ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( displayName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . displayName ( displayName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( profile Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . avatar ( profile Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ids . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . user Ids ( user Ids . split ("," )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchannel Creator . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" Completed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( it . message Ġ?: Ġ" Failed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġshouldn 't Ġbe Ġempty Ġvalue Ġwhen Ġset Ġany Ġmethod Ġin ĠBuilder ĊĠĠĠĠ Ġ* Ġ**/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Conversation Channel ( displayName : ĠString , ĠuserId : ĠString , Ġprofile Image : ĠAm ity Image ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Creator Ġ= Ġchannel Repository . create Channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. conversation Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with UserId ( userId ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( displayName . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . displayName ( displayName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( profile Image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Creator . avatar ( profile Image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchannel Creator . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" Completed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( it . message Ġ?: Ġ" Failed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġjoin Channel ( channelId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join Channel ( channelId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ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 _ OK Ġ&& Ġrequest Code Ġ== ĠIntent Request Code . REQUEST _ CHANNEL _ FILTER _ OPTION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Channel Collection () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Channel Inputs Dialog ( channelId Hint : ĠString Ġ= Ġ"", ĠdisplayName Hint : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Hint : ĠString Ġ= Ġ"", Ġtext Btn Left : ĠString Ġ= Ġ"", Ġtext Btn Right : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ ĠChannel Inputs Dialog . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. channelId Hint ( channelId Hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. displayName Hint ( displayName Hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. userId Hint ( userId Hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text Btn Left Dialog ( text Btn Left ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text Btn Right Dialog ( text Btn Right ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( support FragmentManager , Ġ"") ĊĠĠĠ Ġ} Ċ }