package Ġdev . k xx cn . mar u . data . source . firebase Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Service Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġdev . k xx cn . mar u . Mar u Activity Ċ import Ġdev . k xx cn . mar u . R Ċ import Ġdev . k xx cn . mar u . util . Notification Utils Ċ import Ġdev . k xx cn . mar u . util . REQUEST _ CODE _ NOTIFY Ċ import Ġorg . jetbrains . ank o . single Top Ċ Ċ @ Suppress Lint (" Missing Firebase Instance Token Refresh ") Ċ class ĠMessaging Service Ġ: ĠFirebase Messaging Service () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Message Received ( message : ĠRemote Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Message Received ( message ) ĊĠĠĠĠĠĠĠ Ġval Ġ( title , Ġbody ) Ġ= Ġmessage . notification ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġit . title Ġto Ġit . body Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmessage . data [" title "] Ġto Ġmessage . data [" body "] ĊĠĠĠĠĠĠĠ Ġsend Notification ( title , Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Notification ( title : ĠString ?, Ġbody : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Code Ġ= ĠREQUEST _ CODE _ NOTIFY ĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMar u Activity :: class . java ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Top () ĊĠĠĠĠĠĠĠ Ġ}. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Messaging Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ ONE _ SHOT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Utils . CHANNEL _ NOTICE ĊĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= ĠNotification Utils . builder ( this , Ġchannel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . mip map . ic _ launcher _ foreground ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( Notification Compat . Big TextStyle (). big Text ( body )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ? ĠNotification Manager )?. let Ġ{ Ġmanager Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Notification Utils . is Enable ( manager , Ġchannel )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . notify ( request Code , Ġnotification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ