mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
just refresh the weekly fragments if events change, dont recreate them
This commit is contained in:
@ -31,4 +31,10 @@ class MyWeekPagerAdapter(fm: FragmentManager, val mWeekTimestamps: List<Int>, va
|
|||||||
mFragments[pos - 1]?.updateScrollY(y)
|
mFragments[pos - 1]?.updateScrollY(y)
|
||||||
mFragments[pos + 1]?.updateScrollY(y)
|
mFragments[pos + 1]?.updateScrollY(y)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateCalendars(pos: Int) {
|
||||||
|
for (i in -1..1) {
|
||||||
|
mFragments[pos + i]?.updateCalendar()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
setupDayLabels()
|
setupDayLabels()
|
||||||
mCalendar.updateWeeklyCalendar(mWeekTimestamp)
|
updateCalendar()
|
||||||
|
|
||||||
mView.week_events_scrollview.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
|
mView.week_events_scrollview.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
|
||||||
override fun onGlobalLayout() {
|
override fun onGlobalLayout() {
|
||||||
@ -140,6 +140,10 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateCalendar() {
|
||||||
|
mCalendar.updateWeeklyCalendar(mWeekTimestamp)
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupDayLabels() {
|
private fun setupDayLabels() {
|
||||||
var curDay = Formatter.getDateTimeFromTS(mWeekTimestamp)
|
var curDay = Formatter.getDateTimeFromTS(mWeekTimestamp)
|
||||||
val textColor = context!!.config.textColor
|
val textColor = context!!.config.textColor
|
||||||
@ -233,18 +237,21 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
if (newHash == lastHash) {
|
if (newHash == lastHash) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
lastHash = newHash
|
lastHash = newHash
|
||||||
this.events = events
|
this.events = events
|
||||||
updateEvents()
|
updateEvents()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateEvents() {
|
private fun updateEvents() {
|
||||||
if (mWasDestroyed)
|
if (mWasDestroyed) {
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
|
||||||
activity!!.runOnUiThread {
|
activity!!.runOnUiThread {
|
||||||
if (context != null && isAdded)
|
if (context != null && isAdded) {
|
||||||
addEvents()
|
addEvents()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,7 +450,8 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
private fun getColumnWithId(id: Int) = mView.findViewById<ViewGroup>(mRes.getIdentifier("week_column_$id", "id", context!!.packageName))
|
private fun getColumnWithId(id: Int) = mView.findViewById<ViewGroup>(mRes.getIdentifier("week_column_$id", "id", context!!.packageName))
|
||||||
|
|
||||||
fun updateScrollY(y: Int) {
|
fun updateScrollY(y: Int) {
|
||||||
if (wasFragmentInit)
|
if (wasFragmentInit) {
|
||||||
mView.week_events_scrollview.scrollY = y
|
mView.week_events_scrollview.scrollY = y
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun refreshEvents() {
|
override fun refreshEvents() {
|
||||||
setupFragment()
|
val viewPager = weekHolder?.week_view_view_pager
|
||||||
|
(viewPager?.adapter as? MyWeekPagerAdapter)?.updateCalendars(viewPager.currentItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGoToTodayBeVisible() = currentWeekTS != thisWeekTS
|
override fun shouldGoToTodayBeVisible() = currentWeekTS != thisWeekTS
|
||||||
|
Reference in New Issue
Block a user