package Ġcom . example . user . phone call recorder test Ċ Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġjava . util .* Ċ Ċ object ĠNotifications Ġ{ ĊĠĠĠ Ġconst Ġval ĠNOT IFICATION _ ID __ CALL _ RECORD ING Ġ= Ġ 1 ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠBuilder ( context : ĠContext , Ġ@ String Res Ġchannel Id String Res Id : ĠInt ): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( context , Ġcontext . getString ( channelId String Res Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠBuilder ( context : ĠContext , Ġchannel Id : ĠString ): ĠNotification Compat . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= Ġcontext . getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Channel Id To Notification Channel Map Ġ= ĠHashMap < String , ĠNotification Channel >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// general ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( context . getString ( R . string . channel _ id __ call _ recording ), Ġcontext . getString ( R . string . channel _ name __ call _ recording ), ĠNotification Manager . IMPORT ANCE _ DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . description Ġ= Ġcontext . getString ( R . string . channel _ description __ call _ recording ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . enable Lights ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . set Sound ( null , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Channel Id To Notification Channel Map . put ( channel . id , Ġchannel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġnotifications , Ġand Ġremove Ġold Ġones Ġif Ġnot Ġneeded Ġanymore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Notification Channels Ġ= Ġnotification Manager . get Notification Channels () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( existing Notification Channel Ġin Ġexisting Notification Channels ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġexisting Notification Channel . getId () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! notification Channel Id To Notification Channel Map . containsKey ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . delete Notification Channel ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( channel Ġin Ġnotification Channel Id To Notification Channel Map . values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Compat . Builder ( context , Ġchannel Id ) ĊĠĠĠ Ġ} Ċ } Ċ