mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-10 00:40:38 +01:00
fix #732, avoid weekly view fragment stucking in blank screen
This commit is contained in:
parent
60c9d578ce
commit
2efe4289bc
@ -9,7 +9,7 @@ import com.simplemobiletools.calendar.pro.fragments.WeekFragment
|
|||||||
import com.simplemobiletools.calendar.pro.helpers.WEEK_START_TIMESTAMP
|
import com.simplemobiletools.calendar.pro.helpers.WEEK_START_TIMESTAMP
|
||||||
import com.simplemobiletools.calendar.pro.interfaces.WeekFragmentListener
|
import com.simplemobiletools.calendar.pro.interfaces.WeekFragmentListener
|
||||||
|
|
||||||
class MyWeekPagerAdapter(fm: FragmentManager, val mWeekTimestamps: List<Long>, val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) {
|
class MyWeekPagerAdapter(fm: FragmentManager, private val mWeekTimestamps: List<Long>, private val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) {
|
||||||
private val mFragments = SparseArray<WeekFragment>()
|
private val mFragments = SparseArray<WeekFragment>()
|
||||||
|
|
||||||
override fun getCount() = mWeekTimestamps.size
|
override fun getCount() = mWeekTimestamps.size
|
||||||
|
@ -19,13 +19,14 @@ import com.simplemobiletools.calendar.pro.views.MyScrollView
|
|||||||
import com.simplemobiletools.commons.extensions.updateActionBarSubtitle
|
import com.simplemobiletools.commons.extensions.updateActionBarSubtitle
|
||||||
import com.simplemobiletools.commons.extensions.updateActionBarTitle
|
import com.simplemobiletools.commons.extensions.updateActionBarTitle
|
||||||
import com.simplemobiletools.commons.helpers.WEEK_SECONDS
|
import com.simplemobiletools.commons.helpers.WEEK_SECONDS
|
||||||
import kotlinx.android.synthetic.main.fragment_week_holder.*
|
import com.simplemobiletools.commons.views.MyViewPager
|
||||||
import kotlinx.android.synthetic.main.fragment_week_holder.view.*
|
import kotlinx.android.synthetic.main.fragment_week_holder.view.*
|
||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
|
|
||||||
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||||
private val PREFILLED_WEEKS = 151
|
private val PREFILLED_WEEKS = 151
|
||||||
|
|
||||||
|
private var viewPager: MyViewPager? = null
|
||||||
private var weekHolder: ViewGroup? = null
|
private var weekHolder: ViewGroup? = null
|
||||||
private var defaultWeeklyPage = 0
|
private var defaultWeeklyPage = 0
|
||||||
private var thisWeekTS = 0L
|
private var thisWeekTS = 0L
|
||||||
@ -43,6 +44,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
weekHolder = inflater.inflate(R.layout.fragment_week_holder, container, false) as ViewGroup
|
weekHolder = inflater.inflate(R.layout.fragment_week_holder, container, false) as ViewGroup
|
||||||
weekHolder!!.background = ColorDrawable(context!!.config.backgroundColor)
|
weekHolder!!.background = ColorDrawable(context!!.config.backgroundColor)
|
||||||
|
viewPager = weekHolder!!.week_view_view_pager
|
||||||
|
viewPager!!.id = (System.currentTimeMillis() % 100000).toInt()
|
||||||
setupFragment()
|
setupFragment()
|
||||||
return weekHolder
|
return weekHolder
|
||||||
}
|
}
|
||||||
@ -64,7 +67,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defaultWeeklyPage = weekTSs.size / 2
|
defaultWeeklyPage = weekTSs.size / 2
|
||||||
weekHolder!!.week_view_view_pager.apply {
|
viewPager!!.apply {
|
||||||
adapter = weeklyAdapter
|
adapter = weeklyAdapter
|
||||||
addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||||
override fun onPageScrollStateChanged(state: Int) {}
|
override fun onPageScrollStateChanged(state: Int) {}
|
||||||
@ -88,7 +91,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||||||
weekHolder!!.week_view_hours_scrollview.setOnScrollviewListener(object : MyScrollView.ScrollViewListener {
|
weekHolder!!.week_view_hours_scrollview.setOnScrollviewListener(object : MyScrollView.ScrollViewListener {
|
||||||
override fun onScrollChanged(scrollView: MyScrollView, x: Int, y: Int, oldx: Int, oldy: Int) {
|
override fun onScrollChanged(scrollView: MyScrollView, x: Int, y: Int, oldx: Int, oldy: Int) {
|
||||||
weekScrollY = y
|
weekScrollY = y
|
||||||
weeklyAdapter.updateScrollY(week_view_view_pager.currentItem, y)
|
weeklyAdapter.updateScrollY(viewPager!!.currentItem, y)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
weekHolder!!.week_view_hours_scrollview.setOnTouchListener { view, motionEvent -> true }
|
weekHolder!!.week_view_hours_scrollview.setOnTouchListener { view, motionEvent -> true }
|
||||||
@ -128,8 +131,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun refreshEvents() {
|
override fun refreshEvents() {
|
||||||
val viewPager = weekHolder?.week_view_view_pager
|
(viewPager?.adapter as? MyWeekPagerAdapter)?.updateCalendars(viewPager!!.currentItem)
|
||||||
(viewPager?.adapter as? MyWeekPagerAdapter)?.updateCalendars(viewPager.currentItem)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGoToTodayBeVisible() = currentWeekTS != thisWeekTS
|
override fun shouldGoToTodayBeVisible() = currentWeekTS != thisWeekTS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user