package Ġcy . ac . uc y . cs . any place . lib . android . ui . settings Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . as LiveData Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġcy . ac . uc y . cs . any place . lib . R Ċ import Ġcy . ac . uc y . cs . any place . lib . android . LOG Ċ import Ġcy . ac . uc y . cs . any place . lib . android . data . datastore . DataStore Server Ċ import Ġcy . ac . uc y . cs . any place . lib . android . extensions . data Store Server Ċ import Ġcy . ac . uc y . cs . any place . lib . android . ui . Base Activity Ċ import Ġcy . ac . uc y . cs . any place . lib . android . utils . network . Ret rofit Holder Ċ import Ġcy . ac . uc y . cs . any place . lib . android . view models . Main ViewModel Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠSettings Server Activity : ĠBase Activity () Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġmain ViewModel : ĠMain ViewModel ĊĠ Ġprivate Ġlateinit Ġvar Ġsettings Fragment : ĠSettings Server Fragment ĊĊĠ Ġ@ Inject ĊĠ Ġlateinit Ġvar Ġretrofit Holder : ĠRet rofit Holder ĊĊĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġmain ViewModel . set Back From Settings () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . settings _ activity ) ĊĊĠĠĠ Ġmain ViewModel Ġ= ĠViewModel Provider ( this ). get ( Main ViewModel :: class . java ) ĊĠĠĠ Ġsettings Fragment Ġ= ĠSettings Server Fragment ( main ViewModel , Ġretrofit Holder , Ġdata Store Server ) ĊĊĠĠĠ Ġ// Ġapplication Context . data Store Server ĊĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . settings , Ġsettings Fragment ) ĊĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠ Ġif Ġ( id == android . R . id . home ) Ġ{ ĊĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġfalse ĊĠ Ġ} ĊĊĠ Ġclass ĠSettings Server Fragment ( ĊĠĠĠ Ġprivate Ġval Ġmain ViewModel : ĠMain ViewModel , ĊĠĠĠ Ġprivate Ġval Ġretrofit Holder : ĠRet rofit Holder , ĊĠĠĠ Ġprivate Ġval Ġdata Store Server : ĠData Store Server ) Ġ: ĠPreference Fragment Compat () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ Ġ= ĠSettings Server Activity :: class . java . simple Name +". "+ Settings Server Fragment :: class . java . simple Name ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Preferences ( savedInstanceState : ĠBundle ?, Ġroot Key : ĠString ?) Ġ{ ĊĠĠĠĠĠ Ġpreference Manager . preference DataStore Ġ= Ġdata Store Server ĊĠĠĠĠĠ Ġset Preferences From Resource ( R . xml . base _ preferences , Ġroot Key ) ĊĊĠĠĠĠĠ Ġval Ġversion Preferences Ġ: ĠPreference ? Ġ= Ġfind Preference (" pref _ server _ version ") ĊĠĠĠĠĠ Ġversion Preferences ?. setOn Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġversion Preferences . icon Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġversion Preferences . summary Ġ= Ġ" refresh ing .." ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ Ġ Ġ// Ġart ificial Ġdelay ĊĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 5 0 ) ĊĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . display Backend Version ( version Preferences ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrue Ġ// Ġclick Ġis Ġhandled ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreact To Settings Updates ( version Preferences ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreact To Settings Updates ( version Preferences : ĠPreference ?) Ġ{ ĊĠĠĠĠĠ Ġmain ViewModel . server Preferences . as LiveData (). observe ( this , Ġ{ Ġprefs Ġ-> ĊĠĠĠĠĠĠĠ Ġretrofit Holder . set ( prefs ) ĊĠĠĠĠĠĠĠ ĠLOG . D 3 ( TAG , Ġ" react To Settings Updates : Ġ${ ret rofit Holder . ret rofit . baseUrl () }") ĊĠĠĠĠĠĠĠ Ġmain ViewModel . display Backend Version ( version Preferences ) ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }