package Ġcom . y uan . look er . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . foundation . Experimental Foundation Api Ċ import Ġandroidx . compose . foundation . is System In Dark Theme Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . to Argb Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġandroidx . datastore . preferences . core . boolean Preferences Key Ċ import Ġandroidx . datastore . preferences . core . int Preferences Key Ċ import Ġandroidx . datastore . preferences . preferences DataStore Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġandroidx . navigation . compose . Nav Host Ċ import Ġandroidx . navigation . compose . comp osable Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġcom . y uan . look er . ui . screen . Main Screen Ċ import Ġcom . y uan . look er . ui . screen . Read Screen Ċ import Ġcom . y uan . look er . ui . screen . Setting Screen Ċ import Ġcom . y uan . look er . ui . theme . Dark Color Palette Ċ import Ġcom . y uan . look er . ui . theme . Look er Theme Ċ import Ġcom . y uan . look er . ui . theme . status Bar Ċ import Ġcom . y uan . look er . utils . sealed . Screen Ċ import Ġcom . y uan . look er . view model . News ViewModel Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Main Scope Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . launch ĊĊ Ċ val ĠMainActivity . data Store : ĠData Store < Preferences > Ġby Ġpreferences DataStore (" settings ") Ċ var ĠMainActivity . splash : ĠBoolean Ġby Ġmutable State Of ( false ) Ċ Ċ @ Suppress (" EXPERIMENT AL _ AN NOT ATION _ ON _ OVERRIDE _ WARNING ") Ċ class ĠMainActivity Ġ: ĠComponent Activity (), ĠCor outine Scope Ġby ĠMain Scope () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġnav Controller : ĠNav Host Controller ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠNews ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġ// åĪĿå§ĭåĮĸ è®¾ç½® ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·± èī² æ¨¡å¼ı è·Ł éļı ç³»ç»Ł ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . dark Mode Ġ= Ġdata Store . data . first ()[ boolean Preferences Key (" dark Mode ")] Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . theme Index Ġ= Ġdata Store . data . first ()[ int Preferences Key (" theme ")] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . look er Theme Ġ= ĠviewModel . load Theme () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Co il Api ĊĠĠĠ Ġ@ Experimental Foundation Api ĊĠĠĠ Ġ@ Experimental Animation Api ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// Window Compat . set Decor Fits System Windows ( window , Ġfalse ) Ġ åıĸæ¶Ī çĬ¶æĢģ æłı åįł ä½į ĊĠĠĠĠĠĠĠ Ġ// åĬłè½½ æĸ° éĹ» ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĠviewModel . load News ( 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·± èī² æ¨¡å¼ı è®¾ç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( viewModel . dark Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is System In Dark Theme ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . look er Theme Ġ= ĠDark Color Palette ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . look er Theme Ġ= ĠviewModel . load Theme () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĺéĩı å£°æĺİ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġremember Nav Controller () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Compose çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLook er Theme ( theme Ġ= ĠviewModel . look er Theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . load Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¾ç½® çĬ¶æĢģ æłı é¢ľèī² ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠMaterial Theme . colors . status Bar . to Argb () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNav Host ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Destination Ġ= ĠScreen . Main Screen . route , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( Screen . Main Screen . route ) Ġ{ ĠMain Screen ( this @ MainActivity ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( Screen . Read Screen . route ) Ġ{ ĠRead Screen ( this @ MainActivity ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp osable ( Screen . Setting Screen . route ) Ġ{ ĠSetting Screen ( this @ MainActivity ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠ Ġ} Ċ } ĊĊ