forked from github/wulkanowy-mirror
Avoid re-loading fragments on the current week/day (#191)
This commit is contained in:
parent
9a298833f5
commit
48f96b5932
@ -71,6 +71,10 @@ class AttendanceFragment : BaseFragment(), AttendanceView, MainView.MainChildVie
|
|||||||
attendanceAdapter.clear()
|
attendanceAdapter.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun resetView() {
|
||||||
|
attendanceAdapter.smoothScrollToPosition(0)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onFragmentReselected() {
|
override fun onFragmentReselected() {
|
||||||
presenter.onViewReselected()
|
presenter.onViewReselected()
|
||||||
}
|
}
|
||||||
|
@ -56,8 +56,12 @@ class AttendancePresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun onViewReselected() {
|
fun onViewReselected() {
|
||||||
loadData(now().previousOrSameSchoolDay)
|
now().previousOrSameSchoolDay.also {
|
||||||
|
if (currentDate != it) {
|
||||||
|
loadData(it)
|
||||||
reloadView()
|
reloadView()
|
||||||
|
} else view?.resetView()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onAttendanceItemSelected(item: AbstractFlexibleItem<*>?) {
|
fun onAttendanceItemSelected(item: AbstractFlexibleItem<*>?) {
|
||||||
|
@ -17,6 +17,8 @@ interface AttendanceView : BaseView {
|
|||||||
|
|
||||||
fun hideRefresh()
|
fun hideRefresh()
|
||||||
|
|
||||||
|
fun resetView()
|
||||||
|
|
||||||
fun showEmpty(show: Boolean)
|
fun showEmpty(show: Boolean)
|
||||||
|
|
||||||
fun showProgress(show: Boolean)
|
fun showProgress(show: Boolean)
|
||||||
|
@ -77,6 +77,10 @@ class ExamFragment : BaseFragment(), ExamView, MainView.MainChildView, MainView.
|
|||||||
examAdapter.clear()
|
examAdapter.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun resetView() {
|
||||||
|
examAdapter.smoothScrollToPosition(0)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onFragmentReselected() {
|
override fun onFragmentReselected() {
|
||||||
presenter.onViewReselected()
|
presenter.onViewReselected()
|
||||||
}
|
}
|
||||||
|
@ -59,8 +59,13 @@ class ExamPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun onViewReselected() {
|
fun onViewReselected() {
|
||||||
loadData(now().nextOrSameSchoolDay)
|
now().nextOrSameSchoolDay.also {
|
||||||
|
if (currentDate != it) {
|
||||||
|
loadData(it)
|
||||||
reloadView()
|
reloadView()
|
||||||
|
view?.resetView()
|
||||||
|
} else view?.resetView()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadData(date: LocalDate, forceRefresh: Boolean = false) {
|
private fun loadData(date: LocalDate, forceRefresh: Boolean = false) {
|
||||||
|
@ -17,6 +17,8 @@ interface ExamView : BaseView {
|
|||||||
|
|
||||||
fun hideRefresh()
|
fun hideRefresh()
|
||||||
|
|
||||||
|
fun resetView()
|
||||||
|
|
||||||
fun showEmpty(show: Boolean)
|
fun showEmpty(show: Boolean)
|
||||||
|
|
||||||
fun showProgress(show: Boolean)
|
fun showProgress(show: Boolean)
|
||||||
|
@ -35,6 +35,9 @@ class TimetableFragment : BaseFragment(), TimetableView, MainView.MainChildView,
|
|||||||
override val roomString: String
|
override val roomString: String
|
||||||
get() = getString(R.string.timetable_room)
|
get() = getString(R.string.timetable_room)
|
||||||
|
|
||||||
|
override val isViewEmpty: Boolean
|
||||||
|
get() = timetableAdapter.isEmpty
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
return inflater.inflate(R.layout.fragment_timetable, container, false)
|
return inflater.inflate(R.layout.fragment_timetable, container, false)
|
||||||
}
|
}
|
||||||
@ -71,12 +74,14 @@ class TimetableFragment : BaseFragment(), TimetableView, MainView.MainChildView,
|
|||||||
timetableNavDate.text = date
|
timetableNavDate.text = date
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isViewEmpty() = timetableAdapter.isEmpty
|
|
||||||
|
|
||||||
override fun hideRefresh() {
|
override fun hideRefresh() {
|
||||||
timetableSwipe.isRefreshing = false
|
timetableSwipe.isRefreshing = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun resetView() {
|
||||||
|
timetableAdapter.smoothScrollToPosition(0)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onFragmentReselected() {
|
override fun onFragmentReselected() {
|
||||||
presenter.onViewReselected()
|
presenter.onViewReselected()
|
||||||
}
|
}
|
||||||
|
@ -54,8 +54,12 @@ class TimetablePresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun onViewReselected() {
|
fun onViewReselected() {
|
||||||
loadData(now().nextOrSameSchoolDay)
|
now().nextOrSameSchoolDay.also {
|
||||||
|
if (currentDate != it) {
|
||||||
|
loadData(it)
|
||||||
reloadView()
|
reloadView()
|
||||||
|
} else view?.resetView()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onTimetableItemSelected(item: AbstractFlexibleItem<*>?) {
|
fun onTimetableItemSelected(item: AbstractFlexibleItem<*>?) {
|
||||||
@ -88,7 +92,7 @@ class TimetablePresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
logEvent("Timetable load", mapOf("items" to it.size, "forceRefresh" to forceRefresh, "date" to currentDate.toFormattedString()))
|
logEvent("Timetable load", mapOf("items" to it.size, "forceRefresh" to forceRefresh, "date" to currentDate.toFormattedString()))
|
||||||
}) {
|
}) {
|
||||||
view?.run { showEmpty(isViewEmpty()) }
|
view?.run { showEmpty(isViewEmpty) }
|
||||||
errorHandler.dispatch(it)
|
errorHandler.dispatch(it)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -7,18 +7,20 @@ interface TimetableView : BaseView {
|
|||||||
|
|
||||||
val roomString: String
|
val roomString: String
|
||||||
|
|
||||||
|
val isViewEmpty: Boolean
|
||||||
|
|
||||||
fun initView()
|
fun initView()
|
||||||
|
|
||||||
fun updateData(data: List<TimetableItem>)
|
fun updateData(data: List<TimetableItem>)
|
||||||
|
|
||||||
fun updateNavigationDay(date: String)
|
fun updateNavigationDay(date: String)
|
||||||
|
|
||||||
fun isViewEmpty(): Boolean
|
|
||||||
|
|
||||||
fun clearData()
|
fun clearData()
|
||||||
|
|
||||||
fun hideRefresh()
|
fun hideRefresh()
|
||||||
|
|
||||||
|
fun resetView()
|
||||||
|
|
||||||
fun showEmpty(show: Boolean)
|
fun showEmpty(show: Boolean)
|
||||||
|
|
||||||
fun showProgress(show: Boolean)
|
fun showProgress(show: Boolean)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user