package Ġcom . synt ia . local _ alarm _ sample . utils Ċ Ċ 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 . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . synt ia . local _ alarm _ sample . R Ċ import Ġcom . synt ia . local _ alarm _ sample . presentation . view . MainActivity Ċ Ċ object ĠNotification Utils Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠNOT IFICATION _ CHANNEL _ ID Ġ= Ġ" Notification Channel Id " ĊĠĠĠ Ġprivate Ġconst Ġval ĠNOT IFICATION _ ID Ġ= Ġ 1 2 3 4 5 ĊĠĠĠ Ġprivate Ġconst Ġval ĠCHAN NEL _ ID Ġ= Ġ" channel _ id " ĊĠĠĠ Ġprivate Ġconst Ġval ĠCHAN NEL _ NAME Ġ= Ġ" channel _ name " ĊĊĠĠĠ Ġfun Ġshow Notification ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġnotification Id : ĠInt Ġ= ĠNOT IFICATION _ ID ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Compat Ġ= Ġcontext . getSystem Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . NOTIFICATION _ SERVICE ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġval Ġnotification Builder Ġ= Ġget Notification Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNOT IFICATION _ CHANNEL _ ID ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Notification Channel ( notification Manager Compat , Ġnotification Builder ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnotification Manager Compat . notify ( notification Id , Ġnotification Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun Ġcreate Notification Channel ( ĊĠĠĠĠĠĠĠ Ġnotification Manager : ĠNotification Manager , ĊĠĠĠĠĠĠĠ Ġnotification Builder : ĠNotification Compat . Builder , ĊĠĠĠĠĠĠĠ Ġchannel Id : ĠString Ġ= ĠCHAN NEL _ ID , ĊĠĠĠĠĠĠĠ Ġchannel Name : ĠString Ġ= ĠCHAN NEL _ NAME ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Manager . IMPORT ANCE _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnotification Builder . set Channel Id ( channelId ) ĊĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Notification Builder ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġchannel Id : ĠString ĊĠĠĠ Ġ): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Compat . Builder ( context , Ġchannel Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ launcher _ foreground ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( get Pending Intent To Home ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Pending Intent To Home ( context : ĠContext ) Ġ= ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠ 1 0 0 0 , ĊĠĠĠĠĠĠĠ Ġget Home Intent ( context ), ĊĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Home Intent ( context : ĠContext ) Ġ= ĠIntent ( context , ĠMainActivity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK ĊĠĠĠ Ġ} Ċ }