Refactor packages hierarchy (#170)

This commit is contained in:
Rafał Borcz 2018-10-23 17:12:57 +02:00 committed by Mikołaj Pich
parent 837bce7286
commit 0211a7f0a0
74 changed files with 188 additions and 196 deletions

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.github.wulkanowy" package="io.github.wulkanowy"
android:installLocation="internalOnly"> android:installLocation="internalOnly">
@ -15,9 +16,10 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false" android:supportsRtl="false"
android:theme="@style/WulkanowyTheme" android:theme="@style/WulkanowyTheme"
android:usesCleartextTraffic="true"> android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<activity <activity
android:name=".ui.splash.SplashActivity" android:name=".ui.modules.splash.SplashActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/WulkanowyTheme.SplashScreen"> android:theme="@style/WulkanowyTheme.SplashScreen">
<intent-filter> <intent-filter>
@ -27,12 +29,12 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".ui.login.LoginActivity" android:name="ui.modules.login.LoginActivity"
android:configChanges="orientation|screenSize" android:configChanges="orientation|screenSize"
android:label="@string/login_title" android:label="@string/login_title"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".ui.main.MainActivity" android:name="ui.modules.main.MainActivity"
android:configChanges="orientation|screenSize" android:configChanges="orientation|screenSize"
android:label="@string/main_title" android:label="@string/main_title"
android:launchMode="singleTop" android:launchMode="singleTop"

View File

@ -6,8 +6,7 @@ import dagger.Provides
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.WulkanowyApp import io.github.wulkanowy.WulkanowyApp
import io.github.wulkanowy.utils.schedulers.SchedulersManager import io.github.wulkanowy.utils.SchedulersProvider
import io.github.wulkanowy.utils.schedulers.SchedulersProvider
import javax.inject.Singleton import javax.inject.Singleton
@Module @Module
@ -19,7 +18,7 @@ internal class AppModule {
@Singleton @Singleton
@Provides @Provides
fun provideSchedulers(): SchedulersManager = SchedulersProvider() fun provideSchedulersProvider() = SchedulersProvider()
@Provides @Provides
fun provideFlexibleAdapter() = FlexibleAdapter<AbstractFlexibleItem<*>>(null, null, true) fun provideFlexibleAdapter() = FlexibleAdapter<AbstractFlexibleItem<*>>(null, null, true)

View File

@ -3,11 +3,11 @@ package io.github.wulkanowy.di
import dagger.Module import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
import io.github.wulkanowy.di.scopes.PerActivity import io.github.wulkanowy.di.scopes.PerActivity
import io.github.wulkanowy.ui.login.LoginActivity import io.github.wulkanowy.ui.modules.login.LoginActivity
import io.github.wulkanowy.ui.login.LoginModule import io.github.wulkanowy.ui.modules.login.LoginModule
import io.github.wulkanowy.ui.main.MainActivity import io.github.wulkanowy.ui.modules.main.MainActivity
import io.github.wulkanowy.ui.main.MainModule import io.github.wulkanowy.ui.modules.main.MainModule
import io.github.wulkanowy.ui.splash.SplashActivity import io.github.wulkanowy.ui.modules.splash.SplashActivity
@Module @Module
internal abstract class BuilderModule { internal abstract class BuilderModule {

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.about package io.github.wulkanowy.ui.modules.about
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
@ -9,7 +9,7 @@ import com.mikepenz.aboutlibraries.LibsBuilder
import com.mikepenz.aboutlibraries.LibsFragmentCompat import com.mikepenz.aboutlibraries.LibsFragmentCompat
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.utils.withOnExtraListener import io.github.wulkanowy.utils.withOnExtraListener
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.about package io.github.wulkanowy.ui.modules.about
import com.mikepenz.aboutlibraries.LibsFragmentCompat import com.mikepenz.aboutlibraries.LibsFragmentCompat
import dagger.Module import dagger.Module

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.about package io.github.wulkanowy.ui.modules.about
import com.mikepenz.aboutlibraries.Libs import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.Libs.SpecialButton.SPECIAL1 import com.mikepenz.aboutlibraries.Libs.SpecialButton.SPECIAL1

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.about package io.github.wulkanowy.ui.modules.about
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.attendance package io.github.wulkanowy.ui.modules.attendance
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.attendance package io.github.wulkanowy.ui.modules.attendance
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -10,7 +10,7 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.data.db.entities.Attendance import io.github.wulkanowy.data.db.entities.Attendance
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_attendance.* import kotlinx.android.synthetic.main.fragment_attendance.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.attendance package io.github.wulkanowy.ui.modules.attendance
import android.view.View import android.view.View
import android.view.View.INVISIBLE import android.view.View.INVISIBLE

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.attendance package io.github.wulkanowy.ui.modules.attendance
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
@ -7,7 +7,6 @@ import io.github.wulkanowy.data.repositories.PreferencesRepository
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.* import io.github.wulkanowy.utils.*
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import org.threeten.bp.LocalDate import org.threeten.bp.LocalDate
import org.threeten.bp.LocalDate.now import org.threeten.bp.LocalDate.now
import org.threeten.bp.LocalDate.ofEpochDay import org.threeten.bp.LocalDate.ofEpochDay
@ -16,7 +15,7 @@ import javax.inject.Inject
class AttendancePresenter @Inject constructor( class AttendancePresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val attendanceRepository: AttendanceRepository, private val attendanceRepository: AttendanceRepository,
private val sessionRepository: SessionRepository, private val sessionRepository: SessionRepository,
private val prefRepository: PreferencesRepository private val prefRepository: PreferencesRepository
@ -68,8 +67,8 @@ class AttendancePresenter @Inject constructor(
else list.filter { !it.presence } else list.filter { !it.presence }
} }
.map { items -> items.map { AttendanceItem(it) } } .map { items -> items.map { AttendanceItem(it) } }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doFinally { .doFinally {
view?.run { view?.run {
hideRefresh() hideRefresh()

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.attendance package io.github.wulkanowy.ui.modules.attendance
import io.github.wulkanowy.data.db.entities.Attendance import io.github.wulkanowy.data.db.entities.Attendance
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -11,7 +11,7 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.data.db.entities.Exam import io.github.wulkanowy.data.db.entities.Exam
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_exam.* import kotlinx.android.synthetic.main.fragment_exam.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
@ -7,7 +7,6 @@ import io.github.wulkanowy.data.repositories.ExamRepository
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.* import io.github.wulkanowy.utils.*
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import org.threeten.bp.LocalDate import org.threeten.bp.LocalDate
import org.threeten.bp.LocalDate.now import org.threeten.bp.LocalDate.now
import org.threeten.bp.LocalDate.ofEpochDay import org.threeten.bp.LocalDate.ofEpochDay
@ -16,7 +15,7 @@ import javax.inject.Inject
class ExamPresenter @Inject constructor( class ExamPresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val examRepository: ExamRepository, private val examRepository: ExamRepository,
private val sessionRepository: SessionRepository private val sessionRepository: SessionRepository
) : BasePresenter<ExamView>(errorHandler) { ) : BasePresenter<ExamView>(errorHandler) {
@ -65,8 +64,8 @@ class ExamPresenter @Inject constructor(
examRepository.getExams(it, currentDate.monday, currentDate.friday, forceRefresh) examRepository.getExams(it, currentDate.monday, currentDate.friday, forceRefresh)
}.map { it.groupBy { exam -> exam.date }.toSortedMap() } }.map { it.groupBy { exam -> exam.date }.toSortedMap() }
.map { createExamItems(it) } .map { createExamItems(it) }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doFinally { .doFinally {
view?.run { view?.run {
hideRefresh() hideRefresh()

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.exam package io.github.wulkanowy.ui.modules.exam
import io.github.wulkanowy.data.db.entities.Exam import io.github.wulkanowy.data.db.entities.Exam
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade package io.github.wulkanowy.ui.modules.grade
import android.os.Bundle import android.os.Bundle
import android.view.* import android.view.*
@ -8,9 +8,9 @@ import androidx.appcompat.app.AlertDialog
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.base.BasePagerAdapter import io.github.wulkanowy.ui.base.BasePagerAdapter
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.grade.details.GradeDetailsFragment
import io.github.wulkanowy.ui.main.grade.details.GradeDetailsFragment import io.github.wulkanowy.ui.modules.grade.summary.GradeSummaryFragment
import io.github.wulkanowy.ui.main.grade.summary.GradeSummaryFragment import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.utils.setOnSelectPageListener import io.github.wulkanowy.utils.setOnSelectPageListener
import kotlinx.android.synthetic.main.fragment_grade.* import kotlinx.android.synthetic.main.fragment_grade.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade package io.github.wulkanowy.ui.modules.grade
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
@ -6,8 +6,8 @@ import dagger.android.ContributesAndroidInjector
import io.github.wulkanowy.di.scopes.PerChildFragment import io.github.wulkanowy.di.scopes.PerChildFragment
import io.github.wulkanowy.di.scopes.PerFragment import io.github.wulkanowy.di.scopes.PerFragment
import io.github.wulkanowy.ui.base.BasePagerAdapter import io.github.wulkanowy.ui.base.BasePagerAdapter
import io.github.wulkanowy.ui.main.grade.details.GradeDetailsFragment import io.github.wulkanowy.ui.modules.grade.details.GradeDetailsFragment
import io.github.wulkanowy.ui.main.grade.summary.GradeSummaryFragment import io.github.wulkanowy.ui.modules.grade.summary.GradeSummaryFragment
@Module @Module
abstract class GradeModule { abstract class GradeModule {

View File

@ -1,17 +1,17 @@
package io.github.wulkanowy.ui.main.grade package io.github.wulkanowy.ui.modules.grade
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.db.entities.Semester import io.github.wulkanowy.data.db.entities.Semester
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.schedulers.SchedulersManager import io.github.wulkanowy.utils.SchedulersProvider
import io.reactivex.Completable import io.reactivex.Completable
import java.util.concurrent.TimeUnit.MILLISECONDS import java.util.concurrent.TimeUnit.MILLISECONDS
import javax.inject.Inject import javax.inject.Inject
class GradePresenter @Inject constructor( class GradePresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val sessionRepository: SessionRepository) : BasePresenter<GradeView>(errorHandler) { private val sessionRepository: SessionRepository) : BasePresenter<GradeView>(errorHandler) {
var selectedIndex = 0 var selectedIndex = 0
@ -23,7 +23,7 @@ class GradePresenter @Inject constructor(
fun onAttachView(view: GradeView, savedIndex: Int?) { fun onAttachView(view: GradeView, savedIndex: Int?) {
super.onAttachView(view) super.onAttachView(view)
disposable.add(Completable.timer(150, MILLISECONDS, schedulers.mainThread()) disposable.add(Completable.timer(150, MILLISECONDS, schedulers.mainThread)
.subscribe { .subscribe {
selectedIndex = savedIndex ?: 0 selectedIndex = savedIndex ?: 0
view.initView() view.initView()
@ -52,7 +52,7 @@ class GradePresenter @Inject constructor(
} }
fun onChildViewRefresh() { fun onChildViewRefresh() {
view?.let { loadChild(it.currentPageIndex, forceRefresh = true) } view?.let { loadChild(it.currentPageIndex, true) }
} }
fun onChildViewLoaded(semesterId: Int) { fun onChildViewLoaded(semesterId: Int) {
@ -75,8 +75,8 @@ class GradePresenter @Inject constructor(
semesters = it.filter { semester -> semester.diaryId == current.diaryId } semesters = it.filter { semester -> semester.diaryId == current.diaryId }
} }
} }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.subscribe({ _ -> .subscribe({ _ ->
view?.let { loadChild(it.currentPageIndex) } view?.let { loadChild(it.currentPageIndex) }
}) { errorHandler.proceed(it) }) }) { errorHandler.proceed(it) })

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade package io.github.wulkanowy.ui.modules.grade
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -13,8 +13,8 @@ import eu.davidea.flexibleadapter.items.IFlexible
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.data.db.entities.Grade import io.github.wulkanowy.data.db.entities.Grade
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.grade.GradeFragment import io.github.wulkanowy.ui.modules.grade.GradeFragment
import io.github.wulkanowy.ui.main.grade.GradeView import io.github.wulkanowy.ui.modules.grade.GradeView
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_grade_details.* import kotlinx.android.synthetic.main.fragment_grade_details.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import android.view.View import android.view.View
import android.view.View.GONE import android.view.View.GONE

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.view.View import android.view.View

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
@ -6,14 +6,14 @@ import io.github.wulkanowy.data.db.entities.Grade
import io.github.wulkanowy.data.repositories.GradeRepository import io.github.wulkanowy.data.repositories.GradeRepository
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.SchedulersProvider
import io.github.wulkanowy.utils.calcAverage import io.github.wulkanowy.utils.calcAverage
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import io.github.wulkanowy.utils.valueColor import io.github.wulkanowy.utils.valueColor
import javax.inject.Inject import javax.inject.Inject
class GradeDetailsPresenter @Inject constructor( class GradeDetailsPresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val gradeRepository: GradeRepository, private val gradeRepository: GradeRepository,
private val sessionRepository: SessionRepository) : BasePresenter<GradeDetailsView>(errorHandler) { private val sessionRepository: SessionRepository) : BasePresenter<GradeDetailsView>(errorHandler) {
@ -26,8 +26,8 @@ class GradeDetailsPresenter @Inject constructor(
disposable.add(sessionRepository.getSemesters() disposable.add(sessionRepository.getSemesters()
.flatMap { gradeRepository.getGrades(it.first { item -> item.semesterId == semesterId }, forceRefresh) } .flatMap { gradeRepository.getGrades(it.first { item -> item.semesterId == semesterId }, forceRefresh) }
.map { createGradeItems(it.groupBy { grade -> grade.subject }.toSortedMap()) } .map { createGradeItems(it.groupBy { grade -> grade.subject }.toSortedMap()) }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doFinally { .doFinally {
view?.run { view?.run {
showRefresh(false) showRefresh(false)
@ -117,8 +117,8 @@ class GradeDetailsPresenter @Inject constructor(
private fun updateGrade(grade: Grade) { private fun updateGrade(grade: Grade) {
disposable.add(gradeRepository.updateGrade(grade) disposable.add(gradeRepository.updateGrade(grade)
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.subscribe({}) { error -> errorHandler.proceed(error) }) .subscribe({}) { error -> errorHandler.proceed(error) })
} }
} }

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.details package io.github.wulkanowy.ui.modules.grade.details
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import eu.davidea.flexibleadapter.items.IExpandable import eu.davidea.flexibleadapter.items.IExpandable

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -10,8 +10,8 @@ import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.grade.GradeFragment import io.github.wulkanowy.ui.modules.grade.GradeFragment
import io.github.wulkanowy.ui.main.grade.GradeView import io.github.wulkanowy.ui.modules.grade.GradeView
import kotlinx.android.synthetic.main.fragment_grade_summary.* import kotlinx.android.synthetic.main.fragment_grade_summary.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.db.entities.GradeSummary import io.github.wulkanowy.data.db.entities.GradeSummary
@ -6,8 +6,8 @@ import io.github.wulkanowy.data.repositories.GradeRepository
import io.github.wulkanowy.data.repositories.GradeSummaryRepository import io.github.wulkanowy.data.repositories.GradeSummaryRepository
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.SchedulersProvider
import io.github.wulkanowy.utils.calcAverage import io.github.wulkanowy.utils.calcAverage
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import java.lang.String.format import java.lang.String.format
import java.util.Locale.FRANCE import java.util.Locale.FRANCE
import javax.inject.Inject import javax.inject.Inject
@ -17,7 +17,7 @@ class GradeSummaryPresenter @Inject constructor(
private val gradeSummaryRepository: GradeSummaryRepository, private val gradeSummaryRepository: GradeSummaryRepository,
private val gradeRepository: GradeRepository, private val gradeRepository: GradeRepository,
private val sessionRepository: SessionRepository, private val sessionRepository: SessionRepository,
private val schedulers: SchedulersManager) private val schedulers: SchedulersProvider)
: BasePresenter<GradeSummaryView>(errorHandler) { : BasePresenter<GradeSummaryView>(errorHandler) {
override fun onAttachView(view: GradeSummaryView) { override fun onAttachView(view: GradeSummaryView) {
@ -46,8 +46,8 @@ class GradeSummaryPresenter @Inject constructor(
} }
} }
} }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doFinally { .doFinally {
view?.run { view?.run {
showRefresh(false) showRefresh(false)

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.grade.summary package io.github.wulkanowy.ui.modules.grade.summary
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -6,8 +6,8 @@ import android.os.Bundle
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseActivity import io.github.wulkanowy.ui.base.BaseActivity
import io.github.wulkanowy.ui.base.BasePagerAdapter import io.github.wulkanowy.ui.base.BasePagerAdapter
import io.github.wulkanowy.ui.login.form.LoginFormFragment import io.github.wulkanowy.ui.modules.login.form.LoginFormFragment
import io.github.wulkanowy.ui.login.options.LoginOptionsFragment import io.github.wulkanowy.ui.modules.login.options.LoginOptionsFragment
import io.github.wulkanowy.utils.setOnSelectPageListener import io.github.wulkanowy.utils.setOnSelectPageListener
import kotlinx.android.synthetic.main.activity_login.* import kotlinx.android.synthetic.main.activity_login.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import android.content.res.Resources import android.content.res.Resources
import io.github.wulkanowy.api.login.BadCredentialsException import io.github.wulkanowy.api.login.BadCredentialsException

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import android.content.Context import android.content.Context
import dagger.Module import dagger.Module
@ -7,8 +7,8 @@ import dagger.android.ContributesAndroidInjector
import io.github.wulkanowy.di.scopes.PerActivity import io.github.wulkanowy.di.scopes.PerActivity
import io.github.wulkanowy.di.scopes.PerFragment import io.github.wulkanowy.di.scopes.PerFragment
import io.github.wulkanowy.ui.base.BasePagerAdapter import io.github.wulkanowy.ui.base.BasePagerAdapter
import io.github.wulkanowy.ui.login.form.LoginFormFragment import io.github.wulkanowy.ui.modules.login.form.LoginFormFragment
import io.github.wulkanowy.ui.login.options.LoginOptionsFragment import io.github.wulkanowy.ui.modules.login.options.LoginOptionsFragment
@Module @Module
internal abstract class LoginModule { internal abstract class LoginModule {

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
interface LoginSwitchListener { interface LoginSwitchListener {

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login.form package io.github.wulkanowy.ui.modules.login.form
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -10,7 +10,7 @@ import android.view.inputmethod.EditorInfo
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.login.LoginSwitchListener import io.github.wulkanowy.ui.modules.login.LoginSwitchListener
import io.github.wulkanowy.utils.hideSoftInput import io.github.wulkanowy.utils.hideSoftInput
import io.github.wulkanowy.utils.showSoftInput import io.github.wulkanowy.utils.showSoftInput
import kotlinx.android.synthetic.main.fragment_login_form.* import kotlinx.android.synthetic.main.fragment_login_form.*

View File

@ -1,13 +1,13 @@
package io.github.wulkanowy.ui.login.form package io.github.wulkanowy.ui.modules.login.form
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.ui.login.LoginErrorHandler import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
import io.github.wulkanowy.utils.schedulers.SchedulersManager import io.github.wulkanowy.utils.SchedulersProvider
import javax.inject.Inject import javax.inject.Inject
class LoginFormPresenter @Inject constructor( class LoginFormPresenter @Inject constructor(
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val errorHandler: LoginErrorHandler, private val errorHandler: LoginErrorHandler,
private val sessionRepository: SessionRepository) private val sessionRepository: SessionRepository)
: BasePresenter<LoginFormView>(errorHandler) { : BasePresenter<LoginFormView>(errorHandler) {
@ -22,8 +22,8 @@ class LoginFormPresenter @Inject constructor(
fun attemptLogin(email: String, password: String, symbol: String, endpoint: String) { fun attemptLogin(email: String, password: String, symbol: String, endpoint: String) {
if (!validateCredentials(email, password, symbol)) return if (!validateCredentials(email, password, symbol)) return
disposable.add(sessionRepository.getConnectedStudents(email, password, symbol, endpoint) disposable.add(sessionRepository.getConnectedStudents(email, password, symbol, endpoint)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.doOnSubscribe { .doOnSubscribe {
view?.run { view?.run {
hideSoftKeyboard() hideSoftKeyboard()

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login.form package io.github.wulkanowy.ui.modules.login.form
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login.options package io.github.wulkanowy.ui.modules.login.options
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -12,7 +12,7 @@ import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainActivity import io.github.wulkanowy.ui.modules.main.MainActivity
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_login_options.* import kotlinx.android.synthetic.main.fragment_login_options.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login.options package io.github.wulkanowy.ui.modules.login.options
import android.view.View import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter

View File

@ -1,16 +1,16 @@
package io.github.wulkanowy.ui.login.options package io.github.wulkanowy.ui.modules.login.options
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.db.entities.Student import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.schedulers.SchedulersManager import io.github.wulkanowy.utils.SchedulersProvider
import javax.inject.Inject import javax.inject.Inject
class LoginOptionsPresenter @Inject constructor( class LoginOptionsPresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val repository: SessionRepository, private val repository: SessionRepository,
private val schedulers: SchedulersManager) private val schedulers: SchedulersProvider)
: BasePresenter<LoginOptionsView>(errorHandler) { : BasePresenter<LoginOptionsView>(errorHandler) {
override fun onAttachView(view: LoginOptionsView) { override fun onAttachView(view: LoginOptionsView) {
@ -20,8 +20,8 @@ class LoginOptionsPresenter @Inject constructor(
fun refreshData() { fun refreshData() {
disposable.add(repository.cachedStudents disposable.add(repository.cachedStudents
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.doOnSubscribe { view?.showActionBar(true) } .doOnSubscribe { view?.showActionBar(true) }
.doFinally { repository.clearCache() } .doFinally { repository.clearCache() }
.subscribe({ .subscribe({
@ -33,8 +33,8 @@ class LoginOptionsPresenter @Inject constructor(
fun onSelectStudent(student: Student) { fun onSelectStudent(student: Student) {
disposable.add(repository.saveStudent(student) disposable.add(repository.saveStudent(student)
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doOnSubscribe { _ -> .doOnSubscribe { _ ->
view?.showLoginProgress(true) view?.showLoginProgress(true)
view?.showActionBar(false) view?.showActionBar(false)

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login.options package io.github.wulkanowy.ui.modules.login.options
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main package io.github.wulkanowy.ui.modules.main
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -11,11 +11,11 @@ import com.ncapdevi.fragnav.FragNavController
import com.ncapdevi.fragnav.FragNavController.Companion.HIDE import com.ncapdevi.fragnav.FragNavController.Companion.HIDE
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseActivity import io.github.wulkanowy.ui.base.BaseActivity
import io.github.wulkanowy.ui.main.attendance.AttendanceFragment import io.github.wulkanowy.ui.modules.attendance.AttendanceFragment
import io.github.wulkanowy.ui.main.exam.ExamFragment import io.github.wulkanowy.ui.modules.exam.ExamFragment
import io.github.wulkanowy.ui.main.grade.GradeFragment import io.github.wulkanowy.ui.modules.grade.GradeFragment
import io.github.wulkanowy.ui.main.more.MoreFragment import io.github.wulkanowy.ui.modules.more.MoreFragment
import io.github.wulkanowy.ui.main.timetable.TimetableFragment import io.github.wulkanowy.ui.modules.timetable.TimetableFragment
import io.github.wulkanowy.utils.safelyPopFragment import io.github.wulkanowy.utils.safelyPopFragment
import io.github.wulkanowy.utils.setOnViewChangeListener import io.github.wulkanowy.utils.setOnViewChangeListener
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main package io.github.wulkanowy.ui.modules.main
import com.ncapdevi.fragnav.FragNavController import com.ncapdevi.fragnav.FragNavController
import dagger.Module import dagger.Module
@ -7,14 +7,14 @@ import dagger.android.ContributesAndroidInjector
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.di.scopes.PerActivity import io.github.wulkanowy.di.scopes.PerActivity
import io.github.wulkanowy.di.scopes.PerFragment import io.github.wulkanowy.di.scopes.PerFragment
import io.github.wulkanowy.ui.main.about.AboutFragment import io.github.wulkanowy.ui.modules.about.AboutFragment
import io.github.wulkanowy.ui.main.about.AboutModule import io.github.wulkanowy.ui.modules.about.AboutModule
import io.github.wulkanowy.ui.main.attendance.AttendanceFragment import io.github.wulkanowy.ui.modules.attendance.AttendanceFragment
import io.github.wulkanowy.ui.main.exam.ExamFragment import io.github.wulkanowy.ui.modules.exam.ExamFragment
import io.github.wulkanowy.ui.main.grade.GradeFragment import io.github.wulkanowy.ui.modules.grade.GradeFragment
import io.github.wulkanowy.ui.main.grade.GradeModule import io.github.wulkanowy.ui.modules.grade.GradeModule
import io.github.wulkanowy.ui.main.more.MoreFragment import io.github.wulkanowy.ui.modules.more.MoreFragment
import io.github.wulkanowy.ui.main.timetable.TimetableFragment import io.github.wulkanowy.ui.modules.timetable.TimetableFragment
@Module @Module
abstract class MainModule { abstract class MainModule {

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main package io.github.wulkanowy.ui.modules.main
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.PreferencesRepository

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main package io.github.wulkanowy.ui.modules.main
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.more package io.github.wulkanowy.ui.modules.more
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
@ -11,10 +11,10 @@ import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainActivity import io.github.wulkanowy.ui.modules.about.AboutFragment
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainActivity
import io.github.wulkanowy.ui.main.about.AboutFragment import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.ui.main.settings.SettingsFragment import io.github.wulkanowy.ui.modules.settings.SettingsFragment
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_more.* import kotlinx.android.synthetic.main.fragment_more.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.more package io.github.wulkanowy.ui.modules.more
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.view.View import android.view.View

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.more package io.github.wulkanowy.ui.modules.more
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.more package io.github.wulkanowy.ui.modules.more
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,9 +1,9 @@
package io.github.wulkanowy.ui.main.settings package io.github.wulkanowy.ui.modules.settings
import android.os.Bundle import android.os.Bundle
import com.takisoft.preferencex.PreferenceFragmentCompat import com.takisoft.preferencex.PreferenceFragmentCompat
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainView
class SettingsFragment : PreferenceFragmentCompat(), MainView.TitledView { class SettingsFragment : PreferenceFragmentCompat(), MainView.TitledView {

View File

@ -1,9 +1,9 @@
package io.github.wulkanowy.ui.splash package io.github.wulkanowy.ui.modules.splash
import android.os.Bundle import android.os.Bundle
import io.github.wulkanowy.ui.base.BaseActivity import io.github.wulkanowy.ui.base.BaseActivity
import io.github.wulkanowy.ui.login.LoginActivity import io.github.wulkanowy.ui.modules.login.LoginActivity
import io.github.wulkanowy.ui.main.MainActivity import io.github.wulkanowy.ui.modules.main.MainActivity
import javax.inject.Inject import javax.inject.Inject
class SplashActivity : BaseActivity(), SplashView { class SplashActivity : BaseActivity(), SplashView {

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.splash package io.github.wulkanowy.ui.modules.splash
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.splash package io.github.wulkanowy.ui.modules.splash
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.timetable package io.github.wulkanowy.ui.modules.timetable
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.timetable package io.github.wulkanowy.ui.modules.timetable
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -10,7 +10,7 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.R import io.github.wulkanowy.R
import io.github.wulkanowy.data.db.entities.Timetable import io.github.wulkanowy.data.db.entities.Timetable
import io.github.wulkanowy.ui.base.BaseFragment import io.github.wulkanowy.ui.base.BaseFragment
import io.github.wulkanowy.ui.main.MainView import io.github.wulkanowy.ui.modules.main.MainView
import io.github.wulkanowy.utils.setOnItemClickListener import io.github.wulkanowy.utils.setOnItemClickListener
import kotlinx.android.synthetic.main.fragment_timetable.* import kotlinx.android.synthetic.main.fragment_timetable.*
import javax.inject.Inject import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.timetable package io.github.wulkanowy.ui.modules.timetable
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Paint import android.graphics.Paint

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.timetable package io.github.wulkanowy.ui.modules.timetable
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
@ -6,7 +6,6 @@ import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.data.repositories.TimetableRepository import io.github.wulkanowy.data.repositories.TimetableRepository
import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.utils.* import io.github.wulkanowy.utils.*
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import org.threeten.bp.LocalDate import org.threeten.bp.LocalDate
import org.threeten.bp.LocalDate.now import org.threeten.bp.LocalDate.now
import org.threeten.bp.LocalDate.ofEpochDay import org.threeten.bp.LocalDate.ofEpochDay
@ -15,7 +14,7 @@ import javax.inject.Inject
class TimetablePresenter @Inject constructor( class TimetablePresenter @Inject constructor(
private val errorHandler: ErrorHandler, private val errorHandler: ErrorHandler,
private val schedulers: SchedulersManager, private val schedulers: SchedulersProvider,
private val timetableRepository: TimetableRepository, private val timetableRepository: TimetableRepository,
private val sessionRepository: SessionRepository private val sessionRepository: SessionRepository
) : BasePresenter<TimetableView>(errorHandler) { ) : BasePresenter<TimetableView>(errorHandler) {
@ -62,8 +61,8 @@ class TimetablePresenter @Inject constructor(
.map { it.single { semester -> semester.current } } .map { it.single { semester -> semester.current } }
.flatMap { timetableRepository.getTimetable(it, currentDate, currentDate, forceRefresh) } .flatMap { timetableRepository.getTimetable(it, currentDate, currentDate, forceRefresh) }
.map { items -> items.map { TimetableItem(it, view?.roomString.orEmpty()) } } .map { items -> items.map { TimetableItem(it, view?.roomString.orEmpty()) } }
.subscribeOn(schedulers.backgroundThread()) .subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread()) .observeOn(schedulers.mainThread)
.doFinally { .doFinally {
view?.run { view?.run {
hideRefresh() hideRefresh()

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main.timetable package io.github.wulkanowy.ui.modules.timetable
import io.github.wulkanowy.data.db.entities.Timetable import io.github.wulkanowy.data.db.entities.Timetable
import io.github.wulkanowy.ui.base.BaseView import io.github.wulkanowy.ui.base.BaseView

View File

@ -0,0 +1,14 @@
package io.github.wulkanowy.utils
import io.reactivex.Scheduler
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
open class SchedulersProvider {
open val mainThread: Scheduler
get() = AndroidSchedulers.mainThread()
open val backgroundThread: Scheduler
get() = Schedulers.io()
}

View File

@ -1,10 +0,0 @@
package io.github.wulkanowy.utils.schedulers
import io.reactivex.Scheduler
interface SchedulersManager {
fun mainThread(): Scheduler
fun backgroundThread(): Scheduler
}

View File

@ -1,12 +0,0 @@
package io.github.wulkanowy.utils.schedulers
import io.reactivex.Scheduler
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
class SchedulersProvider : SchedulersManager {
override fun mainThread(): Scheduler = AndroidSchedulers.mainThread()
override fun backgroundThread(): Scheduler = Schedulers.io()
}

View File

@ -1,13 +0,0 @@
package io.github.wulkanowy
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import io.reactivex.Scheduler
import io.reactivex.schedulers.Schedulers
class TestSchedulers : SchedulersManager {
override fun backgroundThread(): Scheduler = Schedulers.trampoline()
override fun mainThread(): Scheduler = Schedulers.trampoline()
}

View File

@ -0,0 +1,15 @@
package io.github.wulkanowy
import io.github.wulkanowy.utils.SchedulersProvider
import io.reactivex.Scheduler
import io.reactivex.schedulers.Schedulers
class TestSchedulersProvider : SchedulersProvider() {
override val backgroundThread: Scheduler
get() = Schedulers.trampoline()
override val mainThread: Scheduler
get() = Schedulers.trampoline()
}

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.login package io.github.wulkanowy.ui.modules.login
import org.junit.Assert.assertNotEquals import org.junit.Assert.assertNotEquals
import org.junit.Before import org.junit.Before

View File

@ -1,9 +1,9 @@
package io.github.wulkanowy.ui.login.form package io.github.wulkanowy.ui.modules.login.form
import io.github.wulkanowy.TestSchedulers import io.github.wulkanowy.TestSchedulersProvider
import io.github.wulkanowy.data.db.entities.Student import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
import io.github.wulkanowy.ui.login.LoginErrorHandler import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
import io.reactivex.Single import io.reactivex.Single
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
@ -29,7 +29,7 @@ class LoginFormPresenterTest {
fun initPresenter() { fun initPresenter() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
clearInvocations(repository, loginFormView) clearInvocations(repository, loginFormView)
presenter = LoginFormPresenter(TestSchedulers(), errorHandler, repository) presenter = LoginFormPresenter(TestSchedulersProvider(), errorHandler, repository)
presenter.onAttachView(loginFormView) presenter.onAttachView(loginFormView)
} }

View File

@ -1,6 +1,6 @@
package io.github.wulkanowy.ui.login.options package io.github.wulkanowy.ui.modules.login.options
import io.github.wulkanowy.TestSchedulers import io.github.wulkanowy.TestSchedulersProvider
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.db.entities.Student import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository
@ -33,7 +33,7 @@ class LoginOptionsPresenterTest {
fun initPresenter() { fun initPresenter() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
clearInvocations(repository, loginOptionsView) clearInvocations(repository, loginOptionsView)
presenter = LoginOptionsPresenter(errorHandler, repository, TestSchedulers()) presenter = LoginOptionsPresenter(errorHandler, repository, TestSchedulersProvider())
presenter.onAttachView(loginOptionsView) presenter.onAttachView(loginOptionsView)
} }

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.main package io.github.wulkanowy.ui.modules.main
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.PreferencesRepository

View File

@ -1,4 +1,4 @@
package io.github.wulkanowy.ui.splash package io.github.wulkanowy.ui.modules.splash
import io.github.wulkanowy.data.ErrorHandler import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.repositories.SessionRepository import io.github.wulkanowy.data.repositories.SessionRepository