/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠAlex ander ĠVar ak os ov Ġa ka ĠThe Long Run S moke Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġpro . tl rs . boilerplate 2 0 2 0 Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Download Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ Ċ /** Ċ Ġ* ĠUseful Ġextensions . Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠCheck Ġeverything Ġfor Ġnull . Ċ Ġ* ĠJust Ġmake Ġany Ġcode Ġmore Ġkotlin - look . Ċ Ġ*/ Ċ fun ĠAny ?. isNull () Ġ= Ġthis Ġ== Ġnull Ċ Ċ /** Ċ Ġ* Ġ ĠTag Ġfield . Ċ Ġ*/ Ċ inline Ġval Ġ< re ified ĠT > ĠT . TAG ĊĠĠĠ Ġget () Ġ= ĠT :: class . java . simple Name Ċ Ċ /** Ċ Ġ* ĠGet Ġcolor Ġvia Ġcompat Ġlibrary . Ċ Ġ*/ Ċ fun ĠContext . get Compat Color (@ Color Res Ġres Id : ĠInt ) Ġ= ĠContext Compat . getColor ( this , Ġres Id ) Ċ Ċ /** Ċ Ġ* ĠSystem Ġservices Ġas Ġfields . Ċ Ġ*/ Ċ val ĠContext . window Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager Ċ Ċ val ĠContext . connectivity Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager Ċ Ċ val ĠContext . input Method Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager Ċ Ċ val ĠContext . download Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager Ċ Ċ /** Ċ Ġ* ĠHide Ġkeyboard . Ċ Ġ* Ċ Ġ* ĠIf Ġkeyboard Ġdo Ġnot Ġhide Ġwhen Ġfocus Ġreturned Ġto Ġactivity Ġcheck Ġfor Ġstate Always Hidden Ġflag Ġin Ġwindow Soft Input Mode Ġin Ġmanifest . Ċ Ġ*/ Ċ fun ĠView ?. hide Keyboard () Ġ{ ĊĠĠĠ Ġthis ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġit . context . input Method Manager ĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( it . root View . window Token , Ġ 0 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠGet Ġrid Ġof Ġthis Ġugly Ġpermission Ġcheck . Ċ Ġ*/ Ċ fun ĠActivity . has Permission ( permission : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn ĠActivity Compat . check Self Permission ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġpermission ĊĠĠĠ Ġ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED Ċ } Ċ