package Ġcn . on est ravel . five five player . utils Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroid . media . Media DataSource Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Context Theme Wrapper Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* Ġ@ author Ġon est ravel Ċ Ġ* Ġ@ create Time Ġ 2 0 2 0 - 0 2 - 1 1 Ċ Ġ* Ġ@ description ĠTODO Ċ Ġ*/ Ċ object ĠVideo Utils Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm System Ui Visibility Por trait : ĠInt Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġm ActionBar Is Shown : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġactivity Ġfrom Ġcontext Ġobject ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġsomething ĊĠĠĠĠ Ġ* Ġ@ return Ġobject Ġof ĠActivity Ġor Ġnull Ġif Ġit Ġis Ġnot ĠActivity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscan For Activity ( context : ĠContext ?): ĠActivity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( context Ġis ĠContext Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġscan For Activity ( context . base Context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet ĠAppCompatActivity Ġfrom Ġcontext ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ return ĠAppCompatActivity Ġif Ġit 's Ġnot Ġnull ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget App Comp Activity ( context : ĠContext ?): ĠAppCompatActivity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( context Ġis ĠContext Theme Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget App Comp Activity ( context . base Context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġfun Ġshow ActionBar And StatusBar ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ActionBar ( context ) ĊĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clear Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġfun Ġhide ActionBar And StatusBar ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġhide ActionBar ( context ) ĊĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġfun Ġshow ActionBar ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġab Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget App Comp Activity ( context ) !!. support ActionBar ĊĠĠĠĠĠĠĠ Ġif Ġ( ab Ġ!= Ġnull Ġ&& Ġm ActionBar Is Shown ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġab . set Show Hide Animation Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġab . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġfun Ġhide ActionBar ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġab Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget App Comp Activity ( context ) !!. support ActionBar ĊĠĠĠĠĠĠĠ Ġif Ġ( ab Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġab . set Show Hide Animation Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ActionBar Is Shown Ġ= Ġab . is Showing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġab . hide () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġshow Bottom UI Menu ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// éļĲèĹı èĻļæĭŁ æĮī éĶ® ï¼Į å¹¶ä¸Ķ åħ¨ å±ı ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġin Ġ 1 2 .. 1 8 ) Ġ{ Ġ// Ġlower Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠView Ġ= Ġit . window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . system Ui Visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 1 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// for Ġnew Ġapi Ġversions . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è®°å½ķ ç« ĸ å±ı æĹ¶çļĦ System Ui Visibility ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecor View : ĠView Ġ= Ġit . window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m System Ui Visibility Por trait Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= Ġm System Ui Visibility Por trait ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Bottom UI Menu ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// éļĲèĹı èĻļæĭŁ æĮī éĶ® ï¼Į å¹¶ä¸Ķ åħ¨ å±ı ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġin Ġ 1 2 .. 1 8 ) Ġ{ Ġ// Ġlower Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠView Ġ= Ġit . window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . system Ui Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 1 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// for Ġnew Ġapi Ġversions . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecor View : ĠView Ġ= Ġit . window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm System Ui Visibility Por trait Ġ= Ġdecor View . system Ui Visibility ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġui Options : ĠInt Ġ= Ġ( View . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE _ STICK Y Ġor ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= Ġui Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġhide Bottom UI Menu Always ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// éļĲèĹı èĻļæĭŁ æĮī éĶ® ï¼Į å¹¶ä¸Ķ åħ¨ å±ı ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġin Ġ 1 2 .. 1 8 ) Ġ{ Ġ// Ġlower Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠView Ġ= Ġit . window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . system Ui Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 1 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ window : ĠWindow Ġ= Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams : ĠWindow Manager . LayoutParams Ġ= Ġ_ window . attributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION Ġor ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ window . attributes Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdialog ĠéľĢè¦ģ åħ¨ å±ı çļĦæĹ¶åĢĻ çĶ¨ ï¼Į åĴĮ clear Focus Not A le () Ġ æĪĲ å¯¹ åĩºçİ° ĊĠĠĠĠ Ġ* Ġåľ¨ show Ġ åīį è°ĥçĶ¨ Ġ Ġfocus Not A le ĠĠ Ġshow åĲİ è°ĥçĶ¨ clear Focus Not A le ĊĠĠĠĠ Ġ* Ġ@ param Ġwindow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfocus Not A le ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow : ĠWindow Ġ= Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ FOCUS ABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdialog ĠéľĢè¦ģ åħ¨ å±ı çļĦæĹ¶åĢĻ çĶ¨ ï¼Į focus Not A le () Ġ æĪĲ å¯¹ åĩºçİ° ĊĠĠĠĠ Ġ* Ġåľ¨ show Ġ åīį è°ĥçĶ¨ Ġ Ġfocus Not A le ĠĠ Ġshow åĲİ è°ĥçĶ¨ clear Focus Not A le ĊĠĠĠĠ Ġ* Ġ@ param Ġwindow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear Focus Not A le ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow : ĠWindow Ġ= Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Window StatusBar Color ( activity : ĠActivity , Ġcolor Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġactivity . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= Ġactivity . resources . getColor ( color Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Window StatusBar Color ( dialog : ĠDialog , Ġcolor Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow : ĠWindow ? Ġ= Ġdialog . getWindow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . status Bar Color Ġ= Ġdialog . getContext (). getResources (). getColor ( color Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset NavigationBar Color ( activity : ĠActivity , Ġcolor Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġactivity . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åºķ éĥ¨ å¯¼èĪª æłı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . navigation Bar Color Ġ= Ġactivity . resources . getColor ( color Res Id ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset NavigationBar Color ( dialog : ĠDialog , Ġcolor Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow : ĠWindow ? Ġ= Ġdialog . getWindow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . navigation Bar Color Ġ= Ġdialog . context . resources . getColor ( color Res Id ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å±ı å¹ķ å®½åº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ return Ġwidth Ġof Ġthe Ġscreen . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Screen Width ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resources . display Metrics . width Pixels ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å±ı å¹ķ é«ĺåº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ return Ġhe i ht Ġof Ġthe Ġscreen . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Screen Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resources . display Metrics . height Pixels ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® å½ĵåīį APP çļĦ äº ® åº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity ĊĠĠĠĠ Ġ* Ġ@ param Ġbrightness Percent ĠĠĠ 0 Ġto Ġ 1 Ġadjust s Ġthe Ġbrightness Ġfrom Ġdark Ġto Ġfull Ġbright ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset App Brightness ( context : ĠContext , Ġbrightness Percent : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscan For Activity ( context )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġit . window ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġwindow . attributes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . screen Brightness Ġ= Ġbrightness Percent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . attributes Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį é¡µéĿ¢ äº ® åº¦ ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget App Brightness ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbrightness Ġ= ĠWindow Manager . LayoutParams . BR IGHT NESS _ OVERRIDE _ NONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġcontext . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġwindow . attributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Ġ= Ġlayout Params . screen Brightness ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( brightness Ġ== ĠWindow Manager . LayoutParams . BR IGHT NESS _ OVERRIDE _ NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrightness Ġ= Ġget System Brightness ( it ) Ġ/ Ġ 2 5 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbrightness ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç³»ç»Ł äº ® åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget System Brightness ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSettings . System . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . System . SCREEN _ BR IGHT NESS , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 5 5 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdp è½¬ px ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġdp Val ĠĠ Ġdp Ġvalue ĊĠĠĠĠ Ġ* Ġ@ return Ġpx Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdp 2 px ( context : ĠContext , Ġdp Val : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTyped Value . apply Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ DIP , Ġdp Val , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . display Metrics ĊĠĠĠĠĠĠĠ Ġ). toInt () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ æ¯ « ç§Ĵ æķ° æł¼å¼ı åĮĸ ä¸º " ## : ## " çļĦæĹ¶éĹ´ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmilliseconds Ġæ¯ « ç§Ĵ æķ° ĊĠĠĠĠ Ġ* Ġ@ return Ġ## : ## ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat Time ( milliseconds : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( milliseconds Ġ<= Ġ 0 Ġ|| Ġmilliseconds Ġ>= Ġ 2 4 Ġ* Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtotal Seconds Ġ= Ġmilliseconds Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġtotal Seconds Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġtotal Seconds Ġ/ Ġ 6 0 Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġval Ġhours Ġ= Ġtotal Seconds Ġ/ Ġ 3 6 0 0 ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġm Formatter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFormatter ( string Builder , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( hours Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Formatter . format ("% 0 2 d :% 0 2 d :% 0 2 d ", Ġhours , Ġminutes , Ġseconds ). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Formatter . format ("% 0 2 d :% 0 2 d ", Ġminutes , Ġseconds ). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¿ĿåŃĺ æĴŃæĶ¾ ä½įç½® ï¼Į ä»¥ ä¾¿ ä¸ĭ æ¬¡ æĴŃæĶ¾ æĹ¶ æİ¥ çĿĢ ä¸Ĭ æ¬¡ çļĦ ä½įç½® ç»§ç»Ń æĴŃæĶ¾ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĠĠĠĠ Ġ è§Ĩé¢ĳ éĵ¾æİ¥ url ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Play Position ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġuri : ĠUri ?, ĊĠĠĠĠĠĠĠ Ġposition : ĠLong ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FI VE _ FI VE _ VIDEO _ PAL Y ER _ PLAY _ POSITION ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Long ( it . toString (), Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åıĸ åĩº ä¸Ĭ æ¬¡ ä¿ĿåŃĺ çļĦ æĴŃæĶ¾ ä½įç½® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĠĠĠĠ Ġ è§Ĩé¢ĳ éĵ¾æİ¥ url ĊĠĠĠĠ Ġ* Ġ@ return Ġä¸Ĭ æ¬¡ ä¿ĿåŃĺ çļĦ æĴŃæĶ¾ ä½įç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Saved Play Position ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġuri : ĠUri ? ĊĠĠĠ Ġ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġuri ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FI VE _ FI VE _ VIDEO _ PAL Y ER _ PLAY _ POSITION ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getLong ( it . toString (), Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} Ċ }