package Ġcom . rod rig matrix . si pp a . firebase Ċ Ċ import Ġandroid . annotation . Target Api Ċ 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 . media . Ring tone Manager Ċ import Ġandroid . os . Build Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Service Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġcom . rod rig matrix . si pp a . Home Activity Ċ import Ġcom . rod rig matrix . si pp a . Login Activity Ċ import Ġcom . rod rig matrix . si pp a . R Ċ Ċ // Ġ ĠCreated Ġby ĠRod rig o ĠG . ĠRes ende Ġon Ġ 2 0 1 9 - 1 1 - 1 6 . Ċ Ċ class ĠFirebase Cloud Messaging : ĠFirebase Messaging Service () Ġ{ ĊĊĊĠĠĠ Ġprivate Ġval Ġchannel Id Ġ= Ġ" GENERAL " ĊĊĠĠĠ Ġoverride Ġfun Ġon Message Received ( remote Message : ĠRemote Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Only Data Payload ( remote Message . data , Ġremote Message . notification ?. title , Ġremote Message . notification ?. body ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Only Data Payload ( payload : ĠMutable Map < String , ĠString >, Ġtitle : ĠString ?, Ġbody : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( payload . containsKey (" link ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Link ( payload [" link "] !! , Ġtitle , Ġbody ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Normal Notification ( title , Ġbody ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun Ġcreate Notification Channel () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" G eral " ĊĠĠĠĠĠĠĠ Ġval Ġdescription Text Ġ= Ġ" Not ific aÃ§Ãµes Ġg era is Ġdo Ġapp " ĊĠĠĠĠĠĠĠ Ġval Ġimportance Ġ= ĠNotification Manager . IMPORT ANCE _ DEFAULT ĊĠĠĠĠĠĠĠ Ġval Ġm Channel Ġ= ĠNotification Channel ( channelId , Ġname , Ġimportance ) ĊĠĠĠĠĠĠĠ Ġm Channel . description Ġ= Ġdescription Text ĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġget System Service ( NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( m Channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Link ( link : ĠString ?, Ġtitle : ĠString ?, Ġbody : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" link ", Ġlink ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . getActivity ( this , Ġ 0 , Ġintent , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Notification Channel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Notification ( title , Ġbody , Ġpending Intent ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġshow Notification ( title : ĠString ?, Ġbody : ĠString ?, Ġpending Intent : ĠPending Intent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsound Uri Ġ= ĠRing tone Manager . getDefault Uri ( Ring tone Manager . TYPE _ NOTIFICATION ) ĊĠĠĠĠĠĠĠ Ġval Ġnotification Builder Ġ= ĠNotification Compat . Builder ( this , Ġchannel Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ stat _ si pp a ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( sound Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( pending Intent ) ĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġnotification Manager . notify ( 0 , Ġnotification Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Normal Notification ( title : ĠString ?, Ġbody : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠHome Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . getActivity ( this , Ġ 0 , Ġintent , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ ONE _ SHOT ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Notification Channel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Notification ( title , Ġbody , Ġpending Intent ) ĊĠĠĠ Ġ} Ċ }