diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorFragment.kt
index eb0bb25c325..869d351fe61 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorFragment.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorFragment.kt
@@ -36,7 +36,8 @@ class ChangeDueCalculatorFragment : BaseFragment() {
val uiState by viewModel.uiState.collectAsState()
ChangeDueCalculatorScreen(
uiState = uiState,
- onNavigateUp = { viewModel.onBackPressed() }
+ onNavigateUp = { viewModel.onBackPressed() },
+ onCompleteOrderClick = {}
)
}
}
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorScreen.kt
index 8c6af3718a9..adc0ea85a5c 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorScreen.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/payments/changeduecalculator/ChangeDueCalculatorScreen.kt
@@ -1,6 +1,7 @@
package com.woocommerce.android.ui.payments.changeduecalculator
import android.view.ViewGroup
+import android.view.inputmethod.InputMethodManager
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -9,6 +10,7 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
+import androidx.compose.material.Button
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.LocalTextStyle
@@ -20,8 +22,14 @@ import androidx.compose.material.TopAppBar
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
@@ -38,8 +46,11 @@ import java.math.BigDecimal
@Composable
fun ChangeDueCalculatorScreen(
uiState: ChangeDueCalculatorViewModel.UiState,
- onNavigateUp: () -> Unit
+ onNavigateUp: () -> Unit,
+ onCompleteOrderClick: () -> Unit
) {
+ val context = LocalContext.current
+
WooThemeWithBackground {
Scaffold(
topBar = {
@@ -73,6 +84,17 @@ fun ChangeDueCalculatorScreen(
is ChangeDueCalculatorViewModel.UiState.Success -> {
val hintString = stringResource(R.string.cash_payments_cash_received)
+ var view: WCMaterialOutlinedCurrencyEditTextView? by remember { mutableStateOf(null) }
+
+ LaunchedEffect(view) {
+ view?.let {
+ it.requestFocus()
+ context.getSystemService(
+ InputMethodManager::class.java
+ ).showSoftInput(it, InputMethodManager.SHOW_IMPLICIT)
+ }
+ }
+
AndroidView(
factory = { ctx ->
WCMaterialOutlinedCurrencyEditTextView(ctx).apply {
@@ -87,6 +109,7 @@ fun ChangeDueCalculatorScreen(
supportsNegativeValues = false
hint = hintString
setValueIfDifferent(uiState.amountDue)
+ view = this
}
},
modifier = Modifier
@@ -121,6 +144,11 @@ fun ChangeDueCalculatorScreen(
.padding(top = 16.dp, bottom = 16.dp, start = 16.dp)
.fillMaxWidth()
)
+
+ MarkOrderAsCompleteButton(
+ onClick = onCompleteOrderClick,
+ modifier = Modifier.padding(top = 16.dp)
+ )
}
is ChangeDueCalculatorViewModel.UiState.Error -> {
@@ -137,9 +165,9 @@ fun ChangeDueCalculatorScreen(
@Composable
fun RecordTransactionDetailsNote(
+ modifier: Modifier = Modifier,
checked: Boolean = false,
onCheckedChange: (Boolean) -> Unit = {},
- modifier: Modifier = Modifier
) {
Row(
modifier = modifier.fillMaxWidth(),
@@ -159,6 +187,18 @@ fun RecordTransactionDetailsNote(
}
}
+@Composable
+fun MarkOrderAsCompleteButton(onClick: () -> Unit, modifier: Modifier = Modifier) {
+ Button(
+ onClick = onClick,
+ modifier = modifier
+ .fillMaxWidth()
+ .padding(start = 16.dp, top = 8.dp, end = 16.dp)
+ ) {
+ Text(text = stringResource(R.string.cash_payments_mark_order_as_complete))
+ }
+}
+
@Composable
private fun getTitleText(uiState: ChangeDueCalculatorViewModel.UiState): String {
return when (uiState) {
@@ -179,6 +219,7 @@ fun ChangeDueCalculatorScreenSuccessPreview() {
amountDue = BigDecimal("666.00"),
change = BigDecimal("0.00")
),
- onNavigateUp = {}
+ onNavigateUp = {},
+ onCompleteOrderClick = {}
)
}
diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml
index 1435dc12767..3e8d87f7832 100644
--- a/WooCommerce/src/main/res/values/strings.xml
+++ b/WooCommerce/src/main/res/values/strings.xml
@@ -579,6 +579,7 @@
Cash received
Change due
Record transaction details in order note
+ Mark Order as Complete