package Ġio . sky tre asure . kot ling roup chat Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġio . sky tre asure . kot ling roup chat . chat . My Chat Manager Ċ import Ġio . sky tre asure . kot ling roup chat . chat . ui . Create Group Activity Ċ import Ġio . sky tre asure . kot ling roup chat . chat . ui . One On One Chat Ċ import Ġio . sky tre asure . kot ling roup chat . chat . ui . View Groups Activity Ċ import Ġio . sky tre asure . kot ling roup chat . common . constants . Data Constants Ċ import Ġio . sky tre asure . kot ling roup chat . common . constants . Data Constants . Companion . s CurrentUser Ċ import Ġio . sky tre asure . kot ling roup chat . common . constants . Network Constants Ċ import Ġio . sky tre asure . kot ling roup chat . common . controller . Notify Me Interface Ċ import Ġio . sky tre asure . kot ling roup chat . common . util . Shared Pref Manager Ċ import Ġcom . google . firebase . database . Database Error Ċ import Ġandroid . databinding . adapters . Number Picker Binding Adapter . setValue Ċ import Ġandroid . util . Log Ċ import Ġcom . google . firebase . database . Data Snapshot Ċ import Ġcom . google . firebase . database . Value EventListener Ċ import Ġcom . google . firebase . iid . Firebase InstanceId ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġvar Ġonline Ref : ĠDatabase Reference ? Ġ= Ġnull ĊĠĠĠ Ġvar ĠcurrentUser Ref : ĠDatabase Reference ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ ĠMy Chat Manager . set mContext ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġs CurrentUser Ġ= ĠShared Pref Manager . getInstance ( this @ MainActivity ). saved User Model ĊĊĠĠĠĠĠĠĠ Ġbtn _ create group . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ show group . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ one on one . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbtn _ logout . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ ĠMy Chat Manager . set Online Presence () ĊĠĠĠĠĠĠĠ ĠMy Chat Manager . update F CM Token And DeviceId ( this @ MainActivity , ĠFirebase InstanceId . getInstance (). token !! ) ĊĊĠĠĠĠĠĠĠ ĠMy Chat Manager . fetch All User Information () ĊĊĠĠĠĠĠĠĠ ĠMy Chat Manager . fetch My Groups ( object Ġ: ĠNotify Me Interface Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Data (` object `: ĠAny , Ġrequest Code : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( group Ġin ĠData Constants . s Group Map !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group . value . members . containsKey ( s CurrentUser ?. uid !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġgroup . value . members . get ( s CurrentUser ?. uid )?. unread _ group _ count !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ notification _ count . text Ġ= Ġ" Total ĠNotification ĠCount Ġ:" Ġ+ Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, ĠNetwork Constants . FETCH _ GROUP S , Ġs CurrentUser , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ create group Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠCreate Group Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ show group Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠView Groups Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ one on one Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠOne On One Chat :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Chat Manager . logout ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Chat Manager . go Offline ( object Ġ: ĠNotify Me Interface Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Data (` object `: ĠAny , Ġrequest Code : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" You Ġare Ġoffline Ġnow ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, Ġs CurrentUser , ĠNetwork Constants . GO _ OFF LINE ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ Ċ } Ċ