Skip to content

Commit d34ce45

Browse files
Account deletion connections
1 parent 3dae510 commit d34ce45

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

app/src/main/java/com/getcode/view/main/account/ConfirmDeleteAccount.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.compose.material.TextField
1414
import androidx.compose.runtime.Composable
1515
import androidx.compose.runtime.collectAsState
1616
import androidx.compose.ui.Modifier
17+
import androidx.compose.ui.platform.LocalContext
1718
import androidx.compose.ui.res.stringResource
1819
import androidx.compose.ui.unit.dp
1920
import androidx.compose.ui.unit.sp
@@ -23,12 +24,14 @@ import com.getcode.App
2324
import com.getcode.R
2425
import com.getcode.manager.BottomBarManager
2526
import com.getcode.theme.inputColors
27+
import com.getcode.util.getActivity
2628
import com.getcode.view.components.ButtonState
2729
import com.getcode.view.components.CodeButton
2830

2931
@Composable
3032
fun ConfirmDeleteAccount(navController: NavController) {
3133
val viewModel = hiltViewModel<DeleteAccountViewModel>()
34+
val context = LocalContext.current
3235
Column(
3336
Modifier
3437
.padding(20.dp)
@@ -64,23 +67,29 @@ fun ConfirmDeleteAccount(navController: NavController) {
6467
)
6568
Spacer(modifier = Modifier.weight(1f))
6669
CodeButton(
67-
onClick = { showConfirmDeletionBanner() },
70+
onClick = {
71+
showConfirmDeletionBanner(onConfirm = {
72+
context.getActivity()?.let {
73+
viewModel.onConfirmDelete(it)
74+
}
75+
})
76+
},
6877
text = stringResource(R.string.action_deleteAccount),
6978
buttonState = ButtonState.Filled,
7079
enabled = viewModel.isDeletionAllowed()
7180
)
7281
}
7382
}
7483

75-
fun showConfirmDeletionBanner() {
84+
fun showConfirmDeletionBanner(onConfirm: () -> Unit) {
7685
BottomBarManager.showMessage(
7786
BottomBarManager.BottomBarMessage(
7887
title = App.getInstance()
7988
.getString(R.string.prompt_title_deleteAccount),
8089
positiveText = App.getInstance()
8190
.getString(R.string.action_deleteAccount),
8291
negativeText = App.getInstance().getString(R.string.action_cancel),
83-
onPositive = { },
92+
onPositive = onConfirm,
8493
onNegative = { }
8594
))
8695
}
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package com.getcode.view.main.account
22

3+
import android.app.Activity
4+
import com.getcode.manager.AuthManager
35
import com.getcode.view.BaseViewModel
46
import dagger.hilt.android.lifecycle.HiltViewModel
57
import kotlinx.coroutines.flow.MutableStateFlow
68
import javax.inject.Inject
79

810

911
@HiltViewModel
10-
class DeleteAccountViewModel @Inject constructor() : BaseViewModel() {
12+
class DeleteAccountViewModel @Inject constructor(
13+
private val authManager: AuthManager
14+
) : BaseViewModel() {
1115
val requiredPhrase = "Delete"
1216
val typedText = MutableStateFlow("")
1317

@@ -16,4 +20,9 @@ class DeleteAccountViewModel @Inject constructor() : BaseViewModel() {
1620
}
1721

1822
fun isDeletionAllowed() = typedText.value.equals(requiredPhrase, ignoreCase = true)
23+
24+
fun onConfirmDelete(activity: Activity) {
25+
//todo: delete account
26+
authManager.logout(activity)
27+
}
1928
}

0 commit comments

Comments
 (0)