package Ġde . sch net t ler . compose preferences Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . material . Experimental Material Api Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . outlined . Warning Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġde . sch net t ler . compose preferences . ui . Compose Preferences Theme Ċ import Ġde . sch net t ler . datastore . compose . model . Preference . Preference Group Ċ import Ġde . sch net t ler . datastore . compose . model . Preference . Preference Item Ċ import Ġde . sch net t ler . datastore . compose . ui . Preference Screen Ċ import Ġde . sch net t ler . datastore . manager . DataStore Manager Ċ import Ġkotlin . math . round ToInt Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompose Preferences Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Preference Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Material Api :: class ) Ċ @ Composable Ċ fun ĠApp Preference Screen () Ġ{ ĊĠĠĠ Ġval Ġdata Store Ġ= ĠLocal Context . current . data Store ĊĠĠĠ Ġval Ġdata Store Manager Ġ= Ġremember Ġ{ ĠData Store Manager ( data Store ) Ġ} ĊĠĠĠ Ġval Ġswitch Preference Ġ= Ġdata Store Manager . get Preference Flow ( Switch Pref Example ) ĊĠĠĠĠĠĠĠ Ġ. collect As State ( initial Ġ= Ġfalse ) ĊĊĠĠĠ Ġval Ġlist Group Ġ= ĠPreference Group ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" List ĠGroup ", ĊĠĠĠĠĠĠĠ Ġenabled Ġ= Ġswitch Preference . value , ĊĠĠĠĠĠĠĠ Ġpreference Items Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Item . List Preference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠList Pref Example , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" List ĠPreference ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" Select Ġone Ġitem Ġfrom Ġa Ġlist Ġin Ġa Ġdialog ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Title Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Warning , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 " Ġto Ġ" Item 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 " Ġto Ġ" Item 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Item . Multi Select List Preference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠMulti Pref Example , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Multi Select ĠList ĠPreference ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" Select Ġmultiple Ġitems Ġfrom Ġa Ġlist Ġin Ġa Ġdialog ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Title Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Warning , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 " Ġto Ġ" Item 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 " Ġto Ġ" Item 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Item . DropDown Menu Preference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠDrop Down Pref Example , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" DropDown ĠMenu ĠPreference ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" Select Ġan Ġitem Ġfrom Ġa Ġdropdown Ġmenu ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Title Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Warning , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 1 " Ġto Ġ" Item 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" key 2 " Ġto Ġ" Item 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĠText ( text Ġ= Ġ" Compose ĠPreferences ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPreference Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Item . Switch Preference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠSwitch Pref Example , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Switch ĠPreference ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" A Ġpreference Ġwith Ġa Ġswitch .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Title Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Warning , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Item . Seek Bar Preference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠSeek Pref Example , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Seek bar ĠPreference ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" Select Ġa Ġvalue Ġon Ġa Ġseek bar ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Title Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Warning , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ= Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Range Ġ= Ġ 5 0 F .. 1 0 0 F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Representation Ġ= Ġ{ Ġvalue Ġ-> Ġ"${ value . round ToInt ()} Ġ% " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Group ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store Ġ= Ġdata Store ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }