package Ġcom . ar sh ad sh ah . nim az . helper Classes Ċ Ċ import Ġandroid . app . Notification . VIS IBILITY _ PUBLIC Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . NOTIFICATION _ SERVICE Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color . GREEN Ċ import Ġandroid . media . Audio Attributes Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġcom . ar sh ad sh ah . nim az . MainActivity Ċ import Ġcom . ar sh ad sh ah . nim az . R Ċ Ċ /** Ċ Ġ* ĠA ĠHelper Ġclass Ġthat Ġcreates Ġboth Ġthe ĠNotifications Ġand Ġthe Ġnotification Ġchannels Ċ Ġ* Ġ@ author ĠAr sh ad ĠSh ah Ċ Ġ*/ Ċ class ĠNotification Helper Ċ { ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates ĠNotification ĠChannel Ġin ĠAndroid ĠO Ġand ĠA bove ĊĠĠĠĠ Ġ* Ġ@ author ĠAr sh ad ĠSh ah ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe ĠContext Ġof Ġthe ĠApplication ĊĠĠĠĠ Ġ* Ġ@ param Ġimportance ĠThe Ġimportance Ġof Ġthe ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Badge ĠShow ĠBadge Ġfor ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠThe Ġname Ġof Ġthe Ġchannel ĊĠĠĠĠ Ġ* Ġ@ param Ġdescription ĠThe ĠDescription Ġfor Ġthe Ġchannel ĊĠĠĠĠ Ġ* Ġ@ param Ġchannel _ id ĠThe Ġid Ġof Ġthe ĠChannel ĠCreates Ġa ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġsound Ġthe Ġsound Ġto Ġbe Ġused Ġfor Ġthe Ġnotification ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġfun Ġcreate Notification Channel ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ: ĠContext Ġ, ĊĠĠĠĠĠĠĠ Ġimportance Ġ: ĠInt Ġ, ĊĠĠĠĠĠĠĠ Ġshow Badge Ġ: ĠBoolean Ġ, ĊĠĠĠĠĠĠĠ Ġname Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġdescription Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġchannel _ id Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġsound Ġ: ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ: ĠNotification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( NOTIFICATION _ SERVICE ) Ġas ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Manager ĊĊĠĠĠĠĠĠĠ Ġval ĠAd han Ġ: ĠUri Ġ= ĠUri . parse ( sound ) ĊĊĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAudio Attributes . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ContentType ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAudio Attributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. CONTENT _ TYPE _ SON IFICATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Usage ( Audio Attributes . USAGE _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( channel _ id Ġ, Ġname Ġ, Ġimportance ) ĊĠĠĠĠĠĠĠ Ġchannel . description Ġ= Ġdescription ĊĠĠĠĠĠĠĠ Ġchannel . set Show Badge ( show Badge ) ĊĠĠĠĠĠĠĠ Ġchannel . enable Lights ( true ) ĊĠĠĠĠĠĠĠ Ġchannel . light Color Ġ= ĠGREEN ĊĠĠĠĠĠĠĠ Ġchannel . set Sound ( Ad han Ġ, Ġattributes ) ĊĠĠĠĠĠĠĠ Ġchannel . lock screen Visibility Ġ= ĠVIS IBILITY _ PUBLIC ĊĠĠĠĠĠĠĠ Ġchannel . enable V ibration ( true ) ĊĠĠĠĠĠĠĠ Ġchannel . vi br ation Pattern Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlong ArrayOf ( 1 0 0 Ġ, Ġ 2 0 0 Ġ, Ġ 3 0 0 Ġ, Ġ 4 0 0 Ġ, Ġ 5 0 0 Ġ, Ġ 4 0 0 Ġ, Ġ 3 0 0 Ġ, Ġ 2 0 0 Ġ, Ġ 4 0 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġ 3 ĊĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠ ĠLog . i (" Notifications " Ġ, Ġ" Notification ĠChannel Ġ$ name ĠSuccessfully Ġcreated ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates ĠNotification ĠChannel Ġin ĠAndroid ĠO Ġand ĠA bove ĊĠĠĠĠ Ġ* Ġ@ author ĠAr sh ad ĠSh ah ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe ĠContext Ġof Ġthe ĠApplication ĊĠĠĠĠ Ġ* Ġ@ param Ġimportance ĠThe Ġimportance Ġof Ġthe ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Badge ĠShow ĠBadge Ġfor ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠThe Ġname Ġof Ġthe Ġchannel ĊĠĠĠĠ Ġ* Ġ@ param Ġdescription ĠThe ĠDescription Ġfor Ġthe Ġchannel ĊĠĠĠĠ Ġ* Ġ@ param Ġchannel _ id ĠThe Ġid Ġof Ġthe ĠChannel ĠCreates Ġa ĠChannel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġfun ĠNotification Channel Sil ent ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ: ĠContext Ġ, ĊĠĠĠĠĠĠĠ Ġimportance Ġ: ĠInt Ġ, ĊĠĠĠĠĠĠĠ Ġshow Badge Ġ: ĠBoolean Ġ, ĊĠĠĠĠĠĠĠ Ġname Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġdescription Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġchannel _ id Ġ: ĠString ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ: ĠNotification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( NOTIFICATION _ SERVICE ) Ġas ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( channel _ id Ġ, Ġname Ġ, Ġimportance ) ĊĠĠĠĠĠĠĠ Ġchannel . description Ġ= Ġdescription ĊĠĠĠĠĠĠĠ Ġchannel . set Show Badge ( show Badge ) ĊĠĠĠĠĠĠĠ Ġchannel . enable Lights ( true ) ĊĠĠĠĠĠĠĠ Ġchannel . light Color Ġ= ĠGREEN ĊĠĠĠĠĠĠĠ Ġchannel . lock screen Visibility Ġ= ĠVIS IBILITY _ PUBLIC ĊĠĠĠĠĠĠĠ Ġchannel . enable V ibration ( true ) ĊĠĠĠĠĠĠĠ Ġchannel . vi br ation Pattern Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlong ArrayOf ( 1 0 0 Ġ, Ġ 2 0 0 Ġ, Ġ 3 0 0 Ġ, Ġ 4 0 0 Ġ, Ġ 5 0 0 Ġ, Ġ 4 0 0 Ġ, Ġ 3 0 0 Ġ, Ġ 2 0 0 Ġ, Ġ 4 0 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġ 3 ĊĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠ ĠLog . i (" Notifications " Ġ, Ġ" Notification ĠChannel Ġ$ name ĠSuccessfully Ġcreated ") ĊĠĠĠ Ġ} ĊĊĊĊ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa ĠNotification ĊĠĠĠĠ Ġ* Ġ@ author ĠAr sh ad ĠSh ah ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠThe ĠContext Ġof Ġthe ĠApplication ĊĠĠĠĠ Ġ* Ġ@ param Ġchannel _ id ĠThe Ġid Ġof Ġthe ĠChannel ĊĠĠĠĠ Ġ* Ġ@ param Ġtitle Ġthe Ġtitle Ġof Ġthe Ġnotification ĊĠĠĠĠ Ġ* Ġ@ param Ġnotification _ id ĠThe Ġid Ġof Ġthe ĠNotification Ġ( ĠUnique ĠInteger ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Notification ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ: ĠContext Ġ, ĊĠĠĠĠĠĠĠ Ġchannel _ id Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġtitle Ġ: ĠString Ġ, ĊĠĠĠĠĠĠĠ Ġnotification _ id Ġ: ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġan Ġexplicit Ġintent Ġfor Ġan ĠActivity Ġin Ġyour Ġapp ĊĠĠĠĠĠĠĠ Ġval Ġnotification Intent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context Ġ, ĠMainActivity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. FLAG _ ACTIVITY _ CLEAR _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnotification Pending Intent Ġ: ĠPending Intent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( context Ġ, Ġ 8 Ġ, Ġnotification Intent Ġ, Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Builder ( context Ġ, Ġchannel _ id ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Small Icon ( R . drawable . ic _ pr ayer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title Ġ== Ġ" Test ĠAd han "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Text (" This Ġis Ġa Ġtest ĠAd han ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( title Ġ== Ġ" Sun rise " Ġ|| Ġtitle Ġ== Ġ" Ø´ Ø± ÙĪ ÙĤ "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Text (" The Ġsun Ġhas Ġris en !! ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Text (" Time Ġto ĠOffer Ġ$ title Ġsal at ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠNotification Compat . PRIORITY _ HIGH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Intent ( notification Pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Auto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Notification Manager Compat . from ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify ( notification _ id Ġ, Ġbuilder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . i (" Notifications " Ġ, Ġ" Notification Ġ$ title ĠSuccessfully ĠDisplay ed ") ĊĠĠĠ Ġ} Ċ } Ċ