Update dependencies

This commit is contained in:
Syer10
2023-07-03 21:20:32 -04:00
parent 42ef47dbb1
commit fdccb50850
28 changed files with 152 additions and 170 deletions

View File

@@ -34,7 +34,6 @@ kotlin {
languageSettings {
optIn("kotlin.RequiresOptIn")
optIn("kotlinx.coroutines.ExperimentalCoroutinesApi")
optIn("com.google.accompanist.pager.ExperimentalPagerApi")
optIn("androidx.compose.animation.ExperimentalAnimationApi")
optIn("androidx.compose.foundation.ExperimentalFoundationApi")
optIn("androidx.compose.material.ExperimentalMaterialApi")
@@ -45,7 +44,8 @@ kotlin {
dependencies {
api(kotlin("stdlib-common"))
api(libs.coroutines.core)
api(libs.imageloader)
api(libs.imageloader.core)
api(libs.imageloader.moko)
api(libs.voyager.core)
api(libs.voyager.navigation)
api(libs.voyager.transitions)

View File

@@ -14,12 +14,17 @@ import com.seiko.imageloader.cache.memory.MemoryCacheBuilder
import com.seiko.imageloader.component.ComponentRegistryBuilder
import com.seiko.imageloader.component.setupDefaultComponents
import com.seiko.imageloader.option.Options
import com.seiko.imageloader.option.OptionsBuilder
import com.seiko.imageloader.option.androidContext
import okio.Path.Companion.toOkioPath
actual val imageConfig: Options.ImageConfig = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Options.ImageConfig.ARGB_8888
} else {
Options.ImageConfig.HARDWARE
actual fun OptionsBuilder.configure(contextWrapper: ContextWrapper) {
imageConfig = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Options.ImageConfig.ARGB_8888
} else {
Options.ImageConfig.HARDWARE
}
androidContext(contextWrapper)
}
actual fun ComponentRegistryBuilder.register(contextWrapper: ContextWrapper, http: Http) {

View File

@@ -9,6 +9,7 @@ package ca.gosyer.jui.ui.base
import androidx.compose.runtime.ProvidedValue
import androidx.compose.runtime.compositionLocalOf
import ca.gosyer.jui.core.di.AppScope
import ca.gosyer.jui.core.io.SYSTEM
import ca.gosyer.jui.ui.ViewModelComponent
import ca.gosyer.jui.ui.base.image.ImageLoaderProvider
import ca.gosyer.jui.ui.base.image.configure
@@ -17,6 +18,7 @@ import com.seiko.imageloader.ImageLoader
import com.seiko.imageloader.LocalImageLoader
import com.seiko.imageloader.cache.disk.DiskCache
import me.tatarka.inject.annotations.Provides
import okio.FileSystem
typealias ImageCache = DiskCache
@@ -35,15 +37,22 @@ interface UiComponent {
@AppScope
@Provides
fun imageLoaderFactory(imageLoaderProvider: ImageLoaderProvider, imageCache: ImageCache): ImageLoader = imageLoaderProvider.get(imageCache)
fun imageLoaderFactory(
imageLoaderProvider: ImageLoaderProvider,
imageCache: ImageCache
): ImageLoader = imageLoaderProvider.get(imageCache)
@AppScope
@Provides
fun imageCacheFactory(): ImageCache = DiskCache { configure(contextWrapper, "image_cache") }
fun imageCacheFactory(): ImageCache = DiskCache(FileSystem.SYSTEM) {
configure(contextWrapper, "image_cache")
}
@AppScope
@Provides
fun chapterCacheFactory(): ChapterCache = DiskCache { configure(contextWrapper, "chapter_cache") }
fun chapterCacheFactory(): ChapterCache = DiskCache(FileSystem.SYSTEM) {
configure(contextWrapper, "chapter_cache")
}
@Provides
fun getHooks(viewModelComponent: ViewModelComponent) = arrayOf(

View File

@@ -17,9 +17,11 @@ import com.seiko.imageloader.ImageLoader
import com.seiko.imageloader.cache.disk.DiskCacheBuilder
import com.seiko.imageloader.cache.memory.MemoryCacheBuilder
import com.seiko.imageloader.component.ComponentRegistryBuilder
import com.seiko.imageloader.component.fetcher.MokoResourceFetcher
import com.seiko.imageloader.component.keyer.Keyer
import com.seiko.imageloader.component.mapper.Mapper
import com.seiko.imageloader.option.Options
import com.seiko.imageloader.option.OptionsBuilder
import io.ktor.http.Url
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
@@ -37,6 +39,7 @@ class ImageLoaderProvider @Inject constructor(
return ImageLoader {
components {
register(context, http)
add(MokoResourceFetcher.Factory())
add(MangaCoverMapper())
add(MangaCoverKeyer())
add(ExtensionIconMapper())
@@ -44,7 +47,9 @@ class ImageLoaderProvider @Inject constructor(
add(SourceIconMapper())
add(SourceIconKeyer())
}
options.config = imageConfig
options {
configure(context)
}
interceptor {
diskCache { imageCache }
memoryCacheConfig { configure(context) }
@@ -61,7 +66,7 @@ class ImageLoaderProvider @Inject constructor(
}
class MangaCoverKeyer : Keyer {
override fun key(data: Any, options: Options): String? {
override fun key(data: Any, options: Options, type: Keyer.Type): String? {
if (data !is Manga) return null
return "${data.sourceId}-${data.thumbnailUrl}-${data.thumbnailUrlLastFetched}"
}
@@ -76,7 +81,7 @@ class ImageLoaderProvider @Inject constructor(
}
class ExtensionIconKeyer : Keyer {
override fun key(data: Any, options: Options): String? {
override fun key(data: Any, options: Options, type: Keyer.Type): String? {
if (data !is Extension) return null
return data.iconUrl
}
@@ -91,14 +96,14 @@ class ImageLoaderProvider @Inject constructor(
}
class SourceIconKeyer : Keyer {
override fun key(data: Any, options: Options): String? {
override fun key(data: Any, options: Options, type: Keyer.Type): String? {
if (data !is Source) return null
return data.iconUrl
}
}
}
expect val imageConfig: Options.ImageConfig
expect fun OptionsBuilder.configure(contextWrapper: ContextWrapper)
expect fun ComponentRegistryBuilder.register(contextWrapper: ContextWrapper, http: Http)

View File

@@ -7,6 +7,8 @@
package ca.gosyer.jui.ui.library.components
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.PagerState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
@@ -16,8 +18,6 @@ import ca.gosyer.jui.domain.library.model.DisplayMode
import ca.gosyer.jui.ui.library.CategoryState
import ca.gosyer.jui.uicore.components.ErrorScreen
import ca.gosyer.jui.uicore.components.LoadingScreen
import com.google.accompanist.pager.HorizontalPager
import com.google.accompanist.pager.PagerState
import kotlinx.collections.immutable.ImmutableList
@Composable

View File

@@ -23,6 +23,8 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material.ModalBottomSheetLayout
import androidx.compose.material.ModalBottomSheetValue
import androidx.compose.material.Scaffold
@@ -53,8 +55,6 @@ import ca.gosyer.jui.uicore.components.LoadingScreen
import ca.gosyer.jui.uicore.insets.navigationBars
import ca.gosyer.jui.uicore.insets.statusBars
import ca.gosyer.jui.uicore.resources.stringResource
import com.google.accompanist.pager.PagerState
import com.google.accompanist.pager.rememberPagerState
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList

View File

@@ -4,6 +4,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
@file:Suppress("DEPRECATION")
package ca.gosyer.jui.ui.library.components
import androidx.compose.animation.AnimatedVisibility
@@ -11,6 +13,7 @@ import androidx.compose.animation.expandVertically
import androidx.compose.animation.shrinkVertically
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Divider
import androidx.compose.material.MaterialTheme
@@ -24,10 +27,11 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import androidx.compose.ui.util.fastForEachIndexed
import ca.gosyer.jui.domain.category.model.Category
import com.google.accompanist.pager.PagerState
import com.google.accompanist.pager.ExperimentalPagerApi
import com.google.accompanist.pager.pagerTabIndicatorOffset
import kotlinx.collections.immutable.ImmutableList
@OptIn(ExperimentalPagerApi::class)
@Composable
fun LibraryTabs(
visible: Boolean,

View File

@@ -4,6 +4,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
@file:Suppress("DEPRECATION")
package ca.gosyer.jui.ui.library.settings
import androidx.compose.foundation.layout.Box
@@ -11,6 +13,8 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Tab
@@ -27,9 +31,8 @@ import ca.gosyer.jui.uicore.components.VerticalScrollbar
import ca.gosyer.jui.uicore.components.rememberScrollbarAdapter
import ca.gosyer.jui.uicore.components.scrollbarPadding
import ca.gosyer.jui.uicore.resources.stringResource
import com.google.accompanist.pager.HorizontalPager
import com.google.accompanist.pager.ExperimentalPagerApi
import com.google.accompanist.pager.pagerTabIndicatorOffset
import com.google.accompanist.pager.rememberPagerState
import dev.icerock.moko.resources.StringResource
import kotlinx.coroutines.launch
@@ -39,6 +42,7 @@ enum class LibrarySheetTabs(val res: StringResource) {
DISPLAY(MR.strings.library_display),
}
@OptIn(ExperimentalPagerApi::class)
@Composable
fun LibrarySheet(
libraryFilters: @Composable () -> Unit,
@@ -68,7 +72,7 @@ fun LibrarySheet(
}
}
HorizontalPager(
count = LibrarySheetTabs.values().size,
pageCount = LibrarySheetTabs.values().size,
state = pagerState,
verticalAlignment = Alignment.Top,
) {

View File

@@ -13,9 +13,10 @@ import com.seiko.imageloader.cache.disk.DiskCacheBuilder
import com.seiko.imageloader.cache.memory.MemoryCacheBuilder
import com.seiko.imageloader.component.ComponentRegistryBuilder
import com.seiko.imageloader.component.setupDefaultComponents
import com.seiko.imageloader.option.Options
import com.seiko.imageloader.option.OptionsBuilder
actual val imageConfig: Options.ImageConfig = Options.ImageConfig.ARGB_8888
actual fun OptionsBuilder.configure(contextWrapper: ContextWrapper) {
}
actual fun ComponentRegistryBuilder.register(contextWrapper: ContextWrapper, http: Http) {
setupDefaultComponents(httpClient = { http })

View File

@@ -13,13 +13,14 @@ import com.seiko.imageloader.cache.memory.MemoryCacheBuilder
import com.seiko.imageloader.cache.memory.maxSizePercent
import com.seiko.imageloader.component.ComponentRegistryBuilder
import com.seiko.imageloader.component.setupDefaultComponents
import com.seiko.imageloader.option.Options
import com.seiko.imageloader.option.OptionsBuilder
import okio.Path.Companion.toPath
import platform.Foundation.NSCachesDirectory
import platform.Foundation.NSFileManager
import platform.Foundation.NSUserDomainMask
actual val imageConfig: Options.ImageConfig = Options.ImageConfig.ARGB_8888
actual fun OptionsBuilder.configure(contextWrapper: ContextWrapper) {
}
actual fun ComponentRegistryBuilder.register(contextWrapper: ContextWrapper, http: Http) {
setupDefaultComponents(httpClient = { http })