package Ġcom . jos hu acer den ia . android . nice feed . util Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . core . content . Context Compat . startActivity Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . jos hu acer den ia . android . nice feed . R Ċ import Ġcom . jos hu acer den ia . android . nice feed . data . local . N ice Feed Preferences Ċ Ċ // ĠGeneral Ġmethods Ġneeded Ġin Ġmultiple Ġplaces Ċ Ċ object ĠUtils Ġ{ ĊĊĠĠĠ Ġfun Ġopen Link ( context : ĠContext , Ġview : ĠView ?, Ġurl : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġactivity Ġis Ġavailable Ġto Ġhandle Ġintent ĊĠĠĠĠĠĠĠ Ġval Ġresolved Activity Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve Activity ( intent , ĠPackage Manager . MATCH _ DEFAULT _ ONLY ) ĊĠĠĠĠĠĠĠ Ġif Ġ( resolved Activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( context , Ġintent , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. let Ġ{ Ġshow ErrorMessage ( it , Ġcontext . resources ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy Link To Clipboard ( context : ĠContext , Ġstring Url : ĠString , Ġview : ĠView ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġcontext . getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠ ĠClip Data . new Plain Text (" link ", Ġstring Url ). run Ġ{ Ġclipboard . set Primary Clip ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġview ?. let Ġ{ ĠSn ackbar . make ( it , Ġcontext . getString ( R . string . copied _ link ), ĠSn ackbar . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Theme ( theme : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNice Feed Preferences . THEME _ LIGHT Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ NO ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNice Feed Preferences . THEME _ DARK Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ YES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ FOLLOW _ SYSTEM ĊĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĠAppCompat Delegate . setDefault Night Mode ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset StatusBar Mode ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġactivity . window ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Bar Color Ġ= Ġif Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . resources ?. configuration ?. ui Mode ?. and ( Configuration . UI _ MODE _ N IGHT _ MASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ== ĠConfiguration . UI _ MODE _ N IGHT _ YES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ 0 Ġelse ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. decor View ?. system Ui Visibility Ġ= Ġstatus Bar Color ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Color Ġ= ĠColor . GRAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Soft Key Board ( context : ĠContext , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( view . window Token , ĠInput Method Manager . HIDE _ NOT _ ALWAYS ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow ErrorMessage ( view : ĠView , Ġresources : ĠResources ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġresources . getString ( R . string . error _ message ), ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ }