package Ġcom . skeleton . mvp . service Ċ Ċ import Ġandroid . app . Notification Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . os .* Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . skeleton . mvp . Build Config Ċ import Ġcom . skeleton . mvp . R Ċ import Ġcom . skeleton . mvp . data . db . Common Data Ċ import Ġcom . skeleton . mvp . data . network . ApiError Ċ import Ġcom . skeleton . mvp . data . network . Common Params Ċ import Ġcom . skeleton . mvp . data . network . Response Resolver Ċ import Ġcom . skeleton . mvp . data . network . RestClient Ċ import Ġcom . skeleton . mvp . model . push Notification . Push Notifications Ċ import Ġcom . skeleton . mvp . push Notification . Push Receiver Ċ import Ġcom . skeleton . mvp . service . Notification Service . Notification Service State . is Service Running Ċ import Ġcom . skeleton . mvp . ui . App Constants .* Ċ import Ġcom . skeleton . mvp . utils . Unique IME IID ĊĊ Ċ class ĠNotification Service Ġ: ĠService () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Binder : ĠI Binder Ġ= ĠLocal Binder () ĊĠĠĠ Ġprivate Ġvar Ġf ugu Notification Config Ġ= ĠPush Receiver (). getInstance () ĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Binder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠNotification Service State Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġis Service Running Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠLocal Binder Ġ: ĠB inder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserver Instance : ĠNotification Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ Notification Service ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġis Service Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġnotification : ĠNotification Compat . Builder ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Ġ= ĠNotification Compat . Builder ( this , Ġ" Notification Service ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . setContent Title ( Build Config . APP _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . setContent Text (" Checking Ġfor Ġnew Ġmessages ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Small Icon ( R . drawable . notification _ white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Large Icon ( Bitmap Factory . decode Resource ( this . resources , ĠR . drawable . ic _ f ugu )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Defaults ( Notification . DEFAULT _ LIGHT S Ġor ĠNotification . DEFAULT _ SOUND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set V ibrate ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . priority Ġ= Ġget Priority () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Channel Ġ= ĠNotification Channel (" Notification Service ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Notification Service ", ĠNotification Manager . IMPORT ANCE _ LOW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Channel . set Sound ( null , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( notification Channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Foreground ( 1 1 2 4 , Ġnotification . build ()) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Ġ= ĠNotification Compat . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . setContent Title ( Build Config . APP _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . setContent Text (" Checking Ġfor Ġnew Ġmessages ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Small Icon ( R . drawable . notification _ white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Large Icon ( Bitmap Factory . decode Resource ( this . resources , ĠR . drawable . ic _ f ugu )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set Defaults ( Notification . DEFAULT _ LIGHT S Ġor ĠNotification . DEFAULT _ SOUND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set V ibrate ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . priority Ġ= Ġget Priority () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Foreground ( 1 1 2 4 , Ġnotification . build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ugu Notification Config . set Small Icon ( R . drawable . notification _ white ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ugu Notification Config . set Small Icon ( R . drawable . ic _ f ugu ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Push Notifications () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSTART _ STICK Y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Priority (): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Manager . IMPORT ANCE _ HIGH ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . PRIORITY _ MAX ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Push Notifications () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcommon Params Ġ= ĠCommon Params . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( ACCESS _ TOKEN , ĠCommon Data . get Common Response (). getData (). getUser Info (). accessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( DEVICE _ ID , ĠUnique IME IID . get Unique IME I Id ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( LAST _ NOTIFICATION _ ID , ĠCommon Data . getLocal Notification Id ()) ĊĠĠĠĠĠĠĠ ĠRest Client . get Api Interface ( true ). get Push Notifications ( Common Data . get Common Response (). getData (). getUser Info (). get AccessToken (), ĠCommon Data . get Common Response (). data . workspaces Info [ Common Data . getCurrent Signed In Position ()]. f ugu SecretKey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĠBuild Config . VERSION _ CODE , Ġcommon Params . build (). map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠResponse Resolver < Push Notifications >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( push Notifications : ĠPush Notifications ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Data . set Local Notification Id ( push Notifications . data . last Notification Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( notification Ġin Ġpush Notifications . data . push Notifications ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġgson . toJson ( notification . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpush Map Ġ= ĠLinkedHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpush Map . put (" message ", Ġjson ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ugu Notification Config . push Red irection New ( this @ Notification Service , Ġpush Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Sockets . on Notifications Published () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Service Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠApi Error ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Service Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( throwable : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Service Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠNotification Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Notifications Published () ĊĠĠĠ Ġ} Ċ Ċ }