mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-04 20:47:42 +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.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>()
|
||||
|
||||
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.updateActionBarTitle
|
||||
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 org.joda.time.DateTime
|
||||
|
||||
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
private val PREFILLED_WEEKS = 151
|
||||
|
||||
private var viewPager: MyViewPager? = null
|
||||
private var weekHolder: ViewGroup? = null
|
||||
private var defaultWeeklyPage = 0
|
||||
private var thisWeekTS = 0L
|
||||
@ -43,6 +44,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
weekHolder = inflater.inflate(R.layout.fragment_week_holder, container, false) as ViewGroup
|
||||
weekHolder!!.background = ColorDrawable(context!!.config.backgroundColor)
|
||||
viewPager = weekHolder!!.week_view_view_pager
|
||||
viewPager!!.id = (System.currentTimeMillis() % 100000).toInt()
|
||||
setupFragment()
|
||||
return weekHolder
|
||||
}
|
||||
@ -64,7 +67,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
}
|
||||
|
||||
defaultWeeklyPage = weekTSs.size / 2
|
||||
weekHolder!!.week_view_view_pager.apply {
|
||||
viewPager!!.apply {
|
||||
adapter = weeklyAdapter
|
||||
addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||
override fun onPageScrollStateChanged(state: Int) {}
|
||||
@ -88,7 +91,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
weekHolder!!.week_view_hours_scrollview.setOnScrollviewListener(object : MyScrollView.ScrollViewListener {
|
||||
override fun onScrollChanged(scrollView: MyScrollView, x: Int, y: Int, oldx: Int, oldy: Int) {
|
||||
weekScrollY = y
|
||||
weeklyAdapter.updateScrollY(week_view_view_pager.currentItem, y)
|
||||
weeklyAdapter.updateScrollY(viewPager!!.currentItem, y)
|
||||
}
|
||||
})
|
||||
weekHolder!!.week_view_hours_scrollview.setOnTouchListener { view, motionEvent -> true }
|
||||
@ -128,8 +131,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
}
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user