package Ġcom . mac ode . re alla . fc m čĊč Ċ import Ġandroid . app . Notification Channel č Ċ import Ġandroid . app . Notification Manager č Ċ import Ġandroid . app . Pending Intent č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . content . SharedPreferences č Ċ import Ġandroid . media . Ring tone Manager č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . util . Log č Ċ import Ġandroidx . core . app . Notification Compat č Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Service č Ċ import Ġcom . google . firebase . messaging . Remote Message č Ċ import Ġcom . mac ode . re alla . R č Ċ import Ġcom . mac ode . re alla . activities . Log In Activity č Ċ import Ġcom . mac ode . re alla . activities . MainActivity č Ċ import Ġcom . mac ode . re alla . firebase . Fire Store Class čĊč Ċ class ĠMy Firebase Messaging Service : ĠFirebase Messaging Service () Ġ{ čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" My Firebase Msg Service " čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġvar Ġfire Store Class : ĠFire Store Class Ġ= ĠFire Store Class () čĊčĊĠĠĠ Ġoverride Ġfun Ġon Message Received ( remote Message : ĠRemote Message ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Message Received ( remote Message ) čĊčĊĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" FROM : Ġ${ remote Message . from }") čĊčĊĠĠĠĠĠĠĠ Ġremote Message . data . isNotEmpty (). let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Message Ġdata ĠPayload : Ġ${ remote Message . data }") čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġremote Message . data [" title "] !! čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġremote Message . data [" message "] !! čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Notification ( title , Ġmessage ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġremote Message . notification ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Message ĠNot f ication ĠBody : Ġ${ it . body }") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon New Token ( token : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on New Token ( token ) čĊĠĠĠĠĠĠĠ Ġsend Registration ToServer ( token ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsend Registration ToServer ( token : ĠString ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= Ġthis . get SharedPreferences (" re alla Pref ", ĠContext . MODE _ PRIVATE ) čĊĠĠĠĠĠĠĠ Ġval Ġeditor : ĠSharedPreferences . Editor Ġ= Ġshared Preferences . edit () čĊĠĠĠĠĠĠĠ Ġeditor . putString (" fc m Token ", Ġtoken ) čĊĠĠĠĠĠĠĠ Ġeditor . apply () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsend Notification ( title : ĠString , Ġmessage : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġif Ġ( fire Store Class . getCurrent UserID (). isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( this , ĠMainActivity :: class . java ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( this , ĠLog In Activity :: class . java ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) čĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . getActivity ( this , Ġ 0 , Ġintent , ĠPending Intent . FLAG _ ONE _ SHOT ) čĊĠĠĠĠĠĠĠ Ġval Ġchannel ID Ġ= Ġ" re alla Not if c ation Channel ID " čĊĠĠĠĠĠĠĠ Ġval Ġdefault Sound Uri Ġ= ĠRing tone Manager . getDefault Uri ( Ring tone Manager . TYPE _ NOTIFICATION ) čĊĠĠĠĠĠĠĠ Ġval Ġnotification Builder Ġ= ĠNotification Compat . Builder ( this , Ġchannel ID ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . logo ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( message ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( default Sound Uri ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( pending Intent ) čĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager čĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( channel ID , Ġ" Channel ĠRe alla ĠTitle ", ĠNotification Manager . IMPORT ANCE _ DEFAULT ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġnotification Manager . notify ( 0 , Ġnotification Builder . build ()) čĊĠĠĠ Ġ} č Ċ }