package Ġcom . mad re ain . lib h ulk . utils ĊĊ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġjava . lang . reflect . Field Ċ import Ġjava . lang . reflect . Method Ċ Ċ object ĠStatus Utils Ġ{ ĊĊĊĠĠĠ Ġfun Ġset Light Bar ( activity : ĠActivity , Ġis Light Bar : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlo l lip op StatusBar Color Set ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 xffffffff . toInt () ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( is Light Bar ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo l lip op StatusBar Color Set ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 xff dddd dd . toInt () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġset MI UI 6 StatusBar Dark Mode ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġset MI UI 6 StatusBar Dark Mode ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// å°ı ç±³ è®¾ç½® é»ĳ èī² åŃĹç¬¦ ĊĠĠĠ Ġprivate Ġfun Ġset MI UI 6 StatusBar Dark Mode ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġdark mode : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclazz : ĠClass < out ĠWindow ?> Ġ= Ġactivity . window . java Class ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdark Mode Flag Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName (" android . view . Mi ui WindowManager \$ LayoutParams ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield : ĠField Ġ= Ġlayout Params . getField (" EXTRA _ FLAG _ STATUS _ BAR _ DARK _ MODE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdark Mode Flag Ġ= Ġfield . getInt ( layout Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra Flag Field : ĠMethod Ġ= Ġclazz . getMethod ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" set Extra Flags ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java Primitive Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java Primitive Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Flag Field . invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dark mode ) Ġdark Mode Flag Ġelse Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark Mode Flag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġpublic Ġfun Ġlo l lip op StatusBar Color Set ( activity : ĠActivity , Ġstatus Color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġactivity . window ĊĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= Ġstatus Color ĊĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ VISIBLE ĊĠĠĠ Ġ} Ċ }