/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 , ĠSh ash ank ĠVer ma Ġ< sh ash ank . ver ma 2 0 0 2 @ gmail . com > Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ*/ Ċ Ċ package Ġcom . alpha . dev . flip _ to _ sh ush . app Service Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . app . Notification Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . alpha . dev . flip _ to _ sh ush . R Ċ import Ġcom . alpha . dev . flip _ to _ sh ush . activities . MainActivity Ċ Ċ class ĠNotification Helper ( ctx : ĠContext ) Ġ: ĠContext Wrapper ( ctx ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġchannel ID Ġ= Ġ" Running ĠService " ĊĠĠĠ Ġprivate Ġval Ġchannel ID 2 Ġ= Ġ" General ĠNotification " ĊĠĠĠ Ġprivate Ġvar Ġm Manager : ĠNotification Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Channel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun Ġcreate Channel () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( channel ID , Ġ" Running ĠService ", ĠNotification Manager . IMPORT ANCE _ LOW ) ĊĠĠĠĠĠĠĠ Ġchannel . light Color Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠ Ġchannel . set Sound ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġchannel . enable V ibration ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchannel 2 Ġ= ĠNotification Channel ( channel ID 2 , Ġ" General ĠNotification ", ĠNotification Manager . IMPORT ANCE _ HIGH ) ĊĠĠĠĠĠĠĠ Ġchannel 2 . light Color Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠ Ġchannel 2 . set Sound ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġchannel 2 . enable V ibration ( true ) ĊĊĠĠĠĠĠĠĠ Ġget Manager (). create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠ Ġget Manager (). create Notification Channel ( channel 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Manager (): ĠNotification Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Manager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm Manager !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrunning Notification (): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠHide Notification Action :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Intent Ġ= ĠPending Intent . get Broadcast ( application Context , Ġ 1 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Compat . Builder ( application Context , Ġchannel ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ized ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Big TextStyle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Summary Text (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. big Text (" Android ĠOS Ġwants Ġany Ġapplication Ġrunning Ġservice Ġother Ġthan Ġsystem Ġapplication Ġshould Ġshow Ġnotification .\ n \ n Unless Ġif Ġyou Ġwant , Ġtap Ġon Ġ\' Hide ĠNotification \' Ġand Ġun check Ġthe Ġ\" Running ĠService \" Ġnotification Ġor Ġturn Ġoff ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Big Content Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ LOW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ close _ black _ 2 4 dp , Ġ" Stop ", ĠPending Intent . get Broadcast ( application Context , Ġ 2 , ĠIntent ( application Context , ĠStop Service Action :: class . java ), ĠPending Intent . FLAG _ UPDATE _ CURRENT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ notifications _ off _ black _ 2 4 dp , Ġ" Hide ĠNotification ", Ġaction Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlower Running Notification (): ĠNotification . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠHide Notification Action :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Intent Ġ= ĠPending Intent . get Broadcast ( application Context , Ġ 1 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Big TextStyle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. big Text (" Android ĠOS Ġwants Ġany Ġapplication Ġrunning Ġservice Ġother Ġthan Ġsystem Ġapplication Ġshould Ġshow Ġnotification .\ n \ n Unless Ġif Ġyou Ġwant , Ġtap Ġon Ġ\' Hide ĠNotification \' Ġand Ġun check Ġthe Ġ\" Running ĠService \" Ġnotification , Ġor Ġturn Ġoff ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Big Content Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Summary Text (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ LOW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ close _ black _ 2 4 dp , Ġ" Stop ", ĠPending Intent . get Broadcast ( application Context , Ġ 2 , ĠIntent ( application Context , ĠStop Service Action :: class . java ), ĠPending Intent . FLAG _ UPDATE _ CURRENT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ notifications _ off _ black _ 2 4 dp , Ġ" Hide ĠNotification ", Ġaction Intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Big TextStyle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. big Text (" Android ĠOS Ġwants Ġany Ġapplication Ġrunning Ġservice Ġother Ġthan Ġsystem Ġapplication Ġshould Ġshow Ġnotification .\ n \ n Unless Ġif Ġyou Ġwant , Ġtap Ġon Ġ\' Hide ĠNotification \' Ġand Ġun check Ġthe Ġ\" Running ĠService \" Ġnotification , Ġor Ġturn Ġoff ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Big Content Title (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Summary Text (" Running ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ LOW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ close _ black _ 2 4 dp , Ġ" Stop ", ĠPending Intent . get Broadcast ( application Context , Ġ 2 , ĠIntent ( application Context , ĠStop Service Action :: class . java ), ĠPending Intent . FLAG _ UPDATE _ CURRENT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ notifications _ off _ black _ 2 4 dp , Ġ" Hide ĠNotification ", Ġaction Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġfun Ġrecreate Channel () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Manager (). delete Notification Channel ( channel ID 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchannel 2 Ġ= ĠNotification Channel ( channel ID 2 , Ġ" General ĠNotification ", ĠNotification Manager . IMPORT ANCE _ HIGH ) ĊĠĠĠĠĠĠĠ Ġchannel 2 . light Color Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠ Ġchannel 2 . set Sound ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġchannel 2 . enable V ibration ( true ) ĊĊĠĠĠĠĠĠĠ Ġget Manager (). create Notification Channel ( channel 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgeneral Notification ( title : ĠString , Ġmessage : ĠString ): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Compat . Builder ( application Context , Ġchannel ID 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlower General Notification ( title : ĠString , Ġmessage : ĠString ): ĠNotification . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġforce Start Service Notification (): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠForce Start Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Intent Ġ= ĠPending Intent . get Broadcast ( application Context , Ġ 1 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Compat . Builder ( application Context , Ġchannel ID 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Error ĠFlip ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" User Ġrequired Ġto Ġrestart ĠFlip ĠService . ĠT ap Ġon Ġ\" Force ĠStart \" Ġto Ġtry Ġagain ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ fiber _ smart _ record _ black _ 2 4 dp , Ġ" Force ĠStart ", Ġaction Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlower Force Start Service Notification (): ĠNotification . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠForce Start Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Intent Ġ= ĠPending Intent . get Broadcast ( application Context , Ġ 1 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġact Intent Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠPending Intent . getActivity ( application Context , Ġ 0 , Ġact Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Error ĠFlip ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" User Ġrequired Ġto Ġrestart ĠFlip ĠService . ĠT ap Ġon Ġ\" Force ĠStart \" Ġto Ġtry Ġagain ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . parse Color ("# 2 C 7 DE 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ fiber _ smart _ record _ black _ 2 4 dp , Ġ" Force ĠStart ", Ġaction Intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification . Builder ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Error ĠFlip ĠService ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" User Ġrequired Ġto Ġrestart ĠFlip ĠService . ĠT ap Ġon Ġ\" Force ĠStart \" Ġto Ġtry Ġagain ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ phone _ android _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( open Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( R . drawable . ic _ fiber _ smart _ record _ black _ 2 4 dp , Ġ" Force ĠStart ", Ġaction Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }