Dependency updates

This commit is contained in:
Syer10
2021-05-24 19:45:22 -04:00
parent 1d79ccf80d
commit c8bbad12f8
13 changed files with 80 additions and 22 deletions

View File

@@ -5,12 +5,13 @@ import org.jmailen.gradle.kotlinter.tasks.FormatTask
import org.jmailen.gradle.kotlinter.tasks.LintTask
plugins {
kotlin("jvm") version "1.4.32"
kotlin("kapt") version "1.4.32"
kotlin("plugin.serialization") version "1.4.32"
id("org.jetbrains.compose") version "0.4.0-build198"
kotlin("jvm") version "1.5.0"
kotlin("kapt") version "1.5.0"
kotlin("plugin.serialization") version "1.5.0"
id("org.jetbrains.compose") version "0.4.0-build209"
id("de.fuerstenau.buildconfig") version "1.1.8"
id("org.jmailen.kotlinter") version "3.4.0"
id("org.jmailen.kotlinter") version "3.4.4"
id("com.github.ben-manes.versions") version "0.38.0"
}
group = "ca.gosyer"
@@ -20,7 +21,6 @@ repositories {
mavenCentral()
maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
maven { url = uri("https://jitpack.io") }
}
dependencies {
@@ -34,17 +34,17 @@ dependencies {
implementation("com.github.weisj:darklaf-core:2.5.5")
// Threading
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0")
// Json
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1")
// Dependency Injection
implementation("com.github.stephanenicolas.toothpick:ktp:3.1.0")
kapt("com.github.stephanenicolas.toothpick:toothpick-compiler:3.1.0")
// Http client
val ktorVersion = "1.5.2"
val ktorVersion = "1.5.4"
implementation("io.ktor:ktor-client-core:$ktorVersion")
implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
implementation("io.ktor:ktor-client-serialization:$ktorVersion")
@@ -55,13 +55,13 @@ dependencies {
implementation("org.apache.logging.log4j:log4j-api:$log4jVersion")
implementation("org.apache.logging.log4j:log4j-core:$log4jVersion")
implementation("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion")
implementation("io.github.microutils:kotlin-logging-jvm:2.0.5")
implementation("io.github.microutils:kotlin-logging-jvm:2.0.6")
// User storage
implementation("net.harawata:appdirs:1.2.1")
// Preferences
val multiplatformSettingsVersion = "0.7.4"
val multiplatformSettingsVersion = "0.7.7"
implementation("com.russhwolf:multiplatform-settings-jvm:$multiplatformSettingsVersion")
implementation("com.russhwolf:multiplatform-settings-serialization-jvm:$multiplatformSettingsVersion")
implementation("com.russhwolf:multiplatform-settings-coroutines-jvm:$multiplatformSettingsVersion")
@@ -71,7 +71,7 @@ dependencies {
// Testing
testImplementation(kotlin("test-junit5"))
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.3")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0")
}
tasks {
@@ -131,6 +131,8 @@ compose.desktop {
"java.management",
"java.naming",
"java.prefs",
"java.rmi",
"java.scripting",
"java.sql",
"jdk.unsupported"
)

View File

@@ -84,7 +84,7 @@ internal class JvmPreference<T>(
override fun changes(): Flow<T> {
return callbackFlow {
val listener = preferences.addListener(key) {
offer(get())
trySend(get())
}
awaitClose { listener.deactivate() }
}

View File

@@ -9,6 +9,7 @@ package ca.gosyer.data.server
import ca.gosyer.BuildConfig
import ca.gosyer.util.system.CKLogger
import ca.gosyer.util.system.userDataDir
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.MutableStateFlow
@@ -24,6 +25,7 @@ import java.util.jar.JarInputStream
import javax.inject.Inject
import kotlin.concurrent.thread
@OptIn(DelicateCoroutinesApi::class)
class ServerService @Inject constructor(
val serverPreferences: ServerPreferences
) {

View File

@@ -25,9 +25,11 @@ import ca.gosyer.data.server.Http
import ca.gosyer.util.compose.imageFromUrl
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@OptIn(DelicateCoroutinesApi::class)
@Composable
fun KtorImage(
imageUrl: String,

View File

@@ -46,6 +46,7 @@ import ca.gosyer.BuildConfig
import ca.gosyer.ui.base.vm.viewModel
import ca.gosyer.util.compose.ThemedWindow
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import mu.KotlinLogging
@@ -57,6 +58,7 @@ fun openCategoriesMenu(notifyFinished: (() -> Unit)? = null) {
}
}
@OptIn(DelicateCoroutinesApi::class)
@Composable
fun CategoriesMenu(notifyFinished: (() -> Unit)? = null, windowEvents: WindowEvents) {
val vm = viewModel<CategoriesMenuViewModel>()

View File

@@ -46,6 +46,7 @@ import ca.gosyer.ui.base.components.LoadingScreen
import ca.gosyer.ui.base.components.Toolbar
import ca.gosyer.ui.base.vm.viewModel
import ca.gosyer.util.compose.ThemedWindow
import java.util.Locale
fun openExtensionsMenu() {
ThemedWindow(title = "TachideskJUI - Extensions", size = IntSize(550, 700)) {
@@ -126,7 +127,7 @@ fun ExtensionItem(
}
Text(title, fontSize = 26.sp, color = MaterialTheme.colors.onBackground)
Row {
Text(extension.lang.toUpperCase(), fontSize = 14.sp, color = MaterialTheme.colors.onBackground)
Text(extension.lang.uppercase(Locale.getDefault()), fontSize = 14.sp, color = MaterialTheme.colors.onBackground)
if (extension.nsfw) {
Spacer(Modifier.width(4.dp))
Text("18+", fontSize = 14.sp, color = Color.Red)

View File

@@ -28,6 +28,7 @@ import com.github.weisj.darklaf.theme.IntelliJTheme
import com.github.zsoltk.compose.backpress.BackPressHandler
import com.github.zsoltk.compose.backpress.LocalBackPressHandler
import com.github.zsoltk.compose.savedinstancestate.Bundle
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.launchIn
import org.apache.logging.log4j.core.config.Configurator
@@ -36,6 +37,7 @@ import toothpick.ktp.KTP
import toothpick.ktp.extension.getInstance
import javax.swing.SwingUtilities
@OptIn(DelicateCoroutinesApi::class)
fun main() {
val clazz = MainViewModel::class.java
Configurator.initialize(

View File

@@ -36,8 +36,8 @@ class ChapterLoader(
val pages = loader.getPages()
pages.drop(1).take(1).onEach { pages ->
if (pages.isEmpty()) {
pages.drop(1).take(1).onEach { newPages ->
if (newPages.isEmpty()) {
chapter.state = ReaderChapter.State.Error(Exception("No pages found"))
}
}.launchIn(chapter.scope)

View File

@@ -18,6 +18,7 @@ import ca.gosyer.ui.base.prefs.SwitchPreference
import ca.gosyer.ui.base.vm.ViewModel
import ca.gosyer.ui.base.vm.viewModel
import ca.gosyer.ui.main.Route
import ca.gosyer.util.lang.capitalize
import com.github.zsoltk.compose.router.BackStack
import java.text.DateFormat
import java.text.SimpleDateFormat
@@ -39,7 +40,9 @@ class SettingsGeneralViewModel @Inject constructor(
@Composable
fun getLanguageChoices(): Map<String, String> {
val currentLocaleDisplayName =
Locale.getDefault().let { it.getDisplayName(it).capitalize() }
Locale.getDefault().let { locale ->
locale.getDisplayName(locale).capitalize()
}
return mapOf(
"" to "System Default ($currentLocaleDisplayName)"
)

View File

@@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp
import ca.gosyer.data.models.Source
import ca.gosyer.ui.base.components.KtorImage
import ca.gosyer.ui.base.components.LoadingScreen
import java.util.Locale
@Composable
fun SourceHomeScreen(
@@ -80,7 +81,7 @@ fun SourceCategory(
) {
Column {
Surface(elevation = 1.dp, modifier = Modifier.fillMaxWidth()) {
Text(lang.toUpperCase(), modifier = Modifier.align(Alignment.CenterHorizontally), color = MaterialTheme.colors.onBackground)
Text(lang.uppercase(Locale.getDefault()), modifier = Modifier.align(Alignment.CenterHorizontally), color = MaterialTheme.colors.onBackground)
}
LazyVerticalGrid(GridCells.Adaptive(120.dp), state = state) {
items(sources) { source ->

View File

@@ -13,14 +13,14 @@ import javax.swing.JPopupMenu
import javax.swing.JSeparator
class ContextMenu internal constructor() {
internal val list = mutableListOf<Pair<Any, (() -> Unit)?>>()
internal val items = mutableListOf<Pair<Any, (() -> Unit)?>>()
internal fun popupMenu() = JPopupMenu().apply {
fun (() -> Unit)?.andClose() {
isVisible = false
this?.invoke()
}
list.forEach { (item, block) ->
items.forEach { (item, block) ->
when (item) {
is JMenuItem -> add(item).apply {
addActionListener {
@@ -33,10 +33,10 @@ class ContextMenu internal constructor() {
}
fun menuItem(name: String, icon: Icon? = null, builder: JMenuItem.() -> Unit = {}, action: () -> Unit) {
list += JMenuItem(name, icon).apply(builder) to action
items += JMenuItem(name, icon).apply(builder) to action
}
fun separator() {
list += JSeparator() to null
items += JSeparator() to null
}
}

View File

@@ -0,0 +1,32 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package ca.gosyer.util.lang
import kotlin.time.DurationUnit
import kotlin.time.toDuration
val Int.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)
val Long.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)
val Double.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)
val Int.microseconds get() = toDuration(DurationUnit.MICROSECONDS)
val Long.microseconds get() = toDuration(DurationUnit.MICROSECONDS)
val Double.microseconds get() = toDuration(DurationUnit.MICROSECONDS)
val Int.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)
val Long.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)
val Double.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)
val Int.seconds get() = toDuration(DurationUnit.SECONDS)
val Long.seconds get() = toDuration(DurationUnit.SECONDS)
val Double.seconds get() = toDuration(DurationUnit.SECONDS)
val Int.minutes get() = toDuration(DurationUnit.MINUTES)
val Long.minutes get() = toDuration(DurationUnit.MINUTES)
val Double.minutes get() = toDuration(DurationUnit.MINUTES)
val Int.hours get() = toDuration(DurationUnit.HOURS)
val Long.hours get() = toDuration(DurationUnit.HOURS)
val Double.hours get() = toDuration(DurationUnit.HOURS)
val Int.days get() = toDuration(DurationUnit.DAYS)
val Long.days get() = toDuration(DurationUnit.DAYS)
val Double.days get() = toDuration(DurationUnit.DAYS)

View File

@@ -0,0 +1,11 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package ca.gosyer.util.lang
import java.util.Locale
fun String.capitalize() = replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }