package Ġcom . the wiz rd . simple weather . services Ċ Ċ 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 . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġcom . the wiz rd . simple weather . R Ċ import Ġcom . the wiz rd . simple weather . notifications . Notification Utils Ċ Ċ internal Ġobject ĠService Notification Helper Ġ{ ĊĠĠĠ Ġinternal Ġconst Ġval ĠJOB _ ID Ġ= Ġ 1 0 0 0 ĊĠĠĠ Ġinternal Ġconst Ġval ĠNOT _ CHANNEL _ ID Ġ= Ġ" Simple Weather . general notif " ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġinternal Ġfun Ġinit Channel ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGets Ġan Ġinstance Ġof Ġthe ĠNotification Manager Ġservice ĊĠĠĠĠĠĠĠ Ġval Ġm Notify Mgr Ġ= Ġcontext . getSystem Service ( Notification Manager :: class . java ) ĊĠĠĠĠĠĠĠ Ġvar Ġm Channel Ġ= Ġm Notify Mgr . get Notification Channel ( NOT _ CHANNEL _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġnot channel _ name Ġ= Ġcontext . resources . getString ( R . string . not _ channel _ name _ general ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Channel Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel Ġ= ĠNotification Channel ( NOT _ CHANNEL _ ID , Ġnot channel _ name , ĠNotification Manager . IMPORT ANCE _ LOW ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠConfigure Ġthe Ġnotification Ġchannel . ĊĠĠĠĠĠĠĠ Ġm Channel . name Ġ= Ġnot channel _ name ĊĠĠĠĠĠĠĠ Ġm Channel . set Show Badge ( false ) ĊĠĠĠĠĠĠĠ Ġm Channel . enable Lights ( false ) ĊĠĠĠĠĠĠĠ Ġm Channel . enable V ibration ( false ) ĊĠĠĠĠĠĠĠ Ġm Notify Mgr . create Notification Channel ( m Channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcreate Foreground Notification ( context : ĠContext ): ĠNotification Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnot if Ġ= ĠNotification Compat . Builder ( context , ĠNOT _ CHANNEL _ ID ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Small Icon ( R . drawable . wi _ cloud _ refresh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Sub Text ( context . getString ( R . string . app _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Title ( context . getString ( R . string . message _ widget service _ running )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Only Alert Once ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Notification Sil ent () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetShow When ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Utils . getApp Notification Channel Settings Activity Intent ( context , ĠNOT _ CHANNEL _ ID ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . resolve Activity ( context . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Intent ( it . to Pending Activity ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Utils . get AppSettings Activity Intent ( context ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . resolve Activity ( context . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Intent ( it . to Pending Activity ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠNotification Compat . PRIORITY _ LOW ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnot if . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun ĠIntent . to Pending Activity ( context : ĠContext ): ĠPending Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . getActivity ( context , Ġ 0 , Ġthis , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠ Ġ} Ċ }