From 316cd2f7f9b9f74973d2b02fb669eb295b78cb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sat, 23 Mar 2019 00:37:13 +0100 Subject: [PATCH] Add checking current student in background services (#295) --- .travis.yml | 8 ++++---- .../wulkanowy/services/sync/SyncWorker.kt | 17 +++++++++++------ .../widgets/timetable/TimetableWidgetFactory.kt | 11 ++++++++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 56c64858..b3261931 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,10 +11,10 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ -#branches: -# only: -# - master -# - 0.7.x +branches: + only: + - master + - 0.7.x android: licenses: diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt index 86a3dd61..a6e44b42 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt @@ -34,12 +34,17 @@ class SyncWorker @AssistedInject constructor( ) : RxWorker(appContext, workerParameters) { override fun createWork(): Single { - return studentRepository.getCurrentStudent() - .flatMapCompletable { student -> - semesterRepository.getCurrentSemester(student, true) - .flatMapCompletable { semester -> - Completable.mergeDelayError(works.map { it.create(student, semester) }) - } + return studentRepository.isStudentSaved() + .flatMapCompletable { isSaved -> + if (isSaved) { + studentRepository.getCurrentStudent() + .flatMapCompletable { student -> + semesterRepository.getCurrentSemester(student) + .flatMapCompletable { semester -> + Completable.mergeDelayError(works.map { it.create(student, semester) }) + } + } + } else Completable.complete() } .toSingleDefault(Result.success()) .onErrorReturn { diff --git a/app/src/main/java/io/github/wulkanowy/ui/widgets/timetable/TimetableWidgetFactory.kt b/app/src/main/java/io/github/wulkanowy/ui/widgets/timetable/TimetableWidgetFactory.kt index 63560807..f2d40ba7 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/widgets/timetable/TimetableWidgetFactory.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/widgets/timetable/TimetableWidgetFactory.kt @@ -17,6 +17,7 @@ import io.github.wulkanowy.data.repositories.student.StudentRepository import io.github.wulkanowy.data.repositories.timetable.TimetableRepository import io.github.wulkanowy.utils.SchedulersProvider import io.github.wulkanowy.utils.toFormattedString +import io.reactivex.Single import org.threeten.bp.LocalDate import timber.log.Timber @@ -51,9 +52,13 @@ class TimetableWidgetFactory( ?.let { date -> try { lessons = studentRepository.isStudentSaved() - .flatMap { studentRepository.getCurrentStudent() } - .flatMap { semesterRepository.getCurrentSemester(it) } - .flatMap { timetableRepository.getTimetable(it, date, date) } + .flatMap { isSaved -> + if (isSaved) { + studentRepository.getCurrentStudent() + .flatMap { semesterRepository.getCurrentSemester(it) } + .flatMap { timetableRepository.getTimetable(it, date, date) } + } else Single.just(emptyList()) + } .map { item -> item.sortedBy { it.number } } .subscribeOn(schedulers.backgroundThread) .blockingGet()