Skip to content

Commit 96f627e

Browse files
refactor #1537: migrated faq screen to compose
1 parent aec8790 commit 96f627e

File tree

4 files changed

+11
-29
lines changed

4 files changed

+11
-29
lines changed

Diff for: core/designsystem/src/main/java/org/mifos/mobilewallet/mifospay/designsystem/component/FaqItemScreen.kt

+6-7
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ import androidx.compose.material3.Icon
1717
import androidx.compose.material3.MaterialTheme
1818
import androidx.compose.material3.Text
1919
import androidx.compose.runtime.Composable
20+
import androidx.compose.runtime.getValue
2021
import androidx.compose.runtime.mutableStateOf
2122
import androidx.compose.runtime.remember
23+
import androidx.compose.runtime.setValue
2224
import androidx.compose.ui.Alignment
2325
import androidx.compose.ui.Modifier
2426
import androidx.compose.ui.draw.scale
@@ -30,10 +32,8 @@ import androidx.compose.ui.unit.dp
3032
fun FaqItemScreen(
3133
question: String?,
3234
answer: String?,
33-
onItemSelected: (Int) -> Unit,
34-
index: Int
3535
) {
36-
val isSelected = remember { mutableStateOf(false) }
36+
var isSelected by remember { mutableStateOf(false) }
3737

3838
Column(
3939
modifier = Modifier
@@ -43,8 +43,7 @@ fun FaqItemScreen(
4343
Row(
4444
modifier = Modifier
4545
.clickable {
46-
isSelected.value = !isSelected.value
47-
onItemSelected.invoke(index)
46+
isSelected = !isSelected
4847
}
4948
.padding(vertical = 8.dp),
5049
verticalAlignment = Alignment.CenterVertically
@@ -63,12 +62,12 @@ fun FaqItemScreen(
6362
contentDescription = "drop down",
6463
tint = Color.Black,
6564
modifier = Modifier
66-
.scale(1f, if (isSelected.value) -1f else 1f)
65+
.scale(1f, if (isSelected) -1f else 1f)
6766
)
6867
}
6968

7069
AnimatedVisibility(
71-
visible = isSelected.value,
70+
visible = isSelected,
7271
enter = fadeIn() + expandVertically(
7372
animationSpec = spring(
7473
stiffness = Spring.StiffnessMedium

Diff for: mifospay/src/main/java/org/mifos/mobilewallet/mifospay/faq/ui/FAQ.kt

-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@ package org.mifos.mobilewallet.mifospay.faq.ui
22

33
data class FAQ(
44
var question: Int,
5-
65
var answer: Int? = null,
76
)

Diff for: mifospay/src/main/java/org/mifos/mobilewallet/mifospay/faq/ui/FAQActivity.kt

+2-15
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ package org.mifos.mobilewallet.mifospay.faq.ui
22

33
import android.os.Bundle
44
import androidx.activity.compose.setContent
5-
import androidx.activity.viewModels
6-
import androidx.compose.runtime.MutableState
7-
import androidx.compose.runtime.mutableIntStateOf
85
import org.mifos.mobilewallet.mifospay.base.BaseActivity
9-
import org.mifos.mobilewallet.mifospay.faq.presenter.FAQViewModel
106
import org.mifos.mobilewallet.mifospay.theme.MifosTheme
117

128
/**
@@ -15,26 +11,17 @@ import org.mifos.mobilewallet.mifospay.theme.MifosTheme
1511
* @author ankur
1612
* @since 11/July/2018
1713
*/
18-
class FAQActivity : BaseActivity() {
19-
20-
private var selectedFaqPosition: MutableState<Int> = mutableIntStateOf(-1)
2114

22-
private val faqViewModel: FAQViewModel by viewModels()
15+
class FAQActivity : BaseActivity() {
2316

2417
override fun onCreate(savedInstanceState: Bundle?) {
2518
super.onCreate(savedInstanceState)
2619
setContent {
2720
MifosTheme {
2821
FaqScreen(
29-
faqViewModel = faqViewModel,
30-
navigateBack = { onBackPressedDispatcher.onBackPressed() },
31-
updateFaqPosition = { updateSelectedFaqPosition(it) }
22+
navigateBack = { onBackPressedDispatcher.onBackPressed() }
3223
)
3324
}
3425
}
3526
}
36-
37-
private fun updateSelectedFaqPosition(position: Int) {
38-
selectedFaqPosition.value = if (selectedFaqPosition.value == position) -1 else position
39-
}
4027
}

Diff for: mifospay/src/main/java/org/mifos/mobilewallet/mifospay/faq/ui/FaqScreen.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import org.mifos.mobilewallet.mifospay.faq.presenter.FAQViewModel
1818
@Composable
1919
fun FaqScreen(
2020
navigateBack: () -> Unit,
21-
faqViewModel: FAQViewModel = hiltViewModel(),
22-
updateFaqPosition: (Int) -> Unit,
21+
faqViewModel: FAQViewModel = hiltViewModel()
2322
) {
2423
Column(modifier = Modifier.fillMaxSize()) {
2524
MifosTopBar(
@@ -33,9 +32,7 @@ fun FaqScreen(
3332
itemsIndexed(items = faqViewModel.getFAQ()) { index, faqItem ->
3433
FaqItemScreen(
3534
question = stringResource(id = faqItem.question),
36-
answer = faqItem.answer?.let { stringResource(id = it) },
37-
onItemSelected = { position -> updateFaqPosition(position) },
38-
index = index
35+
answer = faqItem.answer?.let { stringResource(id = it) }
3936
)
4037
}
4138
}
@@ -45,5 +42,5 @@ fun FaqScreen(
4542
@Preview(showSystemUi = true)
4643
@Composable
4744
fun FaqScreenPreview() {
48-
FaqScreen({}, hiltViewModel(), {})
45+
FaqScreen({}, hiltViewModel())
4946
}

0 commit comments

Comments
 (0)