diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt index 1387f57bb..986fd1d3b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt @@ -1,12 +1,14 @@ package app.omnivore.omnivore.ui.reader -import HighlightColorPalette import android.annotation.SuppressLint import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.graphics.Color import android.graphics.Rect +import android.graphics.drawable.ShapeDrawable +import android.graphics.drawable.shapes.RoundRectShape +import android.os.Build import android.util.Log import android.view.* import android.view.View.OnScrollChangeListener @@ -19,12 +21,8 @@ import androidx.compose.foundation.layout.* import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.runtime.livedata.observeAsState -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import app.omnivore.omnivore.R -import app.omnivore.omnivore.ui.components.HighlightColorPaletteMode import com.google.gson.Gson import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -78,7 +76,27 @@ fun WebReader( theme.backgroundColor } } - setBackgroundColor(bg.toInt()); + setBackgroundColor(bg.toInt()) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val scrollbarColor = when (theme) { + Themes.SYSTEM -> { + if (isDarkMode) { + Color.WHITE + } else { + Color.BLACK + } + } + else -> { + theme.scrollbarColor + } + } + + val rad = 8f + val shape = ShapeDrawable(RoundRectShape(floatArrayOf(rad, rad, rad, rad, rad, rad, rad, rad), null, null)) + shape.paint.color = scrollbarColor.toInt() + verticalScrollbarThumbDrawable = shape + } } webViewClient = object : WebViewClient() { diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt index 480f018cf..555b85ab1 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt @@ -44,13 +44,16 @@ data class AnnotationWebViewMessage( val annotation: String? ) -enum class Themes(val themeKey: String, val backgroundColor: Long, val foregroundColor: Long) { - SYSTEM("System", 0xFF000000, 0xFF000000), - LIGHT("Light", 0xFFFFFFFF, 0xFF000000), - SEPIA("Sepia", 0xFFFBF0D9, 0xFF000000), - DARK("Dark", 0xFF2F3030, 0xFFFFFFFF), - APOLLO("Apollo", 0xFF6A6968, 0xFFFFFFFF), - BLACK("Black", 0xFF000000, 0xFFFFFFFF), +enum class Themes(val themeKey: String, + val backgroundColor: Long, + val foregroundColor: Long, + val scrollbarColor: Long) { + SYSTEM("System", 0xFF000000, 0xFF000000, 0xFF3A3939), + LIGHT("Light", 0xFFFFFFFF, 0xFF000000, 0xFF3A3939), + SEPIA("Sepia", 0xFFFBF0D9, 0xFF000000, 0xFF5F4B32), + DARK("Dark", 0xFF2F3030, 0xFFFFFFFF, 0xFFD8D7D7), + APOLLO("Apollo", 0xFF6A6968, 0xFFFFFFFF, 0xFFF3F3F3), + BLACK("Black", 0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF), } @HiltViewModel