diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 83a72aa1c..274d71c67 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -149,7 +149,7 @@ dependencies { implementation("androidx.hilt:hilt-work:${Versions.hilt_androidx}") implementation("androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hilt_androidx}") - implementation("androidx.room:room-rxjava2:${Versions.room}") + implementation("androidx.room:room-runtime:${Versions.room}") kapt("androidx.room:room-compiler:${Versions.room}") implementation("androidx.lifecycle:lifecycle-extensions:2.2.0") implementation("io.reactivex.rxjava2:rxandroid:2.1.1") diff --git a/app/licenses.yml b/app/licenses.yml index cc156d048..45696b4da 100644 --- a/app/licenses.yml +++ b/app/licenses.yml @@ -425,12 +425,6 @@ copyrightHolder: Google Inc. license: The Apache Software License, Version 2.0 licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt -- artifact: androidx.room:room-rxjava2:+ - name: Android Room RXJava2 - copyrightHolder: Android Open Source Project - license: The Apache Software License, Version 2.0 - licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt - url: https://developer.android.com/topic/libraries/architecture/index.html - artifact: androidx.drawerlayout:drawerlayout:+ name: Android Support Library Drawer Layout copyrightHolder: Android Open Source Project diff --git a/app/src/googleplay/java/org/tasks/gtasks/PlayServices.kt b/app/src/googleplay/java/org/tasks/gtasks/PlayServices.kt index bc9c65028..521c3ea47 100644 --- a/app/src/googleplay/java/org/tasks/gtasks/PlayServices.kt +++ b/app/src/googleplay/java/org/tasks/gtasks/PlayServices.kt @@ -9,10 +9,8 @@ import dagger.hilt.android.qualifiers.ApplicationContext import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable -import io.reactivex.functions.Function3 import io.reactivex.schedulers.Schedulers import org.tasks.R -import org.tasks.data.GoogleTaskListDao import org.tasks.data.LocationDao import org.tasks.preferences.Preferences import timber.log.Timber @@ -21,17 +19,12 @@ import javax.inject.Inject class PlayServices @Inject constructor( @param:ApplicationContext private val context: Context, private val preferences: Preferences, - private val googleTaskListDao: GoogleTaskListDao, private val locationDao: LocationDao) { fun check(activity: Activity?): Disposable { - return Single.zip( - googleTaskListDao.accountCount(), - locationDao.geofenceCount(), - Single.fromCallable { preferences.getBoolean(R.string.p_google_drive_backup, false) }, - Function3 { gtaskCount: Int, geofenceCount: Int, gdrive: Boolean -> gtaskCount > 0 || geofenceCount > 0 || gdrive }) + return Single.fromCallable(locationDao::geofenceCount) + .map { it == 0 || refreshAndCheck() } .subscribeOn(Schedulers.io()) - .map { !it || refreshAndCheck() } .observeOn(AndroidSchedulers.mainThread()) .subscribe { success: Boolean -> if (!success && !preferences.getBoolean(R.string.warned_play_services, false)) { diff --git a/app/src/main/assets/licenses.json b/app/src/main/assets/licenses.json index 08924bb2f..b3ce788ef 100644 --- a/app/src/main/assets/licenses.json +++ b/app/src/main/assets/licenses.json @@ -986,20 +986,6 @@ "normalizedLicense": "apache2", "libraryName": "Google OAuth Client Library for Java" }, - { - "artifactId": { - "name": "room-rxjava2", - "group": "androidx.room", - "version": "+" - }, - "copyrightHolder": "Android Open Source Project", - "copyrightStatement": "Copyright © Android Open Source Project. All rights reserved.", - "license": "The Apache Software License, Version 2.0", - "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt", - "normalizedLicense": "apache2", - "url": "https://developer.android.com/topic/libraries/architecture/index.html", - "libraryName": "Android Room RXJava2" - }, { "artifactId": { "name": "drawerlayout", diff --git a/app/src/main/java/org/tasks/data/GoogleTaskListDao.kt b/app/src/main/java/org/tasks/data/GoogleTaskListDao.kt index 58acfcf6f..cffc12887 100644 --- a/app/src/main/java/org/tasks/data/GoogleTaskListDao.kt +++ b/app/src/main/java/org/tasks/data/GoogleTaskListDao.kt @@ -3,14 +3,13 @@ package org.tasks.data import androidx.lifecycle.LiveData import androidx.room.* import com.todoroo.astrid.api.FilterListItem.NO_ORDER -import io.reactivex.Single import org.tasks.filters.GoogleTaskFilters import org.tasks.time.DateTimeUtils.currentTimeMillis @Dao interface GoogleTaskListDao { @Query("SELECT COUNT(*) FROM google_task_accounts") - fun accountCount(): Single + fun accountCount(): Int @Query("SELECT * FROM google_task_accounts") fun getAccounts(): List diff --git a/app/src/main/java/org/tasks/data/LocationDao.kt b/app/src/main/java/org/tasks/data/LocationDao.kt index 15b781d1c..5577c2693 100644 --- a/app/src/main/java/org/tasks/data/LocationDao.kt +++ b/app/src/main/java/org/tasks/data/LocationDao.kt @@ -63,7 +63,7 @@ interface LocationDao { fun getActiveGeofences(): List @Query("SELECT COUNT(*) FROM geofences") - fun geofenceCount(): Single + fun geofenceCount(): Int @Delete fun delete(location: Geofence) diff --git a/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt b/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt index 81c9590ed..a00a27a82 100644 --- a/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt +++ b/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt @@ -108,7 +108,7 @@ class WorkManagerImpl constructor( val onlyOnWifi = forceOnlyOnUnmetered ?: preferences.getBoolean(R.string.p_background_sync_unmetered_only, false) (if (forceAccountPresent == null) Single.zip( - googleTaskListDao.accountCount(), + Single.fromCallable { googleTaskListDao.accountCount() }, Single.fromCallable { caldavDao.accountCount() }, BiFunction { googleCount: Int, caldavCount: Int -> googleCount > 0 || caldavCount > 0 }) else Single.just(forceAccountPresent)) .subscribeOn(Schedulers.io())