package Ġcom . kal ai . cue des . entry Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . datastore . preferences . core . boolean Preferences Key Ċ import Ġandroidx . datastore . preferences . create DataStore Ċ import Ġandroidx . fragment . app . commit Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . kal ai . cue des . MainActivity Ċ import Ġcom . kal ai . cue des . R Ċ import Ġcom . kal ai . cue des . databinding . Activity Entry Binding Ċ import Ġcom . kal ai . cue des . entry . on board . On Board Fragment Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠEntry Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Entry Activity " Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Entry Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Entry Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Store Ġ= Ġapplication Context ?. create DataStore (" settings ") ĊĠĠĠĠĠĠĠ Ġval Ġis On Board ing Key Ġ= Ġboolean Preferences Key (" is On Board ") ĊĠĠĠĠĠĠĠ Ġval Ġis On Board Flow Ġ= Ġdata Store ?. data ?. map Ġ{ Ġpreferences Ġ-> Ġpreferences [ is On Board ing Key ] Ġ?: Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( is On Board ( is On Board Flow )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġon Board Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOn Board Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . entry _ fragment _ container _ view , on Board Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ Entry Activity , MainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġis On Board ( is On Board Flow : ĠFlow < Boolean >? ): ĠBoolean Ġ= Ġis On Board Flow ?. first () ?: true Ċ } ĊĊ