Merge branch 'android:main' into rename-function

pull/1275/head
Jaehwa Noh 8 months ago committed by GitHub
commit fc4f7930a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -2,70 +2,71 @@ androidx.activity:activity-compose:1.8.0
androidx.activity:activity-ktx:1.8.0 androidx.activity:activity-ktx:1.8.0
androidx.activity:activity:1.8.0 androidx.activity:activity:1.8.0
androidx.annotation:annotation-experimental:1.4.0 androidx.annotation:annotation-experimental:1.4.0
androidx.annotation:annotation-jvm:1.7.0 androidx.annotation:annotation-jvm:1.7.1
androidx.annotation:annotation:1.7.0 androidx.annotation:annotation:1.7.1
androidx.appcompat:appcompat-resources:1.6.1 androidx.appcompat:appcompat-resources:1.6.1
androidx.arch.core:core-common:2.2.0 androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0 androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0 androidx.autofill:autofill:1.0.0
androidx.browser:browser:1.6.0 androidx.browser:browser:1.8.0
androidx.collection:collection-jvm:1.4.0 androidx.collection:collection-jvm:1.4.0
androidx.collection:collection-ktx:1.4.0 androidx.collection:collection-ktx:1.4.0
androidx.collection:collection:1.4.0 androidx.collection:collection:1.4.0
androidx.compose.animation:animation-android:1.6.2 androidx.compose.animation:animation-android:1.6.3
androidx.compose.animation:animation-core-android:1.6.2 androidx.compose.animation:animation-core-android:1.6.3
androidx.compose.animation:animation-core:1.6.2 androidx.compose.animation:animation-core:1.6.3
androidx.compose.animation:animation:1.6.2 androidx.compose.animation:animation:1.6.3
androidx.compose.foundation:foundation-android:1.6.2 androidx.compose.foundation:foundation-android:1.6.3
androidx.compose.foundation:foundation-layout-android:1.6.2 androidx.compose.foundation:foundation-layout-android:1.6.3
androidx.compose.foundation:foundation-layout:1.6.2 androidx.compose.foundation:foundation-layout:1.6.3
androidx.compose.foundation:foundation:1.6.2 androidx.compose.foundation:foundation:1.6.3
androidx.compose.material3:material3-android:1.2.0 androidx.compose.material3:material3-android:1.2.1
androidx.compose.material3:material3:1.2.0 androidx.compose.material3:material3:1.2.1
androidx.compose.material:material-icons-core-android:1.6.2 androidx.compose.material:material-icons-core-android:1.6.3
androidx.compose.material:material-icons-core:1.6.2 androidx.compose.material:material-icons-core:1.6.3
androidx.compose.material:material-icons-extended-android:1.6.2 androidx.compose.material:material-icons-extended-android:1.6.3
androidx.compose.material:material-icons-extended:1.6.2 androidx.compose.material:material-icons-extended:1.6.3
androidx.compose.material:material-ripple-android:1.6.2 androidx.compose.material:material-ripple-android:1.6.3
androidx.compose.material:material-ripple:1.6.2 androidx.compose.material:material-ripple:1.6.3
androidx.compose.runtime:runtime-android:1.6.2 androidx.compose.runtime:runtime-android:1.6.3
androidx.compose.runtime:runtime-saveable-android:1.6.2 androidx.compose.runtime:runtime-saveable-android:1.6.3
androidx.compose.runtime:runtime-saveable:1.6.2 androidx.compose.runtime:runtime-saveable:1.6.3
androidx.compose.runtime:runtime:1.6.2 androidx.compose.runtime:runtime:1.6.3
androidx.compose.ui:ui-android:1.6.2 androidx.compose.ui:ui-android:1.6.3
androidx.compose.ui:ui-geometry-android:1.6.2 androidx.compose.ui:ui-geometry-android:1.6.3
androidx.compose.ui:ui-geometry:1.6.2 androidx.compose.ui:ui-geometry:1.6.3
androidx.compose.ui:ui-graphics-android:1.6.2 androidx.compose.ui:ui-graphics-android:1.6.3
androidx.compose.ui:ui-graphics:1.6.2 androidx.compose.ui:ui-graphics:1.6.3
androidx.compose.ui:ui-text-android:1.6.2 androidx.compose.ui:ui-text-android:1.6.3
androidx.compose.ui:ui-text:1.6.2 androidx.compose.ui:ui-text:1.6.3
androidx.compose.ui:ui-tooling-preview-android:1.6.2 androidx.compose.ui:ui-tooling-preview-android:1.6.3
androidx.compose.ui:ui-tooling-preview:1.6.2 androidx.compose.ui:ui-tooling-preview:1.6.3
androidx.compose.ui:ui-unit-android:1.6.2 androidx.compose.ui:ui-unit-android:1.6.3
androidx.compose.ui:ui-unit:1.6.2 androidx.compose.ui:ui-unit:1.6.3
androidx.compose.ui:ui-util-android:1.6.2 androidx.compose.ui:ui-util-android:1.6.3
androidx.compose.ui:ui-util:1.6.2 androidx.compose.ui:ui-util:1.6.3
androidx.compose.ui:ui:1.6.2 androidx.compose.ui:ui:1.6.3
androidx.compose:compose-bom:2024.02.01 androidx.compose:compose-bom:2024.02.02
androidx.concurrent:concurrent-futures:1.1.0 androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.12.0 androidx.core:core-ktx:1.12.0
androidx.core:core:1.12.0 androidx.core:core:1.12.0
androidx.customview:customview-poolingcontainer:1.0.0 androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.0.0 androidx.customview:customview:1.0.0
androidx.emoji2:emoji2:1.3.0 androidx.emoji2:emoji2:1.3.0
androidx.exifinterface:exifinterface:1.3.6 androidx.exifinterface:exifinterface:1.3.7
androidx.fragment:fragment:1.5.1 androidx.fragment:fragment:1.5.1
androidx.interpolator:interpolator:1.0.0 androidx.interpolator:interpolator:1.0.0
androidx.lifecycle:lifecycle-common-java8:2.6.2 androidx.lifecycle:lifecycle-common-java8:2.7.0
androidx.lifecycle:lifecycle-common:2.6.2 androidx.lifecycle:lifecycle-common:2.7.0
androidx.lifecycle:lifecycle-livedata-core:2.6.2 androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0
androidx.lifecycle:lifecycle-livedata:2.6.2 androidx.lifecycle:lifecycle-livedata-core:2.7.0
androidx.lifecycle:lifecycle-process:2.6.2 androidx.lifecycle:lifecycle-livedata:2.7.0
androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 androidx.lifecycle:lifecycle-process:2.7.0
androidx.lifecycle:lifecycle-runtime:2.6.2 androidx.lifecycle:lifecycle-runtime-ktx:2.7.0
androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 androidx.lifecycle:lifecycle-runtime:2.7.0
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0
androidx.lifecycle:lifecycle-viewmodel:2.6.2 androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0
androidx.lifecycle:lifecycle-viewmodel:2.7.0
androidx.loader:loader:1.0.0 androidx.loader:loader:1.0.0
androidx.metrics:metrics-performance:1.0.0-alpha04 androidx.metrics:metrics-performance:1.0.0-alpha04
androidx.profileinstaller:profileinstaller:1.3.1 androidx.profileinstaller:profileinstaller:1.3.1
@ -86,16 +87,16 @@ com.google.dagger:hilt-android:2.51
com.google.dagger:hilt-core:2.51 com.google.dagger:hilt-core:2.51
com.google.guava:listenablefuture:1.0 com.google.guava:listenablefuture:1.0
com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okhttp3:okhttp:4.12.0
com.squareup.okio:okio-jvm:3.6.0 com.squareup.okio:okio-jvm:3.8.0
com.squareup.okio:okio:3.6.0 com.squareup.okio:okio:3.8.0
io.coil-kt:coil-base:2.5.0 io.coil-kt:coil-base:2.6.0
io.coil-kt:coil-compose-base:2.5.0 io.coil-kt:coil-compose-base:2.6.0
io.coil-kt:coil-compose:2.5.0 io.coil-kt:coil-compose:2.6.0
io.coil-kt:coil:2.5.0 io.coil-kt:coil:2.6.0
javax.inject:javax.inject:1 javax.inject:javax.inject:1
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 org.jetbrains.kotlin:kotlin-stdlib:1.9.22
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3

@ -90,6 +90,8 @@ dependencies {
implementation(libs.androidx.activity.compose) implementation(libs.androidx.activity.compose)
implementation(libs.androidx.compose.material3.adaptive) implementation(libs.androidx.compose.material3.adaptive)
implementation(libs.androidx.compose.material3.adaptive.layout)
implementation(libs.androidx.compose.material3.adaptive.navigation)
implementation(libs.androidx.compose.material3.windowSizeClass) implementation(libs.androidx.compose.material3.windowSizeClass)
implementation(libs.androidx.compose.runtime.tracing) implementation(libs.androidx.compose.runtime.tracing)
implementation(libs.androidx.core.ktx) implementation(libs.androidx.core.ktx)

@ -2,57 +2,61 @@ androidx.activity:activity-compose:1.8.0
androidx.activity:activity-ktx:1.8.0 androidx.activity:activity-ktx:1.8.0
androidx.activity:activity:1.8.0 androidx.activity:activity:1.8.0
androidx.annotation:annotation-experimental:1.4.0 androidx.annotation:annotation-experimental:1.4.0
androidx.annotation:annotation-jvm:1.7.0 androidx.annotation:annotation-jvm:1.7.1
androidx.annotation:annotation:1.7.0 androidx.annotation:annotation:1.7.1
androidx.appcompat:appcompat-resources:1.6.1 androidx.appcompat:appcompat-resources:1.6.1
androidx.appcompat:appcompat:1.6.1 androidx.appcompat:appcompat:1.6.1
androidx.arch.core:core-common:2.2.0 androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0 androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0 androidx.autofill:autofill:1.0.0
androidx.browser:browser:1.6.0 androidx.browser:browser:1.8.0
androidx.collection:collection-jvm:1.4.0 androidx.collection:collection-jvm:1.4.0
androidx.collection:collection-ktx:1.4.0 androidx.collection:collection-ktx:1.4.0
androidx.collection:collection:1.4.0 androidx.collection:collection:1.4.0
androidx.compose.animation:animation-android:1.6.2 androidx.compose.animation:animation-android:1.6.3
androidx.compose.animation:animation-core-android:1.6.2 androidx.compose.animation:animation-core-android:1.6.3
androidx.compose.animation:animation-core:1.6.2 androidx.compose.animation:animation-core:1.6.3
androidx.compose.animation:animation:1.6.2 androidx.compose.animation:animation:1.6.3
androidx.compose.foundation:foundation-android:1.6.2 androidx.compose.foundation:foundation-android:1.6.3
androidx.compose.foundation:foundation-layout-android:1.6.2 androidx.compose.foundation:foundation-layout-android:1.6.3
androidx.compose.foundation:foundation-layout:1.6.2 androidx.compose.foundation:foundation-layout:1.6.3
androidx.compose.foundation:foundation:1.6.2 androidx.compose.foundation:foundation:1.6.3
androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06 androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha08
androidx.compose.material3:material3-adaptive:1.0.0-alpha06 androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha08
androidx.compose.material3:material3-android:1.2.0 androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha08
androidx.compose.material3:material3-window-size-class-android:1.2.0 androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha08
androidx.compose.material3:material3-window-size-class:1.2.0 androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha08
androidx.compose.material3:material3:1.2.0 androidx.compose.material3.adaptive:adaptive:1.0.0-alpha08
androidx.compose.material:material-icons-core-android:1.6.2 androidx.compose.material3:material3-android:1.2.1
androidx.compose.material:material-icons-core:1.6.2 androidx.compose.material3:material3-window-size-class-android:1.2.1
androidx.compose.material:material-icons-extended-android:1.6.2 androidx.compose.material3:material3-window-size-class:1.2.1
androidx.compose.material:material-icons-extended:1.6.2 androidx.compose.material3:material3:1.2.1
androidx.compose.material:material-ripple-android:1.6.2 androidx.compose.material:material-icons-core-android:1.6.3
androidx.compose.material:material-ripple:1.6.2 androidx.compose.material:material-icons-core:1.6.3
androidx.compose.runtime:runtime-android:1.6.2 androidx.compose.material:material-icons-extended-android:1.6.3
androidx.compose.runtime:runtime-saveable-android:1.6.2 androidx.compose.material:material-icons-extended:1.6.3
androidx.compose.runtime:runtime-saveable:1.6.2 androidx.compose.material:material-ripple-android:1.6.3
androidx.compose.material:material-ripple:1.6.3
androidx.compose.runtime:runtime-android:1.6.3
androidx.compose.runtime:runtime-saveable-android:1.6.3
androidx.compose.runtime:runtime-saveable:1.6.3
androidx.compose.runtime:runtime-tracing:1.0.0-beta01 androidx.compose.runtime:runtime-tracing:1.0.0-beta01
androidx.compose.runtime:runtime:1.6.2 androidx.compose.runtime:runtime:1.6.3
androidx.compose.ui:ui-android:1.6.2 androidx.compose.ui:ui-android:1.6.3
androidx.compose.ui:ui-geometry-android:1.6.2 androidx.compose.ui:ui-geometry-android:1.6.3
androidx.compose.ui:ui-geometry:1.6.2 androidx.compose.ui:ui-geometry:1.6.3
androidx.compose.ui:ui-graphics-android:1.6.2 androidx.compose.ui:ui-graphics-android:1.6.3
androidx.compose.ui:ui-graphics:1.6.2 androidx.compose.ui:ui-graphics:1.6.3
androidx.compose.ui:ui-text-android:1.6.2 androidx.compose.ui:ui-text-android:1.6.3
androidx.compose.ui:ui-text:1.6.2 androidx.compose.ui:ui-text:1.6.3
androidx.compose.ui:ui-tooling-preview-android:1.6.2 androidx.compose.ui:ui-tooling-preview-android:1.6.3
androidx.compose.ui:ui-tooling-preview:1.6.2 androidx.compose.ui:ui-tooling-preview:1.6.3
androidx.compose.ui:ui-unit-android:1.6.2 androidx.compose.ui:ui-unit-android:1.6.3
androidx.compose.ui:ui-unit:1.6.2 androidx.compose.ui:ui-unit:1.6.3
androidx.compose.ui:ui-util-android:1.6.2 androidx.compose.ui:ui-util-android:1.6.3
androidx.compose.ui:ui-util:1.6.2 androidx.compose.ui:ui-util:1.6.3
androidx.compose.ui:ui:1.6.2 androidx.compose.ui:ui:1.6.3
androidx.compose:compose-bom:2024.02.01 androidx.compose:compose-bom:2024.02.02
androidx.concurrent:concurrent-futures:1.1.0 androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.12.0 androidx.core:core-ktx:1.12.0
androidx.core:core-splashscreen:1.0.1 androidx.core:core-splashscreen:1.0.1
@ -68,11 +72,11 @@ androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0 androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0 androidx.emoji2:emoji2-views-helper:1.3.0
androidx.emoji2:emoji2:1.3.0 androidx.emoji2:emoji2:1.3.0
androidx.exifinterface:exifinterface:1.3.6 androidx.exifinterface:exifinterface:1.3.7
androidx.fragment:fragment:1.5.1 androidx.fragment:fragment:1.5.1
androidx.hilt:hilt-common:1.1.0 androidx.hilt:hilt-common:1.1.0
androidx.hilt:hilt-navigation-compose:1.0.0 androidx.hilt:hilt-navigation-compose:1.2.0
androidx.hilt:hilt-navigation:1.0.0 androidx.hilt:hilt-navigation:1.2.0
androidx.hilt:hilt-work:1.1.0 androidx.hilt:hilt-work:1.1.0
androidx.interpolator:interpolator:1.0.0 androidx.interpolator:interpolator:1.0.0
androidx.legacy:legacy-support-core-utils:1.0.0 androidx.legacy:legacy-support-core-utils:1.0.0
@ -119,7 +123,9 @@ androidx.vectordrawable:vectordrawable:1.1.0
androidx.versionedparcelable:versionedparcelable:1.1.1 androidx.versionedparcelable:versionedparcelable:1.1.1
androidx.viewpager:viewpager:1.0.0 androidx.viewpager:viewpager:1.0.0
androidx.window.extensions.core:core:1.0.0 androidx.window.extensions.core:core:1.0.0
androidx.window:window:1.2.0 androidx.window:window-core-android:1.3.0-alpha02
androidx.window:window-core:1.3.0-alpha02
androidx.window:window:1.3.0-alpha02
androidx.work:work-runtime-ktx:2.9.0 androidx.work:work-runtime-ktx:2.9.0
androidx.work:work-runtime:2.9.0 androidx.work:work-runtime:2.9.0
com.caverock:androidsvg-aar:1.4 com.caverock:androidsvg-aar:1.4
@ -181,33 +187,33 @@ com.google.protobuf:protobuf-kotlin-lite:3.25.2
com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0 com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0
com.squareup.okhttp3:logging-interceptor:4.12.0 com.squareup.okhttp3:logging-interceptor:4.12.0
com.squareup.okhttp3:okhttp:4.12.0 com.squareup.okhttp3:okhttp:4.12.0
com.squareup.okio:okio-jvm:3.6.0 com.squareup.okio:okio-jvm:3.8.0
com.squareup.okio:okio:3.6.0 com.squareup.okio:okio:3.8.0
com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.9.0
io.coil-kt:coil-base:2.5.0 io.coil-kt:coil-base:2.6.0
io.coil-kt:coil-compose-base:2.5.0 io.coil-kt:coil-compose-base:2.6.0
io.coil-kt:coil-compose:2.5.0 io.coil-kt:coil-compose:2.6.0
io.coil-kt:coil-svg:2.5.0 io.coil-kt:coil-svg:2.6.0
io.coil-kt:coil:2.5.0 io.coil-kt:coil:2.6.0
io.github.aakira:napier-android:1.4.1 io.github.aakira:napier-android:1.4.1
io.github.aakira:napier:1.4.1 io.github.aakira:napier:1.4.1
javax.inject:javax.inject:1 javax.inject:javax.inject:1
org.checkerframework:checker-qual:3.12.0 org.checkerframework:checker-qual:3.12.0
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 org.jetbrains.kotlin:kotlin-stdlib:1.9.22
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.5.0 org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.5.0
org.jetbrains.kotlinx:kotlinx-datetime:0.5.0 org.jetbrains.kotlinx:kotlinx-datetime:0.5.0
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.0 org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.0 org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3
org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.0 org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.0 org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3
org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0 org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3
org.jetbrains:annotations:23.0.0 org.jetbrains:annotations:23.0.0

@ -167,7 +167,7 @@ class NiaAppStateTest {
} }
@Test @Test
fun stateIsOfflineWhenNetworkMonitorIsOffline() = runTest(UnconfinedTestDispatcher()) { fun niaAppState_whenNetworkMonitorIsOffline_StateIsOffline() = runTest(UnconfinedTestDispatcher()) {
composeTestRule.setContent { composeTestRule.setContent {
state = NiaAppState( state = NiaAppState(
navController = NavHostController(LocalContext.current), navController = NavHostController(LocalContext.current),
@ -214,7 +214,7 @@ class NiaAppStateTest {
@Composable @Composable
private fun rememberTestNavController(): TestNavHostController { private fun rememberTestNavController(): TestNavHostController {
val context = LocalContext.current val context = LocalContext.current
return remember<TestNavHostController> { return remember {
TestNavHostController(context).apply { TestNavHostController(context).apply {
navigatorProvider.addNavigator(ComposeNavigator()) navigatorProvider.addNavigator(ComposeNavigator())
graph = createGraph(startDestination = "a") { graph = createGraph(startDestination = "a") {

@ -20,11 +20,11 @@ import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
import androidx.compose.material3.adaptive.ListDetailPaneScaffold import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold
import androidx.compose.material3.adaptive.ListDetailPaneScaffoldRole import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole
import androidx.compose.material3.adaptive.PaneAdaptedValue import androidx.compose.material3.adaptive.layout.PaneAdaptedValue
import androidx.compose.material3.adaptive.ThreePaneScaffoldNavigator import androidx.compose.material3.adaptive.navigation.ThreePaneScaffoldNavigator
import androidx.compose.material3.adaptive.rememberListDetailPaneScaffoldNavigator import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -93,7 +93,8 @@ internal fun InterestsListDetailScreen(
} }
ListDetailPaneScaffold( ListDetailPaneScaffold(
scaffoldState = listDetailNavigator.scaffoldState, value = listDetailNavigator.scaffoldValue,
directive = listDetailNavigator.scaffoldDirective,
listPane = { listPane = {
InterestsRoute( InterestsRoute(
onTopicClick = ::onTopicClickShowDetailPane, onTopicClick = ::onTopicClickShowDetailPane,
@ -129,8 +130,8 @@ internal fun InterestsListDetailScreen(
@OptIn(ExperimentalMaterial3AdaptiveApi::class) @OptIn(ExperimentalMaterial3AdaptiveApi::class)
private fun <T> ThreePaneScaffoldNavigator<T>.isListPaneVisible(): Boolean = private fun <T> ThreePaneScaffoldNavigator<T>.isListPaneVisible(): Boolean =
scaffoldState.scaffoldValue[ListDetailPaneScaffoldRole.List] == PaneAdaptedValue.Expanded scaffoldValue[ListDetailPaneScaffoldRole.List] == PaneAdaptedValue.Expanded
@OptIn(ExperimentalMaterial3AdaptiveApi::class) @OptIn(ExperimentalMaterial3AdaptiveApi::class)
private fun <T> ThreePaneScaffoldNavigator<T>.isDetailPaneVisible(): Boolean = private fun <T> ThreePaneScaffoldNavigator<T>.isDetailPaneVisible(): Boolean =
scaffoldState.scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded

@ -79,7 +79,7 @@ internal fun TopicRoute(
viewModel: TopicViewModel = hiltViewModel(), viewModel: TopicViewModel = hiltViewModel(),
) { ) {
val topicUiState: TopicUiState by viewModel.topicUiState.collectAsStateWithLifecycle() val topicUiState: TopicUiState by viewModel.topicUiState.collectAsStateWithLifecycle()
val newsUiState: NewsUiState by viewModel.newUiState.collectAsStateWithLifecycle() val newsUiState: NewsUiState by viewModel.newsUiState.collectAsStateWithLifecycle()
TrackScreenViewEvent(screenName = "Topic: ${viewModel.topicId}") TrackScreenViewEvent(screenName = "Topic: ${viewModel.topicId}")
TopicScreen( TopicScreen(

@ -62,7 +62,7 @@ class TopicViewModel @Inject constructor(
initialValue = TopicUiState.Loading, initialValue = TopicUiState.Loading,
) )
val newUiState: StateFlow<NewsUiState> = newsUiState( val newsUiState: StateFlow<NewsUiState> = newsUiState(
topicId = topicArgs.topicId, topicId = topicArgs.topicId,
userDataRepository = userDataRepository, userDataRepository = userDataRepository,
userNewsResourceRepository = userNewsResourceRepository, userNewsResourceRepository = userNewsResourceRepository,

@ -91,7 +91,7 @@ class TopicViewModelTest {
@Test @Test
fun uiStateNews_whenInitialized_thenShowLoading() = runTest { fun uiStateNews_whenInitialized_thenShowLoading() = runTest {
assertEquals(NewsUiState.Loading, viewModel.newUiState.value) assertEquals(NewsUiState.Loading, viewModel.newsUiState.value)
} }
@Test @Test
@ -117,7 +117,7 @@ class TopicViewModelTest {
topicsRepository.sendTopics(testInputTopics.map { it.topic }) topicsRepository.sendTopics(testInputTopics.map { it.topic })
userDataRepository.setFollowedTopicIds(setOf(testInputTopics[1].topic.id)) userDataRepository.setFollowedTopicIds(setOf(testInputTopics[1].topic.id))
val topicUiState = viewModel.topicUiState.value val topicUiState = viewModel.topicUiState.value
val newsUiState = viewModel.newUiState.value val newsUiState = viewModel.newsUiState.value
assertIs<TopicUiState.Success>(topicUiState) assertIs<TopicUiState.Success>(topicUiState)
assertIs<NewsUiState.Loading>(newsUiState) assertIs<NewsUiState.Loading>(newsUiState)
@ -131,7 +131,7 @@ class TopicViewModelTest {
val collectJob = launch(UnconfinedTestDispatcher()) { val collectJob = launch(UnconfinedTestDispatcher()) {
combine( combine(
viewModel.topicUiState, viewModel.topicUiState,
viewModel.newUiState, viewModel.newsUiState,
::Pair, ::Pair,
).collect() ).collect()
} }
@ -139,7 +139,7 @@ class TopicViewModelTest {
userDataRepository.setFollowedTopicIds(setOf(testInputTopics[1].topic.id)) userDataRepository.setFollowedTopicIds(setOf(testInputTopics[1].topic.id))
newsRepository.sendNewsResources(sampleNewsResources) newsRepository.sendNewsResources(sampleNewsResources)
val topicUiState = viewModel.topicUiState.value val topicUiState = viewModel.topicUiState.value
val newsUiState = viewModel.newUiState.value val newsUiState = viewModel.newsUiState.value
assertIs<TopicUiState.Success>(topicUiState) assertIs<TopicUiState.Success>(topicUiState)
assertIs<NewsUiState.Success>(newsUiState) assertIs<NewsUiState.Success>(newsUiState)

@ -6,16 +6,16 @@ androidGradlePlugin = "8.3.0"
androidTools = "31.3.0" androidTools = "31.3.0"
androidxActivity = "1.8.0" androidxActivity = "1.8.0"
androidxAppCompat = "1.6.1" androidxAppCompat = "1.6.1"
androidxBrowser = "1.6.0" androidxBrowser = "1.8.0"
androidxComposeBom = "2024.02.01" androidxComposeBom = "2024.02.02"
androidxComposeCompiler = "1.5.8" androidxComposeCompiler = "1.5.8"
androidxComposeMaterial3Adaptive = "1.0.0-alpha06" androidxComposeMaterial3Adaptive = "1.0.0-alpha08"
androidxComposeRuntimeTracing = "1.0.0-beta01" androidxComposeRuntimeTracing = "1.0.0-beta01"
androidxCore = "1.12.0" androidxCore = "1.12.0"
androidxCoreSplashscreen = "1.0.1" androidxCoreSplashscreen = "1.0.1"
androidxDataStore = "1.0.0" androidxDataStore = "1.0.0"
androidxEspresso = "3.5.1" androidxEspresso = "3.5.1"
androidxHiltNavigationCompose = "1.0.0" androidxHiltNavigationCompose = "1.2.0"
androidxLifecycle = "2.7.0" androidxLifecycle = "2.7.0"
androidxMacroBenchmark = "1.2.2" androidxMacroBenchmark = "1.2.2"
androidxMetrics = "1.0.0-alpha04" androidxMetrics = "1.0.0-alpha04"
@ -29,12 +29,12 @@ androidxTracing = "1.3.0-alpha02"
androidxUiAutomator = "2.2.0" androidxUiAutomator = "2.2.0"
androidxWindowManager = "1.2.0" androidxWindowManager = "1.2.0"
androidxWork = "2.9.0" androidxWork = "2.9.0"
coil = "2.5.0" coil = "2.6.0"
dependencyGuard = "0.4.3" dependencyGuard = "0.4.3"
firebaseBom = "32.4.0" firebaseBom = "32.4.0"
firebaseCrashlyticsPlugin = "2.9.9" firebaseCrashlyticsPlugin = "2.9.9"
firebasePerfPlugin = "1.4.2" firebasePerfPlugin = "1.4.2"
gmsPlugin = "4.4.0" gmsPlugin = "4.4.1"
googleOss = "17.0.1" googleOss = "17.0.1"
googleOssPlugin = "0.10.6" googleOssPlugin = "0.10.6"
hilt = "2.51" hilt = "2.51"
@ -42,9 +42,9 @@ hiltExt = "1.1.0"
jacoco = "0.8.7" jacoco = "0.8.7"
junit4 = "4.13.2" junit4 = "4.13.2"
kotlin = "1.9.22" kotlin = "1.9.22"
kotlinxCoroutines = "1.7.3" kotlinxCoroutines = "1.8.0"
kotlinxDatetime = "0.5.0" kotlinxDatetime = "0.5.0"
kotlinxSerializationJson = "1.6.0" kotlinxSerializationJson = "1.6.3"
ksp = "1.9.22-1.0.18" ksp = "1.9.22-1.0.18"
okhttp = "4.12.0" okhttp = "4.12.0"
protobuf = "3.25.2" protobuf = "3.25.2"
@ -71,7 +71,9 @@ androidx-compose-foundation = { group = "androidx.compose.foundation", name = "f
androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" } androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" }
androidx-compose-material-iconsExtended = { group = "androidx.compose.material", name = "material-icons-extended" } androidx-compose-material-iconsExtended = { group = "androidx.compose.material", name = "material-icons-extended" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-compose-material3-adaptive = { group = "androidx.compose.material3", name = "material3-adaptive", version.ref = "androidxComposeMaterial3Adaptive" } androidx-compose-material3-adaptive = { group = "androidx.compose.material3.adaptive", name = "adaptive", version.ref = "androidxComposeMaterial3Adaptive" }
androidx-compose-material3-adaptive-layout = { group = "androidx.compose.material3.adaptive", name = "adaptive-layout", version.ref = "androidxComposeMaterial3Adaptive" }
androidx-compose-material3-adaptive-navigation = { group = "androidx.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "androidxComposeMaterial3Adaptive" }
androidx-compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class" } androidx-compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class" }
androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" }
androidx-compose-runtime-tracing = { group = "androidx.compose.runtime", name = "runtime-tracing", version.ref = "androidxComposeRuntimeTracing" } androidx-compose-runtime-tracing = { group = "androidx.compose.runtime", name = "runtime-tracing", version.ref = "androidxComposeRuntimeTracing" }

Loading…
Cancel
Save