Skip to content

Commit 685324e

Browse files
committed
Move stuff to ViewModel
1 parent d4a0043 commit 685324e

File tree

5 files changed

+18
-55
lines changed

5 files changed

+18
-55
lines changed

app/src/main/kotlin/com/w2sv/wifiwidget/activities/HomeActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ class HomeActivity : LifecycleObserversRegisteringActivity() {
136136

137137
val showWidgetConfigurationDialog = MutableStateFlow(false)
138138

139+
val propertyInfoDialogIndex: MutableStateFlow<Int?> = MutableStateFlow(null)
140+
139141
val widgetPropertyStateMap = NonAppliedSnapshotStateMap(
140142
{ widgetProperties },
141143
{ widgetProperties.putAll(it) }

app/src/main/kotlin/com/w2sv/wifiwidget/ui/home/configurationdialog/ConfigurationDialog.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,14 @@ import com.w2sv.wifiwidget.ui.shared.diagonalGradient
3131
@Composable
3232
private fun WidgetConfigurationDialogPrev() {
3333
WifiWidgetTheme {
34-
WidgetConfigurationDialog(setInfoDialogPropertyIndex = {}, showRefreshingInfoDialog = {})
34+
WidgetConfigurationDialog()
3535
}
3636
}
3737

3838
@Composable
3939
fun WidgetConfigurationDialog(
4040
modifier: Modifier = Modifier,
41-
viewModel: HomeActivity.ViewModel = viewModel(),
42-
setInfoDialogPropertyIndex: (Int) -> Unit,
43-
showRefreshingInfoDialog: () -> Unit
41+
viewModel: HomeActivity.ViewModel = viewModel()
4442
) {
4543
Dialog(onDismissRequest = { viewModel.onDismissWidgetConfigurationDialog() }) {
4644
ElevatedCard(
@@ -75,9 +73,7 @@ fun WidgetConfigurationDialog(
7573
StatefulContentColumn(
7674
modifier = Modifier
7775
.fillMaxWidth()
78-
.heightIn(260.dp, 420.dp),
79-
setInfoDialogPropertyIndex = setInfoDialogPropertyIndex,
80-
showRefreshingInfoDialog = showRefreshingInfoDialog
76+
.heightIn(260.dp, 420.dp)
8177
)
8278
StatefulButtonRow(modifier = Modifier.fillMaxWidth())
8379
}

app/src/main/kotlin/com/w2sv/wifiwidget/ui/home/configurationdialog/InflationButton.kt

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,11 @@ import androidx.compose.material3.MaterialTheme
88
import androidx.compose.runtime.Composable
99
import androidx.compose.runtime.collectAsState
1010
import androidx.compose.runtime.getValue
11-
import androidx.compose.runtime.mutableStateOf
12-
import androidx.compose.runtime.saveable.rememberSaveable
13-
import androidx.compose.runtime.setValue
1411
import androidx.compose.ui.Modifier
1512
import androidx.lifecycle.viewmodel.compose.viewModel
13+
import com.w2sv.androidutils.extensions.reset
1614
import com.w2sv.wifiwidget.activities.HomeActivity
1715
import com.w2sv.wifiwidget.ui.home.configurationdialog.content.PropertyInfoDialog
18-
import com.w2sv.wifiwidget.ui.shared.InfoDialog
1916

2017
@Composable
2118
fun StatefulWidgetConfigurationDialogButton(
@@ -27,32 +24,14 @@ fun StatefulWidgetConfigurationDialogButton(
2724
}
2825

2926
val inflateDialog by viewModel.showWidgetConfigurationDialog.collectAsState()
30-
31-
var infoDialogPropertyIndex by rememberSaveable {
32-
mutableStateOf<Int?>(null)
33-
}
34-
val (showRefreshingInfoDialog, setShowRefreshingInfoDialog) = rememberSaveable {
35-
mutableStateOf(false)
36-
}
27+
val propertyInfoDialogIndex by viewModel.propertyInfoDialogIndex.collectAsState()
3728

3829
if (inflateDialog) {
39-
WidgetConfigurationDialog(
40-
setInfoDialogPropertyIndex = {
41-
infoDialogPropertyIndex = it
42-
},
43-
showRefreshingInfoDialog = {
44-
setShowRefreshingInfoDialog(true)
45-
}
46-
)
30+
WidgetConfigurationDialog()
4731

48-
infoDialogPropertyIndex?.let {
32+
propertyInfoDialogIndex?.let {
4933
PropertyInfoDialog(it) {
50-
infoDialogPropertyIndex = null
51-
}
52-
}
53-
if (showRefreshingInfoDialog) {
54-
InfoDialog(title = "Data Refreshing", text = "BlubBlub") {
55-
setShowRefreshingInfoDialog(false)
34+
viewModel.propertyInfoDialogIndex.reset()
5635
}
5736
}
5837
}

app/src/main/kotlin/com/w2sv/wifiwidget/ui/home/configurationdialog/content/ContentColumn.kt

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,14 @@ import com.w2sv.wifiwidget.ui.shared.WifiWidgetTheme
4040
@Composable
4141
private fun Prev() {
4242
WifiWidgetTheme {
43-
StatefulContentColumn(setInfoDialogPropertyIndex = {}, showRefreshingInfoDialog = {})
43+
StatefulContentColumn()
4444
}
4545
}
4646

4747
@Composable
4848
fun StatefulContentColumn(
4949
modifier: Modifier = Modifier,
50-
viewModel: HomeActivity.ViewModel = androidx.lifecycle.viewmodel.compose.viewModel(),
51-
setInfoDialogPropertyIndex: (Int) -> Unit,
52-
showRefreshingInfoDialog: () -> Unit
50+
viewModel: HomeActivity.ViewModel = androidx.lifecycle.viewmodel.compose.viewModel()
5351
) {
5452
val scrollState = rememberScrollState()
5553

@@ -102,9 +100,8 @@ fun StatefulContentColumn(
102100
}
103101
},
104102
onInfoButtonClick = {
105-
setInfoDialogPropertyIndex(it)
106-
},
107-
showRefreshingInfoDialog = showRefreshingInfoDialog
103+
viewModel.propertyInfoDialogIndex.value = it
104+
}
108105
)
109106
}
110107

@@ -118,8 +115,7 @@ internal fun ContentColumn(
118115
onOpacityChanged: (Float) -> Unit,
119116
propertyChecked: (String) -> Boolean,
120117
onCheckedChange: (String, Boolean) -> Unit,
121-
onInfoButtonClick: (Int) -> Unit,
122-
showRefreshingInfoDialog: () -> Unit,
118+
onInfoButtonClick: (Int) -> Unit
123119
) {
124120
Column(
125121
horizontalAlignment = Alignment.CenterHorizontally,
@@ -165,10 +161,7 @@ internal fun ContentColumn(
165161
iconRes = com.w2sv.widget.R.drawable.ic_refresh_24,
166162
modifier = defaultSectionHeaderModifier
167163
)
168-
RefreshingSection(
169-
checkablePropertiesColumnModifier,
170-
showInfoDialog = showRefreshingInfoDialog
171-
) {
164+
RefreshingSection(checkablePropertiesColumnModifier) {
172165
with(scrollState) {
173166
animateScrollTo(maxValue)
174167
}

app/src/main/kotlin/com/w2sv/wifiwidget/ui/home/configurationdialog/content/Refreshing.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,21 @@ import androidx.compose.ui.unit.dp
2020
import androidx.compose.ui.unit.sp
2121
import com.w2sv.wifiwidget.R
2222
import com.w2sv.wifiwidget.activities.HomeActivity
23-
import com.w2sv.wifiwidget.ui.shared.InfoIconButton
2423
import com.w2sv.wifiwidget.ui.shared.JostText
2524
import kotlinx.coroutines.launch
2625

2726
@Composable
2827
internal fun RefreshingSection(
2928
modifier: Modifier = Modifier,
3029
viewModel: HomeActivity.ViewModel = androidx.lifecycle.viewmodel.compose.viewModel(),
31-
showInfoDialog: () -> Unit,
3230
scrollToContentColumnBottom: suspend () -> Unit
3331
) {
3432
val scope = rememberCoroutineScope()
3533

3634
Column(modifier = modifier, horizontalAlignment = Alignment.Start) {
3735
RefreshingParameterRow(
3836
label = R.string.refresh_periodically,
39-
parameterName = "refreshPeriodically",
40-
infoIconButton = {
41-
InfoIconButton(showInfoDialog)
42-
}
37+
parameterName = "refreshPeriodically"
4338
)
4439
AnimatedVisibility(
4540
visible = viewModel.widgetRefreshingParametersState.getValue("refreshPeriodically"),
@@ -61,8 +56,7 @@ private fun RefreshingParameterRow(
6156
parameterName: String,
6257
modifier: Modifier = Modifier,
6358
viewModel: HomeActivity.ViewModel = androidx.lifecycle.viewmodel.compose.viewModel(),
64-
fontSize: TextUnit = TextUnit.Unspecified,
65-
infoIconButton: (@Composable () -> Unit)? = null
59+
fontSize: TextUnit = TextUnit.Unspecified
6660
) {
6761
Row(
6862
verticalAlignment = Alignment.CenterVertically,
@@ -78,6 +72,5 @@ private fun RefreshingParameterRow(
7872
viewModel.widgetRefreshingParametersState[parameterName] = it
7973
}
8074
)
81-
infoIconButton?.invoke()
8275
}
8376
}

0 commit comments

Comments
 (0)