package Ġcom . react nat iven ot ification Ċ Ċ import Ġandroid . app .* Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . util . Log Ċ import Ġandroidx . core . app . Alarm Manager Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . facebook . react . bridge .* Ċ import Ġcom . facebook . react . modules . core . Device Event Manager Module Ċ import Ġcom . react nat iven ot ification . send Notification Ċ import Ġcom . facebook . react . bridge . Readable Map Ċ import Ġandroid . widget . Toast Ċ Ċ class ĠNotification Module ( react Context : ĠReact ApplicationContext ) Ġ: ĠReact Context Base Java Module ( react Context ), Activity EventListener Ġ{ ĊĠ Ġprivate Ġval ĠREQUEST _ CODE Ġ= Ġ 0 ĊĠ Ġprivate Ġvar Ġnotify Pending Intent : ĠPending Intent ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Notification " ĊĠĠĠ Ġ} ĊĊĊĠ Ġprivate Ġval Ġnotify Intent Ġ= ĠIntent ( react Context , ĠAlarm Receiver :: class . java ) ĊĠ Ġval Ġalarm Manager Ġ= Ġreact ApplicationContext . getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĊĠ Ġprivate Ġfun Ġcreate Channel ( channelId : ĠString , Ġchannel Name : ĠString ) Ġ{ ĊĠĠĠ Ġ// ĠTODO : ĠStep Ġ 1 . 6 ĠSTART Ġcreate Ġa Ġchannel ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠ Ġval Ġnotification Channel Ġ= ĠNotification Channel ( ĊĠĠĠĠĠĠĠ Ġchannel Id , ĊĠĠĠĠĠĠĠ Ġchannel Name , ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠStep Ġ 2 . 4 Ġchange Ġimportance ĊĠĠĠĠĠĠĠ ĠNotification Manager . IMPORT ANCE _ HIGH ĊĠĠĠĠĠ Ġ) // ĠTODO : ĠStep Ġ 2 . 6 Ġdisable Ġbad ges Ġfor Ġthis Ġchannel ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠsetShow Badge ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġnotification Channel . enable Lights ( true ) ĊĠĠĠĠĠ Ġnotification Channel . light Color Ġ= ĠColor . RED ĊĠĠĠĠĠ Ġnotification Channel . enable V ibration ( true ) ĊĠĠĠĠĠ Ġnotification Channel . description Ġ= Ġreact ApplicationContext . getString ( R . string . channel _ description ) ĊĊĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġ( react ApplicationContext . getSystem Service ( ĊĠĠĠĠĠĠĠ ĠNotification Manager :: class . java ĊĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( notification Channel ) ĊĊĠĠĠ Ġ} Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġfun Ġshow Notification ( notification : Readable Map ){ ĊĠĠĠ Ġval Ġtrigger Time Ġ= Ġnotification . getDouble (" trigger Time "). to Long () ĊĠĠĠ Ġval Ġtext Ġ= Ġnotification . getString (" text ") ĊĠĠĠ Ġval Ġtitle Ġ= Ġnotification . getString (" title ") ĊĠĠĠĠĠ Ġ// ĠCreate Ġmap Ġfor Ġparams ĊĠĠĠĠĠ Ġval Ġpayload Ġ= ĠArguments . create Map () ĊĠĠĠĠĠ Ġ// ĠPut Ġdata Ġto Ġmap ĊĠĠĠĠĠ Ġpayload . putString (" testing _ events ", Ġ" I Ġam ĠTesting ĠEvents ") ĊĠĠĠĠĠ Ġ// ĠGet ĠEventEmitter Ġfrom Ġcontext Ġand Ġsend Ġevent Ġthanks Ġto Ġit ĊĠĠĠĠĠ Ġreact ApplicationContext ĊĠĠĠĠĠĠĠ Ġ. get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. emit (" on Testing Events ", Ġpayload ) ĊĠĠ Ġcreate Channel ( ĊĠĠĠĠ Ġreact ApplicationContext . getString ( R . string . notification _ channel _ id ), ĊĠĠĠĠ Ġreact ApplicationContext . getString ( R . string . notification _ channel _ name )) ĊĠĠĠ Ġval Ġtrig g Time Ġ= ĠSystem Clock . elapsed Realtime () Ġ+ Ġtrigger Time ĊĠĠĠ Ġval Ġnotification Manager Ġ= ĊĠĠĠĠĠ ĠContext Compat . getSystem Service ( ĊĠĠĠĠĠĠĠ Ġreact ApplicationContext , ĊĠĠĠĠĠĠĠ ĠNotification Manager :: class . java ĊĠĠĠĠĠ Ġ) Ġas ĠNotification Manager ĊĠĠĠ Ġnotification Manager . cancel Notifications () ĊĊĠĠĠĠ ĠLog . d (" Not ific "," show Notifications ") ĊĊ ĊĊĠĠĠĠĠ Ġnotify Intent . put Extras ( Bundle (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput String (" title ", title ) ĊĠĠĠĠĠĠĠ Ġput String (" body ", text ) ĊĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠ Ġnotify Pending Intent Ġ= ĠPending Intent . get Broadcast ( ĊĠĠĠĠĠĠĠ Ġreact ApplicationContext , ĊĠĠĠĠĠĠĠ ĠREQUEST _ CODE , ĊĠĠĠĠĠĠĠ Ġnotify Intent , ĊĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġnotify Pending Intent ?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠAlarm Manager Compat . set Exact And Allow While Idle ( ĊĠĠĠĠĠĠĠĠĠ Ġalarm Manager , ĊĠĠĠĠĠĠĠĠĠ ĠAlarm Manager . EL AP SED _ REAL TIME _ WAKE UP , ĊĠĠĠĠĠĠĠĠĠ Ġtrig g Time , ĊĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠ Ġ} ĊĠĠĠ Ġ// ĠExample Ġmethod ĊĠĠĠ Ġ// ĠSee Ġhttps :// react native . dev / docs / native - modules - android ĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġmultiply ( a : ĠInt , Ġb : ĠInt , Ġpromise : ĠPromise ) Ġ{ ĊĊĠĠĠĠĠ Ġpromise . resolve ( a Ġ* Ġb ) ĊĊĠĠĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Result ( p 0 : ĠActivity ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠIntent ?) Ġ{ ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon New Intent ( p 0 : ĠIntent ?) Ġ{ ĊĊĠ Ġ} ĊĊ Ċ } Ċ