Remove androidx.core from data module

pull/2883/head
Alex Baker 6 months ago
parent 4734a99bae
commit 06c4255886

@ -90,10 +90,10 @@ class GtasksListServiceTest : InjectingTestCase() {
}
private suspend fun setLists(vararg list: TaskList) {
val account = CaldavAccount().apply {
username = "account"
uuid = "account"
}
val account = CaldavAccount(
username = "account",
uuid = "account",
)
caldavDao.insert(account)
gtasksListService.updateLists(account, listOf(*list))
}

@ -11,6 +11,7 @@ import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.TYPE_CALDAV
import org.tasks.data.CaldavAccount.Companion.TYPE_GOOGLE_TASKS
import org.tasks.data.CaldavCalendar
@ -19,9 +20,6 @@ import org.tasks.data.GoogleTaskDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.ProductionModule
import org.tasks.jobs.WorkManager
import org.tasks.makers.CaldavAccountMaker
import org.tasks.makers.CaldavAccountMaker.ACCOUNT_TYPE
import org.tasks.makers.CaldavAccountMaker.newCaldavAccount
import org.tasks.makers.CaldavCalendarMaker
import org.tasks.makers.CaldavCalendarMaker.ACCOUNT
import org.tasks.makers.CaldavCalendarMaker.newCaldavCalendar
@ -319,6 +317,11 @@ class TaskMoverTest : InjectingTestCase() {
}
private suspend fun setAccountType(account: String, type: Int) {
caldavDao.insert(newCaldavAccount(with(CaldavAccountMaker.UUID, account), with(ACCOUNT_TYPE, type)))
caldavDao.insert(
CaldavAccount(
uuid = account,
accountType = type,
)
)
}
}

@ -25,12 +25,13 @@ class CaldavSynchronizerTest : CaldavTest() {
@Before
override fun setUp() = runBlocking {
super.setUp()
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = "username"
password = encryption.encrypt("password")
url = server.url("/remote.php/dav/calendars/user1/").toString()
id = caldavDao.insert(this)
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = "username",
password = encryption.encrypt("password"),
url = server.url("/remote.php/dav/calendars/user1/").toString(),
).let {
it.copy(id = caldavDao.insert(it))
}
}

@ -79,13 +79,14 @@ class ServerDetectionTest : CaldavTest() {
vararg headers: Pair<String, String>,
accountType: Int = TYPE_CALDAV
) {
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = "username"
password = encryption.encrypt("password")
url = server.url("/remote.php/dav/calendars/user1/").toString()
id = caldavDao.insert(this)
this.accountType = accountType
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = "username",
password = encryption.encrypt("password"),
url = server.url("/remote.php/dav/calendars/user1/").toString(),
accountType = accountType,
).let {
it.copy(id = caldavDao.insert(it))
}
this.headers.putAll(headers)
enqueue(NO_CALENDARS)

@ -22,12 +22,13 @@ class SharingMailboxDotOrgTest : CaldavTest() {
@Test
fun ownerAccess() = runBlocking {
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = "3"
password = encryption.encrypt("password")
url = server.url("/caldav/").toString()
id = caldavDao.insert(this)
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = "3",
password = encryption.encrypt("password"),
url = server.url("/caldav/").toString(),
).let {
it.copy(id = caldavDao.insert(it))
}
val calendar = CaldavCalendar(
account = this@SharingMailboxDotOrgTest.account.uuid,
@ -45,12 +46,13 @@ class SharingMailboxDotOrgTest : CaldavTest() {
@Test
fun principalForSharee() = runBlocking {
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = "3"
password = encryption.encrypt("password")
url = server.url("/caldav/").toString()
id = caldavDao.insert(this)
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = "3",
password = encryption.encrypt("password"),
url = server.url("/caldav/").toString(),
).let {
it.copy(id = caldavDao.insert(it))
}
val calendar = CaldavCalendar(
account = this@SharingMailboxDotOrgTest.account.uuid,

@ -21,12 +21,13 @@ class SharingOwncloudTest : CaldavTest() {
@Inject lateinit var principalDao: PrincipalDao
private suspend fun setupAccount(user: String) {
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = user
password = encryption.encrypt("password")
url = server.url("/remote.php/dav/calendars/$user/").toString()
id = caldavDao.insert(this)
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = user,
password = encryption.encrypt("password"),
url = server.url("/remote.php/dav/calendars/$user/").toString(),
).let {
it.copy(id = caldavDao.insert(it))
}
}

@ -23,12 +23,13 @@ class SharingSabredavTest : CaldavTest() {
@Inject lateinit var principalDao: PrincipalDao
private suspend fun setupAccount(user: String) {
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
username = user
password = encryption.encrypt("password")
url = server.url("/calendars/$user/").toString()
id = caldavDao.insert(this)
account = CaldavAccount(
uuid = UUIDHelper.newUUID(),
username = user,
password = encryption.encrypt("password"),
url = server.url("/calendars/$user/").toString(),
).let {
it.copy(id = caldavDao.insert(it))
}
}

@ -6,7 +6,9 @@ import com.todoroo.astrid.helper.UUIDHelper
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import kotlinx.coroutines.runBlocking
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Test
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.ProductionModule
@ -85,8 +87,7 @@ class CaldavDaoTests : InjectingTestCase() {
@Test
fun noResultsForEmptyAccounts() = runBlocking {
val caldavAccount = CaldavAccount()
caldavAccount.uuid = UUIDHelper.newUUID()
val caldavAccount = CaldavAccount(uuid = UUIDHelper.newUUID())
caldavDao.insert(caldavAccount)
assertTrue(caldavDao.getCaldavFilters(caldavAccount.uuid!!).isEmpty())
}

@ -12,8 +12,6 @@ import org.junit.Test
import org.tasks.data.CaldavAccount.Companion.TYPE_GOOGLE_TASKS
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.ProductionModule
import org.tasks.makers.CaldavAccountMaker.ACCOUNT_TYPE
import org.tasks.makers.CaldavAccountMaker.newCaldavAccount
import org.tasks.makers.CaldavCalendarMaker.newCaldavCalendar
import org.tasks.makers.CaldavTaskMaker.CALENDAR
import org.tasks.makers.CaldavTaskMaker.REMOTE_ID
@ -35,7 +33,7 @@ class GoogleTaskDaoTests : InjectingTestCase() {
override fun setUp() {
super.setUp()
runBlocking {
caldavDao.insert(newCaldavAccount(with(ACCOUNT_TYPE, TYPE_GOOGLE_TASKS)))
caldavDao.insert(CaldavAccount(uuid = "account", accountType = TYPE_GOOGLE_TASKS))
caldavDao.insert(newCaldavCalendar())
}
}

@ -3,7 +3,7 @@ package org.tasks.data
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import kotlinx.coroutines.runBlocking
import org.junit.Assert.*
import org.junit.Assert.assertTrue
import org.junit.Test
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.ProductionModule
@ -17,10 +17,10 @@ class GoogleTaskListDaoTest : InjectingTestCase() {
@Test
fun noResultsForEmptyAccount() = runBlocking {
val account = CaldavAccount().apply {
uuid = "user@gmail.com"
username = "user@gmail.com"
}
val account = CaldavAccount(
uuid = "user@gmail.com",
username = "user@gmail.com",
)
caldavDao.insert(account)
assertTrue(googleTaskListDao.getGoogleTaskFilters(account.username!!).isEmpty())

@ -13,7 +13,6 @@ import org.junit.Test
import org.tasks.R
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.ProductionModule
import org.tasks.makers.CaldavAccountMaker.newCaldavAccount
import org.tasks.makers.CaldavCalendarMaker.UUID
import org.tasks.makers.CaldavCalendarMaker.newCaldavCalendar
import org.tasks.makers.CaldavTaskMaker.CALENDAR
@ -42,7 +41,7 @@ class ManualGoogleTaskQueryTest : InjectingTestCase() {
preferences.setBoolean(R.string.p_manual_sort, true)
val calendar = newCaldavCalendar(with(UUID, "1234"))
runBlocking {
caldavDao.insert(newCaldavAccount())
caldavDao.insert(CaldavAccount())
caldavDao.insert(calendar)
}
filter = GtasksFilter(calendar)

@ -4,7 +4,9 @@ import com.natpryce.makeiteasy.MakeItEasy.with
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import kotlinx.coroutines.runBlocking
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Test
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.TYPE_OPENTASKS
@ -38,10 +40,12 @@ class OpenTasksSynchronizerTest : OpenTasksTest() {
@Test
fun deleteRemovedAccounts() = runBlocking {
caldavDao.insert(CaldavAccount().apply {
uuid = "bitfire.at.davdroid:test_account"
accountType = TYPE_OPENTASKS
})
caldavDao.insert(
CaldavAccount(
uuid = "bitfire.at.davdroid:test_account",
accountType = TYPE_OPENTASKS,
)
)
synchronizer.sync()

@ -25,10 +25,8 @@ class CaldavSubscriptionTest : CaldavTest() {
inventory.clear()
inventory.add(emptyList())
account = CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
id = caldavDao.insert(this)
}
account = CaldavAccount(uuid = UUIDHelper.newUUID())
.let { it.copy(id = caldavDao.insert(it)) }
synchronizer.sync(account)

@ -74,21 +74,24 @@ class GtasksLoginActivity : AppCompatActivity() {
startActivity(intent)
} else {
withContext(NonCancellable) {
var account = caldavDao.getAccount(TYPE_GOOGLE_TASKS, accountName)
val account = caldavDao.getAccount(TYPE_GOOGLE_TASKS, accountName)
if (account == null) {
account = CaldavAccount()
account.accountType = TYPE_GOOGLE_TASKS
account.uuid = accountName
account.name = accountName
account.username = accountName
caldavDao.insert(account)
caldavDao.insert(
CaldavAccount(
accountType = TYPE_GOOGLE_TASKS,
uuid = accountName,
name = accountName,
username = accountName,
)
)
firebase.logEvent(
R.string.event_sync_add_account,
R.string.param_type to Constants.SYNC_TYPE_GOOGLE_TASKS
)
} else {
account.error = ""
caldavDao.update(account)
caldavDao.update(
account.copy(error = "")
)
googleTaskListDao.resetLastSync(accountName)
}
}

@ -72,18 +72,19 @@ class MicrosoftAuthenticationActivity : ComponentActivity() {
caldavDao
.getAccount(TYPE_MICROSOFT, email)
?.let {
it.password = encryption.encrypt(authState.jsonSerializeString())
caldavDao.update(it)
caldavDao.update(
it.copy(password = encryption.encrypt(authState.jsonSerializeString()))
)
}
?: caldavDao
.insert(
CaldavAccount().apply {
uuid = UUIDHelper.newUUID()
name = email
username = email
password = encryption.encrypt(authState.jsonSerializeString())
accountType = TYPE_MICROSOFT
}
CaldavAccount(
uuid = UUIDHelper.newUUID(),
name = email,
username = email,
password = encryption.encrypt(authState.jsonSerializeString()),
accountType = TYPE_MICROSOFT,
)
)
.also {
firebase.logEvent(

@ -76,19 +76,19 @@ class SignInViewModel @Inject constructor(
.homeSet(username, tokenString)
val password = encryption.encrypt(tokenString)
return caldavDao.getAccount(CaldavAccount.TYPE_TASKS, username)
?.apply {
error = null
this.password = password
caldavDao.update(this)
?.let {
it.copy(error = null, password = password)
.also { caldavDao.update(it) }
}
?: CaldavAccount().apply {
accountType = CaldavAccount.TYPE_TASKS
uuid = UUIDHelper.newUUID()
this.username = username
this.password = password
url = homeSet
name = idToken.email ?: idToken.login
caldavDao.insert(this)
?: CaldavAccount(
accountType = CaldavAccount.TYPE_TASKS,
uuid = UUIDHelper.newUUID(),
username = username,
password = password,
url = homeSet,
name = idToken.email ?: idToken.login,
).let {
it.copy(id = caldavDao.insert(it))
}
} catch (e: Exception) {
error.postValue(e)

@ -100,12 +100,12 @@ class TasksJsonImporter @Inject constructor(
backupContainer.googleTaskAccounts?.forEach { googleTaskAccount ->
if (caldavDao.getAccount(TYPE_GOOGLE_TASKS, googleTaskAccount.account!!) == null) {
caldavDao.insert(
CaldavAccount().apply {
accountType = TYPE_GOOGLE_TASKS
uuid = googleTaskAccount.account
name = googleTaskAccount.account
username = googleTaskAccount.account
}
CaldavAccount(
accountType = TYPE_GOOGLE_TASKS,
uuid = googleTaskAccount.account,
name = googleTaskAccount.account,
username = googleTaskAccount.account,
)
)
}
}

@ -38,14 +38,15 @@ class CaldavAccountSettingsActivity : BaseCaldavAccountSettingsActivity(), Toolb
private suspend fun addAccount(principal: String) {
hideProgressIndicator()
Timber.d("Found principal: %s", principal)
CaldavAccount().apply {
name = newName
url = principal
username = newUsername
password = encryption.encrypt(newPassword!!)
uuid = UUIDHelper.newUUID()
id = caldavDao.insert(this)
}
caldavDao.insert(
CaldavAccount(
name = newName,
url = principal,
username = newUsername,
password = encryption.encrypt(newPassword!!),
uuid = UUIDHelper.newUUID(),
)
)
firebase.logEvent(
R.string.event_sync_add_account,
R.string.param_type to Constants.SYNC_TYPE_CALDAV

@ -18,10 +18,11 @@ suspend fun CaldavDao.getLocalList(context: Context) = mutex.withLock {
getLocalList(context, getLocalAccount())
}
private suspend fun CaldavDao.getLocalAccount() = getAccountByUuid(CaldavDao.LOCAL) ?: CaldavAccount().apply {
accountType = CaldavAccount.TYPE_LOCAL
uuid = CaldavDao.LOCAL
id = insert(this)
private suspend fun CaldavDao.getLocalAccount() = getAccountByUuid(CaldavDao.LOCAL) ?: CaldavAccount(
accountType = CaldavAccount.TYPE_LOCAL,
uuid = CaldavDao.LOCAL,
).let {
it.copy(id = insert(it))
}
private suspend fun CaldavDao.getLocalList(context: Context, account: CaldavAccount): CaldavCalendar =

@ -5,13 +5,13 @@ import android.os.Bundle
import android.view.View
import androidx.activity.viewModels
import androidx.appcompat.widget.Toolbar
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.helper.UUIDHelper
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.analytics.Constants
import org.tasks.caldav.BaseCaldavAccountSettingsActivity
import org.tasks.data.CaldavAccount
import com.todoroo.astrid.data.Task
import org.tasks.data.getPassword
import timber.log.Timber
import javax.inject.Inject
@ -51,9 +51,10 @@ class EtebaseAccountSettingsActivity : BaseCaldavAccountSettingsActivity(), Tool
get() = R.string.etesync_account_description
private suspend fun addAccount(session: String) {
caldavAccount = CaldavAccount()
caldavAccount!!.accountType = CaldavAccount.TYPE_ETEBASE
caldavAccount!!.uuid = UUIDHelper.newUUID()
caldavAccount = CaldavAccount(
accountType = CaldavAccount.TYPE_ETEBASE,
uuid = UUIDHelper.newUUID(),
)
applyTo(caldavAccount!!, session)
}

@ -47,11 +47,11 @@ class OpenTasksSynchronizer @Inject constructor(
lists.keys
.filter { caldavDao.getAccountByUuid(it) == null }
.map {
CaldavAccount().apply {
name = it.split(":")[1]
uuid = it
accountType = CaldavAccount.TYPE_OPENTASKS
}
CaldavAccount(
name = it.split(":")[1],
uuid = it,
accountType = CaldavAccount.TYPE_OPENTASKS,
)
}
.onEach { caldavDao.insert(it) }
.forEach {

@ -1,29 +0,0 @@
package org.tasks.makers
import com.natpryce.makeiteasy.Instantiator
import com.natpryce.makeiteasy.Property
import com.natpryce.makeiteasy.Property.newProperty
import com.natpryce.makeiteasy.PropertyValue
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.TYPE_CALDAV
import org.tasks.makers.Maker.make
object CaldavAccountMaker {
val ID: Property<CaldavAccount, Long> = newProperty()
val NAME: Property<CaldavAccount, String> = newProperty()
val UUID: Property<CaldavAccount, String> = newProperty()
val ACCOUNT_TYPE: Property<CaldavAccount, Int> = newProperty()
private val instantiator = Instantiator { lookup ->
CaldavAccount().apply {
id = lookup.valueOf(ID, 0L)
name = lookup.valueOf(NAME, null as String?)
uuid = lookup.valueOf(UUID, "account")
accountType = lookup.valueOf(ACCOUNT_TYPE, TYPE_CALDAV)
}
}
fun newCaldavAccount(vararg properties: PropertyValue<in CaldavAccount?, *>): CaldavAccount {
return make(instantiator, *properties)
}
}

@ -49,7 +49,6 @@ android {
}
dependencies {
implementation(libs.androidx.core)
implementation(libs.androidx.lifecycle.livedata)
implementation(libs.androidx.room)
implementation(libs.gson)

@ -1,68 +1,42 @@
package org.tasks.data
import android.os.Parcel
import android.os.Parcelable
import androidx.core.os.ParcelCompat
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.PrimaryKey
import com.todoroo.andlib.data.Table
import com.todoroo.astrid.data.Task
import kotlinx.parcelize.Parcelize
import java.net.HttpURLConnection
@Parcelize
@Entity(tableName = "caldav_accounts")
class CaldavAccount : Parcelable {
data class CaldavAccount(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "cda_id")
@Transient
var id: Long = 0
val id: Long = 0,
@ColumnInfo(name = "cda_uuid")
var uuid: String? = Task.NO_UUID
val uuid: String? = Task.NO_UUID,
@ColumnInfo(name = "cda_name")
var name: String? = ""
var name: String? = "",
@ColumnInfo(name = "cda_url")
var url: String? = ""
var url: String? = "",
@ColumnInfo(name = "cda_username")
var username: String? = ""
var username: String? = "",
@ColumnInfo(name = "cda_password")
@Transient
var password: String? = ""
var password: String? = "",
@ColumnInfo(name = "cda_error")
@Transient
var error: String? = ""
var error: String? = "",
@ColumnInfo(name = "cda_account_type")
var accountType = TYPE_CALDAV
val accountType: Int = TYPE_CALDAV,
@ColumnInfo(name = "cda_collapsed")
var isCollapsed = false
val isCollapsed: Boolean = false,
@ColumnInfo(name = "cda_server_type")
var serverType = SERVER_UNKNOWN
constructor()
@Ignore
constructor(source: Parcel) {
id = source.readLong()
uuid = source.readString()
name = source.readString()
url = source.readString()
username = source.readString()
password = source.readString()
error = source.readString()
accountType = source.readInt()
isCollapsed = ParcelCompat.readBoolean(source)
serverType = source.readInt()
}
var serverType: Int = SERVER_UNKNOWN,
) : Parcelable {
val isCaldavAccount: Boolean
get() = accountType == TYPE_CALDAV
@ -95,64 +69,12 @@ class CaldavAccount : Parcelable {
val reminderSync: Boolean
get() = serverType != SERVER_SYNOLOGY_CALENDAR
override fun describeContents() = 0
override fun writeToParcel(dest: Parcel, flags: Int) {
with(dest) {
writeLong(id)
writeString(uuid)
writeString(name)
writeString(url)
writeString(username)
writeString(password)
writeString(error)
writeInt(accountType)
ParcelCompat.writeBoolean(this, isCollapsed)
writeInt(serverType)
}
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as CaldavAccount
if (id != other.id) return false
if (uuid != other.uuid) return false
if (name != other.name) return false
if (url != other.url) return false
if (username != other.username) return false
if (password != other.password) return false
if (error != other.error) return false
if (accountType != other.accountType) return false
if (isCollapsed != other.isCollapsed) return false
if (serverType != other.serverType) return false
return true
}
override fun hashCode(): Int {
var result = id.hashCode()
result = 31 * result + (uuid?.hashCode() ?: 0)
result = 31 * result + (name?.hashCode() ?: 0)
result = 31 * result + (url?.hashCode() ?: 0)
result = 31 * result + (username?.hashCode() ?: 0)
result = 31 * result + (password?.hashCode() ?: 0)
result = 31 * result + (error?.hashCode() ?: 0)
result = 31 * result + accountType
result = 31 * result + isCollapsed.hashCode()
result = 31 * result + serverType
return result
}
override fun toString(): String {
return "CaldavAccount(id=$id, uuid=$uuid, name=$name, url=$url, username=$username, password=<redacted>>, error=$error, accountType=$accountType, isCollapsed=$isCollapsed, serverType=$serverType)"
}
fun isLoggedOut() = error?.startsWith(ERROR_UNAUTHORIZED) == true
fun isPaymentRequired() = error.isPaymentRequired()
override fun toString(): String {
return "CaldavAccount(id=$id, uuid=$uuid, name=$name, url=$url, username=$username, error=$error, accountType=$accountType, isCollapsed=$isCollapsed, serverType=$serverType)"
}
val hasError: Boolean
get() = !error.isNullOrBlank()
@ -187,11 +109,5 @@ class CaldavAccount : Parcelable {
fun String?.openTaskType(): String? = this?.split(":")?.get(0)
fun String?.isPaymentRequired(): Boolean = this?.startsWith(ERROR_PAYMENT_REQUIRED) == true
@JvmField val CREATOR: Parcelable.Creator<CaldavAccount> = object : Parcelable.Creator<CaldavAccount> {
override fun createFromParcel(source: Parcel): CaldavAccount = CaldavAccount(source)
override fun newArray(size: Int): Array<CaldavAccount?> = arrayOfNulls(size)
}
}
}

@ -1,6 +1,5 @@
package org.tasks.data
import androidx.core.util.Pair
import androidx.lifecycle.LiveData
import androidx.room.Dao
import androidx.room.Delete

@ -213,20 +213,6 @@
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 (*)
++--- project :data
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 (*)
+| +--- androidx.core:core:1.13.1
+| | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | +--- androidx.annotation:annotation-experimental:1.4.0
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.23 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.interpolator:interpolator:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.7.0 (*)
+| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | \--- androidx.core:core-ktx:1.13.1 (c)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0 (*)
+| +--- androidx.room:room-ktx:2.6.1
+| | +--- androidx.room:room-common:2.6.1
@ -235,7 +221,8 @@
+| | | +--- androidx.room:room-ktx:2.6.1 (c)
+| | | \--- androidx.room:room-runtime:2.6.1 (c)
+| | +--- androidx.room:room-runtime:2.6.1
+| | | +--- androidx.annotation:annotation-experimental:1.1.0-rc01 -> 1.4.0 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.1.0-rc01 -> 1.4.0
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.23 (*)
+| | | +--- androidx.arch.core:core-runtime:2.2.0 (*)
+| | | +--- androidx.room:room-common:2.6.1 (*)
+| | | +--- androidx.sqlite:sqlite:2.4.0
@ -291,11 +278,23 @@
+| +--- commons-io:commons-io:2.6
+| +--- org.slf4j:slf4j-jdk14:2.0.3
+| | \--- org.slf4j:slf4j-api:2.0.3
+| \--- androidx.core:core-ktx:1.9.0 -> 1.13.1
+| \--- androidx.core:core-ktx:1.9.0 -> 1.13.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| +--- androidx.core:core:1.13.1 (*)
+| +--- androidx.core:core:1.13.0
+| | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | +--- androidx.annotation:annotation-experimental:1.4.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.interpolator:interpolator:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.7.0 (*)
+| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | \--- androidx.core:core-ktx:1.13.0 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| \--- androidx.core:core:1.13.1 (c)
+| \--- androidx.core:core:1.13.0 (c)
++--- com.github.bitfireAT:cert4android:7814052
+| +--- androidx.databinding:databinding-common:7.2.0 -> 8.4.0
+| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.4.0 (*)
@ -306,12 +305,12 @@
+| | +--- androidx.activity:activity:1.6.0 -> 1.9.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.13.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.7.0
+| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.0 (*)
+| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.7.0 (*)
+| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.7.0 (*)
+| | | | +--- androidx.savedstate:savedstate:1.2.1
@ -345,10 +344,10 @@
+| | +--- androidx.appcompat:appcompat-resources:1.6.1
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0
+| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
@ -356,27 +355,27 @@
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | \--- androidx.appcompat:appcompat:1.6.1 (c)
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.9.0 -> 1.13.0 (*)
+| | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+| | +--- androidx.cursoradapter:cursoradapter:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.2.0 -> 1.13.0 (*)
+| | | \--- androidx.customview:customview:1.1.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.7.0 (*)
+| | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
+| | | \--- androidx.emoji2:emoji2-views-helper:1.3.0 (c)
+| | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | +--- androidx.emoji2:emoji2:1.3.0 (*)
+| | | \--- androidx.emoji2:emoji2:1.3.0 (c)
+| | +--- androidx.fragment:fragment:1.3.6 -> 1.7.0
@ -384,21 +383,21 @@
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.7.0 (*)
+| | | +--- androidx.loader:loader:1.0.0
+| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.7.0 (*)
+| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.7.0 (*)
+| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*)
+| | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | +--- androidx.viewpager:viewpager:1.0.0
+| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | \--- androidx.fragment:fragment-ktx:1.7.0 (c)
@ -468,21 +467,21 @@
+| | +--- androidx.cardview:cardview:1.0.0 (*)
+| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4
+| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | | \--- androidx.constraintlayout:constraintlayout-core:1.0.4
+| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | +--- androidx.documentfile:documentfile:1.0.0
+| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | +--- androidx.loader:loader:1.0.0 (*)
@ -496,24 +495,24 @@
+| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.customview:customview-poolingcontainer:1.0.0
+| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.23 (*)
+| | | \--- androidx.viewpager2:viewpager2:1.1.0-beta02 (c)
+| | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 (*)
+| | +--- androidx.transition:transition:1.5.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.13.0 (*)
+| | | \--- androidx.dynamicanimation:dynamicanimation:1.0.0 (*)
+| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | \--- androidx.viewpager2:viewpager2:1.0.0 -> 1.1.0-beta02
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | +--- androidx.annotation:annotation-experimental:1.3.0 -> 1.4.0 (*)
+| | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | +--- androidx.fragment:fragment:1.1.0 -> 1.7.0 (*)
+| | \--- androidx.recyclerview:recyclerview:1.3.1-rc01 -> 1.3.2 (*)
+| \--- org.conscrypt:conscrypt-android:2.5.2
@ -545,8 +544,8 @@
+| | \--- com.google.dagger:hilt-core:2.49 -> 2.50 (*)
+| +--- androidx.work:work-runtime:2.3.4 -> 2.8.1
+| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.7.0 (*)
+| | +--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.7.0 (*)
+| | +--- androidx.room:room-runtime:2.5.0 -> 2.6.1 (*)
@ -558,7 +557,7 @@
++--- androidx.fragment:fragment-ktx:1.7.0
+| +--- androidx.activity:activity-ktx:1.8.1 -> 1.9.0
+| | +--- androidx.activity:activity:1.9.0 (*)
+| | +--- androidx.core:core-ktx:1.13.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.13.0 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.7.0 (*)
+| | +--- androidx.savedstate:savedstate-ktx:1.2.1
@ -571,7 +570,7 @@
+| +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.0
+| | +--- androidx.collection:collection:1.4.0 (*)
+| | \--- androidx.collection:collection:1.4.0 (c)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.0 (*)
+| +--- androidx.fragment:fragment:1.7.0 (*)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.7.0 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.7.0 (*)
@ -634,7 +633,7 @@
+| | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.9.0 (*)
+| | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | | +--- androidx.autofill:autofill:1.0.0
+| | | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | | \--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.collection:collection:1.4.0 (*)
+| | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
@ -702,7 +701,7 @@
+| | | | +--- androidx.compose.ui:ui-graphics:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-unit:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
@ -716,7 +715,7 @@
+| | | | \--- androidx.compose.ui:ui-viewbinding:1.6.7 (c)
+| | | +--- androidx.compose.ui:ui-unit:1.6.7 (*)
+| | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.12.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 (*)
+| | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
@ -769,7 +768,7 @@
+| | | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
+| | | | \--- androidx.compose.foundation:foundation:1.6.7 (c)
+| | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
@ -783,7 +782,7 @@
+| | +--- androidx.compose.ui:ui:1.6.7 (*)
+| | +--- androidx.compose.ui:ui-text:1.6.7 (*)
+| | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.12.0 -> 1.13.0 (*)
+| | +--- androidx.emoji2:emoji2:1.3.0 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
+| | \--- androidx.compose.foundation:foundation-layout:1.6.7 (c)
@ -833,25 +832,25 @@
++--- androidx.constraintlayout:constraintlayout:2.1.4 (*)
++--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| \--- androidx.interpolator:interpolator:1.0.0 (*)
++--- androidx.preference:preference:1.2.1
+| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*)
+| +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| +--- androidx.activity:activity-ktx:1.5.1 -> 1.9.0 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.6 -> 1.7.0 (*)
+| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
+| +--- androidx.slidingpanelayout:slidingpanelayout:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | +--- androidx.customview:customview:1.1.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | +--- androidx.window:window:1.0.0
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.9.23 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*)
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | \--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | | \--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | \--- androidx.transition:transition:1.4.1 -> 1.5.0 (*)
+| \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
++--- com.jakewharton.timber:timber:5.0.1 (*)
@ -908,7 +907,7 @@
+| +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
+| +--- androidx.interpolator:interpolator:1.0.0 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
++--- org.osmdroid:osmdroid-android:6.1.18
@ -992,7 +991,7 @@
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.23 (*)
+| +--- com.google.android.material:compose-theme-adapter-core:1.0.1
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.23 (*)
+| | +--- androidx.core:core-ktx:1.9.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.9.0 -> 1.13.0 (*)
+| | +--- androidx.appcompat:appcompat:1.5.1 -> 1.6.1 (*)
+| | +--- com.google.android.material:material:1.7.0 -> 1.12.0 (*)
+| | +--- androidx.compose.runtime:runtime:1.3.1 -> 1.6.7 (*)
@ -1055,7 +1054,7 @@
+| \--- androidx.compose.ui:ui-viewbinding:1.6.7 (c)
++--- io.coil-kt:coil-compose:2.6.0
+| +--- io.coil-kt:coil-compose-base:2.6.0
+| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| | +--- com.google.accompanist:accompanist-drawablepainter:0.32.0
+| | | +--- androidx.compose.ui:ui:1.5.0 -> 1.6.7 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
@ -1064,7 +1063,7 @@
+| | | +--- androidx.annotation:annotation:1.7.1 (*)
+| | | +--- androidx.appcompat:appcompat-resources:1.6.1 (*)
+| | | +--- androidx.collection:collection:1.4.0 (*)
+| | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| | | +--- androidx.exifinterface:exifinterface:1.3.7
+| | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*)
@ -1080,16 +1079,16 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-video:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-svg:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- com.caverock:androidsvg-aar:1.4
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-gif:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
@ -1108,7 +1107,7 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 -> 1.9.23 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.23 (*)
+\--- com.google.accompanist:accompanist-systemuicontroller:0.32.0
+ +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+ +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+ +--- androidx.compose.ui:ui:1.5.0 -> 1.6.7 (*)
+ +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
+ \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.23 (*)

@ -226,7 +226,7 @@
+| | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.1.0
+| | | | | \--- com.google.android.gms:play-services-basement:18.3.0
+| | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | | | +--- androidx.core:core:1.2.0 -> 1.13.1
+| | | | | +--- androidx.core:core:1.2.0 -> 1.13.0
+| | | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | | | | | +--- androidx.annotation:annotation-experimental:1.4.0
+| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.23 (*)
@ -239,21 +239,21 @@
+| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | | | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | | | | \--- androidx.core:core-ktx:1.13.1 (c)
+| | | | | | \--- androidx.core:core-ktx:1.13.0 (c)
+| | | | | \--- androidx.fragment:fragment:1.1.0 -> 1.7.0
+| | | | | +--- androidx.activity:activity:1.8.1 -> 1.9.0
+| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | | | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*)
+| | | | | | +--- androidx.core:core:1.13.0 (*)
+| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
+| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.7.0 (*)
+| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.7.0
+| | | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1
+| | | | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.0
+| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | | | | | +--- androidx.core:core:1.13.1 (*)
+| | | | | | | | +--- androidx.core:core:1.13.0 (*)
+| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | | | | | | \--- androidx.core:core:1.13.1 (c)
+| | | | | | | | \--- androidx.core:core:1.13.0 (c)
+| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.7.0 (*)
+| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.7.0 (*)
+| | | | | | | +--- androidx.savedstate:savedstate:1.2.1
@ -286,24 +286,24 @@
+| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 (*)
+| | | | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.0 (*)
+| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.7.0 (*)
+| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
+| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.7.0 (*)
+| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.7.0 (*)
+| | | | | +--- androidx.loader:loader:1.0.0
+| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | | | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.7.0 (*)
+| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.7.0 (*)
+| | | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*)
+| | | | | +--- androidx.savedstate:savedstate:1.2.1 (*)
+| | | | | +--- androidx.viewpager:viewpager:1.0.0
+| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | | | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0
+| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | | | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | | | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | | | \--- androidx.fragment:fragment-ktx:1.7.0 (c)
@ -401,7 +401,7 @@
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.legacy:legacy-support-core-utils:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | +--- androidx.documentfile:documentfile:1.0.0
+| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | | +--- androidx.loader:loader:1.0.0 (*)
@ -414,17 +414,17 @@
+| | | \--- com.google.android.gms:play-services-basement:18.3.0 (*)
+| | +--- com.google.android.gms:play-services-measurement-impl:22.0.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.9.0 -> 1.13.0 (*)
+| | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05
+| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.23 (*)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*)
+| | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c)
+| | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05
+| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
+| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (*)
+| | | | +--- com.google.guava:guava:31.1-android -> 33.0.0-jre
+| | | | | +--- com.google.guava:failureaccess:1.0.2
@ -486,7 +486,7 @@
++--- com.google.android.gms:play-services-location:21.1.0
+| +--- com.google.android.gms:play-services-base:18.1.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.2.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.2.0 -> 1.13.0 (*)
+| | +--- androidx.fragment:fragment:1.0.0 -> 1.7.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.3.0 (*)
+| | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.1.0 (*)
@ -516,7 +516,7 @@
+| +--- com.google.android.play:core:1.8.0 -> 1.10.3
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.9.23 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6 -> 1.7.3 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| \--- androidx.fragment:fragment:1.1.0 -> 1.7.0 (*)
++--- com.google.android.gms:play-services-oss-licenses:17.0.1
+| +--- androidx.appcompat:appcompat:1.0.0 -> 1.6.1
@ -525,10 +525,10 @@
+| | +--- androidx.appcompat:appcompat-resources:1.6.1
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0
+| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
@ -536,24 +536,24 @@
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | \--- androidx.appcompat:appcompat:1.6.1 (c)
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.9.0 -> 1.13.0 (*)
+| | +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+| | +--- androidx.cursoradapter:cursoradapter:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*)
+| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.2.0 -> 1.13.0 (*)
+| | | \--- androidx.customview:customview:1.1.0 (*)
+| | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.7.0 (*)
+| | | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
+| | | \--- androidx.emoji2:emoji2-views-helper:1.3.0 (c)
+| | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.13.0 (*)
+| | | +--- androidx.emoji2:emoji2:1.3.0 (*)
+| | | \--- androidx.emoji2:emoji2:1.3.0 (c)
+| | +--- androidx.fragment:fragment:1.3.6 -> 1.7.0 (*)
@ -574,7 +574,6 @@
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 (*)
++--- project :data
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 (*)
+| +--- androidx.core:core:1.13.1 (*)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0 (*)
+| +--- androidx.room:room-ktx:2.6.1
+| | +--- androidx.room:room-common:2.6.1
@ -639,7 +638,7 @@
+| +--- commons-io:commons-io:2.6
+| +--- org.slf4j:slf4j-jdk14:2.0.3
+| | \--- org.slf4j:slf4j-api:2.0.3
+| \--- androidx.core:core-ktx:1.9.0 -> 1.13.1 (*)
+| \--- androidx.core:core-ktx:1.9.0 -> 1.13.0 (*)
++--- com.github.bitfireAT:cert4android:7814052
+| +--- androidx.databinding:databinding-common:7.2.0 -> 8.4.0
+| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.4.0 (*)
@ -706,17 +705,17 @@
+| | +--- androidx.cardview:cardview:1.0.0 (*)
+| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4
+| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | | \--- androidx.constraintlayout:constraintlayout-core:1.0.4
+| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.13.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
+| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*)
@ -725,24 +724,24 @@
+| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.customview:customview-poolingcontainer:1.0.0
+| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.13.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.23 (*)
+| | | \--- androidx.viewpager2:viewpager2:1.1.0-beta02 (c)
+| | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 (*)
+| | +--- androidx.transition:transition:1.5.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | +--- androidx.core:core:1.13.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.13.0 (*)
+| | | \--- androidx.dynamicanimation:dynamicanimation:1.0.0 (*)
+| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | \--- androidx.viewpager2:viewpager2:1.0.0 -> 1.1.0-beta02
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | +--- androidx.annotation:annotation-experimental:1.3.0 -> 1.4.0 (*)
+| | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | +--- androidx.fragment:fragment:1.1.0 -> 1.7.0 (*)
+| | \--- androidx.recyclerview:recyclerview:1.3.1-rc01 -> 1.3.2 (*)
+| \--- org.conscrypt:conscrypt-android:2.5.2
@ -774,8 +773,8 @@
+| | \--- com.google.dagger:hilt-core:2.49 -> 2.50 (*)
+| +--- androidx.work:work-runtime:2.3.4 -> 2.8.1
+| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.7.0 (*)
+| | +--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.7.0 (*)
+| | +--- androidx.room:room-runtime:2.5.0 -> 2.6.1 (*)
@ -787,7 +786,7 @@
++--- androidx.fragment:fragment-ktx:1.7.0
+| +--- androidx.activity:activity-ktx:1.8.1 -> 1.9.0
+| | +--- androidx.activity:activity:1.9.0 (*)
+| | +--- androidx.core:core-ktx:1.13.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.13.0 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.7.0 (*)
+| | +--- androidx.savedstate:savedstate-ktx:1.2.1
@ -800,7 +799,7 @@
+| +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.0
+| | +--- androidx.collection:collection:1.4.0 (*)
+| | \--- androidx.collection:collection:1.4.0 (c)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.2.0 -> 1.13.0 (*)
+| +--- androidx.fragment:fragment:1.7.0 (*)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.1 -> 2.7.0 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.7.0 (*)
@ -863,7 +862,7 @@
+| | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.9.0 (*)
+| | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*)
+| | | +--- androidx.autofill:autofill:1.0.0
+| | | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | | | \--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
+| | | +--- androidx.collection:collection:1.4.0 (*)
+| | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
@ -931,7 +930,7 @@
+| | | | +--- androidx.compose.ui:ui-graphics:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-unit:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.23 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
@ -945,7 +944,7 @@
+| | | | \--- androidx.compose.ui:ui-viewbinding:1.6.7 (c)
+| | | +--- androidx.compose.ui:ui-unit:1.6.7 (*)
+| | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core:1.12.0 -> 1.13.0 (*)
+| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 (*)
+| | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 (*)
@ -998,7 +997,7 @@
+| | | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui:1.6.7 (*)
+| | | | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
+| | | | +--- androidx.core:core:1.7.0 -> 1.13.0 (*)
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
+| | | | \--- androidx.compose.foundation:foundation:1.6.7 (c)
+| | | +--- androidx.compose.runtime:runtime:1.6.7 (*)
@ -1012,7 +1011,7 @@
+| | +--- androidx.compose.ui:ui:1.6.7 (*)
+| | +--- androidx.compose.ui:ui-text:1.6.7 (*)
+| | +--- androidx.compose.ui:ui-util:1.6.7 (*)
+| | +--- androidx.core:core:1.12.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.12.0 -> 1.13.0 (*)
+| | +--- androidx.emoji2:emoji2:1.3.0 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 1.9.23 (*)
+| | \--- androidx.compose.foundation:foundation-layout:1.6.7 (c)
@ -1062,25 +1061,25 @@
++--- androidx.constraintlayout:constraintlayout:2.1.4 (*)
++--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| \--- androidx.interpolator:interpolator:1.0.0 (*)
++--- androidx.preference:preference:1.2.1
+| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*)
+| +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.6.0 -> 1.13.0 (*)
+| +--- androidx.activity:activity-ktx:1.5.1 -> 1.9.0 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.6 -> 1.7.0 (*)
+| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
+| +--- androidx.slidingpanelayout:slidingpanelayout:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| | +--- androidx.customview:customview:1.1.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| | +--- androidx.window:window:1.0.0
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 1.9.23 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*)
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| | | \--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | | \--- androidx.core:core:1.3.2 -> 1.13.0 (*)
+| | \--- androidx.transition:transition:1.4.1 -> 1.5.0 (*)
+| \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
++--- com.jakewharton.timber:timber:5.0.1 (*)
@ -1135,7 +1134,7 @@
+| +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
+| +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
+| +--- androidx.interpolator:interpolator:1.0.0 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| +--- androidx.core:core:1.1.0 -> 1.13.0 (*)
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
++--- org.osmdroid:osmdroid-android:6.1.18
@ -1219,7 +1218,7 @@
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.23 (*)
+| +--- com.google.android.material:compose-theme-adapter-core:1.0.1
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.23 (*)
+| | +--- androidx.core:core-ktx:1.9.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.9.0 -> 1.13.0 (*)
+| | +--- androidx.appcompat:appcompat:1.5.1 -> 1.6.1 (*)
+| | +--- com.google.android.material:material:1.7.0 -> 1.12.0 (*)
+| | +--- androidx.compose.runtime:runtime:1.3.1 -> 1.6.7 (*)
@ -1282,7 +1281,7 @@
+| \--- androidx.compose.ui:ui-viewbinding:1.6.7 (c)
++--- io.coil-kt:coil-compose:2.6.0
+| +--- io.coil-kt:coil-compose-base:2.6.0
+| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| | +--- com.google.accompanist:accompanist-drawablepainter:0.32.0
+| | | +--- androidx.compose.ui:ui:1.5.0 -> 1.6.7 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
@ -1291,7 +1290,7 @@
+| | | +--- androidx.annotation:annotation:1.7.1 (*)
+| | | +--- androidx.appcompat:appcompat-resources:1.6.1 (*)
+| | | +--- androidx.collection:collection:1.4.0 (*)
+| | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| | | +--- androidx.exifinterface:exifinterface:1.3.7
+| | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*)
+| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*)
@ -1307,16 +1306,16 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-video:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-svg:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- com.caverock:androidsvg-aar:1.4
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
++--- io.coil-kt:coil-gif:2.6.0
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+| +--- androidx.core:core-ktx:1.12.0 -> 1.13.0 (*)
+| +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+| +--- io.coil-kt:coil-base:2.6.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.22 -> 1.9.23 (*)
@ -1335,7 +1334,7 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 -> 1.9.23 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.23 (*)
+\--- com.google.accompanist:accompanist-systemuicontroller:0.32.0
+ +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
+ +--- androidx.core:core-ktx:1.8.0 -> 1.13.0 (*)
+ +--- androidx.compose.ui:ui:1.5.0 -> 1.6.7 (*)
+ +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
+ \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 -> 1.9.23 (*)

@ -74,7 +74,6 @@ androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "a
androidx-compose = { module = "androidx.compose:compose-bom", version.ref = "compose" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
androidx-core = { group = "androidx.core", name = "core", version = "1.13.1" }
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragment-ktx" }
androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hilt" }
androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "hilt" }

Loading…
Cancel
Save