From 0977282a4b8281a8d90492f8cb130bff6a3bd9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sat, 18 May 2019 23:42:47 +0200 Subject: [PATCH] Fix no current student in services after logout all accounts (#342) --- .travis.yml | 8 ++++---- .../data/repositories/student/StudentRepository.kt | 2 ++ .../java/io/github/wulkanowy/services/sync/SyncWorker.kt | 2 +- .../luckynumberwidget/LuckyNumberWidgetProvider.kt | 5 +++-- .../github/wulkanowy/ui/modules/splash/SplashPresenter.kt | 2 +- .../ui/modules/timetablewidget/TimetableWidgetProvider.kt | 5 +++-- .../wulkanowy/ui/modules/splash/SplashPresenterTest.kt | 4 ++-- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 10824e32f..b8f8a6461 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,10 +11,10 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ -#branches: -# only: -# - master -# - 0.8.x +branches: + only: + - master + - 0.8.x android: licenses: diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/student/StudentRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/student/StudentRepository.kt index e0ab6bf67..5c4a60558 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/student/StudentRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/student/StudentRepository.kt @@ -22,6 +22,8 @@ class StudentRepository @Inject constructor( fun isStudentSaved(): Single = local.getStudents(false).isEmpty.map { !it } + fun isCurrentStudentSet(): Single = local.getCurrentStudent(false).isEmpty.map { !it } + fun getStudents(email: String, password: String, endpoint: String, symbol: String = ""): Single> { return ReactiveNetwork.checkInternetConnectivity(settings) .flatMap { 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 134fb0344..6a4c4ca6d 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 @@ -35,7 +35,7 @@ class SyncWorker @AssistedInject constructor( override fun createWork(): Single { Timber.i("SyncWorker is starting") - return studentRepository.isStudentSaved() + return studentRepository.isCurrentStudentSet() .filter { true } .flatMap { studentRepository.getCurrentStudent().toMaybe() } .flatMapCompletable { student -> diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt index 51285969c..66141c913 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt @@ -100,8 +100,9 @@ class LuckyNumberWidgetProvider : BroadcastReceiver() { when { student != null -> Maybe.just(student) studentId != 0L -> { - studentRepository.getCurrentStudent(false) - .toMaybe() + studentRepository.isCurrentStudentSet() + .filter { true } + .flatMap { studentRepository.getCurrentStudent(false).toMaybe() } .doOnSuccess { sharedPref.putLong(getStudentWidgetKey(appWidgetId), it.id) } } else -> Maybe.empty() diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashPresenter.kt index b6bf0e2a3..e6a9d7b3e 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/splash/SplashPresenter.kt @@ -14,7 +14,7 @@ class SplashPresenter @Inject constructor( override fun onAttachView(view: SplashView) { super.onAttachView(view) - disposable.add(studentRepository.isStudentSaved() + disposable.add(studentRepository.isCurrentStudentSet() .subscribeOn(schedulers.backgroundThread) .observeOn(schedulers.mainThread) .subscribe({ diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetProvider.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetProvider.kt index 9b35e5cae..a462ca7b5 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetProvider.kt @@ -161,8 +161,9 @@ class TimetableWidgetProvider : BroadcastReceiver() { when { student != null -> Maybe.just(student) studentId != 0L -> { - studentRepository.getCurrentStudent(false) - .toMaybe() + studentRepository.isCurrentStudentSet() + .filter { true } + .flatMap { studentRepository.getCurrentStudent(false).toMaybe() } .doOnSuccess { sharedPref.putLong(getStudentWidgetKey(appWidgetId), it.id) } } else -> Maybe.empty() diff --git a/app/src/test/java/io/github/wulkanowy/ui/modules/splash/SplashPresenterTest.kt b/app/src/test/java/io/github/wulkanowy/ui/modules/splash/SplashPresenterTest.kt index fc25c0953..bc530a2bc 100644 --- a/app/src/test/java/io/github/wulkanowy/ui/modules/splash/SplashPresenterTest.kt +++ b/app/src/test/java/io/github/wulkanowy/ui/modules/splash/SplashPresenterTest.kt @@ -32,14 +32,14 @@ class SplashPresenterTest { @Test fun testOpenLoginView() { - doReturn(Single.just(false)).`when`(studentRepository).isStudentSaved() + doReturn(Single.just(false)).`when`(studentRepository).isCurrentStudentSet() presenter.onAttachView(splashView) verify(splashView).openLoginView() } @Test fun testMainMainView() { - doReturn(Single.just(true)).`when`(studentRepository).isStudentSaved() + doReturn(Single.just(true)).`when`(studentRepository).isCurrentStudentSet() presenter.onAttachView(splashView) verify(splashView).openMainView() }