HistoryScreen item SwipeToDismiss

This commit is contained in:
tarsin committed 2023-01-23 18:34:10 +08:00
1 parent 19fa8d15a6
commit 07450a7a51
2 files changed
+27 -9

No files matched your search

+1 -1
View File
@@ -110,7 +110,7 @@ dependencies {
// https://developer.android.com/jetpack/androidx/releases/compose-material3
implementation platform("androidx.compose:compose-bom:2023.01.00")
implementation "androidx.compose.material:material-icons-extended"
implementation "androidx.compose.material3:material3"
implementation "androidx.compose.material3:material3:1.1.0-alpha04"
implementation "androidx.constraintlayout:constraintlayout:2.2.0-alpha05"
implementation "androidx.coordinatorlayout:coordinatorlayout:1.2.0"
@@ -20,16 +20,19 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Card
import androidx.compose.material3.DismissDirection
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SwipeToDismiss
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberDismissState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -113,15 +116,30 @@ fun HistoryScreen(hostFragment: HistoryComposeScreenFragmentBridge) {
items(
items = historyData,
key = { item -> item.gid }
) {
it?.let {
InfoCard(
{ hostFragment.navToDetail(it) },
{
selectedGalleryInfo = it
dialogStatus = HistoryScreenDialogStatus.SELECT_ITEM
) { info ->
info?.let {
val dismissState = rememberDismissState(
confirmValueChange = {
coroutineScope.launchIO {
EhDB.deleteHistoryInfo(info)
}
true
}
)
SwipeToDismiss(
state = dismissState,
background = {},
dismissContent = {
InfoCard(
{ hostFragment.navToDetail(it) },
{
selectedGalleryInfo = it
dialogStatus = HistoryScreenDialogStatus.SELECT_ITEM
},
info = it,
)
},
info = it,
directions = setOf(DismissDirection.EndToStart)
)
}
}