package Ġcom . young man ster . collection _ kotlin . utils Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . young man ster . collection _ kotlin . R Ċ import Ġcom . young man ster . collection _ kotlin . config . Config Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġyang y Ċ Ġ* 2 0 2 0 - 0 2 - 2 1 Ċ Ġ* Describe : Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* Ġdp ãĢģ sp Ġ è½¬æį¢ ä¸º Ġpx ĠçļĦ å·¥åħ· ç±» Ċ Ġ*/ Ċ class ĠDisplay Utils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ px åĢ¼ è½¬æį¢ ä¸º dip æĪĸ dp åĢ¼ ï¼Į ä¿Ŀè¯ģ å° º å¯ ¸ å¤§å°ı ä¸į åıĺ ï¼Ī æľī ç²¾ åº¦ æį Ł å¤± ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġpx 2 dip ( px Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ px åĢ¼ è½¬æį¢ ä¸º dip æĪĸ dp åĢ¼ ï¼Į ä¿Ŀè¯ģ å° º å¯ ¸ å¤§å°ı ä¸į åıĺ ï¼Ī æĹł ç²¾ åº¦ æį Ł å¤± ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġpx 2 dip By Float ( px Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpx Value Ġ/ Ġscale ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ dip æĪĸ dp åĢ¼ è½¬æį¢ ä¸º px åĢ¼ ï¼Į ä¿Ŀè¯ģ å° º å¯ ¸ å¤§å°ı ä¸į åıĺ ï¼Ī æľī ç²¾ åº¦ æį Ł å¤± ï¼īï¼Į ç±»ä¼¼ Context . get Dimension Pixel Size æĸ¹æ³ķ ï¼Ī åĽĽ èĪ į äºĶ åħ¥ ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdip 2 px ( dip Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( dip Value Ġ* Ġscale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ dip æĪĸ dp åĢ¼ è½¬æį¢ ä¸º px åĢ¼ ï¼Į ä¿Ŀè¯ģ å° º å¯ ¸ å¤§å°ı ä¸į åıĺ ï¼Ī æĹł ç²¾ åº¦ æį Ł å¤± ï¼īï¼Į ç±»ä¼¼ Context . get Dimension æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdip 2 px By Float ( dip Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdip Value Ġ* Ġscale ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ px åĢ¼ è½¬æį¢ ä¸º sp åĢ¼ ï¼Į ä¿Ŀè¯ģ æĸĩåŃĹ å¤§å°ı ä¸į åıĺ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġpx 2 sp ( px Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfont Scale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . scaled Density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( px Value Ġ/ Ġfont Scale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġå°Ĩ sp åĢ¼ è½¬æį¢ ä¸º px åĢ¼ ï¼Į ä¿Ŀè¯ģ æĸĩåŃĹ å¤§å°ı ä¸į åıĺ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġsp 2 px ( sp Value : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfont Scale Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . scaled Density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( sp Value Ġ* Ġfont Scale Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å±ı å¹ķ å®½åº¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Screen Width Pixels (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠConfig . CONTEXT !!. resources . display Metrics . width Pixels ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å±ı å¹ķ é«ĺåº¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Screen Height Pixels (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠConfig . CONTEXT !!. resources . display Metrics . height Pixels ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Display Info (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Format Ġ= Ġ" å®½ :% s , é«ĺ :% s Ġ å®½ Dip :% s , é«ĺ Dip :% s \ nd pi :% s , 1 dip =% s Pixels " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscreen Width Pixels Ġ= Ġget Screen Width Pixels () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscreen Height Pixels Ġ= Ġget Screen Height Pixels () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdensity Ġ= ĠConfig . CONTEXT !!. resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Format Value Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Width Pixels , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Height Pixels , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( screen Width Pixels Ġ/ Ġdensity ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( screen Height Pixels Ġ/ Ġdensity ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig . CONTEXT !!. resources . display Metrics . density D pi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdensity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠString . format ( Locale . getDefault (), Ġinfo Format , Ġ* info Format Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// çĻ½ èī² åı¯ä»¥ æĽ¿æį¢ æĪĲ åħ¶ä»ĸ æµ ħ èī² ç³» ĊĠĠĠĠĠĠĠ Ġfun Ġset StatusBar Black Font Bg Color ( activity : ĠActivity , Ġbg Color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset MI UI StatusBar Dark Icon ( activity , true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Me iz u StatusBar Dark Icon ( activity , true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP Ġ&& ĠBuild . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . M ) Ġ{// 5 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= ĠContext Compat . getColor ( activity , bgColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= ĠContext Compat . getColor ( activity , bgColor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . decor View . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset StatusBar Color ( activity , ĠR . color . black ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® çĬ¶æĢģ æłı é¢ľèī² ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset StatusBar Color ( activity : ĠActivity , Ġcolor Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 Ġ= ĠContext Compat . getColor ( activity , color Res Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset MI UI StatusBar Dark Icon ( activity , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Me iz u StatusBar Dark Icon ( activity , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ä½¿ çĬ¶æĢģ æłı éĢı æĺİ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . KIT K AT ) ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġtransparent StatusBar ( activity : Activity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . clear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . add Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® çĬ¶æĢģ æłı åħ¨ å±ı éĢı æĺİ ï¼Ī çĬ¶æĢģ æłı åŃĹ ä½ĵ é¢ľèī² ä¸º é»ĺè®¤ ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset StatusBar Full Trans luc ent ( act : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® åħ¨ å±ı éĢı æĺİ çĬ¶æĢģ æłı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġact . window . clear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS Ġor ĠWindow Manager . LayoutParams . FLAG _ TRANSL UC ENT _ NAV IG ATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġact . window . decor View . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġact . window . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġact . window . status Bar Color Ġ= ĠColor . TRANSP ARENT ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset StatusBar Color ( act , ĠR . color . black ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġset StatusBar Full Trans luc ent With Black Font ( activity : Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransparent StatusBar ( activity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset MI UI StatusBar Dark Icon ( activity , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Me iz u StatusBar Dark Icon ( activity , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . decor View . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġä¿®æĶ¹ ĠMI UI ĠV 6 Ġ Ġ ä»¥ä¸Ĭ çĬ¶æĢģ æłı é¢ľèī² ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset MI UI StatusBar Dark Icon ( activity : ĠActivity , Ġdark Icon : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= Ġactivity . window . java Class ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= ĠClass . forName (" android . view . Mi ui WindowManager \$ LayoutParams ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġlayout Params . getField (" EXTRA _ FLAG _ STATUS _ BAR _ DARK _ MODE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdark Mode Flag Ġ= Ġfield . getInt ( layout Params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra Flag Field Ġ= Ġclazz . getMethod ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" set Extra Flags ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java Primitive Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java Primitive Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Flag Field . invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dark Icon ) Ġdark Mode Flag Ġelse Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark Mode Flag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// e . printStackTrace (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġä¿®æĶ¹ éŃ ħ æĹı çĬ¶æĢģ æłı åŃĹ ä½ĵ é¢ľèī² ĠFly me Ġ 4 . 0 ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Me iz u StatusBar Dark Icon ( activity : ĠActivity , Ġdark Icon : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġactivity . window . attributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdark Flag Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams :: class . java . getDeclared Field (" ME IZ U _ FLAG _ DARK _ STATUS _ BAR _ ICON ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġme iz u Flags Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams :: class . java . getDeclared Field (" me iz u Flags ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark Flag . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme iz u Flags . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbit Ġ= Ġdark Flag . getInt ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġme iz u Flags . getInt ( lp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dark Icon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġor Ġbit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġand Ġbit . inv () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme iz u Flags . setInt ( lp , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . attributes Ġ= Ġlp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// e . printStackTrace (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġèİ·åıĸ çĬ¶æĢģ æłı çļĦ é«ĺåº¦ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget StatusBar Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext . resources . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . getIdentifier ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" status _ bar _ height ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" dim en ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġèİ·åıĸ ActionBar çļĦ é«ĺåº¦ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget ActionBar Height ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction bar Size Typed Array Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( int ArrayOf ( android . R . attr . action Bar Size )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġaction bar Size Typed Array . get Dimension ( 0 , Ġ 0 f ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġhide Bottom UI Menu ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļĲèĹı èĻļæĭŁ æĮī éĶ® ï¼Į å¹¶ä¸Ķ åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlower Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠView Ġ= Ġ( context Ġas ĠActivity ). window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . system Ui Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġshow Bottom UI Menu ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļĲèĹı èĻļæĭŁ æĮī éĶ® ï¼Į å¹¶ä¸Ķ åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlower Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠView Ġ= Ġ( context Ġas ĠActivity ). window . decor View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . system Ui Visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ