Readerbase actions

This commit is contained in:
tom5079
2021-12-19 12:42:19 +09:00
parent 20ddf04614
commit 0f4e1a8e0d
3 changed files with 22 additions and 2 deletions

View File

@@ -30,6 +30,8 @@ import androidx.compose.material.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.BrokenImage
import androidx.compose.material.icons.filled.Fullscreen
import androidx.compose.material.icons.filled.Star
import androidx.compose.material.icons.filled.StarOutline
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -59,6 +61,7 @@ import xyz.quaver.graphics.subsampledimage.*
import xyz.quaver.io.FileX
import xyz.quaver.pupil.R
import xyz.quaver.pupil.db.AppDatabase
import xyz.quaver.pupil.ui.theme.Orange500
import xyz.quaver.pupil.util.NetworkCache
import xyz.quaver.pupil.util.rememberFileXImageSource
import kotlin.math.abs
@@ -156,6 +159,7 @@ open class ReaderBaseViewModel(app: Application) : AndroidViewModel(app), DIAwar
@Composable
fun ReaderBase(
model: ReaderBaseViewModel,
icon: @Composable () -> Unit = { },
bookmark: Boolean = false,
onToggleBookmark: () -> Unit = { }
) {
@@ -200,7 +204,17 @@ fun ReaderBase(
)
},
actions = {
//TODO
IconButton(onClick = { }) {
icon()
}
IconButton(onClick = onToggleBookmark) {
Icon(
if (bookmark) Icons.Default.Star else Icons.Default.StarOutline,
contentDescription = null,
tint = Orange500
)
}
},
contentPadding = rememberInsetsPaddingValues(
LocalWindowInsets.current.statusBars,

View File

@@ -257,7 +257,6 @@ fun <T> SearchBase(
): Offset {
if (
available.y == 0f ||
source == NestedScrollSource.Fling ||
!model.prevPageAvailable && available.y > 0f ||
!model.nextPageAvailable && available.y < 0f
) return Offset.Zero

View File

@@ -229,6 +229,13 @@ class Hitomi(app: Application) : Source(), DIAware {
ReaderBase(
model,
icon = {
Image(
painter = painterResource(R.drawable.hitomi),
contentDescription = null,
modifier = Modifier.size(24.dp)
)
},
bookmark = bookmark,
onToggleBookmark = {
coroutineScope.launch {