package Ġorg . ire ader . settings . setting . general Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Settings Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġorg . ire ader . components . components . Components Ċ import Ġorg . ire ader . components . components . Setup Setting Components Ċ import Ġorg . ire ader . components . components . component . Choice Preference Ċ import Ġorg . ire ader . core _ ui . preferences . App Preferences Ċ import Ġorg . ire ader . core _ ui . preferences . Ui Preferences Ċ import Ġorg . ire ader . core _ ui . view model . Base ViewModel Ċ import Ġorg . ire ader . ui _ settings . R Ċ import Ġjavax . inject . Inject Ċ Ċ @ Composable Ċ fun ĠGeneral Setting Screen ( ĊĠĠĠ Ġscaffold Padding : ĠPadding Values , ĊĠĠĠ Ġvm : ĠGeneral Setting Screen ViewModel , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠLocal Context . current ĊĠĠĠ Ġval Ġitems Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf < Components >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Switch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ= Ġvm . app Updater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . updater _ is _ enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Switch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ= Ġvm . show History , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . show _ history ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Switch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ= Ġvm . show Update , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . show _ update ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Switch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ= Ġvm . confirm Exit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . confirm _ exit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Row ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . manage _ notification ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ APP _ NOTIFICATION _ SETTINGS ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Settings . EXTRA _ APP _ PACKAGE , Ġcontext . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponents . Dynamic Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoice Preference < String >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ= Ġvm . language , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoices Ġ= Ġvm . get Language Choices (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġstring Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠR . string . languages ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠSetup Setting Components ( ĊĠĠĠĠĠĠĠ Ġscaffold Padding Ġ= Ġscaffold Padding , ĊĠĠĠĠĠĠĠ Ġitems Ġ= Ġitems ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ H ilt ViewModel Ċ class ĠGeneral Setting Screen ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġapp Preferences : ĠApp Preferences , ĊĠĠĠ Ġprivate Ġval Ġui Preferences : ĠUi Preferences Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġapp Updater Ġ= Ġapp Preferences . app Updater (). as State () ĊĊĠĠĠ Ġvar Ġshow History Ġ= Ġui Preferences . show History In Button Bar (). as State () ĊĠĠĠ Ġvar Ġshow Update Ġ= Ġui Preferences . show Updates In Button Bar (). as State () ĊĠĠĠ Ġvar Ġconfirm Exit Ġ= Ġui Preferences . confirm Exit (). as State () ĊĠĠĠ Ġvar Ġlanguage Ġ= Ġui Preferences . language (). as State () ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun Ġget Language Choices (): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Locale DisplayName Ġ= Ġandroidx . compose . ui . text . intl . Locale . current . to Language Tag () ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġto Ġ"${ string Resource ( R . string . system _ default )} Ġ($ current Locale DisplayName )" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } ĊĊĊ