package Ġorg . unified push . flutter . connector Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Handler Ċ import Ġandroid . util . Log Ċ import Ġio . flutter . embedding . engine . Flutter Engine Ċ import Ġio . flutter . view . Flutter Main Ċ import Ġorg . unified push . android . connector . Messaging Receiver Ċ import Ġorg . unified push . android . connector . Messaging Receiver Handler Ċ Ċ /*** Ċ Ġ* ĠHandler Ġused Ġwhen Ġthere Ġis Ġa Ġcallback Ċ Ġ*/ Ċ Ċ val Ġhandler Ġ= Ġobject Ġ: ĠMessaging Receiver Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Message ( context : ĠContext ?, Ġmessage : ĠString , Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Message ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" message " Ġto Ġmessage ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . start Initialization ( context !! ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . ensure Initialization Complete ( context , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Plugin . with Callback Channel Ġ!= Ġnull Ġ&& Ġ! Callback Service . s Service Started . get ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," foreground Channel ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlugin . with Callback Channel ?. invoke Method (" on Message ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," Callback Channel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCallback Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ EVENT , ĠCALL BACK _ EVENT _ MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ INSTANCE , Ġinstance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ MESSAGE , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCallback Service . enqueue Work ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Endpoint ( context : ĠContext ?, Ġendpoint : ĠString , Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On New Endpoint ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" endpoint " Ġto Ġendpoint ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . start Initialization ( context !! ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . ensure Initialization Complete ( context , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Plugin . with Callback Channel Ġ!= Ġnull Ġ&& Ġ! Callback Service . s Service Started . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlugin . with Callback Channel ?. invoke Method (" on New Endpoint ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCallback Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ EVENT , ĠCALL BACK _ EVENT _ NEW _ ENDPOINT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ INSTANCE , Ġinstance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ ENDPOINT , Ġendpoint ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCallback Service . enqueue Work ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Registration Failed ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Registration Failed ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ ĠPlugin . with Callback Channel ?. invoke Method (" on Registration Failed ", Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Registration Ref used ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Registration Ref used ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ ĠPlugin . with Callback Channel ?. invoke Method (" on Registration Ref used ", Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Un registered ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Un registered ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . start Initialization ( context !! ) ĊĠĠĠĠĠĠĠ ĠFlutter Main . ensure Initialization Complete ( context , Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Plugin . with Callback Channel Ġ!= Ġnull Ġ&& Ġ! Callback Service . s Service Started . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlugin . with Callback Channel ?. invoke Method (" on Un registered ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCallback Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ EVENT , ĠCALL BACK _ EVENT _ UN REGISTER ED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ CALLBACK _ INSTANCE , Ġinstance ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCallback Service . enqueue Work ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠReceiver Ġ: ĠMessaging Receiver ( handler ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Plugin . is With Callback ( context !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Receive ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /*** Ċ Ġ* ĠHandler Ġused Ġwhen Ġthe ĠReceiver Ġis Ġdefined Ġin Ġthe Ġapp Ċ Ġ*/ Ċ Ċ abstract Ġclass ĠUn ified Push Handler Ġ: ĠMessaging Receiver Handler Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġget Engine ( context : ĠContext ): ĠFlutter Engine ĊĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler () ĊĊĠĠĠ Ġprivate Ġfun Ġget Plugin ( context : ĠContext ): ĠPlugin Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġregistry Ġ= Ġget Engine ( context ). get Plugins () ĊĠĠĠĠĠĠĠ Ġvar Ġplugin Ġ= Ġregistry . get ( Plugin :: class . java ) Ġas ? ĠPlugin ĊĠĠĠĠĠĠĠ Ġif Ġ( plugin Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Ġ= ĠPlugin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . add ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġplugin ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Message ( context : ĠContext ?, Ġmessage : ĠString , Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Message ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" message " Ġto Ġmessage ) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Plugin ( context !! ). with Receiver Channel ?. invoke Method (" on Message ", Ġ Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Endpoint ( context : ĠContext ?, Ġendpoint : ĠString , Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On New Endpoint ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" endpoint " Ġto Ġendpoint ) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Plugin ( context !! ). with Receiver Channel ?. invoke Method (" on New Endpoint ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Registration Failed ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Registration Failed ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Plugin ( context !! ). with Receiver Channel ?. invoke Method (" on Registration Failed ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Registration Ref used ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Registration Ref used ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Plugin ( context !! ). with Receiver Channel ?. invoke Method (" on Registration Ref used ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Un registered ( context : ĠContext ?, Ġinstance : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Receiver "," On Un registered ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of (" instance " Ġto Ġinstance ) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Plugin ( context !! ). with Receiver Channel ?. invoke Method (" on Un registered ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ