From feb38b97e478e061b9d677b18bf04abfc207ba6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Sun, 10 Mar 2019 11:57:11 +0100 Subject: [PATCH] Change login progress bars (#272) --- .../semester/SemesterRepository.kt | 1 - .../summary/AttendanceSummaryPresenter.kt | 1 + .../modules/login/form/LoginFormFragment.kt | 2 +- .../LoginStudentSelectFragment.kt | 6 +-- .../studentselect/LoginStudentSelectItem.kt | 4 +- .../LoginStudentSelectPresenter.kt | 3 -- .../login/symbol/LoginSymbolFragment.kt | 2 +- .../luckynumber/LuckyNumberFragment.kt | 2 - .../luckynumber/LuckyNumberPresenter.kt | 6 +++ .../main/res/layout/fragment_login_form.xml | 32 ++++----------- .../layout/fragment_login_student_select.xml | 41 +++++-------------- .../main/res/layout/fragment_login_symbol.xml | 32 ++++----------- .../main/res/layout/fragment_lucky_number.xml | 6 +-- ...ions.xml => item_login_student_select.xml} | 0 app/src/main/res/values-pl/strings.xml | 4 +- app/src/main/res/values/strings.xml | 2 - .../LoginStudentSelectPresenterTest.kt | 10 +---- 17 files changed, 44 insertions(+), 110 deletions(-) rename app/src/main/res/layout/{item_login_options.xml => item_login_student_select.xml} (100%) diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/semester/SemesterRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/semester/SemesterRepository.kt index 2ebcfc63..975868a2 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/semester/SemesterRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/semester/SemesterRepository.kt @@ -37,4 +37,3 @@ class SemesterRepository @Inject constructor( return getSemesters(student, forceRefresh).map { item -> item.single { it.isCurrent } } } } - diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/attendance/summary/AttendanceSummaryPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/attendance/summary/AttendanceSummaryPresenter.kt index 54942c7f..8b17f743 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/attendance/summary/AttendanceSummaryPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/attendance/summary/AttendanceSummaryPresenter.kt @@ -75,6 +75,7 @@ class AttendanceSummaryPresenter @Inject constructor( view?.run { hideRefresh() showProgress(false) + enableSwipe(true) } } .subscribe({ diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/form/LoginFormFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/form/LoginFormFragment.kt index 673e2166..54fd0704 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/form/LoginFormFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/form/LoginFormFragment.kt @@ -115,7 +115,7 @@ class LoginFormFragment : BaseFragment(), LoginFormView { } override fun showProgress(show: Boolean) { - loginFormProgressContainer.visibility = if (show) VISIBLE else GONE + loginFormProgress.visibility = if (show) VISIBLE else GONE } override fun showContent(show: Boolean) { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectFragment.kt index 22a41554..2bcb6b4e 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectFragment.kt @@ -47,7 +47,7 @@ class LoginStudentSelectFragment : BaseFragment(), LoginStudentSelectView { override fun initView() { loginAdapter.apply { setOnItemClickListener { presenter.onItemSelected(it) } } - loginOptionsRecycler.apply { + loginStudentSelectRecycler.apply { adapter = loginAdapter layoutManager = SmoothScrollLinearLayoutManager(context) } @@ -65,11 +65,11 @@ class LoginStudentSelectFragment : BaseFragment(), LoginStudentSelectView { } override fun showProgress(show: Boolean) { - loginOptionsProgressContainer.visibility = if (show) VISIBLE else GONE + loginStudentSelectProgress.visibility = if (show) VISIBLE else GONE } override fun showContent(show: Boolean) { - loginOptionsRecycler.visibility = if (show) VISIBLE else GONE + loginStudentSelectRecycler.visibility = if (show) VISIBLE else GONE } override fun showActionBar(show: Boolean) { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectItem.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectItem.kt index fe5df229..c206a499 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectItem.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectItem.kt @@ -8,11 +8,11 @@ import eu.davidea.viewholders.FlexibleViewHolder import io.github.wulkanowy.R import io.github.wulkanowy.data.db.entities.Student import kotlinx.android.extensions.LayoutContainer -import kotlinx.android.synthetic.main.item_login_options.view.* +import kotlinx.android.synthetic.main.item_login_student_select.view.* class LoginStudentSelectItem(val student: Student) : AbstractFlexibleItem() { - override fun getLayoutRes(): Int = R.layout.item_login_options + override fun getLayoutRes(): Int = R.layout.item_login_student_select override fun createViewHolder(view: View?, adapter: FlexibleAdapter>?): ItemViewHolder { return ItemViewHolder(view, adapter) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenter.kt index 336f9c90..6c2acb3b 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenter.kt @@ -3,7 +3,6 @@ package io.github.wulkanowy.ui.modules.login.studentselect import com.google.firebase.analytics.FirebaseAnalytics.Param.SUCCESS import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import io.github.wulkanowy.data.db.entities.Student -import io.github.wulkanowy.data.repositories.semester.SemesterRepository import io.github.wulkanowy.data.repositories.student.StudentRepository import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.modules.login.LoginErrorHandler @@ -17,7 +16,6 @@ import javax.inject.Inject class LoginStudentSelectPresenter @Inject constructor( private val errorHandler: LoginErrorHandler, private val studentRepository: StudentRepository, - private val semesterRepository: SemesterRepository, private val schedulers: SchedulersProvider, private val analytics: FirebaseAnalyticsHelper ) : BasePresenter(errorHandler) { @@ -59,7 +57,6 @@ class LoginStudentSelectPresenter @Inject constructor( private fun registerStudent(student: Student) { disposable.add(studentRepository.saveStudent(student) .map { student.apply { id = it } } - .flatMap { semesterRepository.getSemesters(student, true) } .onErrorResumeNext { studentRepository.logoutStudent(student).andThen(Single.error(it)) } .flatMapCompletable { studentRepository.switchStudent(student) } .subscribeOn(schedulers.backgroundThread) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/symbol/LoginSymbolFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/symbol/LoginSymbolFragment.kt index ab12b777..87de0a81 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/symbol/LoginSymbolFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/symbol/LoginSymbolFragment.kt @@ -93,7 +93,7 @@ class LoginSymbolFragment : BaseFragment(), LoginSymbolView { } override fun showProgress(show: Boolean) { - loginSymbolProgressContainer.visibility = if (show) VISIBLE else GONE + loginSymbolProgress.visibility = if (show) VISIBLE else GONE } override fun showContent(show: Boolean) { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberFragment.kt index 388af8d0..cff6175c 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberFragment.kt @@ -33,8 +33,6 @@ class LuckyNumberFragment : BaseSessionFragment(), LuckyNumberView, MainView.Tit } override fun initView() { - showContent(false) - showProgress(true) luckyNumberSwipe.setOnRefreshListener { presenter.onSwipeRefresh() } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberPresenter.kt index afb8e332..92ee4e25 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumber/LuckyNumberPresenter.kt @@ -35,6 +35,12 @@ class LuckyNumberPresenter @Inject constructor( .flatMapMaybe { luckyNumberRepository.getLuckyNumber(it, forceRefresh) } .subscribeOn(schedulers.backgroundThread) .observeOn(schedulers.mainThread) + .doOnSubscribe { + view?.run { + showContent(false) + enableSwipe(false) + } + } .doFinally { view?.run { hideRefresh() diff --git a/app/src/main/res/layout/fragment_login_form.xml b/app/src/main/res/layout/fragment_login_form.xml index 7cb83090..a3ac4d12 100644 --- a/app/src/main/res/layout/fragment_login_form.xml +++ b/app/src/main/res/layout/fragment_login_form.xml @@ -4,31 +4,13 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - + - - - - - - - + - + tools:listitem="@layout/item_login_student_select" /> + diff --git a/app/src/main/res/layout/fragment_login_symbol.xml b/app/src/main/res/layout/fragment_login_symbol.xml index 62df3a7a..11305f9b 100644 --- a/app/src/main/res/layout/fragment_login_symbol.xml +++ b/app/src/main/res/layout/fragment_login_symbol.xml @@ -4,31 +4,13 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - + + tools:visibility="invisible" /> + android:textSize="52sp" + tools:text="14" /> diff --git a/app/src/main/res/layout/item_login_options.xml b/app/src/main/res/layout/item_login_student_select.xml similarity index 100% rename from app/src/main/res/layout/item_login_options.xml rename to app/src/main/res/layout/item_login_student_select.xml diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 75dbca80..a84a3f55 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -26,11 +26,9 @@ Dziennik Symbol Zaloguj - Logowanie… - Synchronizacja To hasło jest za krótkie Dane logowania są niepoprawne - Nie znaleziono ucznia. Sprwadź symbol + Nie znaleziono ucznia. Sprawdź symbol To pole jest wymagane Ten student jest już zalogowany Symbol znajduje się na stronie dziennika w zakładce Dostęp Mobilny diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3203f8b1..311fdf3c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,8 +26,6 @@ Register Symbol Sign in - Logging in… - Synchronization… This password is too short Login details are incorrect Student not found. Check the symbol diff --git a/app/src/test/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenterTest.kt b/app/src/test/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenterTest.kt index e19e8a11..1059e0ac 100644 --- a/app/src/test/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenterTest.kt +++ b/app/src/test/java/io/github/wulkanowy/ui/modules/login/studentselect/LoginStudentSelectPresenterTest.kt @@ -1,9 +1,7 @@ package io.github.wulkanowy.ui.modules.login.studentselect import io.github.wulkanowy.TestSchedulersProvider -import io.github.wulkanowy.data.db.entities.Semester import io.github.wulkanowy.data.db.entities.Student -import io.github.wulkanowy.data.repositories.semester.SemesterRepository import io.github.wulkanowy.data.repositories.student.StudentRepository import io.github.wulkanowy.ui.modules.login.LoginErrorHandler import io.github.wulkanowy.utils.FirebaseAnalyticsHelper @@ -29,9 +27,6 @@ class LoginStudentSelectPresenterTest { @Mock lateinit var studentRepository: StudentRepository - @Mock - lateinit var semesterRepository: SemesterRepository - @Mock lateinit var analytics: FirebaseAnalyticsHelper @@ -45,8 +40,7 @@ class LoginStudentSelectPresenterTest { fun initPresenter() { MockitoAnnotations.initMocks(this) clearInvocations(studentRepository, loginStudentSelectView) - clearInvocations(semesterRepository, loginStudentSelectView) - presenter = LoginStudentSelectPresenter(errorHandler, studentRepository, semesterRepository, TestSchedulersProvider(), analytics) + presenter = LoginStudentSelectPresenter(errorHandler, studentRepository, TestSchedulersProvider(), analytics) presenter.onAttachView(loginStudentSelectView, null) } @@ -58,7 +52,6 @@ class LoginStudentSelectPresenterTest { @Test fun onSelectedStudentTest() { doReturn(Single.just(1L)).`when`(studentRepository).saveStudent(testStudent) - doReturn(Single.just(emptyList())).`when`(semesterRepository).getSemesters(testStudent, true) doReturn(Completable.complete()).`when`(studentRepository).switchStudent(testStudent) presenter.onItemSelected(LoginStudentSelectItem(testStudent)) verify(loginStudentSelectView).showContent(false) @@ -69,7 +62,6 @@ class LoginStudentSelectPresenterTest { @Test fun onSelectedStudentErrorTest() { doReturn(Single.error(testException)).`when`(studentRepository).saveStudent(testStudent) - doReturn(Single.just(emptyList())).`when`(semesterRepository).getSemesters(testStudent, true) doReturn(Completable.complete()).`when`(studentRepository).logoutStudent(testStudent) presenter.onItemSelected(LoginStudentSelectItem(testStudent)) verify(loginStudentSelectView).showContent(false)