fix #7 新增了修改密码时错误的旧密码提示
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import android.widget.Toast
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -15,17 +16,21 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.aiosman.riderpro.LocalAppTheme
|
import com.aiosman.riderpro.LocalAppTheme
|
||||||
import com.aiosman.riderpro.LocalNavController
|
import com.aiosman.riderpro.LocalNavController
|
||||||
import com.aiosman.riderpro.R
|
|
||||||
import com.aiosman.riderpro.data.AccountService
|
import com.aiosman.riderpro.data.AccountService
|
||||||
import com.aiosman.riderpro.data.AccountServiceImpl
|
import com.aiosman.riderpro.data.AccountServiceImpl
|
||||||
|
import com.aiosman.riderpro.data.ServiceException
|
||||||
|
import com.aiosman.riderpro.data.api.ErrorCode
|
||||||
|
import com.aiosman.riderpro.data.api.showToast
|
||||||
|
import com.aiosman.riderpro.data.api.toErrorMessage
|
||||||
import com.aiosman.riderpro.ui.comment.NoticeScreenHeader
|
import com.aiosman.riderpro.ui.comment.NoticeScreenHeader
|
||||||
import com.aiosman.riderpro.ui.composables.ActionButton
|
import com.aiosman.riderpro.ui.composables.ActionButton
|
||||||
import com.aiosman.riderpro.ui.composables.StatusBarSpacer
|
import com.aiosman.riderpro.ui.composables.StatusBarSpacer
|
||||||
import com.aiosman.riderpro.ui.composables.TextInputField
|
import com.aiosman.riderpro.ui.composables.TextInputField
|
||||||
|
import com.google.android.gms.common.api.ApiException
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -49,6 +54,7 @@ class ChangePasswordViewModel {
|
|||||||
*/
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun ChangePasswordScreen() {
|
fun ChangePasswordScreen() {
|
||||||
|
val context = LocalContext.current
|
||||||
val viewModel = remember { ChangePasswordViewModel() }
|
val viewModel = remember { ChangePasswordViewModel() }
|
||||||
var currentPassword by remember { mutableStateOf("") }
|
var currentPassword by remember { mutableStateOf("") }
|
||||||
var newPassword by remember { mutableStateOf("") }
|
var newPassword by remember { mutableStateOf("") }
|
||||||
@@ -126,17 +132,24 @@ fun ChangePasswordScreen() {
|
|||||||
Spacer(modifier = Modifier.height(50.dp))
|
Spacer(modifier = Modifier.height(50.dp))
|
||||||
ActionButton(
|
ActionButton(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.width(345.dp)
|
.width(345.dp),
|
||||||
.height(48.dp),
|
|
||||||
text = "Let's Ride",
|
text = "Let's Ride",
|
||||||
) {
|
) {
|
||||||
if (validate()) {
|
if (validate()) {
|
||||||
scope.launch {
|
scope.launch {
|
||||||
try {
|
try {
|
||||||
viewModel.changePassword(currentPassword, newPassword)
|
viewModel.changePassword(currentPassword, newPassword)
|
||||||
|
|
||||||
navController.popBackStack()
|
navController.popBackStack()
|
||||||
|
} catch (e: ServiceException) {
|
||||||
|
when (e.errorType) {
|
||||||
|
ErrorCode.IncorrectOldPassword ->
|
||||||
|
oldPasswordError = e.errorType.toErrorMessage(context)
|
||||||
|
else ->
|
||||||
|
e.errorType.showToast(context)
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
errorMessage = e.message ?: "An error occurred"
|
Toast.makeText(context, e.message, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user