Minor tweaks to download custom dialog

- Allow large decrements (just goes to 0)
- Use Material3 text field for proper theming
- Move dialog composable to presentation package
This commit is contained in:
arkon
2022-08-26 09:16:26 -04:00
parent 2453d1a886
commit 03b9950fa1
19 changed files with 189 additions and 180 deletions

View File

@@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.ui.manga.chapter
package eu.kanade.presentation.manga.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.ChevronLeft
@@ -11,6 +10,8 @@ import androidx.compose.material.icons.outlined.KeyboardDoubleArrowRight
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
@@ -19,8 +20,10 @@ 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.res.stringResource
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import eu.kanade.tachiyomi.R
@Composable
@@ -34,7 +37,7 @@ fun DownloadCustomAmountDialog(
onDismissRequest = onDismissRequest,
dismissButton = {
TextButton(onClick = onDismissRequest) {
Text(text = stringResource(id = android.R.string.cancel))
Text(text = stringResource(android.R.string.cancel))
}
},
confirmButton = {
@@ -44,11 +47,11 @@ fun DownloadCustomAmountDialog(
onConfirm(amount.coerceIn(0, maxAmount))
},
) {
Text(text = stringResource(id = android.R.string.ok))
Text(text = stringResource(R.string.action_download))
}
},
title = {
Text(text = stringResource(id = R.string.custom_download))
Text(text = stringResource(R.string.custom_download))
},
text = {
val onChangeAmount: (Int) -> Unit = { amount = (amount + it).coerceIn(0, maxAmount) }
@@ -57,7 +60,7 @@ fun DownloadCustomAmountDialog(
) {
IconButton(
onClick = { onChangeAmount(-10) },
enabled = amount > 10,
enabled = amount > 0,
) {
Icon(imageVector = Icons.Outlined.KeyboardDoubleArrowLeft, contentDescription = "")
}
@@ -67,10 +70,12 @@ fun DownloadCustomAmountDialog(
) {
Icon(imageVector = Icons.Outlined.ChevronLeft, contentDescription = "")
}
BasicTextField(
OutlinedTextField(
modifier = Modifier.weight(1f),
value = amount.toString(),
onValueChange = { onChangeAmount(it.toIntOrNull() ?: 0) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
textStyle = LocalTextStyle.current.copy(textAlign = TextAlign.Center),
)
IconButton(
onClick = { onChangeAmount(1) },

View File

@@ -0,0 +1,57 @@
package eu.kanade.presentation.manga.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.Source
@Composable
fun DuplicateMangaDialog(
onDismissRequest: () -> Unit,
onConfirm: () -> Unit,
onOpenManga: () -> Unit,
duplicateFrom: Source,
) {
AlertDialog(
onDismissRequest = onDismissRequest,
confirmButton = {
Row {
TextButton(onClick = {
onDismissRequest()
onOpenManga()
},) {
Text(text = stringResource(R.string.action_show_manga))
}
Spacer(modifier = Modifier.weight(1f))
TextButton(onClick = onDismissRequest) {
Text(text = stringResource(android.R.string.cancel))
}
TextButton(
onClick = {
onDismissRequest()
onConfirm()
},
) {
Text(text = stringResource(R.string.action_add))
}
}
},
title = {
Text(text = stringResource(R.string.are_you_sure))
},
text = {
Text(
text = stringResource(
id = R.string.confirm_manga_add_duplicate,
duplicateFrom.name,
),
)
},
)
}

View File

@@ -16,7 +16,7 @@ fun DeleteChaptersDialog(
onDismissRequest = onDismissRequest,
dismissButton = {
TextButton(onClick = onDismissRequest) {
Text(text = stringResource(id = android.R.string.cancel))
Text(text = stringResource(android.R.string.cancel))
}
},
confirmButton = {
@@ -26,14 +26,14 @@ fun DeleteChaptersDialog(
onConfirm()
},
) {
Text(text = stringResource(id = android.R.string.ok))
Text(text = stringResource(android.R.string.ok))
}
},
title = {
Text(text = stringResource(id = R.string.are_you_sure))
Text(text = stringResource(R.string.are_you_sure))
},
text = {
Text(text = stringResource(id = R.string.confirm_delete_chapters))
Text(text = stringResource(R.string.confirm_delete_chapters))
},
)
}