From bf6b857a3eeb47bbc4c9cad62cfad20e88461e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sat, 18 May 2019 00:22:07 +0200 Subject: [PATCH 1/6] Fix null returns in widgets (#340) --- .../ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt | 2 +- .../ui/modules/timetablewidget/TimetableWidgetProvider.kt | 2 +- build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 cbf3b63ce..51285969c 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 @@ -104,7 +104,7 @@ class LuckyNumberWidgetProvider : BroadcastReceiver() { .toMaybe() .doOnSuccess { sharedPref.putLong(getStudentWidgetKey(appWidgetId), it.id) } } - else -> null + else -> Maybe.empty() } } } 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 2b748760a..9b35e5cae 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 @@ -165,7 +165,7 @@ class TimetableWidgetProvider : BroadcastReceiver() { .toMaybe() .doOnSuccess { sharedPref.putLong(getStudentWidgetKey(appWidgetId), it.id) } } - else -> null + else -> Maybe.empty() } } } diff --git a/build.gradle b/build.gradle index ac6bde63f..1321c5f4c 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.android.tools.build:gradle:3.4.0' + classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.google.gms:google-services:4.2.0' classpath "io.fabric.tools:gradle:1.28.1" classpath "com.github.triplet.gradle:play-publisher:2.2.0" From 1f5088cfc97d019086852e0d069671143d4f7027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Sat, 18 May 2019 13:03:39 +0200 Subject: [PATCH 2/6] Don't copy teacher from previous lesson to completed (#341) --- .../timetable/TestTimetableEntityCreator.kt | 8 ++++---- .../timetable/TimetableRepositoryTest.kt | 14 +++++++++----- .../repositories/timetable/TimetableRepository.kt | 3 +-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TestTimetableEntityCreator.kt b/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TestTimetableEntityCreator.kt index 438e95f48..eea5463d1 100644 --- a/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TestTimetableEntityCreator.kt +++ b/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TestTimetableEntityCreator.kt @@ -7,7 +7,7 @@ import org.threeten.bp.LocalDateTime.now import io.github.wulkanowy.api.timetable.Timetable as TimetableRemote import io.github.wulkanowy.data.db.entities.Timetable as TimetableLocal -fun createTimetableLocal(number: Int, start: LocalDateTime, room: String = "", subject: String = ""): TimetableLocal { +fun createTimetableLocal(number: Int, start: LocalDateTime, room: String = "", subject: String = "", teacher: String = ""): TimetableLocal { return TimetableLocal( studentId = 1, diaryId = 2, @@ -20,7 +20,7 @@ fun createTimetableLocal(number: Int, start: LocalDateTime, room: String = "", s group = "", room = room, roomOld = "", - teacher = "", + teacher = teacher, teacherOld = "", info = "", changes = false, @@ -28,7 +28,7 @@ fun createTimetableLocal(number: Int, start: LocalDateTime, room: String = "", s ) } -fun createTimetableRemote(number: Int, start: LocalDateTime, room: String, subject: String = ""): TimetableRemote { +fun createTimetableRemote(number: Int, start: LocalDateTime, room: String, subject: String = "", teacher: String = ""): TimetableRemote { return TimetableRemote( number = number, start = start.toDate(), @@ -37,7 +37,7 @@ fun createTimetableRemote(number: Int, start: LocalDateTime, room: String, subje subject = subject, group = "", room = room, - teacher = "", + teacher = teacher, info = "", changes = false, canceled = false diff --git a/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepositoryTest.kt b/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepositoryTest.kt index 1c0802637..79216d552 100644 --- a/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepositoryTest.kt +++ b/app/src/androidTest/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepositoryTest.kt @@ -63,23 +63,27 @@ class TimetableRepositoryTest { fun copyDetailsToCompletedFromPrevious() { timetableLocal.saveTimetable(listOf( createTimetableLocal(1, of(2019, 3, 5, 8, 0), "123", "Przyroda"), - createTimetableLocal(1, of(2019, 3, 5, 8, 50), "321", "Religia"), - createTimetableLocal(1, of(2019, 3, 5, 9, 40), "213", "W-F") + createTimetableLocal(2, of(2019, 3, 5, 8, 50), "321", "Religia"), + createTimetableLocal(3, of(2019, 3, 5, 9, 40), "213", "W-F"), + createTimetableLocal(4, of(2019, 3, 5, 10, 30), "213", "W-F", "Jan Kowalski") )) every { mockApi.getTimetable(any(), any()) } returns Single.just(listOf( createTimetableRemote(1, of(2019, 3, 5, 8, 0), "", "Przyroda"), - createTimetableRemote(1, of(2019, 3, 5, 8, 50), "", "Religia"), - createTimetableRemote(1, of(2019, 3, 5, 9, 40), "", "W-F") + createTimetableRemote(2, of(2019, 3, 5, 8, 50), "", "Religia"), + createTimetableRemote(3, of(2019, 3, 5, 9, 40), "", "W-F"), + createTimetableRemote(4, of(2019, 3, 5, 10, 30), "", "W-F") )) val lessons = TimetableRepository(settings, timetableLocal, timetableRemote) .getTimetable(semesterMock, LocalDate.of(2019, 3, 5), LocalDate.of(2019, 3, 5), true) .blockingGet() - assertEquals(3, lessons.size) + assertEquals(4, lessons.size) assertEquals("123", lessons[0].room) assertEquals("321", lessons[1].room) assertEquals("213", lessons[2].room) + + assertEquals("", lessons[3].teacher) } } diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepository.kt index c3f23811a..0e6331f91 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/timetable/TimetableRepository.kt @@ -35,8 +35,7 @@ class TimetableRepository @Inject constructor( item.apply { old.singleOrNull { this.start == it.start }?.let { return@map copy( - room = if (room.isEmpty()) it.room else room, - teacher = if (teacher.isEmpty()) it.teacher else teacher + room = if (room.isEmpty()) it.room else room ) } } From 667c4b6af7d010667e48b57809c7cd4d99a53fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sat, 18 May 2019 23:32:37 +0200 Subject: [PATCH 3/6] Fix empty maybe when loading message content (#343) --- .../io/github/wulkanowy/data/db/dao/MessagesDao.kt | 4 ++-- .../data/repositories/message/MessageLocal.kt | 4 ++-- .../data/repositories/message/MessageRepository.kt | 8 ++++---- .../modules/message/preview/MessagePreviewFragment.kt | 10 ++++++---- .../modules/message/preview/MessagePreviewPresenter.kt | 6 +++--- .../ui/modules/message/tab/MessageTabFragment.kt | 6 +++--- .../ui/modules/message/tab/MessageTabPresenter.kt | 10 +++++----- .../wulkanowy/ui/modules/message/tab/MessageTabView.kt | 2 +- 8 files changed, 26 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/io/github/wulkanowy/data/db/dao/MessagesDao.kt b/app/src/main/java/io/github/wulkanowy/data/db/dao/MessagesDao.kt index 3ef5d6905..4f72c6c91 100644 --- a/app/src/main/java/io/github/wulkanowy/data/db/dao/MessagesDao.kt +++ b/app/src/main/java/io/github/wulkanowy/data/db/dao/MessagesDao.kt @@ -23,8 +23,8 @@ interface MessagesDao { @Query("SELECT * FROM Messages WHERE student_id = :studentId AND folder_id = :folder AND removed = 0 ORDER BY date DESC") fun loadAll(studentId: Int, folder: Int): Maybe> - @Query("SELECT * FROM Messages WHERE student_id = :studentId AND real_id = :id") - fun load(studentId: Int, id: Int): Maybe + @Query("SELECT * FROM Messages WHERE id = :id") + fun load(id: Long): Maybe @Query("SELECT * FROM Messages WHERE student_id = :studentId AND removed = 1 ORDER BY date DESC") fun loadDeleted(studentId: Int): Maybe> diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageLocal.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageLocal.kt index 411cca395..ce08d13ec 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageLocal.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageLocal.kt @@ -23,8 +23,8 @@ class MessageLocal @Inject constructor(private val messagesDb: MessagesDao) { messagesDb.deleteAll(messages) } - fun getMessage(student: Student, id: Int): Maybe { - return messagesDb.load(student.id.toInt(), id) + fun getMessage(id: Long): Maybe { + return messagesDb.load(id) } fun getMessages(student: Student, folder: MessageFolder): Maybe> { diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageRepository.kt index b68f7f719..c10cd5181 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/message/MessageRepository.kt @@ -46,14 +46,14 @@ class MessageRepository @Inject constructor( } } - fun getMessage(student: Student, messageId: Int, markAsRead: Boolean = false): Single { + fun getMessage(student: Student, messageDbId: Long, markAsRead: Boolean = false): Single { return Single.just(apiHelper.initApi(student)) .flatMap { _ -> - local.getMessage(student, messageId) + local.getMessage(messageDbId) .filter { !it.content.isNullOrEmpty() } .switchIfEmpty(ReactiveNetwork.checkInternetConnectivity(settings) .flatMap { - if (it) local.getMessage(student, messageId).toSingle() + if (it) local.getMessage(messageDbId).toSingle() else Single.error(UnknownHostException()) } .flatMap { dbMessage -> @@ -64,7 +64,7 @@ class MessageRepository @Inject constructor( })) } }.flatMap { - local.getMessage(student, messageId).toSingle() + local.getMessage(messageDbId).toSingle() } ) } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt index 12765546b..057d81dc6 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt @@ -27,7 +27,9 @@ class MessagePreviewFragment : BaseSessionFragment(), MessagePreviewView, MainVi lateinit var presenter: MessagePreviewPresenter private var menuReplyButton: MenuItem? = null + private var menuForwardButton: MenuItem? = null + private var menuDeleteButton: MenuItem? = null override val titleStringId: Int @@ -42,9 +44,9 @@ class MessagePreviewFragment : BaseSessionFragment(), MessagePreviewView, MainVi companion object { const val MESSAGE_ID_KEY = "message_id" - fun newInstance(messageId: Int?): MessagePreviewFragment { + fun newInstance(messageId: Long): MessagePreviewFragment { return MessagePreviewFragment().apply { - arguments = Bundle().apply { putInt(MESSAGE_ID_KEY, messageId ?: 0) } + arguments = Bundle().apply { putLong(MESSAGE_ID_KEY, messageId) } } } } @@ -61,7 +63,7 @@ class MessagePreviewFragment : BaseSessionFragment(), MessagePreviewView, MainVi override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) messageContainer = messagePreviewContainer - presenter.onAttachView(this, (savedInstanceState ?: arguments)?.getInt(MESSAGE_ID_KEY) ?: 0) + presenter.onAttachView(this, (savedInstanceState ?: arguments)?.getLong(MESSAGE_ID_KEY) ?: 0L) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { @@ -145,7 +147,7 @@ class MessagePreviewFragment : BaseSessionFragment(), MessagePreviewView, MainVi override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - outState.putInt(MESSAGE_ID_KEY, presenter.messageId) + outState.putLong(MESSAGE_ID_KEY, presenter.messageId) } override fun onDestroyView() { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewPresenter.kt index 397e103b2..31641d754 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewPresenter.kt @@ -20,16 +20,16 @@ class MessagePreviewPresenter @Inject constructor( private val analytics: FirebaseAnalyticsHelper ) : BaseSessionPresenter(errorHandler) { - var messageId: Int = 0 + var messageId = 0L private var message: Message? = null - fun onAttachView(view: MessagePreviewView, id: Int) { + fun onAttachView(view: MessagePreviewView, id: Long) { super.onAttachView(view) loadData(id) } - private fun loadData(id: Int) { + private fun loadData(id: Long) { Timber.i("Loading message $id preview started") messageId = id disposable.apply { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabFragment.kt index e9d77e592..3859853fc 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabFragment.kt @@ -56,7 +56,7 @@ class MessageTabFragment : BaseSessionFragment(), MessageTabView { super.onActivityCreated(savedInstanceState) messageContainer = messageTabRecycler presenter.onAttachView(this, MessageFolder.valueOf( - (savedInstanceState ?: arguments)?.getString(MessageTabFragment.MESSAGE_TAB_FOLDER_ID).orEmpty() + (savedInstanceState ?: arguments)?.getString(MESSAGE_TAB_FOLDER_ID).orEmpty() )) } @@ -106,7 +106,7 @@ class MessageTabFragment : BaseSessionFragment(), MessageTabView { messageTabSwipe.isRefreshing = show } - override fun openMessage(messageId: Int?) { + override fun openMessage(messageId: Long) { (activity as? MainActivity)?.pushView(MessagePreviewFragment.newInstance(messageId)) } @@ -124,7 +124,7 @@ class MessageTabFragment : BaseSessionFragment(), MessageTabView { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - outState.putString(MessageTabFragment.MESSAGE_TAB_FOLDER_ID, presenter.folder.name) + outState.putString(MESSAGE_TAB_FOLDER_ID, presenter.folder.name) } override fun onDestroyView() { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabPresenter.kt index 4a8415e87..2173c951d 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabPresenter.kt @@ -44,9 +44,9 @@ class MessageTabPresenter @Inject constructor( fun onMessageItemSelected(item: AbstractFlexibleItem<*>) { if (item is MessageItem) { - Timber.i("Select message ${item.message.realId} item") + Timber.i("Select message ${item.message.id} item") view?.run { - openMessage(item.message.realId) + openMessage(item.message.id) if (item.message.unread) { item.message.unread = false updateItem(item) @@ -90,13 +90,13 @@ class MessageTabPresenter @Inject constructor( } private fun updateMessage(message: Message) { - Timber.i("Attempt to update message ${message.realId}") + Timber.i("Attempt to update message ${message.id}") disposable.add(messageRepository.updateMessage(message) .subscribeOn(schedulers.backgroundThread) .observeOn(schedulers.mainThread) - .subscribe({ Timber.d("Update message ${message.realId} result: Success") }) + .subscribe({ Timber.d("Update message ${message.id} result: Success") }) { error -> - Timber.i("Update message ${message.realId} result: An exception occurred") + Timber.i("Update message ${message.id} result: An exception occurred") errorHandler.dispatch(error) }) } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabView.kt index bcda52b56..01a188e75 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabView.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/tab/MessageTabView.kt @@ -28,7 +28,7 @@ interface MessageTabView : BaseSessionView { fun showRefresh(show: Boolean) - fun openMessage(messageId: Int?) + fun openMessage(messageId: Long) fun notifyParentDataLoaded() } 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 4/6] 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() } From 8731c2e1f20554449bc8e2478fa757e1ec894ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Sun, 19 May 2019 22:47:57 +0200 Subject: [PATCH 5/6] Change help text when entering the symbol to a more precise one (#345) --- app/build.gradle | 2 +- app/src/main/res/values-pl/strings.xml | 4 ++-- app/src/main/res/values/strings.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5a3a7f2ae..d5f946154 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -85,7 +85,7 @@ play { } dependencies { - implementation 'io.github.wulkanowy:api:0.8.2' + implementation 'com.github.wulkanowy:api:0ceddab' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "androidx.legacy:legacy-support-v4:1.0.0" diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c1a5f2bc7..b12ece137 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -21,7 +21,7 @@ Zaloguj się za pomocą konta ucznia lub rodzica - Podaj symbol dziennika VULCAN + Podaj symbol Email lub nick Hasło Dziennik @@ -32,7 +32,7 @@ Nie znaleziono ucznia. Sprawdź symbol To pole jest wymagane Wybrany uczeń jest już zalogowany - Symbol znajduje się na stronie dziennika w zakładce Dostęp Mobilny + Symbol znajdziesz na stronie dziennika w Uczeń -> Dostęp Mobilny -> Zarejestruj urządzenie mobilne Wybierz uczniów do zalogowania w aplikacji Polityka prywatności diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 704bb35be..0cdd71beb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,7 +21,7 @@ Sign in with the student or parent account - Enter the VULCAN diary symbol + Enter the symbol Email or nick Password Register @@ -32,7 +32,7 @@ Student not found. Check the symbol This field is required The selected student is already logged in - The symbol is located on the register page in the Mobile Access tab + The symbol can be found on the register page in Uczeń -> Dostęp Mobilny -> Zarejestruj urządzenie mobilne Select students to log in to the application Privacy policy From 153e026a8d0aad869d1c44bf2bcc617642a13be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Mon, 20 May 2019 00:21:30 +0200 Subject: [PATCH 6/6] Version 0.8.3 --- .travis.yml | 8 ++++---- app/build.gradle | 6 +++--- app/src/main/play/release-notes/pl-PL/default.txt | 9 ++++++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index b8f8a6461..10824e32f 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/build.gradle b/app/build.gradle index d5f946154..3043bc651 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { testApplicationId "io.github.tests.wulkanowy" minSdkVersion 15 targetSdkVersion 28 - versionCode 35 - versionName "0.8.2" + versionCode 36 + versionName "0.8.3" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -85,7 +85,7 @@ play { } dependencies { - implementation 'com.github.wulkanowy:api:0ceddab' + implementation 'io.github.wulkanowy:api:0.8.3' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "androidx.legacy:legacy-support-v4:1.0.0" diff --git a/app/src/main/play/release-notes/pl-PL/default.txt b/app/src/main/play/release-notes/pl-PL/default.txt index e36d71ce6..d1f8f1e7f 100644 --- a/app/src/main/play/release-notes/pl-PL/default.txt +++ b/app/src/main/play/release-notes/pl-PL/default.txt @@ -1,7 +1,10 @@ -Wersja 0.8.2 +Wersja 0.8.3 Naprawiliśmy: -- rzadkie problemy ze stabilnością w aplikacji -- częste problemy ze stabilnością w widżecie szczęśliwego numerka +- rzadkie problemy z wczytywaniem treści wiadomości +- rzadkie problemy z wyświetlaniem poprawnego nauczyciela przy zastępstwach + +Zmieniliśmy: +- tekst wskazówki przy wprowadzaniu symbolu w formularzu logowania Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases