package Ġcom . dev dd . recipe . firebase . constant Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . core . net . to Uri Ċ import Ġcom . dev dd . recipe . base . utils . Recipe AppConfig Ċ import Ġcom . dev dd . recipe . data . utils . to Data Class Ċ import Ġcom . dev dd . recipe . data . utils . toJson String Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Json Element Ċ import Ġjava . util . HashMap Ċ Ċ fun ĠRemote Message . to Notification Payload (): ĠNotification Payload Ġ{ ĊĠĠĠ Ġval Ġremote Message Tree : ĠJson Element Ġ= ĠGson (). toJson Tree ( data ) ĊĠĠĠ Ġreturn Ġremote Message Tree . toJson String (). to Data Class () Ċ } Ċ Ċ fun Ġpending Intent For Action ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġnotification Payload : ĠNotification Payload , Ċ ): ĠPending Intent ? Ġ{ ĊĠĠĠ Ġval Ġnotify Intent Ġ= Ġnotification Payload . action . let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdeep Link Ġ= Ġnotification Dee plink ( notification Payload . action , Ġnotification Payload ) ĊĠĠĠĠĠĠĠ Ġcontext . create Notify Intent ( notification Payload . ops nid , Ġdeep Link ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠPending Intent . getActivity ( context , Ġ 0 , Ġnotify Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) Ċ } Ċ private Ġval Ġaction Dest inations : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of () Ċ fun Ġnotification Dee plink ( action : ĠString ?, Ġnotification Payload : ĠNotification Payload ): ĠUri ? Ġ{ ĊĠĠĠ Ġif Ġ( action . isNull Or Blank ()) Ġreturn Ġnotification Payload . external Link ?. to Uri () ĊĊĠĠĠ Ġval Ġdee plink : ĠString Ġ= Ġaction Dest inations [ action ] Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġargs Ġ= Ġdee plink Args ( notification Payload , Ġaction ) ĊĠĠĠ Ġreturn ĠUri . parse ( dee plink Ġ+ Ġargs ) Ċ } Ċ Ċ private Ġfun Ġdee plink Args ( notification Payload : ĠNotification Payload ?, Ġaction : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ Ġ"" Ċ } Ċ Ċ const Ġval ĠNOT IFICATION _ OPS _ N ID : ĠString Ġ= Ġ" ops nid " Ċ private Ġfun ĠContext . create Notify Intent ( ops nid : ĠLong ?, Ġdeep Link : ĠUri ?): ĠIntent Ġ{ ĊĠĠĠ Ġreturn ĠIntent ( this , ĠRecipe AppConfig . main Activity ClassName ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġ= Ġdeep Link ĊĠĠĠĠĠĠĠ Ġops nid ?. let Ġ{ Ġput Extra ( NOTIFICATION _ OPS _ N ID , Ġit ) Ġ} ĊĠĠĠ Ġ} Ċ }