Skip to content

Commit 83b3308

Browse files
authored
Merge pull request #1757 from jakepurple13/develop
Fixing crash
2 parents cf8b728 + 2bd9bbd commit 83b3308

26 files changed

Lines changed: 1707 additions & 377 deletions

File tree

UIViews/src/main/java/com/programmersbox/uiviews/di/AppModule.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ val appModules = module {
3737
singleOf(::UpdateNotification)
3838
singleOf(::OtakuDataStoreHandling)
3939
singleOf(::SettingsHandling)
40+
includes(repository)
4041
}

UIViews/src/main/java/com/programmersbox/uiviews/presentation/navigation/NavGraphView.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ private fun Nav2(
240240
DebugView()
241241
}
242242
}
243+
244+
with(genericInfo) { settingsNavSetup() }
243245
}
244246
)
245247
}

UIViews/src/test/java/com/programmersbox/uiviews/ExampleUnitTest.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package com.programmersbox.uiviews
22

3-
import androidx.compose.ui.graphics.Color
4-
import androidx.compose.ui.graphics.toArgb
53
import com.programmersbox.models.ApiService
64
import com.programmersbox.models.InfoModel
7-
import com.programmersbox.uiviews.details.SwatchInfo
85
import kotlinx.coroutines.runBlocking
96
import org.junit.Test
107
import kotlin.system.measureNanoTime
@@ -43,12 +40,6 @@ object TestItems {
4340
override val baseUrl: String get() = ""
4441
}
4542

46-
val TEST_SWATCH = SwatchInfo(
47-
rgb = Color.Blue.toArgb(),
48-
titleColor = Color.Red.toArgb(),
49-
bodyColor = Color.Green.toArgb()
50-
)
51-
5243
val TEST_INFOMODEL = InfoModel(
5344
title = "Hello",
5445
description = "Hello World".repeat(50),

buildSrc/src/main/kotlin/AppInfo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
object AppInfo {
2-
const val otakuVersionName = "32.1.0"
2+
const val otakuVersionName = "32.1.1"
33
val versionCode by lazy {
44
val code = if (System.getenv("CI") != null) {
55
runCatching { System.getenv("GITHUB_RUN_NUMBER").toInt() }

gradle/libs.versions.toml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@ kamelImage = "1.0.5"
2525
latestAboutLibsRelease = "12.2.3"
2626
coroutinesVersion = "1.10.2"
2727
glideVersion = "4.16.0"
28-
lifecycleViewmodelNavigation3 = "1.0.0-alpha01"
29-
navigationevent = "1.0.0-alpha02"
3028
pagecurl = "1.5.1"
3129
pagingComposeCommon = "3.3.0-alpha02-0.5.1"
3230
pagingVersion = "3.3.6"
3331
protobufGradlePlugin = "0.9.5"
3432
qrose = "1.0.1"
3533
reorderable = "2.5.1"
36-
roomVersion = "2.7.1"
34+
roomVersion = "2.7.2"
3735
navVersion = "2.9.0"
3836
koin-bom = "4.1.0"
3937
coil = "3.2.0"
@@ -50,7 +48,7 @@ scanner = "0.4.0"
5048
textflowMaterial3 = "1.2.1"
5149
uiBackhandler = "1.8.0"
5250
urlencoderLib = "1.6.0"
53-
workVersion = "2.10.1"
51+
workVersion = "2.10.2"
5452
ziplineVersion = "1.1.0"
5553
protobufVersion = "4.26.1"
5654
sketchVersion = "3.3.2"
@@ -98,7 +96,7 @@ scenecore = "1.0.0-alpha04"
9896

9997
lottieCompose = "6.6.7"
10098

101-
sqlite = "2.5.1"
99+
sqlite = "2.5.2"
102100
kotlinTest = "2.1.20"
103101
runner = "1.6.2"
104102
core = "1.6.1"
@@ -119,7 +117,10 @@ buildKonfig = "0.17.1"
119117

120118
compottie = "2.0.0-rc04"
121119

122-
navigation3 = "1.0.0-alpha03"
120+
lifecycleViewmodelNavigation3 = "1.0.0-alpha02"
121+
navigationevent = "1.0.0-alpha03"
122+
123+
navigation3 = "1.0.0-alpha04"
123124
nav3Material = "1.0.0-SNAPSHOT"
124125

125126
[plugins]
@@ -145,6 +146,7 @@ androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", vers
145146
androidx-material3-navigation3 = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation3", version.ref = "nav3Material" }
146147

147148
androidx-navigationevent = { module = "androidx.navigationevent:navigationevent", version.ref = "navigationevent" }
149+
androidx-navigationevent-compose = { module = "androidx.navigationevent:navigationevent-compose", version.ref = "navigationevent" }
148150
barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "barcodeScanning" }
149151
compose-constraintlayout-compose-multiplatform = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version = "0.6.0-shaded-core" }
150152
constraintlayout-compose-multiplatform = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version = "0.6.0-shaded" }

kmpuiviews/build.gradle.kts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,19 @@ kotlin {
4949
implementation(compose.foundation)
5050
implementation(compose.material3AdaptiveNavigationSuite)
5151
implementation(compose.components.resources)
52-
implementation(libs.ui.backhandler)
52+
api(libs.ui.backhandler)
5353
implementation(libs.material3.window.size)
54-
implementation(libs.haze)
55-
implementation(libs.hazeMaterials)
54+
api(libs.haze)
55+
api(libs.hazeMaterials)
5656
implementation(libs.material.kolor)
57-
implementation(libs.kamel.image)
58-
implementation(libs.kamel.decoder.animated.image)
59-
implementation(libs.kamel.decoder.image.bitmap)
60-
implementation(libs.kamel.decoder.image.vector)
61-
implementation(libs.kamel.decoder.svg.std)
62-
implementation(libs.coilCompose)
63-
implementation(libs.kotlinxSerialization)
64-
implementation(libs.ktorCore)
57+
api(libs.kamel.image)
58+
api(libs.kamel.decoder.animated.image)
59+
api(libs.kamel.decoder.image.bitmap)
60+
api(libs.kamel.decoder.image.vector)
61+
api(libs.kamel.decoder.svg.std)
62+
api(libs.coilCompose)
63+
api(libs.kotlinxSerialization)
64+
api(libs.ktorCore)
6565
implementation(libs.ktorAuth)
6666
implementation(libs.ktorLogging)
6767
implementation(libs.ktorSerialization)
@@ -79,7 +79,7 @@ kotlin {
7979
implementation(projects.sharedutils.kmpextensionloader)
8080
implementation(libs.bundles.datastoreLibs)
8181

82-
implementation(libs.kotlinx.datetime)
82+
api(libs.kotlinx.datetime)
8383

8484
implementation(libs.roomRuntime)
8585

@@ -88,7 +88,7 @@ kotlin {
8888
implementation(libs.connectivity.core)
8989
implementation(libs.connectivity.compose)
9090

91-
implementation(libs.filekit.core)
91+
api(libs.filekit.core)
9292
implementation(libs.filekit.dialogs.compose)
9393

9494
implementation(libs.lifecycle.viewmodel.compose)
@@ -113,6 +113,7 @@ kotlin {
113113

114114
implementation(libs.qrose)
115115
implementation(libs.androidx.navigationevent)
116+
implementation(libs.androidx.navigationevent.compose)
116117
implementation(libs.scanner)
117118

118119
implementation(libs.multiplatform.lifecycle.runtime.compose)

mangaworld/desktop/src/jvmMain/kotlin/com/programmersbox/desktop/GenericMangaDesktop.kt

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.programmersbox.desktop
22

3+
import androidx.compose.animation.AnimatedContentTransitionScope
34
import androidx.compose.animation.ExperimentalAnimationApi
5+
import androidx.compose.animation.fadeIn
6+
import androidx.compose.animation.fadeOut
47
import androidx.compose.foundation.ExperimentalFoundationApi
58
import androidx.compose.foundation.layout.PaddingValues
69
import androidx.compose.foundation.lazy.grid.LazyGridState
@@ -9,6 +12,8 @@ import androidx.compose.runtime.Composable
912
import androidx.compose.ui.ExperimentalComposeUiApi
1013
import androidx.compose.ui.Modifier
1114
import androidx.navigation.NavGraphBuilder
15+
import androidx.navigation.compose.composable
16+
import androidx.navigation.toRoute
1217
import com.programmersbox.datastore.NewSettingsHandling
1318
import com.programmersbox.favoritesdatabase.DbModel
1419
import com.programmersbox.kmpmodels.KmpChapterModel
@@ -19,9 +24,19 @@ import com.programmersbox.kmpuiviews.domain.AppUpdate
1924
import com.programmersbox.kmpuiviews.presentation.navactions.NavigationActions
2025
import com.programmersbox.kmpuiviews.utils.ComponentState
2126
import com.programmersbox.kmpuiviews.utils.ComposeSettingsDsl
27+
import com.programmersbox.manga.shared.reader.ReadView
28+
import com.programmersbox.manga.shared.reader.ReadViewModel
29+
import com.programmersbox.manga.shared.settings.ImageLoaderSettings
30+
import com.programmersbox.manga.shared.settings.ImageLoaderSettingsRoute
31+
import com.programmersbox.manga.shared.settings.ReaderSettings
32+
import com.programmersbox.manga.shared.settings.ReaderSettingsScreen
33+
import com.programmersbox.mangasettings.MangaNewSettingsHandling
34+
import org.koin.compose.viewmodel.koinViewModel
35+
import org.koin.core.parameter.parametersOf
2236

2337
class GenericMangaDesktop(
2438
val settingsHandling: NewSettingsHandling,
39+
val mangaSettingsHandling: MangaNewSettingsHandling,
2540
) : KmpGenericInfo {
2641

2742
override val apkString: AppUpdate.AppUpdates.() -> String? = { "" }
@@ -169,13 +184,14 @@ class GenericMangaDesktop(
169184
ExperimentalFoundationApi::class
170185
)
171186
override fun NavGraphBuilder.globalNavSetup() {
172-
/*composable<ReadViewModel.MangaReader>(
187+
composable<ReadViewModel.MangaReader>(
173188
enterTransition = { fadeIn() },
174189
exitTransition = { fadeOut() },
175190
) {
176-
trackScreen("mangaReader")
177-
ReadView()
178-
}*/
191+
ReadView(
192+
viewModel = koinViewModel { parametersOf(it.toRoute<ReadViewModel.MangaReader>()) }
193+
)
194+
}
179195
}
180196

181197
override fun NavGraphBuilder.settingsNavSetup() {
@@ -186,26 +202,23 @@ class GenericMangaDesktop(
186202
) {
187203
trackScreen(DownloadViewModel.DownloadRoute)
188204
DownloadScreen()
189-
}
205+
}*/
190206

191-
composable(
192-
ImageLoaderSettingsRoute,
207+
composable<ImageLoaderSettingsRoute>(
193208
enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up) },
194209
exitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down) },
195210
) {
196-
trackScreen(ImageLoaderSettingsRoute)
197211
ImageLoaderSettings(mangaSettingsHandling)
198212
}
199213

200214
composable<ReaderSettingsScreen>(
201215
enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up) },
202216
exitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down) },
203217
) {
204-
trackScreen("readerSettings")
205218
ReaderSettings(
206219
mangaSettingsHandling = mangaSettingsHandling,
207220
settingsHandling = settingsHandling
208221
)
209-
}*/
222+
}
210223
}
211224
}

mangaworld/shared/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ kotlin {
3232
implementation(projects.datastore.mangasettings)
3333
implementation(projects.kmpmodels)
3434
implementation(libs.bundles.datastoreLibs)
35+
36+
implementation(libs.androidx.navigation3.runtime)
37+
38+
implementation(libs.zoomableModifier)
39+
implementation(libs.panpf.zoomimage.compose.glide)
40+
implementation(libs.telephoto.zoomable.image.glide)
41+
implementation(libs.coilCompose)
3542
}
3643

3744
jvmMain.dependencies {
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.programmersbox.manga.shared.reader
2+
3+
import androidx.activity.compose.LocalActivity
4+
import androidx.compose.runtime.Composable
5+
import androidx.compose.runtime.DisposableEffect
6+
import androidx.compose.runtime.MutableState
7+
import androidx.compose.runtime.mutableStateOf
8+
import androidx.compose.runtime.remember
9+
import androidx.core.view.WindowCompat
10+
import androidx.core.view.WindowInsetsCompat
11+
import androidx.core.view.WindowInsetsControllerCompat
12+
13+
@Composable
14+
actual fun insetsController(defaultValue: Boolean): MutableState<Boolean> {
15+
val state = remember(defaultValue) { mutableStateOf(defaultValue) }
16+
17+
val activity = LocalActivity.current
18+
19+
val insetsController = remember {
20+
activity?.let {
21+
WindowCompat.getInsetsController(it.window, it.window.decorView)
22+
}
23+
}
24+
DisposableEffect(state.value) {
25+
insetsController?.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
26+
if (state.value) {
27+
insetsController?.show(WindowInsetsCompat.Type.systemBars())
28+
} else {
29+
insetsController?.hide(WindowInsetsCompat.Type.systemBars())
30+
}
31+
32+
onDispose { insetsController?.show(WindowInsetsCompat.Type.systemBars()) }
33+
}
34+
35+
return state
36+
}

mangaworld/src/main/java/com/programmersbox/mangaworld/onboarding/OnboardingItems.kt renamed to mangaworld/shared/src/commonMain/kotlin/com/programmersbox/manga/shared/onboarding/OnboardingItems.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.programmersbox.mangaworld.onboarding
1+
package com.programmersbox.manga.shared.onboarding
22

33
import androidx.compose.foundation.clickable
44
import androidx.compose.foundation.layout.Arrangement
@@ -32,10 +32,10 @@ import androidx.compose.ui.unit.dp
3232
import com.programmersbox.kmpuiviews.presentation.components.settings.CategorySetting
3333
import com.programmersbox.kmpuiviews.presentation.components.settings.PreferenceSetting
3434
import com.programmersbox.kmpuiviews.presentation.components.settings.SwitchSetting
35+
import com.programmersbox.manga.shared.settings.ImageLoaderSettings
36+
import com.programmersbox.manga.shared.settings.ReaderTypeSetting
37+
import com.programmersbox.manga.shared.settings.SpacingSetting
3538
import com.programmersbox.mangasettings.MangaNewSettingsHandling
36-
import com.programmersbox.mangaworld.settings.ImageLoaderSettings
37-
import com.programmersbox.mangaworld.settings.ReaderTypeSetting
38-
import com.programmersbox.mangaworld.settings.SpacingSetting
3939
import kotlinx.coroutines.flow.first
4040
import kotlinx.coroutines.launch
4141
import kotlinx.coroutines.runBlocking

0 commit comments

Comments
 (0)