From 2efe4289bc39b19ccda3af2d757e8767aebecb61 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 25 Dec 2018 23:36:25 +0100 Subject: [PATCH] fix #732, avoid weekly view fragment stucking in blank screen --- .../calendar/pro/adapters/MyWeekPagerAdapter.kt | 2 +- .../calendar/pro/fragments/WeekFragmentsHolder.kt | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/MyWeekPagerAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/MyWeekPagerAdapter.kt index 08efebd56..20ed74f01 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/MyWeekPagerAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/MyWeekPagerAdapter.kt @@ -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, val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) { +class MyWeekPagerAdapter(fm: FragmentManager, private val mWeekTimestamps: List, private val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) { private val mFragments = SparseArray() override fun getCount() = mWeekTimestamps.size diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt index ac9ff0cf7..f8285522f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt @@ -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