Add navigation and HomeScreenDestination

pull/3535/head
Alex Baker 8 months ago
parent e8b8fc0c87
commit d3fed98e64

@ -154,6 +154,7 @@ dependencies {
implementation(projects.data) implementation(projects.data)
implementation(projects.kmp) implementation(projects.kmp)
implementation(projects.icons) implementation(projects.icons)
implementation(libs.androidx.navigation)
implementation(libs.androidx.adaptive.navigation.android) implementation(libs.androidx.adaptive.navigation.android)
coreLibraryDesugaring(libs.desugar.jdk.libs) coreLibraryDesugaring(libs.desugar.jdk.libs)
implementation(libs.bitfire.dav4jvm) { implementation(libs.bitfire.dav4jvm) {

@ -16,27 +16,9 @@ import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode import androidx.appcompat.view.ActionMode
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.calculateEndPadding
import androidx.compose.foundation.layout.calculateStartPadding
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.systemBars
import androidx.compose.material3.DrawerValue import androidx.compose.material3.DrawerValue
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.ModalNavigationDrawer
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole
import androidx.compose.material3.adaptive.layout.PaneAdaptedValue import androidx.compose.material3.adaptive.layout.PaneAdaptedValue
import androidx.compose.material3.adaptive.layout.ThreePaneScaffoldRole import androidx.compose.material3.adaptive.layout.ThreePaneScaffoldRole
@ -44,24 +26,15 @@ import androidx.compose.material3.adaptive.layout.calculatePaneScaffoldDirective
import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator
import androidx.compose.material3.rememberDrawerState import androidx.compose.material3.rememberDrawerState
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.key
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.content.IntentCompat.getParcelableExtra import androidx.core.content.IntentCompat.getParcelableExtra
import androidx.fragment.compose.AndroidFragment
import androidx.fragment.compose.rememberFragmentState
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.todoroo.astrid.activity.TaskEditFragment.Companion.EXTRA_TASK import androidx.navigation.compose.NavHost
import com.todoroo.astrid.activity.TaskListFragment.Companion.EXTRA_FILTER import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import com.todoroo.astrid.adapter.SubheaderClickHandler import com.todoroo.astrid.adapter.SubheaderClickHandler
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.service.TaskCreator import com.todoroo.astrid.service.TaskCreator
@ -70,43 +43,27 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.tasks.BuildConfig import org.tasks.BuildConfig
import org.tasks.R import org.tasks.R
import org.tasks.TasksApplication
import org.tasks.activities.TagSettingsActivity
import org.tasks.analytics.Firebase import org.tasks.analytics.Firebase
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.billing.PurchaseActivity import org.tasks.compose.HomeDestination
import org.tasks.caldav.BaseCaldavCalendarSettingsActivity.Companion.EXTRA_CALDAV_ACCOUNT import org.tasks.compose.home.HomeScreen
import org.tasks.compose.drawer.DrawerAction
import org.tasks.compose.drawer.DrawerItem
import org.tasks.compose.drawer.MenuSearchBar
import org.tasks.compose.drawer.TaskListDrawer
import org.tasks.data.dao.AlarmDao import org.tasks.data.dao.AlarmDao
import org.tasks.data.dao.CaldavDao import org.tasks.data.dao.CaldavDao
import org.tasks.data.dao.LocationDao import org.tasks.data.dao.LocationDao
import org.tasks.data.dao.TagDataDao import org.tasks.data.dao.TagDataDao
import org.tasks.data.entity.Place import org.tasks.data.entity.Place
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.data.listSettingsClass
import org.tasks.dialogs.NewFilterDialog import org.tasks.dialogs.NewFilterDialog
import org.tasks.extensions.Context.nightMode import org.tasks.extensions.Context.nightMode
import org.tasks.extensions.Context.openUri
import org.tasks.extensions.broughtToFront import org.tasks.extensions.broughtToFront
import org.tasks.extensions.flagsToString import org.tasks.extensions.flagsToString
import org.tasks.extensions.isFromHistory import org.tasks.extensions.isFromHistory
import org.tasks.filters.Filter import org.tasks.filters.Filter
import org.tasks.filters.FilterProvider
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_LIST import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_LIST
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_PLACE import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_PLACE
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_TAGS
import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.kmp.org.tasks.compose.TouchSlopMultiplier
import org.tasks.kmp.org.tasks.compose.rememberImeState
import org.tasks.location.LocationPickerActivity
import org.tasks.location.LocationPickerActivity.Companion.EXTRA_PLACE import org.tasks.location.LocationPickerActivity.Companion.EXTRA_PLACE
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.HelpAndFeedback
import org.tasks.preferences.MainPreferences
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
@ -159,163 +116,30 @@ class MainActivity : AppCompatActivity() {
theme = theme.themeBase.index, theme = theme.themeBase.index,
primary = theme.themeColor.primaryColor, primary = theme.themeColor.primaryColor,
) { ) {
val drawerState = rememberDrawerState( val navController = rememberNavController()
initialValue = DrawerValue.Closed, NavHost(
confirmStateChange = { navController = navController,
viewModel.setDrawerState(it == DrawerValue.Open) startDestination = HomeDestination,
true ) {
} composable<HomeDestination> {
)
val state = viewModel.state.collectAsStateWithLifecycle().value
val currentWindowInsets = WindowInsets.systemBars.asPaddingValues()
val windowInsets = remember { mutableStateOf(currentWindowInsets) }
val keyboard = LocalSoftwareKeyboardController.current
LaunchedEffect(currentWindowInsets) {
Timber.d("insets: $currentWindowInsets")
if (currentWindowInsets.calculateTopPadding() != 0.dp || currentWindowInsets.calculateBottomPadding() != 0.dp) {
windowInsets.value = currentWindowInsets
}
}
val navigator = rememberListDetailPaneScaffoldNavigator(
calculatePaneScaffoldDirective(
windowAdaptiveInfo = currentWindowAdaptiveInfo(),
).copy(
horizontalPartitionSpacerSize = 0.dp,
verticalPartitionSpacerSize = 0.dp,
)
)
val isListVisible =
navigator.scaffoldValue[ListDetailPaneScaffoldRole.List] == PaneAdaptedValue.Expanded
val isDetailVisible =
navigator.scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded
TouchSlopMultiplier {
ModalNavigationDrawer(
drawerState = drawerState,
gesturesEnabled = isListVisible,
drawerContent = {
ModalDrawerSheet(
drawerState = drawerState,
windowInsets = WindowInsets(0, 0, 0, 0),
) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
TaskListDrawer(
arrangement = if (state.menuQuery.isBlank()) Arrangement.Top else Arrangement.Bottom,
filters = if (state.menuQuery.isNotEmpty()) state.searchItems else state.drawerItems,
onClick = {
when (it) {
is DrawerItem.Filter -> {
viewModel.setFilter(it.filter)
scope.launch {
drawerState.close()
keyboard?.hide()
}
}
is DrawerItem.Header -> {
viewModel.toggleCollapsed(it.header)
}
}
},
onAddClick = {
scope.launch {
drawerState.close()
when (it.header.addIntentRc) {
FilterProvider.REQUEST_NEW_FILTER ->
NewFilterDialog.newFilterDialog().show(
supportFragmentManager,
SubheaderClickHandler.FRAG_TAG_NEW_FILTER
)
REQUEST_NEW_PLACE ->
startActivityForResult(
Intent(
this@MainActivity,
LocationPickerActivity::class.java
),
REQUEST_NEW_PLACE
)
REQUEST_NEW_TAGS ->
startActivityForResult(
Intent(
this@MainActivity,
TagSettingsActivity::class.java
),
REQUEST_NEW_LIST
)
REQUEST_NEW_LIST -> {
val account =
caldavDao.getAccount(it.header.id.toLong())
?: return@launch
when (it.header.subheaderType) {
NavigationDrawerSubheader.SubheaderType.CALDAV,
NavigationDrawerSubheader.SubheaderType.TASKS,
->
startActivityForResult(
Intent(
this@MainActivity,
account.listSettingsClass()
)
.putExtra(
EXTRA_CALDAV_ACCOUNT,
account
),
REQUEST_NEW_LIST
)
else -> {}
}
}
else -> Timber.e("Unhandled request code: $it")
}
}
},
onErrorClick = {
context.startActivity(Intent(context, MainPreferences::class.java))
},
searchBar = {
MenuSearchBar(
begForMoney = state.begForMoney,
onDrawerAction = {
scope.launch {
drawerState.close()
when (it) {
DrawerAction.PURCHASE ->
if (TasksApplication.IS_GENERIC)
context.openUri(R.string.url_donate)
else
context.startActivity(
Intent(
context,
PurchaseActivity::class.java
)
)
DrawerAction.HELP_AND_FEEDBACK ->
context.startActivity(
Intent(
context,
HelpAndFeedback::class.java
)
)
}
}
},
query = state.menuQuery,
onQueryChange = { viewModel.queryMenu(it) },
)
},
)
}
}
) {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val state = viewModel.state.collectAsStateWithLifecycle().value
val drawerState = rememberDrawerState(
initialValue = DrawerValue.Closed,
confirmStateChange = {
viewModel.setDrawerState(it == DrawerValue.Open)
true
}
)
val navigator = rememberListDetailPaneScaffoldNavigator(
calculatePaneScaffoldDirective(
windowAdaptiveInfo = currentWindowAdaptiveInfo(),
).copy(
horizontalPartitionSpacerSize = 0.dp,
verticalPartitionSpacerSize = 0.dp,
)
)
val keyboard = LocalSoftwareKeyboardController.current
LaunchedEffect(state.task) { LaunchedEffect(state.task) {
if (state.task == null) { if (state.task == null) {
if (intent.finishAffinity) { if (intent.finishAffinity) {
@ -332,6 +156,8 @@ class MainActivity : AppCompatActivity() {
} }
} }
val isDetailVisible =
navigator.scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded
BackHandler(enabled = state.task == null) { BackHandler(enabled = state.task == null) {
Timber.d("onBackPressed") Timber.d("onBackPressed")
if (intent.finishAffinity) { if (intent.finishAffinity) {
@ -357,80 +183,21 @@ class MainActivity : AppCompatActivity() {
} }
drawerState.close() drawerState.close()
} }
ListDetailPaneScaffold( HomeScreen(
directive = navigator.scaffoldDirective, state = state,
value = navigator.scaffoldValue, drawerState = drawerState,
listPane = { navigator = navigator,
key (state.filter) { newList = {
val fragment = remember { mutableStateOf<TaskListFragment?>(null) } startActivityForResult(
val keyboardOpen = rememberImeState() Intent(this@MainActivity, it),
AndroidFragment<TaskListFragment>( REQUEST_NEW_LIST
fragmentState = rememberFragmentState(), )
arguments = remember(state.filter) {
Bundle()
.apply { putParcelable(EXTRA_FILTER, state.filter) }
},
modifier = Modifier
.fillMaxSize()
.imePadding(),
) { tlf ->
fragment.value = tlf
tlf.applyInsets(windowInsets.value)
tlf.setNavigationClickListener {
scope.launch { drawerState.open() }
}
}
LaunchedEffect(fragment, windowInsets, keyboardOpen.value) {
fragment.value?.applyInsets(
if (keyboardOpen.value) {
PaddingValues(
top = windowInsets.value.calculateTopPadding(),
)
} else {
windowInsets.value
}
)
}
}
}, },
detailPane = { showNewFilterDialog = {
val direction = LocalLayoutDirection.current NewFilterDialog.newFilterDialog().show(
Box( supportFragmentManager,
modifier = Modifier SubheaderClickHandler.FRAG_TAG_NEW_FILTER
.fillMaxSize() )
.padding(
top = windowInsets.value.calculateTopPadding(),
start = windowInsets.value.calculateStartPadding(direction),
end = windowInsets.value.calculateEndPadding(direction),
bottom = if (rememberImeState().value)
WindowInsets.ime.asPaddingValues().calculateBottomPadding()
else
windowInsets.value.calculateBottomPadding()
),
contentAlignment = Alignment.Center,
) {
if (state.task == null) {
if (isListVisible && isDetailVisible) {
Icon(
painter = painterResource(org.tasks.kmp.R.drawable.ic_launcher_no_shadow_foreground),
contentDescription = null,
modifier = Modifier.size(192.dp),
tint = MaterialTheme.colorScheme.onSurfaceVariant,
)
}
} else {
key(state.task) {
AndroidFragment<TaskEditFragment>(
fragmentState = rememberFragmentState(),
arguments = remember(state.task) {
Bundle()
.apply { putParcelable(EXTRA_TASK, state.task) }
},
modifier = Modifier.fillMaxSize(),
)
}
}
}
}, },
) )
} }

@ -232,4 +232,6 @@ class MainActivityViewModel @Inject constructor(
_state.update { it.copy(menuQuery = query) } _state.update { it.copy(menuQuery = query) }
updateFilters() updateFilters()
} }
suspend fun getAccount(id: Long) = caldavDao.getAccount(id)
} }

@ -0,0 +1,6 @@
package org.tasks.compose
import kotlinx.serialization.Serializable
@Serializable
object HomeDestination

@ -0,0 +1,273 @@
package org.tasks.compose.home
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.calculateEndPadding
import androidx.compose.foundation.layout.calculateStartPadding
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.systemBars
import androidx.compose.material3.DrawerState
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.ModalNavigationDrawer
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole
import androidx.compose.material3.adaptive.layout.PaneAdaptedValue
import androidx.compose.material3.adaptive.navigation.ThreePaneScaffoldNavigator
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.key
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.fragment.compose.AndroidFragment
import androidx.fragment.compose.rememberFragmentState
import androidx.hilt.navigation.compose.hiltViewModel
import com.todoroo.astrid.activity.MainActivityViewModel
import com.todoroo.astrid.activity.TaskEditFragment
import com.todoroo.astrid.activity.TaskEditFragment.Companion.EXTRA_TASK
import com.todoroo.astrid.activity.TaskListFragment
import com.todoroo.astrid.activity.TaskListFragment.Companion.EXTRA_FILTER
import kotlinx.coroutines.launch
import org.tasks.R
import org.tasks.TasksApplication
import org.tasks.activities.TagSettingsActivity
import org.tasks.billing.PurchaseActivity
import org.tasks.compose.drawer.DrawerAction
import org.tasks.compose.drawer.DrawerItem
import org.tasks.compose.drawer.MenuSearchBar
import org.tasks.compose.drawer.TaskListDrawer
import org.tasks.data.listSettingsClass
import org.tasks.extensions.Context.openUri
import org.tasks.filters.FilterProvider
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_LIST
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_PLACE
import org.tasks.filters.FilterProvider.Companion.REQUEST_NEW_TAGS
import org.tasks.filters.NavigationDrawerSubheader
import org.tasks.kmp.org.tasks.compose.TouchSlopMultiplier
import org.tasks.kmp.org.tasks.compose.rememberImeState
import org.tasks.location.LocationPickerActivity
import org.tasks.preferences.HelpAndFeedback
import org.tasks.preferences.MainPreferences
import timber.log.Timber
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
@Composable
fun HomeScreen(
viewModel: MainActivityViewModel = hiltViewModel(),
newList: suspend (Class<out Activity>) -> Unit,
state: MainActivityViewModel.State,
drawerState: DrawerState,
showNewFilterDialog: () -> Unit,
navigator: ThreePaneScaffoldNavigator<Any>,
) {
val currentWindowInsets = WindowInsets.systemBars.asPaddingValues()
val windowInsets = remember { mutableStateOf(currentWindowInsets) }
val keyboard = LocalSoftwareKeyboardController.current
LaunchedEffect(currentWindowInsets) {
Timber.d("insets: $currentWindowInsets")
if (currentWindowInsets.calculateTopPadding() != 0.dp || currentWindowInsets.calculateBottomPadding() != 0.dp) {
windowInsets.value = currentWindowInsets
}
}
val isListVisible =
navigator.scaffoldValue[ListDetailPaneScaffoldRole.List] == PaneAdaptedValue.Expanded
val isDetailVisible =
navigator.scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded
TouchSlopMultiplier {
ModalNavigationDrawer(
drawerState = drawerState,
gesturesEnabled = isListVisible,
drawerContent = {
ModalDrawerSheet(
drawerState = drawerState,
windowInsets = WindowInsets(0, 0, 0, 0),
) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
TaskListDrawer(
arrangement = if (state.menuQuery.isBlank()) Arrangement.Top else Arrangement.Bottom,
filters = if (state.menuQuery.isNotEmpty()) state.searchItems else state.drawerItems,
onClick = {
when (it) {
is DrawerItem.Filter -> {
viewModel.setFilter(it.filter)
scope.launch {
drawerState.close()
keyboard?.hide()
}
}
is DrawerItem.Header -> {
viewModel.toggleCollapsed(it.header)
}
}
},
onAddClick = {
scope.launch {
drawerState.close()
when (it.header.addIntentRc) {
FilterProvider.REQUEST_NEW_FILTER ->
showNewFilterDialog()
REQUEST_NEW_PLACE ->
newList(LocationPickerActivity::class.java)
REQUEST_NEW_TAGS ->
newList(TagSettingsActivity::class.java)
REQUEST_NEW_LIST ->
when (it.header.subheaderType) {
NavigationDrawerSubheader.SubheaderType.CALDAV,
NavigationDrawerSubheader.SubheaderType.TASKS ->
viewModel
.getAccount(it.header.id.toLong())
?.let { newList(it.listSettingsClass()) }
else -> {}
}
else -> Timber.e("Unhandled request code: $it")
}
}
},
onErrorClick = {
context.startActivity(Intent(context, MainPreferences::class.java))
},
searchBar = {
MenuSearchBar(
begForMoney = state.begForMoney,
onDrawerAction = {
scope.launch {
drawerState.close()
when (it) {
DrawerAction.PURCHASE ->
if (TasksApplication.IS_GENERIC)
context.openUri(R.string.url_donate)
else
context.startActivity(
Intent(
context,
PurchaseActivity::class.java
)
)
DrawerAction.HELP_AND_FEEDBACK ->
context.startActivity(
Intent(
context,
HelpAndFeedback::class.java
)
)
}
}
},
query = state.menuQuery,
onQueryChange = { viewModel.queryMenu(it) },
)
},
)
}
}
) {
val scope = rememberCoroutineScope()
ListDetailPaneScaffold(
directive = navigator.scaffoldDirective,
value = navigator.scaffoldValue,
listPane = {
key (state.filter) {
val fragment = remember { mutableStateOf<TaskListFragment?>(null) }
val keyboardOpen = rememberImeState()
AndroidFragment<TaskListFragment>(
fragmentState = rememberFragmentState(),
arguments = remember(state.filter) {
Bundle()
.apply { putParcelable(EXTRA_FILTER, state.filter) }
},
modifier = Modifier
.fillMaxSize()
.imePadding(),
) { tlf ->
fragment.value = tlf
tlf.applyInsets(windowInsets.value)
tlf.setNavigationClickListener {
scope.launch { drawerState.open() }
}
}
LaunchedEffect(fragment, windowInsets, keyboardOpen.value) {
fragment.value?.applyInsets(
if (keyboardOpen.value) {
PaddingValues(
top = windowInsets.value.calculateTopPadding(),
)
} else {
windowInsets.value
}
)
}
}
},
detailPane = {
val direction = LocalLayoutDirection.current
Box(
modifier = Modifier
.fillMaxSize()
.padding(
top = windowInsets.value.calculateTopPadding(),
start = windowInsets.value.calculateStartPadding(direction),
end = windowInsets.value.calculateEndPadding(direction),
bottom = if (rememberImeState().value)
WindowInsets.ime.asPaddingValues().calculateBottomPadding()
else
windowInsets.value.calculateBottomPadding()
),
contentAlignment = Alignment.Center,
) {
if (state.task == null) {
if (isListVisible && isDetailVisible) {
Icon(
painter = painterResource(org.tasks.kmp.R.drawable.ic_launcher_no_shadow_foreground),
contentDescription = null,
modifier = Modifier.size(192.dp),
tint = MaterialTheme.colorScheme.onSurfaceVariant,
)
}
} else {
key(state.task) {
AndroidFragment<TaskEditFragment>(
fragmentState = rememberFragmentState(),
arguments = remember(state.task) {
Bundle()
.apply { putParcelable(EXTRA_TASK, state.task) }
},
modifier = Modifier.fillMaxSize(),
)
}
}
}
},
)
}
}
}

@ -68,7 +68,6 @@
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*)
+| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -80,7 +79,8 @@
+| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
++--- androidx.databinding:databinding-adapters:8.9.1 ++--- androidx.databinding:databinding-adapters:8.9.1
+| +--- androidx.databinding:databinding-runtime:8.9.1 (*) +| +--- androidx.databinding:databinding-runtime:8.9.1 (*)
+| \--- androidx.databinding:databinding-common:8.9.1 +| \--- androidx.databinding:databinding-common:8.9.1
@ -120,7 +120,6 @@
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -132,12 +131,12 @@
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -149,11 +148,11 @@
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -165,14 +164,14 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.7 +| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.7
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*) +| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | +--- androidx.startup:startup-runtime:1.1.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -184,12 +183,12 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.7 +| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.7
+| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -201,7 +200,8 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 +| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7
+| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.7 +| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.7
+| +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*)
@ -209,7 +209,6 @@
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -221,7 +220,8 @@
+| +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
++--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20 ++--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
+| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*)
+| \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20 +| \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
@ -387,7 +387,6 @@
+| | | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -399,7 +398,8 @@
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | | | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 (*) +| | | | | | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 (*)
+| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | | | | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | | | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*)
@ -414,7 +414,6 @@
+| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -426,7 +425,8 @@
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1
+| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.1.20 (*) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.1.20 (*)
@ -546,7 +546,6 @@
+| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (*) +| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (*)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -558,7 +557,8 @@
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*)
+| | | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
+| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
@ -873,7 +873,6 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -885,7 +884,8 @@
+| | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- co.touchlab:kermit:2.0.5 (*) +| +--- co.touchlab:kermit:2.0.5 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 (*) +| +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8
@ -969,6 +969,59 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 -> 2.1.20 (*)
+| | \--- androidx.startup:startup-runtime:1.1.1 (*) +| | \--- androidx.startup:startup-runtime:1.1.1 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.20 (*)
++--- androidx.navigation:navigation-compose:2.8.9
+| +--- androidx.activity:activity-compose:1.8.0 -> 1.10.1 (*)
+| +--- androidx.compose.animation:animation:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.foundation:foundation-layout:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.runtime:runtime:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.runtime:runtime-saveable:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.ui:ui:1.7.2 -> 1.7.8 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.7 (*)
+| +--- androidx.navigation:navigation-runtime-ktx:2.8.9
+| | +--- androidx.navigation:navigation-common-ktx:2.8.9
+| | | +--- androidx.navigation:navigation-common:2.8.9
+| | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
+| | | | +--- androidx.collection:collection-ktx:1.4.2 -> 1.4.4 (*)
+| | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
+| | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| | | | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.9
+| | | +--- androidx.activity:activity-ktx:1.7.1 -> 1.10.1 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
+| | | +--- androidx.collection:collection:1.4.2 -> 1.4.4 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | \--- androidx.navigation:navigation-common:2.8.9 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| +--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| \--- androidx.navigation:navigation-common:2.8.9 (c)
++--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 ++--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
+| +--- androidx.activity:activity-compose:1.8.2 -> 1.10.1 (*) +| +--- androidx.activity:activity-compose:1.8.2 -> 1.10.1 (*)
+| +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
@ -1077,7 +1130,6 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -1089,7 +1141,8 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1 -> 2.8.7 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1 -> 2.8.7 (*)
+| +--- com.google.android.material:material:1.6.0 -> 1.12.0 +| +--- com.google.android.material:material:1.6.0 -> 1.12.0
+| | +--- org.jetbrains.kotlin:kotlin-bom:1.8.22 +| | +--- org.jetbrains.kotlin:kotlin-bom:1.8.22
@ -1183,39 +1236,11 @@
+| +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*)
+| +--- androidx.hilt:hilt-navigation:1.2.0 +| +--- androidx.hilt:hilt-navigation:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| | +--- androidx.navigation:navigation-runtime:2.5.1 +| | +--- androidx.navigation:navigation-runtime:2.5.1 -> 2.8.9 (*)
+| | | +--- androidx.activity:activity-ktx:1.5.1 -> 1.10.1 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.4.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.8.7 (*)
+| | | +--- androidx.navigation:navigation-common:2.5.1
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| | | | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*)
+| | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.savedstate:savedstate-ktx:1.2.0 -> 1.2.1 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| | +--- com.google.dagger:hilt-android:2.49 -> 2.56.2 (*) +| | +--- com.google.dagger:hilt-android:2.49 -> 2.56.2 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1 -> 2.8.7 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1 -> 2.8.7 (*)
+| +--- androidx.navigation:navigation-compose:2.5.1 +| +--- androidx.navigation:navigation-compose:2.5.1 -> 2.8.9 (*)
+| | +--- androidx.activity:activity-compose:1.5.1 -> 1.10.1 (*)
+| | +--- androidx.compose.animation:animation:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 -> 2.8.7 (*)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.5.1
+| | | +--- androidx.navigation:navigation-common-ktx:2.5.1
+| | | | \--- androidx.navigation:navigation-common:2.5.1 (*)
+| | | \--- androidx.navigation:navigation-runtime:2.5.1 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
++--- androidx.hilt:hilt-work:1.2.0 ++--- androidx.hilt:hilt-work:1.2.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
@ -1401,12 +1426,12 @@
+| +--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 (c)
+| +--- androidx.compose.runtime:runtime:1.7.8 (c) +| +--- androidx.compose.runtime:runtime:1.7.8 (c)
+| +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c) +| +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c)
+| +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
+| +--- androidx.compose.ui:ui:1.7.8 (c) +| +--- androidx.compose.ui:ui:1.7.8 (c)
+| +--- androidx.compose.ui:ui-geometry:1.7.8 (c) +| +--- androidx.compose.ui:ui-geometry:1.7.8 (c)
+| +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c) +| +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c)
+| +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c) +| +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c)
+| +--- androidx.compose.ui:ui-util:1.7.8 (c) +| +--- androidx.compose.ui:ui-util:1.7.8 (c)
+| +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
+| +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c) +| +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c)
+| +--- androidx.compose.animation:animation-android:1.7.8 (c) +| +--- androidx.compose.animation:animation-android:1.7.8 (c)
+| +--- androidx.compose.animation:animation-core-android:1.7.8 (c) +| +--- androidx.compose.animation:animation-core-android:1.7.8 (c)
@ -1416,10 +1441,10 @@
+| +--- androidx.compose.material:material-icons-extended-android:1.7.8 (c) +| +--- androidx.compose.material:material-icons-extended-android:1.7.8 (c)
+| +--- androidx.compose.material3:material3-android:1.3.2 (c) +| +--- androidx.compose.material3:material3-android:1.3.2 (c)
+| +--- androidx.compose.runtime:runtime-android:1.7.8 (c) +| +--- androidx.compose.runtime:runtime-android:1.7.8 (c)
+| +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
+| +--- androidx.compose.ui:ui-android:1.7.8 (c) +| +--- androidx.compose.ui:ui-android:1.7.8 (c)
+| +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c) +| +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c)
+| +--- androidx.compose.ui:ui-util-android:1.7.8 (c) +| +--- androidx.compose.ui:ui-util-android:1.7.8 (c)
+| +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
+| +--- androidx.compose.ui:ui-text:1.7.8 (c) +| +--- androidx.compose.ui:ui-text:1.7.8 (c)
+| +--- androidx.compose.material:material-icons-core:1.7.8 (c) +| +--- androidx.compose.material:material-icons-core:1.7.8 (c)
+| +--- androidx.compose.material:material-ripple:1.7.8 (c) +| +--- androidx.compose.material:material-ripple:1.7.8 (c)

@ -69,7 +69,6 @@
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*)
+| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -81,7 +80,8 @@
+| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
++--- androidx.databinding:databinding-adapters:8.9.1 ++--- androidx.databinding:databinding-adapters:8.9.1
+| +--- androidx.databinding:databinding-runtime:8.9.1 (*) +| +--- androidx.databinding:databinding-runtime:8.9.1 (*)
+| \--- androidx.databinding:databinding-common:8.9.1 +| \--- androidx.databinding:databinding-common:8.9.1
@ -99,7 +99,6 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -111,7 +110,8 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata:2.6.1 -> 2.8.7 +| +--- androidx.lifecycle:lifecycle-livedata:2.6.1 -> 2.8.7
+| | +--- 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 (*)
@ -121,7 +121,6 @@
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -133,12 +132,12 @@
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -150,11 +149,11 @@
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
@ -166,14 +165,14 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.7 +| +--- androidx.lifecycle:lifecycle-process:2.6.1 -> 2.8.7
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*) +| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | +--- androidx.startup:startup-runtime:1.1.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -185,7 +184,8 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.7 +| +--- androidx.lifecycle:lifecycle-service:2.6.1 -> 2.8.7
+| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
@ -200,9 +200,9 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 +| \--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7
+| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.7 +| \--- androidx.lifecycle:lifecycle-viewmodel-android:2.8.7
+| +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*)
@ -210,7 +210,6 @@
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -222,7 +221,8 @@
+| +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
++--- com.google.firebase:firebase-bom:33.12.0 ++--- com.google.firebase:firebase-bom:33.12.0
+| +--- com.google.firebase:firebase-analytics:22.4.0 (c) +| +--- com.google.firebase:firebase-analytics:22.4.0 (c)
+| +--- com.google.firebase:firebase-config-ktx:22.1.0 (c) +| +--- com.google.firebase:firebase-config-ktx:22.1.0 (c)
@ -283,7 +283,6 @@
+| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -295,7 +294,8 @@
+| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 (*) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 (*)
+| | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*)
@ -702,12 +702,12 @@
+| | | +--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 (c) +| | | +--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 (c)
+| | | +--- androidx.compose.runtime:runtime:1.7.8 (c) +| | | +--- androidx.compose.runtime:runtime:1.7.8 (c)
+| | | +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c) +| | | +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui:1.7.8 (c) +| | | +--- androidx.compose.ui:ui:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-geometry:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-geometry:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-util:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-util:1.7.8 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
+| | | +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c) +| | | +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c)
+| | | +--- androidx.compose.animation:animation-android:1.7.8 (c) +| | | +--- androidx.compose.animation:animation-android:1.7.8 (c)
+| | | +--- androidx.compose.animation:animation-core-android:1.7.8 (c) +| | | +--- androidx.compose.animation:animation-core-android:1.7.8 (c)
@ -717,10 +717,10 @@
+| | | +--- androidx.compose.material:material-icons-extended-android:1.7.8 (c) +| | | +--- androidx.compose.material:material-icons-extended-android:1.7.8 (c)
+| | | +--- androidx.compose.material3:material3-android:1.3.2 (c) +| | | +--- androidx.compose.material3:material3-android:1.3.2 (c)
+| | | +--- androidx.compose.runtime:runtime-android:1.7.8 (c) +| | | +--- androidx.compose.runtime:runtime-android:1.7.8 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-android:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-android:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-util-android:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-util-android:1.7.8 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
+| | | +--- androidx.compose.ui:ui-text:1.7.8 (c) +| | | +--- androidx.compose.ui:ui-text:1.7.8 (c)
+| | | +--- androidx.compose.material:material-icons-core:1.7.8 (c) +| | | +--- androidx.compose.material:material-icons-core:1.7.8 (c)
+| | | +--- androidx.compose.material:material-ripple:1.7.8 (c) +| | | +--- androidx.compose.material:material-ripple:1.7.8 (c)
@ -926,7 +926,6 @@
+| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.1 (*)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -938,7 +937,8 @@
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1
+| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | | | | | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.1.20 (*) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.1.20 (*)
@ -1052,7 +1052,6 @@
+| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) +| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (*) +| | | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (*)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -1064,7 +1063,8 @@
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | | | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*)
+| | | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*) +| | | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
+| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
@ -1306,7 +1306,6 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -1318,7 +1317,8 @@
+| | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- co.touchlab:kermit:2.0.5 (*) +| +--- co.touchlab:kermit:2.0.5 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 (*) +| +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 +| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8
@ -1337,6 +1337,59 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 -> 2.1.20 (*)
+| | \--- androidx.startup:startup-runtime:1.1.1 (*) +| | \--- androidx.startup:startup-runtime:1.1.1 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.20 (*)
++--- androidx.navigation:navigation-compose:2.8.9
+| +--- androidx.activity:activity-compose:1.8.0 -> 1.10.1 (*)
+| +--- androidx.compose.animation:animation:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.foundation:foundation-layout:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.runtime:runtime:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.runtime:runtime-saveable:1.7.2 -> 1.7.8 (*)
+| +--- androidx.compose.ui:ui:1.7.2 -> 1.7.8 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.7 (*)
+| +--- androidx.navigation:navigation-runtime-ktx:2.8.9
+| | +--- androidx.navigation:navigation-common-ktx:2.8.9
+| | | +--- androidx.navigation:navigation-common:2.8.9
+| | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
+| | | | +--- androidx.collection:collection-ktx:1.4.2 -> 1.4.4 (*)
+| | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.7 (*)
+| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
+| | | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| | | | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.9
+| | | +--- androidx.activity:activity-ktx:1.7.1 -> 1.10.1 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
+| | | +--- androidx.collection:collection:1.4.2 -> 1.4.4 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | | \--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| | +--- androidx.navigation:navigation-compose:2.8.9 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| | \--- androidx.navigation:navigation-common:2.8.9 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.8.1 (*)
+| +--- androidx.navigation:navigation-runtime-ktx:2.8.9 (c)
+| +--- androidx.navigation:navigation-common-ktx:2.8.9 (c)
+| +--- androidx.navigation:navigation-runtime:2.8.9 (c)
+| \--- androidx.navigation:navigation-common:2.8.9 (c)
++--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0 ++--- androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
+| +--- androidx.activity:activity-compose:1.8.2 -> 1.10.1 (*) +| +--- androidx.activity:activity-compose:1.8.2 -> 1.10.1 (*)
+| +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
@ -1445,7 +1498,6 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.1 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
@ -1457,7 +1509,8 @@
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | \--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1 -> 2.8.7 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1 -> 2.8.7 (*)
+| +--- com.google.android.material:material:1.6.0 -> 1.12.0 +| +--- com.google.android.material:material:1.6.0 -> 1.12.0
+| | +--- org.jetbrains.kotlin:kotlin-bom:1.8.22 +| | +--- org.jetbrains.kotlin:kotlin-bom:1.8.22
@ -1542,39 +1595,11 @@
+| +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*)
+| +--- androidx.hilt:hilt-navigation:1.2.0 +| +--- androidx.hilt:hilt-navigation:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| | +--- androidx.navigation:navigation-runtime:2.5.1 +| | +--- androidx.navigation:navigation-runtime:2.5.1 -> 2.8.9 (*)
+| | | +--- androidx.activity:activity-ktx:1.5.1 -> 1.10.1 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.4.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.8.7 (*)
+| | | +--- androidx.navigation:navigation-common:2.5.1
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| | | | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*)
+| | | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 -> 2.8.7 (*)
+| | | | +--- androidx.savedstate:savedstate-ktx:1.2.0 -> 1.2.1 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| | +--- com.google.dagger:hilt-android:2.49 -> 2.56.2 (*) +| | +--- com.google.dagger:hilt-android:2.49 -> 2.56.2 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1 -> 2.8.7 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1 -> 2.8.7 (*)
+| +--- androidx.navigation:navigation-compose:2.5.1 +| +--- androidx.navigation:navigation-compose:2.5.1 -> 2.8.9 (*)
+| | +--- androidx.activity:activity-compose:1.5.1 -> 1.10.1 (*)
+| | +--- androidx.compose.animation:animation:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.compose.ui:ui:1.0.1 -> 1.7.8 (*)
+| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 -> 2.8.7 (*)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.5.1
+| | | +--- androidx.navigation:navigation-common-ktx:2.5.1
+| | | | \--- androidx.navigation:navigation-common:2.5.1 (*)
+| | | \--- androidx.navigation:navigation-runtime:2.5.1 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 2.1.20 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.20 (*)
++--- androidx.hilt:hilt-work:1.2.0 ++--- androidx.hilt:hilt-work:1.2.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)

@ -86,6 +86,7 @@ androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-ru
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "lifecycle" } androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "lifecycle" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" } androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" }
androidx-navigation = { module = "androidx.navigation:navigation-compose", version = "2.8.9" }
androidx-paging-compose = { module = "androidx.paging:paging-compose", version = "3.3.6" } androidx-paging-compose = { module = "androidx.paging:paging-compose", version = "3.3.6" }
androidx-preference = { module = "androidx.preference:preference", version.ref = "preference" } androidx-preference = { module = "androidx.preference:preference", version.ref = "preference" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }

Loading…
Cancel
Save