package Ġcom . kotlin . base . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġjava . lang . reflect . Field Ċ import Ġjava . lang . reflect . Method Ċ Ċ /** Ċ Ġ* Ġcreated Ġon : Ġ 2 0 1 8 / 8 / 4 Ġ 1 3 : 4 9 Ċ Ġ* Ġdescription : Ċ Ġ*/ Ċ object ĠStatus Bar Util Ġ{ ĊĊĠĠĠ Ġfun Ġset Trans luc ent Status ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS , ĠWindow Manager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Light Mode ( activity : Ġ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 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Dark Mode ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ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 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . decor View . system Ui Visibility Ġ= Ġ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 (); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ