package Ġio . github . d roid ka igi . conf sched 2 0 1 8 . service . push . processor Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . app . Notification Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġio . github . d roid ka igi . conf sched 2 0 1 8 . R Ċ import Ġio . github . d roid ka igi . conf sched 2 0 1 8 . presentation . MainActivity Ċ import Ġio . github . d roid ka igi . conf sched 2 0 1 8 . presentation . common . notification . Notification Channel Type Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠNew Post Processor Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapplication : ĠApplication , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnotification Manager : ĠNotification Manager ) Ġ: ĠMessage Processor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġprocess ( message : ĠRemote Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( message . data . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġmessage . data [ KEY _ TITLE ] ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmessage . data [ KEY _ CONTENT ] ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġmessage . data [ KEY _ TYPE ] ĊĠĠĠĠĠĠĠ Ġval Ġopen Pi Ġ= ĠPending Intent . getActivity ( application , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( application , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġopen Ġwith Ġannounce Ġfragment Ġin Ġfront ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠ Ġval Ġpriority Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" notification " Ġ-> ĠNotification Compat . PRIORITY _ HIGH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alert " Ġ-> ĠNotification Compat . PRIORITY _ HIGH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠNotification Compat . PRIORITY _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnotification : ĠNotification Ġ= ĠNotification Compat . Builder ( application , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Channel Type . NEW _ FEED _ POST . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Big TextStyle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Big Content Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. big Text ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ notification ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( priority ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Defaults ( Notification Compat . DEFAULT _ ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Show When ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set When ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Context Compat . getColor ( application , ĠR . color . primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Category ( Notification Compat . CATEGORY _ MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Pi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġnotification Manager . notify ( NOTIFICATION _ ID , Ġnotification ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF CM _ FROM Ġ= Ġ"/ topics / post " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IFICATION _ ID Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ TITLE Ġ= Ġ" title " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ CONTENT Ġ= Ġ" content " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ TYPE Ġ= Ġ" type " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTOP IC Ġ= Ġ" post " ĊĠĠĠ Ġ} Ċ } Ċ