diff --git a/build.gradle b/build.gradle index c16e5b1efbf..47075b20dc7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,15 +7,15 @@ buildscript { // Android jetpack androidxArchCore = "2.2.0" - androidxLifecycle = "2.5.1" - androidxRoom = "2.5.0" + androidxLifecycle = "2.6.1" + androidxRoom = "2.5.1" androidxCore = "1.9.0" androidxFragment = "1.5.5" androidxAppcompat = "1.5.1" androidxLegacy = "1.0.0" // Kotlin - orgJetbrainsKotlin = "1.8.10" + orgJetbrainsKotlin = "1.8.20" orgJetbrainsKotlinx = "1.6.4" // Koin @@ -48,7 +48,7 @@ buildscript { plugins { id "org.sonarqube" version "4.0.0.2929" - id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false + id 'com.google.devtools.ksp' version '1.8.20-1.0.10' apply false } allprojects { diff --git a/owncloud-android-library b/owncloud-android-library index 393ec6e07e1..0c3224babf2 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit 393ec6e07e12783ee6f5f5f8b7d2d75b7a9ba0ab +Subproject commit 0c3224babf287a7d5d09bc7da18be9db248b5db3 diff --git a/owncloudApp/build.gradle b/owncloudApp/build.gradle index 82b2cfb24b6..8fd4861c1b0 100644 --- a/owncloudApp/build.gradle +++ b/owncloudApp/build.gradle @@ -28,7 +28,7 @@ dependencies { implementation "androidx.lifecycle:lifecycle-common-java8:$androidxLifecycle" implementation "androidx.preference:preference-ktx:1.2.0" implementation "androidx.room:room-runtime:$androidxRoom" - implementation "androidx.sqlite:sqlite-ktx:2.3.0" + implementation "androidx.sqlite:sqlite-ktx:2.3.1" implementation "androidx.work:work-runtime-ktx:2.8.1" implementation("androidx.browser:browser:1.5.0") { because "CustomTabs required for OAuth2 and OIDC" } implementation("androidx.enterprise:enterprise-feedback:1.1.0") { because "MDM feedback" } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsViewModel.kt index f12d047e426..5ba7cd3f852 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsViewModel.kt @@ -22,9 +22,9 @@ import android.accounts.Account import androidx.lifecycle.LiveData import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.Transformations import androidx.lifecycle.ViewModel import androidx.lifecycle.map +import androidx.lifecycle.switchMap import androidx.lifecycle.viewModelScope import androidx.work.WorkInfo import androidx.work.WorkManager @@ -93,7 +93,7 @@ class FileDetailsViewModel( ) private val _ongoingTransferUUID = MutableLiveData() - private val _ongoingTransfer = Transformations.switchMap(_ongoingTransferUUID) { transferUUID -> + private val _ongoingTransfer = _ongoingTransferUUID.switchMap { transferUUID -> workManager.getWorkInfoByIdLiveData(transferUUID) }.map { Event(it) } val ongoingTransfer: LiveData> = _ongoingTransfer diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForDownloadingFileUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForDownloadingFileUseCase.kt index 9bf97955252..75b6c2e9383 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForDownloadingFileUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForDownloadingFileUseCase.kt @@ -19,7 +19,7 @@ package com.owncloud.android.usecases.transfers.downloads import androidx.lifecycle.LiveData -import androidx.lifecycle.Transformations +import androidx.lifecycle.map import androidx.work.WorkInfo import androidx.work.WorkManager import com.owncloud.android.domain.BaseUseCase @@ -42,7 +42,7 @@ class GetLiveDataForDownloadingFileUseCase( states = PENDING_WORK_STATUS ) - return Transformations.map(workManager.getWorkInfosLiveData(workQuery)) { listOfDownloads -> + return workManager.getWorkInfosLiveData(workQuery).map { listOfDownloads -> listOfDownloads.firstOrNull { it.tags.containsAll(tagsToFilter) } } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForFinishedDownloadsFromAccountUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForFinishedDownloadsFromAccountUseCase.kt index 1f9bf80a946..d0698a9411a 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForFinishedDownloadsFromAccountUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForFinishedDownloadsFromAccountUseCase.kt @@ -20,7 +20,7 @@ package com.owncloud.android.usecases.transfers.downloads import android.accounts.Account import androidx.lifecycle.LiveData -import androidx.lifecycle.Transformations +import androidx.lifecycle.map import androidx.work.WorkInfo import androidx.work.WorkManager import com.owncloud.android.domain.BaseUseCase @@ -42,9 +42,7 @@ class GetLiveDataForFinishedDownloadsFromAccountUseCase( states = FINISHED_WORK_STATUS ) - return Transformations.map( - workManager.getWorkInfosLiveData(workQuery) - ) { listOfDownloads -> + return workManager.getWorkInfosLiveData(workQuery).map { listOfDownloads -> listOfDownloads .asReversed() .distinctBy { it.tags } diff --git a/owncloudData/build.gradle b/owncloudData/build.gradle index cee72ebf277..e121618c825 100644 --- a/owncloudData/build.gradle +++ b/owncloudData/build.gradle @@ -58,6 +58,7 @@ dependencies { // Kotlin implementation "org.jetbrains.kotlin:kotlin-stdlib:$orgJetbrainsKotlin" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$orgJetbrainsKotlinx" + implementation "androidx.lifecycle:lifecycle-livedata-ktx:$androidxLifecycle" // Room implementation "androidx.room:room-ktx:$androidxRoom" diff --git a/owncloudData/src/main/java/com/owncloud/android/data/capabilities/datasources/implementation/OCLocalCapabilitiesDataSource.kt b/owncloudData/src/main/java/com/owncloud/android/data/capabilities/datasources/implementation/OCLocalCapabilitiesDataSource.kt index 15e5f5b4086..ca7c423b3db 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/capabilities/datasources/implementation/OCLocalCapabilitiesDataSource.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/capabilities/datasources/implementation/OCLocalCapabilitiesDataSource.kt @@ -21,7 +21,7 @@ package com.owncloud.android.data.capabilities.datasources.implementation import androidx.annotation.VisibleForTesting import androidx.lifecycle.LiveData -import androidx.lifecycle.Transformations +import androidx.lifecycle.map import com.owncloud.android.data.capabilities.datasources.LocalCapabilitiesDataSource import com.owncloud.android.data.capabilities.db.OCCapabilityDao import com.owncloud.android.data.capabilities.db.OCCapabilityEntity @@ -33,7 +33,7 @@ class OCLocalCapabilitiesDataSource( ) : LocalCapabilitiesDataSource { override fun getCapabilitiesForAccountAsLiveData(accountName: String): LiveData = - Transformations.map(ocCapabilityDao.getCapabilitiesForAccountAsLiveData(accountName)) { ocCapabilityEntity -> + ocCapabilityDao.getCapabilitiesForAccountAsLiveData(accountName).map { ocCapabilityEntity -> ocCapabilityEntity?.toModel() } diff --git a/owncloudData/src/main/java/com/owncloud/android/data/sharing/shares/datasources/implementation/OCLocalShareDataSource.kt b/owncloudData/src/main/java/com/owncloud/android/data/sharing/shares/datasources/implementation/OCLocalShareDataSource.kt index 59d4a9d6323..2ca3e6d0141 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/sharing/shares/datasources/implementation/OCLocalShareDataSource.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/sharing/shares/datasources/implementation/OCLocalShareDataSource.kt @@ -21,7 +21,7 @@ package com.owncloud.android.data.sharing.shares.datasources.implementation import androidx.annotation.VisibleForTesting import androidx.lifecycle.LiveData -import androidx.lifecycle.Transformations +import androidx.lifecycle.map import com.owncloud.android.data.sharing.shares.datasources.LocalShareDataSource import com.owncloud.android.data.sharing.shares.db.OCShareDao import com.owncloud.android.data.sharing.shares.db.OCShareEntity @@ -37,17 +37,16 @@ class OCLocalShareDataSource( accountName: String, shareTypes: List ): LiveData> = - Transformations.map( - ocShareDao.getSharesAsLiveData( - filePath, - accountName, - shareTypes.map { it.value }) - ) { ocShareEntities -> + ocShareDao.getSharesAsLiveData( + filePath, + accountName, + shareTypes.map { it.value } + ).map { ocShareEntities -> ocShareEntities.map { ocShareEntity -> ocShareEntity.toModel() } } override fun getShareAsLiveData(remoteId: String): LiveData = - Transformations.map(ocShareDao.getShareAsLiveData(remoteId)) { ocShareEntity -> + ocShareDao.getShareAsLiveData(remoteId).map { ocShareEntity -> ocShareEntity.toModel() } diff --git a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/livedata/LiveDataUtils.kt b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/livedata/LiveDataUtils.kt index 68a35b5f310..3a1eea1d25a 100644 --- a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/livedata/LiveDataUtils.kt +++ b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/livedata/LiveDataUtils.kt @@ -33,8 +33,8 @@ inline fun LiveData.getEmittedValues( val data = arrayOfNulls(expectedSize) val latch = CountDownLatch(expectedSize) val observer = object : Observer { - override fun onChanged(o: T?) { - data[currentValue.getAndAdd(1)] = o + override fun onChanged(value: T) { + data[currentValue.getAndAdd(1)] = value if (currentValue.get() == expectedSize) { removeObserver(this) }