Clean up ComposeViews in fragments

pull/3283/head
Alex Baker 11 months ago
parent ae40b31945
commit 44ed6ea444

@ -179,7 +179,7 @@ dependencies {
implementation(libs.androidx.hilt.work) implementation(libs.androidx.hilt.work)
implementation(libs.androidx.datastore) implementation(libs.androidx.datastore)
implementation(libs.androidx.fragment.ktx) implementation(libs.androidx.fragment.compose)
implementation(libs.androidx.lifecycle.runtime) implementation(libs.androidx.lifecycle.runtime)
implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel) implementation(libs.androidx.lifecycle.viewmodel)
@ -238,7 +238,6 @@ dependencies {
implementation(libs.androidx.activity.compose) implementation(libs.androidx.activity.compose)
implementation(libs.androidx.material.icons.extended) implementation(libs.androidx.material.icons.extended)
implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation("androidx.compose.ui:ui-viewbinding")
implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.ui:ui-tooling-preview")
implementation(libs.coil.compose) implementation(libs.coil.compose)
implementation(libs.coil.video) implementation(libs.coil.video)

@ -13,12 +13,12 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.PointerEventPass import androidx.compose.ui.input.pointer.PointerEventPass
import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.viewinterop.AndroidViewBinding
import androidx.core.os.BundleCompat import androidx.core.os.BundleCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.fragment.compose.AndroidFragment
import androidx.fragment.compose.content
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1 import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1
@ -49,15 +49,6 @@ import org.tasks.data.dao.UserActivityDao
import org.tasks.data.entity.Alarm import org.tasks.data.entity.Alarm
import org.tasks.data.entity.TagData import org.tasks.data.entity.TagData
import org.tasks.data.entity.Task import org.tasks.data.entity.Task
import org.tasks.databinding.TaskEditCalendarBinding
import org.tasks.databinding.TaskEditFilesBinding
import org.tasks.databinding.TaskEditLocationBinding
import org.tasks.databinding.TaskEditRemindersBinding
import org.tasks.databinding.TaskEditRepeatBinding
import org.tasks.databinding.TaskEditStartDateBinding
import org.tasks.databinding.TaskEditSubtasksBinding
import org.tasks.databinding.TaskEditTagsBinding
import org.tasks.databinding.TaskEditTimerBinding
import org.tasks.date.DateTimeUtils.newDateTime import org.tasks.date.DateTimeUtils.newDateTime
import org.tasks.dialogs.DateTimePicker import org.tasks.dialogs.DateTimePicker
import org.tasks.dialogs.DialogBuilder import org.tasks.dialogs.DialogBuilder
@ -116,12 +107,15 @@ class TaskEditFragment : Fragment() {
get() = BundleCompat.getParcelable(requireArguments(), EXTRA_TASK, Task::class.java) get() = BundleCompat.getParcelable(requireArguments(), EXTRA_TASK, Task::class.java)
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
LaunchedEffect(Unit) {
if (atLeastOreoMR1()) { if (atLeastOreoMR1()) {
activity?.setShowWhenLocked(preferences.showEditScreenWithoutUnlock) activity?.setShowWhenLocked(preferences.showEditScreenWithoutUnlock)
} }
val view = ComposeView(requireActivity()).apply { }
setContent {
TasksTheme(theme = theme.themeBase.index,) { TasksTheme(theme = theme.themeBase.index,) {
val viewState = editViewModel.viewState.collectAsStateWithLifecycle().value val viewState = editViewModel.viewState.collectAsStateWithLifecycle().value
BackHandler { BackHandler {
@ -159,7 +153,7 @@ class TaskEditFragment : Fragment() {
} }
}, },
) { tag -> ) { tag ->
// TODO: remove ui-viewbinding library when these are all migrated val context = LocalContext.current
when (tag) { when (tag) {
TAG_TITLE -> TAG_TITLE ->
TitleRow( TitleRow(
@ -203,29 +197,20 @@ class TaskEditFragment : Fragment() {
locale = locale, locale = locale,
) )
CalendarControlSet.TAG -> AndroidViewBinding(TaskEditCalendarBinding::inflate) CalendarControlSet.TAG -> AndroidFragment<CalendarControlSet>()
StartDateControlSet.TAG -> AndroidViewBinding( StartDateControlSet.TAG -> AndroidFragment<StartDateControlSet>()
TaskEditStartDateBinding::inflate ReminderControlSet.TAG -> AndroidFragment<ReminderControlSet>()
) LocationControlSet.TAG -> AndroidFragment<LocationControlSet>()
FilesControlSet.TAG -> AndroidFragment<FilesControlSet>()
ReminderControlSet.TAG -> AndroidViewBinding( TimerControlSet.TAG -> AndroidFragment<TimerControlSet>()
TaskEditRemindersBinding::inflate TagsControlSet.TAG -> AndroidFragment<TagsControlSet>()
) RepeatControlSet.TAG -> AndroidFragment<RepeatControlSet>()
SubtaskControlSet.TAG -> AndroidFragment<SubtaskControlSet>()
LocationControlSet.TAG -> AndroidViewBinding(TaskEditLocationBinding::inflate)
FilesControlSet.TAG -> AndroidViewBinding(TaskEditFilesBinding::inflate)
TimerControlSet.TAG -> AndroidViewBinding(TaskEditTimerBinding::inflate)
TagsControlSet.TAG -> AndroidViewBinding(TaskEditTagsBinding::inflate)
RepeatControlSet.TAG -> AndroidViewBinding(TaskEditRepeatBinding::inflate)
SubtaskControlSet.TAG -> AndroidViewBinding(TaskEditSubtasksBinding::inflate)
else -> throw IllegalArgumentException("Unknown row: $tag") else -> throw IllegalArgumentException("Unknown row: $tag")
} }
} }
} }
} }
}
return view
}
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()

@ -31,6 +31,7 @@ import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.expandVertically import androidx.compose.animation.expandVertically
import androidx.compose.animation.shrinkVertically import androidx.compose.animation.shrinkVertically
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ShareCompat import androidx.core.app.ShareCompat
import androidx.core.content.IntentCompat import androidx.core.content.IntentCompat
@ -360,6 +361,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
mainViewModel.openDrawer() mainViewModel.openDrawer()
} }
setupMenu(toolbar) setupMenu(toolbar)
binding.banner.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
binding.banner.setContent { binding.banner.setContent {
val context = LocalContext.current val context = LocalContext.current
val state = listViewModel.state.collectAsStateWithLifecycle().value val state = listViewModel.state.collectAsStateWithLifecycle().value

@ -22,14 +22,14 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.viewinterop.AndroidViewBinding import androidx.fragment.compose.AndroidFragment
import com.todoroo.astrid.activity.TaskEditFragment.Companion.gesturesDisabled import com.todoroo.astrid.activity.TaskEditFragment.Companion.gesturesDisabled
import org.tasks.R import org.tasks.R
import org.tasks.compose.BeastModeBanner import org.tasks.compose.BeastModeBanner
import org.tasks.data.entity.UserActivity import org.tasks.data.entity.UserActivity
import org.tasks.databinding.TaskEditCommentBarBinding
import org.tasks.extensions.Context.findActivity import org.tasks.extensions.Context.findActivity
import org.tasks.files.FileHelper import org.tasks.files.FileHelper
import org.tasks.fragments.CommentBarFragment
import org.tasks.themes.TasksTheme import org.tasks.themes.TasksTheme
import org.tasks.ui.TaskEditViewModel import org.tasks.ui.TaskEditViewModel
import org.tasks.utility.copyToClipboard import org.tasks.utility.copyToClipboard
@ -94,7 +94,7 @@ fun TaskEditScreen(
}, },
bottomBar = { bottomBar = {
if (viewState.showComments && !viewState.isReadOnly) { if (viewState.showComments && !viewState.isReadOnly) {
AndroidViewBinding(TaskEditCommentBarBinding::inflate) AndroidFragment<CommentBarFragment>()
} }
}, },
) { paddingValues -> ) { paddingValues ->

@ -7,6 +7,7 @@ import android.widget.ListAdapter
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
class AlertDialogBuilder internal constructor(private val context: Context) { class AlertDialogBuilder internal constructor(private val context: Context) {
@ -70,6 +71,7 @@ class AlertDialogBuilder internal constructor(private val context: Context) {
fun setContent(content: @Composable () -> Unit): AlertDialogBuilder { fun setContent(content: @Composable () -> Unit): AlertDialogBuilder {
builder.setView(ComposeView(context) builder.setView(ComposeView(context)
.apply { .apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent { setContent {
content() content()
} }

@ -3,6 +3,7 @@ package org.tasks.dialogs
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
@ -45,6 +46,7 @@ class PriorityPicker : DialogFragment() {
return requireActivity().let { fragmentActivity -> return requireActivity().let { fragmentActivity ->
val inflater = fragmentActivity.layoutInflater val inflater = fragmentActivity.layoutInflater
val binding = DialogPriorityPickerBinding.inflate(inflater, null, false) val binding = DialogPriorityPickerBinding.inflate(inflater, null, false)
binding.priorityRow.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
binding.priorityRow.setContent { Priority(selected = priorityPickerViewModel.priority.collectAsStateWithLifecycle().value, binding.priorityRow.setContent { Priority(selected = priorityPickerViewModel.priority.collectAsStateWithLifecycle().value,
onClick = { priorityPickerViewModel.setPriority( it ) }) } onClick = { priorityPickerViewModel.setPriority( it ) }) }
val builder = AlertDialog.Builder(fragmentActivity) val builder = AlertDialog.Builder(fragmentActivity)

@ -5,6 +5,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -17,6 +18,7 @@ abstract class TaskEditControlFragment : Fragment() {
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ): View? {
val composeView = ComposeView(requireActivity()) val composeView = ComposeView(requireActivity())
composeView.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
viewModel = ViewModelProvider(requireParentFragment())[TaskEditViewModel::class.java] viewModel = ViewModelProvider(requireParentFragment())[TaskEditViewModel::class.java]
bind(composeView) bind(composeView)
createView(savedInstanceState) createView(savedInstanceState)

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_calendar"
android:name="org.tasks.ui.CalendarControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_comment_bar"
android:name="org.tasks.fragments.CommentBarFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_files"
android:name="com.todoroo.astrid.files.FilesControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_location"
android:name="org.tasks.ui.LocationControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_reminders"
android:name="com.todoroo.astrid.ui.ReminderControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_repeat"
android:name="com.todoroo.astrid.repeats.RepeatControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_start_date"
android:name="com.todoroo.astrid.ui.StartDateControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_subtasks"
android:name="org.tasks.ui.SubtaskControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_tags"
android:name="com.todoroo.astrid.tags.TagsControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/task_edit_timer"
android:name="com.todoroo.astrid.timers.TimerControlSet"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

@ -303,12 +303,11 @@
+| | | +--- androidx.compose.runtime:runtime-livedata:1.7.6 (c) +| | | +--- androidx.compose.runtime:runtime-livedata:1.7.6 (c)
+| | | \--- androidx.compose.runtime:runtime-saveable:1.7.6 (c) +| | | \--- androidx.compose.runtime:runtime-saveable:1.7.6 (c)
+| | +--- androidx.compose.ui:ui:1.7.6 (c) +| | +--- androidx.compose.ui:ui:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-geometry:1.7.6 (c) +| | +--- androidx.compose.ui:ui-geometry:1.7.6 (c)
+| | \--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
+| +--- project :data (*) +| +--- project :data (*)
+| +--- org.jetbrains.compose.components:components-resources:1.7.1 +| +--- org.jetbrains.compose.components:components-resources:1.7.1
@ -456,16 +455,14 @@
+| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | | \--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | | | | | | +--- androidx.compose.ui:ui:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 +| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6
+| | | | | | | | \--- androidx.compose.ui:ui-graphics-android:1.7.6 +| | | | | | | | \--- androidx.compose.ui:ui-graphics-android:1.7.6
+| | | | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*) +| | | | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.8.1 (*)
@ -490,8 +487,7 @@
+| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*) +| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| | | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | | | | | | | +--- androidx.graphics:graphics-path:1.0.1 +| | | | | | | | +--- androidx.graphics:graphics-path:1.0.1
@ -503,8 +499,7 @@
+| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 +| | | | | | | +--- androidx.compose.ui:ui-text:1.7.6
+| | | | | | | | \--- androidx.compose.ui:ui-text-android:1.7.6 +| | | | | | | | \--- androidx.compose.ui:ui-text-android:1.7.6
+| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*) +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.1 (*)
@ -530,8 +525,7 @@
+| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*)
+| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
@ -571,7 +565,6 @@
+| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | \--- androidx.compose.foundation:foundation:1.7.6 (c) +| | | | | | | \--- androidx.compose.foundation:foundation:1.7.6 (c)
+| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (*) +| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (*)
+| | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*) +| | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*)
@ -953,6 +946,7 @@
+| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | +--- androidx.fragment:fragment-compose:1.8.5 (c)
+| | | \--- androidx.fragment:fragment-ktx:1.8.5 (c) +| | | \--- androidx.fragment:fragment-ktx:1.8.5 (c)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.8.7 (*)
@ -1159,16 +1153,24 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c)
+| \--- com.google.dagger:hilt-android:2.49 -> 2.55 (*) +| \--- com.google.dagger:hilt-android:2.49 -> 2.55 (*)
++--- androidx.datastore:datastore-preferences:1.1.2 (*) ++--- androidx.datastore:datastore-preferences:1.1.2 (*)
++--- androidx.fragment:fragment-ktx:1.8.5 ++--- androidx.fragment:fragment-compose:1.8.5
+| +--- androidx.activity:activity-ktx:1.8.1 -> 1.10.0 (*) +| +--- androidx.compose.runtime:runtime:1.5.4 -> 1.7.6 (*)
+| +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*) +| +--- androidx.compose.ui:ui:1.5.4 -> 1.7.6 (*)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) +| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.fragment:fragment:1.8.5 (*) +| +--- androidx.fragment:fragment-ktx:1.8.5
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.7 (*) +| | +--- androidx.activity:activity-ktx:1.8.1 -> 1.10.0 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.7 (*) +| | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*)
+| +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| | +--- androidx.fragment:fragment:1.8.5 (*)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.7 (*)
+| | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | +--- androidx.fragment:fragment:1.8.5 (c)
+| | \--- androidx.fragment:fragment-compose:1.8.5 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| \--- androidx.fragment:fragment:1.8.5 (c) +| +--- androidx.fragment:fragment:1.8.5 (c)
+| \--- androidx.fragment:fragment-ktx:1.8.5 (c)
++--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
++--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (*)
++--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*)
@ -1296,37 +1298,36 @@
+| +--- androidx.compose.material:material:1.7.5 (c) +| +--- androidx.compose.material:material:1.7.5 (c)
+| +--- androidx.compose.material:material-icons-extended:1.7.5 (c) +| +--- androidx.compose.material:material-icons-extended:1.7.5 (c)
+| +--- androidx.compose.material3:material3:1.3.1 (c) +| +--- androidx.compose.material3:material3:1.3.1 (c)
+| +--- androidx.compose.runtime:runtime:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.runtime:runtime-livedata:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.runtime:runtime-livedata:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-tooling-preview:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-tooling-preview:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-tooling-preview-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-tooling-preview-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-viewbinding:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.runtime:runtime:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.runtime:runtime-saveable:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.runtime:runtime-saveable:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.material:material-android:1.7.5 (c) +| +--- androidx.compose.material:material-android:1.7.5 (c)
+| +--- androidx.compose.material:material-icons-extended-android:1.7.5 (c) +| +--- androidx.compose.material:material-icons-extended-android:1.7.5 (c)
+| +--- androidx.compose.material3:material3-android:1.3.1 (c) +| +--- androidx.compose.material3:material3-android:1.3.1 (c)
+| +--- androidx.compose.runtime:runtime-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-util:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.animation:animation:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.animation:animation:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.foundation:foundation-layout:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.foundation:foundation-layout:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-text:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-text:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-util:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.animation:animation-core:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.animation:animation-core:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.material:material-icons-core:1.7.5 (c) +| +--- androidx.compose.material:material-icons-core:1.7.5 (c)
+| +--- androidx.compose.material:material-ripple:1.7.5 (c) +| +--- androidx.compose.material:material-ripple:1.7.5 (c)
+| +--- androidx.compose.ui:ui-graphics:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-graphics:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-geometry:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-geometry:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-unit:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-unit:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-util-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-text-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.material:material-icons-core-android:1.7.5 (c) +| +--- androidx.compose.material:material-icons-core-android:1.7.5 (c)
+| +--- androidx.compose.material:material-ripple-android:1.7.5 (c) +| +--- androidx.compose.material:material-ripple-android:1.7.5 (c)
+| +--- androidx.compose.runtime:runtime-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-graphics-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-graphics-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.runtime:runtime-saveable-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-text-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.foundation:foundation-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-util-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-geometry-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-geometry-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.ui:ui-unit-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.ui:ui-unit-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.runtime:runtime-saveable-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.foundation:foundation-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.animation:animation-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.animation:animation-android:1.7.5 -> 1.7.6 (c)
+| +--- androidx.compose.foundation:foundation-layout-android:1.7.5 -> 1.7.6 (c) +| +--- androidx.compose.foundation:foundation-layout-android:1.7.5 -> 1.7.6 (c)
+| \--- androidx.compose.animation:animation-core-android:1.7.5 -> 1.7.6 (c) +| \--- androidx.compose.animation:animation-core-android:1.7.5 -> 1.7.6 (c)
@ -1360,19 +1361,6 @@
++--- androidx.activity:activity-compose:1.10.0 (*) ++--- androidx.activity:activity-compose:1.10.0 (*)
++--- androidx.compose.material:material-icons-extended -> 1.7.5 (*) ++--- androidx.compose.material:material-icons-extended -> 1.7.5 (*)
++--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (*)
++--- androidx.compose.ui:ui-viewbinding -> 1.7.6
+| +--- androidx.compose.ui:ui:1.7.6 (*)
+| +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| +--- androidx.databinding:viewbinding:4.1.2 -> 8.8.0 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.8.5 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| +--- androidx.compose.ui:ui:1.7.6 (c)
+| +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| +--- androidx.compose.ui:ui-geometry:1.7.6 (c)
+| \--- androidx.compose.ui:ui-unit:1.7.6 (c)
++--- androidx.compose.ui:ui-tooling-preview -> 1.7.6 ++--- androidx.compose.ui:ui-tooling-preview -> 1.7.6
+| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.6 (*) +| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.6 (*)
++--- io.coil-kt:coil-compose:2.7.0 ++--- io.coil-kt:coil-compose:2.7.0

@ -191,7 +191,6 @@
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-common: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-ktx:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-process:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.8.7 (c)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (c)
@ -202,6 +201,7 @@
+| | +--- 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-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-common-java8: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
@ -324,6 +324,7 @@
+| | | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*) +| | | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
+| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | | | +--- androidx.fragment:fragment-compose:1.8.5 (c)
+| | | | | \--- androidx.fragment:fragment-ktx:1.8.5 (c) +| | | | | \--- androidx.fragment:fragment-ktx:1.8.5 (c)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
+| | | +--- com.google.firebase:firebase-components:18.0.0 +| | | +--- com.google.firebase:firebase-components:18.0.0
@ -688,37 +689,36 @@
+| | | +--- androidx.compose.material:material:1.7.5 (c) +| | | +--- androidx.compose.material:material:1.7.5 (c)
+| | | +--- androidx.compose.material:material-icons-extended:1.7.5 (c) +| | | +--- androidx.compose.material:material-icons-extended:1.7.5 (c)
+| | | +--- androidx.compose.material3:material3:1.3.1 (c) +| | | +--- androidx.compose.material3:material3:1.3.1 (c)
+| | | +--- androidx.compose.runtime:runtime:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.runtime:runtime-livedata:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.runtime:runtime-livedata:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-tooling-preview:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-tooling-preview:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-tooling-preview-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-tooling-preview-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-viewbinding:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.runtime:runtime:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.runtime:runtime-saveable:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.material:material-android:1.7.5 (c) +| | | +--- androidx.compose.material:material-android:1.7.5 (c)
+| | | +--- androidx.compose.material:material-icons-extended-android:1.7.5 (c) +| | | +--- androidx.compose.material:material-icons-extended-android:1.7.5 (c)
+| | | +--- androidx.compose.material3:material3-android:1.3.1 (c) +| | | +--- androidx.compose.material3:material3-android:1.3.1 (c)
+| | | +--- androidx.compose.runtime:runtime-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-util:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.animation:animation:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.animation:animation:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.foundation:foundation-layout:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.foundation:foundation-layout:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-text:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-text:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-util:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.animation:animation-core:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.animation:animation-core:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.material:material-icons-core:1.7.5 (c) +| | | +--- androidx.compose.material:material-icons-core:1.7.5 (c)
+| | | +--- androidx.compose.material:material-ripple:1.7.5 (c) +| | | +--- androidx.compose.material:material-ripple:1.7.5 (c)
+| | | +--- androidx.compose.ui:ui-graphics:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-graphics:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-geometry:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-geometry:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-unit:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-unit:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-util-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-text-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.material:material-icons-core-android:1.7.5 (c) +| | | +--- androidx.compose.material:material-icons-core-android:1.7.5 (c)
+| | | +--- androidx.compose.material:material-ripple-android:1.7.5 (c) +| | | +--- androidx.compose.material:material-ripple-android:1.7.5 (c)
+| | | +--- androidx.compose.runtime:runtime-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-graphics-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-graphics-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-text-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.foundation:foundation-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-util-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-geometry-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-geometry-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.ui:ui-unit-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.ui:ui-unit-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.runtime:runtime-saveable-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.foundation:foundation-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.animation:animation-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.animation:animation-android:1.7.5 -> 1.7.6 (c)
+| | | +--- androidx.compose.foundation:foundation-layout-android:1.7.5 -> 1.7.6 (c) +| | | +--- androidx.compose.foundation:foundation-layout-android:1.7.5 -> 1.7.6 (c)
+| | | \--- androidx.compose.animation:animation-core-android:1.7.5 -> 1.7.6 (c) +| | | \--- androidx.compose.animation:animation-core-android:1.7.5 -> 1.7.6 (c)
@ -864,12 +864,11 @@
+| | | +--- androidx.compose.runtime:runtime-livedata:1.7.6 (c) +| | | +--- androidx.compose.runtime:runtime-livedata:1.7.6 (c)
+| | | \--- androidx.compose.runtime:runtime-saveable:1.7.6 (c) +| | | \--- androidx.compose.runtime:runtime-saveable:1.7.6 (c)
+| | +--- androidx.compose.ui:ui:1.7.6 (c) +| | +--- androidx.compose.ui:ui:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-geometry:1.7.6 (c) +| | +--- androidx.compose.ui:ui-geometry:1.7.6 (c)
+| | \--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
+| +--- project :data (*) +| +--- project :data (*)
+| +--- org.jetbrains.compose.components:components-resources:1.7.1 +| +--- org.jetbrains.compose.components:components-resources:1.7.1
@ -961,16 +960,14 @@
+| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | | \--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | | | | | | +--- androidx.compose.ui:ui:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 +| | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6
+| | | | | | | | \--- androidx.compose.ui:ui-graphics-android:1.7.6 +| | | | | | | | \--- androidx.compose.ui:ui-graphics-android:1.7.6
+| | | | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.9.0 (*) +| | | | | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.9.0 (*)
@ -995,8 +992,7 @@
+| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*) +| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| | | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | | | | | | | +--- androidx.graphics:graphics-path:1.0.1 +| | | | | | | | +--- androidx.graphics:graphics-path:1.0.1
@ -1008,8 +1004,7 @@
+| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-text:1.7.6 +| | | | | | | +--- androidx.compose.ui:ui-text:1.7.6
+| | | | | | | | \--- androidx.compose.ui:ui-text-android:1.7.6 +| | | | | | | | \--- androidx.compose.ui:ui-text-android:1.7.6
+| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.0 (*) +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.0 (*)
@ -1029,8 +1024,7 @@
+| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | | \--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | | \--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*)
+| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*) +| | | | | | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
@ -1070,7 +1064,6 @@
+| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c) +| | | | | | | +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| | | | | | | +--- androidx.compose.ui:ui-viewbinding:1.7.6 (c)
+| | | | | | | \--- androidx.compose.foundation:foundation:1.7.6 (c) +| | | | | | | \--- androidx.compose.foundation:foundation:1.7.6 (c)
+| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (*) +| | | | | | +--- androidx.compose.ui:ui-graphics:1.7.6 (*)
+| | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*) +| | | | | | +--- androidx.compose.ui:ui-unit:1.7.6 (*)
@ -1509,16 +1502,24 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c)
+| \--- com.google.dagger:hilt-android:2.49 -> 2.55 (*) +| \--- com.google.dagger:hilt-android:2.49 -> 2.55 (*)
++--- androidx.datastore:datastore-preferences:1.1.2 (*) ++--- androidx.datastore:datastore-preferences:1.1.2 (*)
++--- androidx.fragment:fragment-ktx:1.8.5 ++--- androidx.fragment:fragment-compose:1.8.5
+| +--- androidx.activity:activity-ktx:1.8.1 -> 1.10.0 (*) +| +--- androidx.compose.runtime:runtime:1.5.4 -> 1.7.6 (*)
+| +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*) +| +--- androidx.compose.ui:ui:1.5.4 -> 1.7.6 (*)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*) +| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.fragment:fragment:1.8.5 (*) +| +--- androidx.fragment:fragment-ktx:1.8.5
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.7 (*) +| | +--- androidx.activity:activity-ktx:1.8.1 -> 1.10.0 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.7 (*) +| | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*)
+| +--- androidx.savedstate:savedstate-ktx:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| | +--- androidx.fragment:fragment:1.8.5 (*)
+| | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.8.7 (*)
+| | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | +--- androidx.fragment:fragment:1.8.5 (c)
+| | \--- androidx.fragment:fragment-compose:1.8.5 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| \--- androidx.fragment:fragment:1.8.5 (c) +| +--- androidx.fragment:fragment:1.8.5 (c)
+| \--- androidx.fragment:fragment-ktx:1.8.5 (c)
++--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-runtime:2.8.7 (*)
++--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (*)
++--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*)
@ -1669,19 +1670,6 @@
++--- androidx.activity:activity-compose:1.10.0 (*) ++--- androidx.activity:activity-compose:1.10.0 (*)
++--- androidx.compose.material:material-icons-extended -> 1.7.5 (*) ++--- androidx.compose.material:material-icons-extended -> 1.7.5 (*)
++--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (*) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7 (*)
++--- androidx.compose.ui:ui-viewbinding -> 1.7.6
+| +--- androidx.compose.ui:ui:1.7.6 (*)
+| +--- androidx.compose.ui:ui-util:1.7.6 (*)
+| +--- androidx.databinding:viewbinding:4.1.2 -> 8.8.0 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.8.5 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| +--- androidx.compose.ui:ui:1.7.6 (c)
+| +--- androidx.compose.ui:ui-tooling-preview:1.7.6 (c)
+| +--- androidx.compose.ui:ui-util:1.7.6 (c)
+| +--- androidx.compose.ui:ui-text:1.7.6 (c)
+| +--- androidx.compose.ui:ui-graphics:1.7.6 (c)
+| +--- androidx.compose.ui:ui-geometry:1.7.6 (c)
+| \--- androidx.compose.ui:ui-unit:1.7.6 (c)
++--- androidx.compose.ui:ui-tooling-preview -> 1.7.6 ++--- androidx.compose.ui:ui-tooling-preview -> 1.7.6
+| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.6 (*) +| \--- androidx.compose.ui:ui-tooling-preview-android:1.7.6 (*)
++--- io.coil-kt:coil-compose:2.7.0 ++--- io.coil-kt:coil-compose:2.7.0

@ -21,7 +21,6 @@ etebase = "2.3.2"
firebase = "33.8.0" firebase = "33.8.0"
firebase-crashlytics-gradle = "3.0.2" firebase-crashlytics-gradle = "3.0.2"
flipper = "0.273.0" flipper = "0.273.0"
fragment-ktx = "1.8.5"
google-oauth2 = "1.30.1" google-oauth2 = "1.30.1"
google-api-drive = "v3-rev20241206-2.0.0" google-api-drive = "v3-rev20241206-2.0.0"
google-api-tasks = "v1-rev20250105-2.0.0" google-api-tasks = "v1-rev20250105-2.0.0"
@ -77,7 +76,7 @@ androidx-compose-material3 = { group = "androidx.compose.material3", name = "mat
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version = "1.0.1" } androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version = "1.0.1" }
androidx-datastore = { module = "androidx.datastore:datastore-preferences", version = "1.1.2" } androidx-datastore = { module = "androidx.datastore:datastore-preferences", version = "1.1.2" }
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragment-ktx" } androidx-fragment-compose = { module = "androidx.fragment:fragment-compose", version = "1.8.5"}
androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hilt" } androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hilt" }
androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "hilt" } androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "hilt" }
androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junit" } androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junit" }

Loading…
Cancel
Save