package Ġcom . fro go box . nut r ition framework . notification Ċ Ċ 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 . graphics . Bitmap Factory Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Remote Input Ċ import Ġcom . fro go box . nut r ition framework . R Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠF ais al ĠA mir Ġon Ġ 2 6 / 1 2 / 2 0 2 0 Ċ Ġ* ĠNotification ĠSource ĠCode Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠName ĠĠĠĠ Ġ: ĠMu ham mad ĠF ais al ĠA mir Ċ Ġ* ĠE - mail ĠĠ Ġ: Ġfa is alam ir cs @ gmail . com Ċ Ġ* ĠGithub ĠĠ Ġ: Ġgithub . com / am iris back Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠF ro go Box ĠInc . ĠĠĠĠĠĠ Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ċ Ġ*/ Ċ class ĠN ut ri Notification Ġ{ ĊĊĠĠĠ Ġclass ĠInject ( val Ġcontext : ĠContext ) Ġ: ĠIN ut ri Notification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠN ut ri Notification :: class . java . simple Name ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnotification Manager : ĠNotification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġnotification : ĠNotification ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġsmall Icon : ĠInt Ġ= ĠR . drawable . ic _ nut ri _ notification _ notif ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġremote Input : ĠRemote Input ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġnotification Action : ĠNotification Compat . Action ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġin box Style : ĠNotification Compat . Inbox Style ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġstyle : ĠNotification Compat . Style ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpending Intent : ĠPending Intent ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcontent Title : ĠCharSequence ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcontent Text : ĠCharSequence ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcontent Sub Text : ĠCharSequence ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcollapsed View : ĠRemote Views ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġexpanded View : ĠRemote Views ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlarge Icon : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġgroup Key : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Auto Cancel Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Show When Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis V ibration Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Group Summary Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Custom ContentView Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Big Custom ContentView Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġnotification ID : ĠInt Ġ= ĠN ut ri Not if Constant . F RO GO _ NOTIFICATION _ ID ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġchannel ID : ĠString Ġ= ĠN ut ri Not if Constant . F RO GO _ CHANNEL _ ID ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġchannel Name : ĠString Ġ= ĠN ut ri Not if Constant . F RO GO _ CHANNEL _ NAME ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Initialize ĠContext Ġand ĠDeclare ĠNotification ĠManager ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Channel Id ( channelId : ĠString ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . channel ID Ġ= Ġchannel Id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠChannel _ ID Ġ: Ġ$ channelId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Channel Name ( channel Name : ĠString ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . channel Name Ġ= Ġchannel Name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠChannel ĠName Ġ: Ġ$ channel Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Content Intent ( intent : ĠPending Intent ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . pending Intent Ġ= Ġintent ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠIntent Ġ: Ġ$ intent ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Small Icon ( small Icon : ĠInt ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . small Icon Ġ= Ġsmall Icon ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠSmall ĠIcon Ġ: Ġ$ small Icon ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Large Icon ( large Icon : ĠInt ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . large Icon Ġ= Ġlarge Icon ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠLarge ĠIcon Ġ: Ġ$ large Icon ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Content Title ( content Title : ĠCharSequence ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Title Ġ= Ġcontent Title ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠContent ĠTitle Ġ: Ġ$ content Title ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Content Text ( content Text : ĠCharSequence ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Text Ġ= Ġcontent Text ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠContent ĠText Ġ: Ġ$ content Text ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Sub Text ( content Sub Text : ĠCharSequence ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Sub Text Ġ= Ġcontent Sub Text ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠContent ĠSub ĠText Ġ: Ġ$ content Sub Text ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Auto Cancel (): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Auto Cancel Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠAuto ĠCancel Ġ: Ġ$ is Auto Cancel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Style ( style : ĠNotification Compat . Style ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . style Ġ= Ġstyle ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠStyle Ġ: Ġ$ style ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Show When (): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Show When Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠShow ĠWhen Ġ: Ġ$ is Show When ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Group ( group Key : ĠString ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . group Key Ġ= Ġgroup Key ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠShow ĠWhen Ġ: Ġ$ group Key ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Group Summary (): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Group Summary Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠGroup Summary Ġ: Ġ$ is Group Summary ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup With V ibration (): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is V ibration Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠV ibration Ġ: Ġ$ is V ibration ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Action Remote Input ( listener : ĠN ut ri Not if Action Remote Input Listener ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Input Ġ= ĠRemote Input . Builder ( listener . set Remote Input Result Key ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setLabel ( listener . set Remote Input Label ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Action Ġ= ĠNotification Compat . Action . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . setAction Icon (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . setAction Title (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . setAction Intent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Remote Input ( remote Input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow Generated Rep lies ( listener . set Allow Generated Rep lies ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Setup ĠAction ĠRemote ĠInput ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Remote Input Ġ( Key ) Ġ: Ġ${ listener . set Remote Input Result Key () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Remote Input Ġ( Label ) Ġ: Ġ${ listener . set Remote Input Label () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Action Ġ( Icon ) Ġ: Ġ${ listener . setAction Icon () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Action Ġ( Title ) Ġ: Ġ${ listener . setAction Title () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Action Ġ( Intent ) Ġ: Ġ${ listener . setAction Intent () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Action Ġ( Generate ĠRep lies ) Ġ: Ġ${ listener . set Allow Generated Rep lies () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Inbox Style ( listener : ĠN ut ri Not if Inbox Style Listener ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin box Style Ġ= ĠNotification Compat . Inbox Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line ( listener . add Line 1 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Line ( listener . add Line 2 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Big Content Title ( listener . set Big Content Title ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Summary Text ( listener . set Summary Text ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Using ĠCustom ĠContent ĠView ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Inbox ĠS yle Ġ( Add ĠLine ) Ġ: Ġ${ listener . add Line 1 () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Inbox ĠS yle Ġ( Add ĠLine ) Ġ: Ġ${ listener . add Line 2 () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Inbox ĠS yle Ġ( Big ĠContent ĠTitle ) Ġ: Ġ${ listener . set Big Content Title () }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Inbox ĠS yle Ġ( Summary ĠText ) Ġ: Ġ${ listener . set Summary Text () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Custom ContentView ( listener : ĠN ut ri Not if Custom ContentView Listener ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Custom ContentView Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollapsed View Ġ= ĠRemote Views ( context . packageName , Ġlistener . setup Custom View ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . setup Component ( context , Ġcollapsed View !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Using ĠCustom ĠContent ĠView ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Custom ĠContent ĠView Ġ: Ġ$ is Custom ContentView ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Layout ĠCustom ĠContent ĠView Ġ: Ġ${ listener . setup Custom View () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Custom Big ContentView ( listener : ĠN ut ri Not if Custom ContentView Listener ): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Big Custom ContentView Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded View Ġ= ĠRemote Views ( context . packageName , Ġlistener . setup Custom View ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . setup Component ( context , Ġexpanded View !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Using ĠBig ĠCustom ĠContent ĠView ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Big ĠCustom ĠContent ĠView Ġ: Ġ$ is Custom ContentView ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Layout ĠBig ĠCustom ĠContent ĠView Ġ: Ġ${ listener . setup Custom View () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup With F ro go Style (): ĠInject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Title Ġ= Ġcontext . resources . getString ( R . string . nut ri _ content _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Text Ġ= Ġcontext . resources . getString ( R . string . nut ri _ content _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Sub Text Ġ= Ġcontext . resources . getString ( R . string . nut ri _ sub text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . large Icon Ġ= ĠR . drawable . ic _ nut ri _ notification _ notif ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Auto Cancel Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Using ĠF ro go ĠNotification ĠTemplate ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠContent ĠTitle Ġ: Ġ$ content Title ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠContent ĠText Ġ: Ġ$ content Text ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠSub ĠContext Ġ: Ġ$ content Sub Text ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠLarge ĠIcon Ġ: Ġ$ large Icon ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠAuto ĠCancel Ġ: Ġ$ is Auto Cancel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠInject Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Builder Ġ= ĠNotification Compat . Builder ( context , Ġchannel ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( small Icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( large Icon Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Large Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Factory . decode Resource ( context . resources , Ġlarge Icon !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Custom ContentView Ġ&& Ġ! is Big Custom ContentView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setContent Title ( content Title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setContent Text ( content Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Sub Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Sub Text ( content Sub Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Custom ContentView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Custom ContentView ( collapsed View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Big Custom ContentView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Custom Big ContentView ( expanded View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pending Intent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setContent Intent ( pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( remote Input Ġ!= Ġnull Ġ&& Ġnotification Action Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . addAction ( notification Action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group Key Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Group ( group Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inbox Style Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setStyle ( inbox Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( style Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setStyle ( style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Group Summary ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Group Summary ( is Group Summary ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Auto Cancel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . setAuto Cancel ( is Auto Cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Ġo re o Ġversion Ġneed Ġadd Ġnotification Ġchannel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠCreate Ġor Ġupdate Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Manager . IMPORT ANCE _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . description Ġ= Ġchannel Name ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is V ibration ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . enable V ibration ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . vi br ation Pattern Ġ= Ġlong ArrayOf ( 1 0 0 0 , Ġ 1 0 0 0 , Ġ 1 0 0 0 , Ġ 1 0 0 0 , Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Builder . set Channel Id ( channel ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Ġ= Ġnotification Builder . build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlaunch ( notification Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . notification ID Ġ= Ġnotification Id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Value Ġof ĠNotification _ ID Ġ: Ġ$ notification Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Successfully ĠNotify ĠF ro go ĠNotification ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . notify ( notification ID , Ġnotification ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }