Readerbase actions
This commit is contained in:
@@ -30,6 +30,8 @@ import androidx.compose.material.*
|
|||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.BrokenImage
|
import androidx.compose.material.icons.filled.BrokenImage
|
||||||
import androidx.compose.material.icons.filled.Fullscreen
|
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.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
@@ -59,6 +61,7 @@ import xyz.quaver.graphics.subsampledimage.*
|
|||||||
import xyz.quaver.io.FileX
|
import xyz.quaver.io.FileX
|
||||||
import xyz.quaver.pupil.R
|
import xyz.quaver.pupil.R
|
||||||
import xyz.quaver.pupil.db.AppDatabase
|
import xyz.quaver.pupil.db.AppDatabase
|
||||||
|
import xyz.quaver.pupil.ui.theme.Orange500
|
||||||
import xyz.quaver.pupil.util.NetworkCache
|
import xyz.quaver.pupil.util.NetworkCache
|
||||||
import xyz.quaver.pupil.util.rememberFileXImageSource
|
import xyz.quaver.pupil.util.rememberFileXImageSource
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
@@ -156,6 +159,7 @@ open class ReaderBaseViewModel(app: Application) : AndroidViewModel(app), DIAwar
|
|||||||
@Composable
|
@Composable
|
||||||
fun ReaderBase(
|
fun ReaderBase(
|
||||||
model: ReaderBaseViewModel,
|
model: ReaderBaseViewModel,
|
||||||
|
icon: @Composable () -> Unit = { },
|
||||||
bookmark: Boolean = false,
|
bookmark: Boolean = false,
|
||||||
onToggleBookmark: () -> Unit = { }
|
onToggleBookmark: () -> Unit = { }
|
||||||
) {
|
) {
|
||||||
@@ -200,7 +204,17 @@ fun ReaderBase(
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
actions = {
|
actions = {
|
||||||
//TODO
|
IconButton(onClick = { }) {
|
||||||
|
icon()
|
||||||
|
}
|
||||||
|
|
||||||
|
IconButton(onClick = onToggleBookmark) {
|
||||||
|
Icon(
|
||||||
|
if (bookmark) Icons.Default.Star else Icons.Default.StarOutline,
|
||||||
|
contentDescription = null,
|
||||||
|
tint = Orange500
|
||||||
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
contentPadding = rememberInsetsPaddingValues(
|
contentPadding = rememberInsetsPaddingValues(
|
||||||
LocalWindowInsets.current.statusBars,
|
LocalWindowInsets.current.statusBars,
|
||||||
|
|||||||
@@ -257,7 +257,6 @@ fun <T> SearchBase(
|
|||||||
): Offset {
|
): Offset {
|
||||||
if (
|
if (
|
||||||
available.y == 0f ||
|
available.y == 0f ||
|
||||||
source == NestedScrollSource.Fling ||
|
|
||||||
!model.prevPageAvailable && available.y > 0f ||
|
!model.prevPageAvailable && available.y > 0f ||
|
||||||
!model.nextPageAvailable && available.y < 0f
|
!model.nextPageAvailable && available.y < 0f
|
||||||
) return Offset.Zero
|
) return Offset.Zero
|
||||||
|
|||||||
@@ -229,6 +229,13 @@ class Hitomi(app: Application) : Source(), DIAware {
|
|||||||
|
|
||||||
ReaderBase(
|
ReaderBase(
|
||||||
model,
|
model,
|
||||||
|
icon = {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(R.drawable.hitomi),
|
||||||
|
contentDescription = null,
|
||||||
|
modifier = Modifier.size(24.dp)
|
||||||
|
)
|
||||||
|
},
|
||||||
bookmark = bookmark,
|
bookmark = bookmark,
|
||||||
onToggleBookmark = {
|
onToggleBookmark = {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
|
|||||||
Reference in New Issue
Block a user