package Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Handler Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . provider . Settings . Setting NotFoundException Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness . Brightness Utils . Companion . brightness Is Rest oring Ċ import Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness . Brightness Utils . Companion . brightness Up Is Changing Ċ import Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness . Brightness Utils . Companion . current App Brightness Value Ċ import Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness . Brightness Utils . Companion . is Max Brightness Ċ import Ġcom . dan hd ue exo ict if . android generic adapter . utils . brightness . Brightness Utils . Companion . sys Brightness Value Ċ Ċ /** Ċ Ġ* ĠAn Ġimplementation Ġof Ġ[ Brightness Helper ] Ċ Ġ*/ Ċ enum Ġclass ĠB rightness Utils Ġ: ĠB rightness Helper Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġone Ġjust Ġkeep ĠB rightness Utils / Brightness Helper Ġis Ġa Ġsingleton Ġinstance . ĊĠĠĠĠ Ġ* ĠA Ġsingleton Ġinstance Ġwithout Ġmembers . ĠNotice : ĊĠĠĠĠ Ġ* ĠCall Ġ{@ link ĠB rightness Utils . Companion . init ( context : ĠContext ) Ġ} Ġmethod Ġinstead . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ ĠINSTANCE ; ĊĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif ĠDevice 's Ġauto Ġbrightness Ġmode Ġis Ġon Ġotherwise Ġ@ return Ġfalse . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġis Auto Brightness Mode (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbrightness Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Ġ= ĠSettings . System . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . content Resolver , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . System . SCREEN _ BR IGHT NESS _ MODE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . System . SCREEN _ BR IGHT NESS _ MODE _ AUT OM AT IC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSetting NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbrightness Ġ!= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġretrieve ĠDevice 's Ġsystem Ġbrightness Ġvalue ĊĠĠĠĠ Ġ* Ġ@ return Ġsys Brightness Value Ġ: ĠThe Ġbrightness Ġvalue Ġin Ġthe Ġdevice 's Ġsystem Ġsetting . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġretrieve System Brightness Value (): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbrightness Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . System . getInt ( it . content Resolver , ĠSettings . System . SCREEN _ BR IGHT NESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSetting NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsys Brightness Value Ġ= Ġbrightness Ġ/ Ġ 2 5 5 F ĊĠĠĠĠĠĠĠ Ġreturn Ġsys Brightness Value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsys Brightness Value Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent App Brightness Value Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠ Ġvar Ġis Max Brightness Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġbrightness Up Is Changing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġbrightness Is Rest oring Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġinitialize Ġmembers Ġand Ġretrieve Ġsingleton Ġinstance . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġinit ( context : ĠContext ): ĠB rightness Utils Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsys Brightness Value Ġ= ĠINSTANCE . retrieve System Brightness Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent App Brightness Value Ġ= ĠINSTANCE . retrieve System Brightness Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE . retrieve System Brightness Value () Ġ== Ġ 1 F ) Ġis Max Brightness Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġchange Ġbrightness Ġvalue Ġfor ĠApp 's Ġwindow Ċ Ġ* Ġ@ param Ġbrightness Value : Ġthe Ġbrightness Ġvalue Ġwanted Ġto Ġset Ġfor Ġthe ĠApp . Ċ Ġ*/ Ċ fun ĠWindow . change App Screen Brightness Value ( brightness Value : ĠFloat ) Ġ{ ĊĠĠĠ Ġis Max Brightness Ġ= Ġbrightness Value Ġ== Ġ 1 . 0 F ĊĠĠĠ Ġcurrent App Brightness Value Ġ= Ġbrightness Value ĊĠĠĠ Ġval Ġlayout Params Ġ= Ġthis . attributes ĊĠĠĠ Ġlayout Params . screen Brightness Ġ= Ġbrightness Value ĊĠĠĠ Ġthis . attributes Ġ= Ġlayout Params Ċ } Ċ Ċ /** Ċ Ġ* Ġrestore Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġon Ċ Ġ*/ Ċ private Ġfun ĠWindow . restore Brightness Override Mode () Ġ{ ĊĠĠĠ Ġval Ġlayout Params Ġ= Ġthis . attributes ĊĠĠĠ Ġlayout Params . screen Brightness Ġ= ĠWindow Manager . LayoutParams . BR IGHT NESS _ OVERRIDE _ NONE ĊĠĠĠ Ġthis . attributes Ġ= Ġlayout Params Ċ } Ċ Ċ /** Ċ Ġ* Ġset Ġfull Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġon Ċ Ġ*/ Ċ private Ġfun ĠWindow . override Full Brightness () Ġ{ ĊĠĠĠ Ġval Ġlayout Params Ġ= Ġthis . attributes ĊĠĠĠ Ġlayout Params . screen Brightness Ġ= ĠWindow Manager . LayoutParams . BR IGHT NESS _ OVERRIDE _ FULL ĊĠĠĠ Ġthis . attributes Ġ= Ġlayout Params Ċ } Ċ Ċ val Ġchange Brightness Handler Ġ= ĠHandler () Ċ var Ġchange To Max Runnable Ġ= ĠRunnable Ġ{ Ġ} Ċ var Ġchange To Default Runnable Ġ= ĠRunnable Ġ{ Ġ} Ċ Ċ /** Ċ Ġ* Ġ Ġsetup Ġmax Ġbrightness Ġfor Ġthe ĠApp . Ċ Ġ*/ Ċ fun ĠWindow . change Max Brightness () Ġ{ ĊĠĠĠ Ġif Ġ( is Max Brightness ) Ġreturn ĊĠĠĠ Ġif Ġ( brightness Up Is Changing ) Ġreturn ĊĊĠĠĠ Ġ// ĠChange Ġscreen Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġon ĊĠĠĠ Ġif Ġ( Brightness Utils . init ( context ). is Auto Brightness Mode ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Full Brightness () ĊĠĠĠĠĠĠĠ Ġis Max Brightness Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġcancel Ġbrightness Ġrest oring Ġbefore Ġchange Ġit . ĊĠĠĠ Ġif Ġ( brightness Is Rest oring ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbrightness Is Rest oring Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchange Brightness Handler . remove Callbacks ( change To Default Runnable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOtherwise Ġchange Ġscreen Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġoff ĊĠĠĠ Ġchange To Max Runnable Ġ= Ġobject Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent App Brightness Value Ġ+= Ġ 0 . 0 7 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange App Screen Brightness Value ( current App Brightness Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current App Brightness Value Ġ< Ġ 1 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Up Is Changing Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Brightness Handler . post Delayed ( this , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange App Screen Brightness Value ( 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent App Brightness Value Ġ= Ġsys Brightness Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Max Brightness Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Up Is Changing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Brightness Handler . remove Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġchange Brightness Handler . post Delayed ( change To Max Runnable , Ġ 0 ) Ċ } Ċ Ċ /** Ċ Ġ* Ġrestore Ġbrightness Ġfollow Ġsystem Ġsettings . Ċ Ġ*/ Ċ fun ĠWindow . change Brightness To Default () Ġ{ ĊĠĠĠ Ġif Ġ( brightness Is Rest oring ) Ġreturn ĊĊĠĠĠ Ġ// ĠChange Ġscreen Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġon ĊĠĠĠ Ġif Ġ( Brightness Utils . init ( context ). is Auto Brightness Mode ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġrestore Brightness Override Mode () ĊĠĠĠĠĠĠĠ Ġis Max Brightness Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġcancel Ġbrightness Ġup Ġbefore Ġrestore Ġit . ĊĠĠĠ Ġif Ġ( brightness Up Is Changing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbrightness Up Is Changing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġchange Brightness Handler . remove Callbacks ( change To Max Runnable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOtherwise Ġchange Ġscreen Ġbrightness Ġwhile Ġthe ĠAuto ĠB rightness ĠMode Ġis Ġoff ĊĠĠĠ Ġchange To Default Runnable Ġ= Ġobject Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent App Brightness Value Ġ-= Ġ 0 . 0 7 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange App Screen Brightness Value ( current App Brightness Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current App Brightness Value Ġ> Ġsys Brightness Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Is Rest oring Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Brightness Handler . post Delayed ( this , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange App Screen Brightness Value ( sys Brightness Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent App Brightness Value Ġ= Ġsys Brightness Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Is Rest oring Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Max Brightness Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Brightness Handler . remove Callbacks ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġchange Brightness Handler . post Delayed ( change To Default Runnable , Ġ 0 ) ĊĠĠĠ Ġchange App Screen Brightness Value ( sys Brightness Value ) Ċ } Ċ