package Ġde . j ann isk il ian . basket . settings Ċ Ċ import Ġandroidx . compose . foundation . border Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height In Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . Lazy List Scope Ċ import Ġandroidx . compose . foundation . selection . selectable Group Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . outlined . Clear Ċ import Ġandroidx . compose . material . icons . outlined . Done Ċ import Ġandroidx . compose . material 3 . AlertDialog Ċ import Ġandroidx . compose . material 3 . Divider Ċ import Ġandroidx . compose . material 3 . Experimental Material 3 Api Ċ import Ġandroidx . compose . material 3 . Icon Ċ import Ġandroidx . compose . material 3 . Material Theme Ċ import Ġandroidx . compose . material 3 . Provide TextStyle Ċ import Ġandroidx . compose . material 3 . RadioButton Ċ import Ġandroidx . compose . material 3 . Switch Ċ import Ġandroidx . compose . material 3 . Switch Defaults Ċ import Ġandroidx . compose . material 3 . Text Ċ import Ġandroidx . compose . material 3 . Text Button Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . runtime . save able . remember Save able Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Alignment . Companion . Center Vert ically Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . datastore . core . DataStore Ċ import Ġandroidx . datastore . preferences . core . Preferences Ċ import Ġandroidx . datastore . preferences . core . edit Ċ import Ġde . j ann isk il ian . basket . core . ui . compose . component . ListItem Ċ import Ġde . j ann isk il ian . basket . core . util . compose . du Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Composable Ċ fun ĠSettings ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġdata Store : ĠData Store < Preferences >, ĊĠĠĠ Ġcontent Padding : ĠPadding Values Ġ= ĠPadding Values ( 0 . dp ), ĊĠĠĠ Ġvertical Arrange ment : ĠArrange ment . Vertical Ġ= ĠArrange ment . Top , ĊĠĠĠ Ġcontent : ĠSettings Scope . () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcoroutine Scope Ġ= Ġremember Coroutine Scope () ĊĊĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= Ġcontent Padding , ĊĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= Ġvertical Arrange ment , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings Scope Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store Ġ= Ġdata Store , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope Ġ= Ġcoroutine Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlazy List Scope Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ). content () ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠSettings Scope Ġ{ ĊĊĠĠĠ Ġfun Ġgroup ( ĊĠĠĠĠĠĠĠ Ġkey : ĠString , ĊĠĠĠĠĠĠĠ Ġheader : Ġ@ Composable Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġcontent : ĠSettings Group Scope . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ċ } Ċ Ċ interface ĠSettings Group Scope Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT Ġmust Ġbe Ġone Ġof Ġthe Ġfollowing : ĠBoolean , ĠInt , ĠLong , ĠFloat , ĠString , ĠSet < String >. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġitem ( ĊĠĠĠĠĠĠĠ Ġkey : ĠPreferences . Key < T >, ĊĠĠĠĠĠĠĠ Ġdefault : ĠT , ĊĠĠĠĠĠĠĠ Ġcontent : Ġ@ Composable Ġ( value : ĠT , Ġon ValueChanged : Ġ( value : ĠT ) Ġ-> ĠUnit ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠSettings Scope Impl ( ĊĠĠĠ Ġprivate Ġval Ġdata Store : ĠData Store < Preferences >, ĊĠĠĠ Ġprivate Ġval Ġcoroutine Scope : ĠCor outine Scope , ĊĠĠĠ Ġprivate Ġval Ġlazy List Scope : ĠLazy List Scope Ċ ) Ġ: ĠSettings Scope Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġis First Group Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġgroup ( ĊĠĠĠĠĠĠĠ Ġkey : ĠString , ĊĠĠĠĠĠĠĠ Ġheader : Ġ@ Composable Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġcontent : ĠSettings Group Scope . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy List Scope . item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 2 . du , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 2 . du , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġ 2 . du , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġ 1 . du ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProvide TextStyle ( Material Theme . typography . label Large ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠSettings Group Scope Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store Ġ= Ġdata Store , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope Ġ= Ġcoroutine Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlazy List Scope Ġ= Ġlazy List Scope ĊĠĠĠĠĠĠĠ Ġ). content () ĊĊĠĠĠĠĠĠĠ Ġlazy List Scope . item ( key Ġ= Ġkey Ġ+ Ġ" BOTTOM _ SP AC ER ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . size ( 4 . du )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSettings Group Scope Impl ( ĊĠĠĠ Ġprivate Ġval Ġdata Store : ĠData Store < Preferences >, ĊĠĠĠ Ġprivate Ġval Ġcoroutine Scope : ĠCor outine Scope , ĊĠĠĠ Ġprivate Ġval Ġlazy List Scope : ĠLazy List Scope Ċ ) Ġ: ĠSettings Group Scope Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġitem ( ĊĠĠĠĠĠĠĠ Ġkey : ĠPreferences . Key < T >, ĊĠĠĠĠĠĠĠ Ġdefault : ĠT , ĊĠĠĠĠĠĠĠ Ġcontent : Ġ@ Composable Ġ( value : ĠT , Ġon ValueChanged : Ġ( value : ĠT ) Ġ-> ĠUnit ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy List Scope . item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey . name ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Flow Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit [ key ] Ġ?: Ġdefault Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġby Ġvalue Flow . collect As State ( initial Ġ= Ġdefault ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ValueChanged Ġ= Ġ{ ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ key ] Ġ= ĠnewValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠSwitch Settings Item ( ĊĠĠĠ Ġvalue : ĠBoolean , ĊĠĠĠ Ġon Value Change : Ġ( value : ĠBoolean ) Ġ-> ĠUnit , ĊĠĠĠ Ġicon : Ġ(@ Composable Ġ() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġsummary : Ġ(@ Composable Ġ() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġtitle : Ġ@ Composable Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠ Ġleading Ġ= Ġicon , ĊĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSwitch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumb Content Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Done , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( Switch Defaults . Icon Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . Clear , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( Switch Defaults . Icon Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġon Value Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Value Change (! value ) Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings Item Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġsummary ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Material 3 Api :: class ) Ċ @ Composable Ċ fun Ġ< T > ĠList Settings Item ( ĊĠĠĠ Ġvalue : ĠT , ĊĠĠĠ Ġoptions : ĠList < Pair < T , ĠString >>, ĊĠĠĠ Ġon Value Change : Ġ( value : ĠT ) Ġ-> ĠUnit , ĊĠĠĠ Ġicon : Ġ(@ Composable Ġ() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġsummary : Ġ(@ Composable Ġ() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġtitle : Ġ@ Composable Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġshow Dialog Ġby Ġremember Save able Ġ{ Ġmutable State Of ( false ) Ġ} ĊĊĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠ Ġleading Ġ= Ġicon , ĊĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġoptions . find Ġ{ Ġit . first Ġ== Ġvalue Ġ} ?. second . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. border ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 1 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . color Scheme . primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠMaterial Theme . shapes . small ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 . du ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġshow Dialog Ġ= Ġtrue Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings Item Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġsummary ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( show Dialog ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġicon , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . selectable Group () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠCenter Vert ically , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Material Theme . shapes . medium ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ Ġon Value Change ( it . first ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRadio Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġit . first Ġ== Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Value Change ( it . first ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( it . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Button Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Button ( onClick Ġ= Ġ{ Ġshow Dialog Ġ= Ġfalse Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( string Resource ( R . string . dialog _ close )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Request Ġ= Ġ{ Ġshow Dialog Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠSettings Item Text ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġtitle : Ġ@ Composable Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġsummary : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? Ċ ) Ġ{ ĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . height In ( min Ġ= Ġ 6 . du ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠProvide TextStyle ( Material Theme . typography . body Large ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( summary Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProvide TextStyle ( Material Theme . typography . body Small ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ