package Ġcom . fl x rs . d ank chat Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . app . Ui Mode Manager Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Build Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . core . content . getSystem Service Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġco il . Image Loader Ċ import Ġco il . Image Loader Factory Ċ import Ġco il . decode . Image Decoder Decoder Ċ import Ġcom . fl x rs . d ank chat . di . Em ote Ok HttpClient Ċ import Ġcom . fl x rs . d ank chat . utils . gif s . Gif Drawable Decoder Ċ import Ġcom . google . android . material . color . Dynamic Colors Ċ import Ġdagger . h ilt . android . H ilt Android App Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt Android App Ċ class ĠD ank Chat Application Ġ: ĠApplication (), ĠImage Loader Factory Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ Em ote Ok HttpClient ĊĠĠĠ Ġlateinit Ġvar Ġclient : ĠOk HttpClient ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĊĠĠĠĠĠĠĠ ĠDynamic Colors . apply To Activities If Available ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġui Mode Manager Ġ= Ġget System Service < Ui Mode Manager >() ĊĠĠĠĠĠĠĠ Ġval Ġis Tv Ġ= Ġui Mode Manager ?. current Mode Type Ġ== ĠConfiguration . UI _ MODE _ TYPE _ TELE V ISION ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġfollow System Ġ= Ġpreferences . getBoolean ( getString ( R . string . preference _ follow _ system _ key ), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġdark Mode Ġ= Ġpreferences . getBoolean ( getString ( R . string . preference _ dark _ theme _ key ), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġsupports Light Mode Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O _ MR 1 Ġ|| Ġis Tv ĊĠĠĠĠĠĠĠ Ġval Ġsupports System Dark Mode Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ĊĠĠĠĠĠĠĠ Ġval Ġnight Mode Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠForce Ġdark Ġtheme Ġon Ġ< ĠAndroid Ġ 8 . 1 Ġbecause Ġof Ġstatus bar / navigation bar Ġissues , Ġor Ġif Ġsystem Ġdark Ġmode Ġis Ġnot Ġsupported ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdark Mode Ġ|| Ġ! supports Light Mode Ġ|| Ġ( follow System Ġ&& Ġ! supports System Dark Mode ) Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ YES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfollow System ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ FOLLOW _ SYSTEM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĠAppCompat Delegate . MODE _ N IGHT _ NO ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( night Mode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnew Image Loader (): ĠImage Loader Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImage Loader . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// . logger ( Debug Logger ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ok HttpClient Ġ{ Ġclient Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. component Registry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P Ġ-> Ġadd ( Image Decoder Decoder ( context Ġ= Ġthis @ D ank Chat Application , Ġenforce Minimum Frame Delay Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġadd ( Gif Drawable Decoder ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠD ank Chat Application :: class . java . simple Name ĊĠĠĠ Ġ} Ċ }