package Ġde . der typ 7 2 1 4 . r board theme manager . services Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Service Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . Build Config Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . R Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . screens . MainActivity Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠMessaging Service Ġ: ĠFirebase Messaging Service () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnotification Id Ġ= Ġ 1 3 3 7 6 9 ĊĠĠĠ Ġoverride Ġfun Ġon New Token ( token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Token ( token ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Message Received ( remote Message : ĠRemote Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Message Received ( remote Message ) ĊĠĠĠĠĠĠĠ Ġhandle Message ( remote Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Message ( remote Message : ĠRemote Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġremote Message . data ĊĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= Ġremote Message . notification ĊĠĠĠĠĠĠĠ Ġval Ġnotification Data Ġ= Ġdata [" notification "] ĊĠĠĠĠĠĠĠ Ġwhen Ġ( data [" type "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" update " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( data [" version "] ?. toInt () Ġ?: ĠInt . MAX _ VALUE ) Ġ> ĠBuild Config . VERSION _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" update ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ IM MUT ABLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Notification ( Notification . parse ( notification Data ), Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" announcement " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( notification Ġ!= Ġnull ) Ġshow Notification ( Notification ( notification )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġshow Notification ( Notification . parse ( notification Data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Notification ( ĊĠĠĠĠĠĠĠ Ġnotification : ĠNotification , ĊĠĠĠĠĠĠĠ Ġintent : ĠPending Intent ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . default _ notification _ channel _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Title ( notification . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Text ( notification . body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Intent ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Small Icon ( R . drawable . ic _ notification ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Auto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠNotification Compat . PRIORITY _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠNotification Manager Compat . from ( this ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify ( notification Id , Ġbuilder . build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNotification ( val Ġtitle : ĠString , Ġval Ġbody : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconstructor ( notification : ĠRemote Message . Notification ?) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification ?. title Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification ?. body Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġparse ( json : ĠString ?): ĠNotification Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject ( json !! ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification ( it . getString (" title "), Ġit . getString (" body ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification ("", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }