hotfix days in wrong order after data refresh
This commit is contained in:
@@ -7,6 +7,7 @@ import android.graphics.drawable.GradientDrawable
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -28,6 +29,9 @@ import androidx.viewpager2.widget.ViewPager2
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalTime
|
||||
class CalWeekFragment : Fragment() {
|
||||
private lateinit var viewPager: ViewPager2
|
||||
private lateinit var adapter: DayPagerAdapter
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
@@ -35,25 +39,32 @@ class CalWeekFragment : Fragment() {
|
||||
): View? {
|
||||
val view = inflater.inflate(R.layout.activity_cal_week, container, false)
|
||||
|
||||
val viewPager: ViewPager2 = view.findViewById(R.id.dayPager)
|
||||
viewPager = view.findViewById(R.id.dayPager)
|
||||
|
||||
val adapter = DayPagerAdapter(childFragmentManager, viewLifecycleOwner.lifecycle)
|
||||
adapter = DayPagerAdapter(childFragmentManager, viewLifecycleOwner.lifecycle)
|
||||
|
||||
Vars.dayCounter = 0
|
||||
for (i in 0 until Vars.days.size) {
|
||||
adapter.addFragment(DayFragment())
|
||||
}
|
||||
|
||||
viewPager.viewTreeObserver.addOnPreDrawListener {
|
||||
viewPager.currentItem = Vars.selectedDay
|
||||
true
|
||||
}
|
||||
|
||||
viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
Vars.selectedDay = position
|
||||
if (viewPager.isLaidOut) {
|
||||
Vars.selectedDay = position
|
||||
Log.d("debug", Vars.selectedDay.toString())
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
viewPager.adapter = adapter
|
||||
viewPager.offscreenPageLimit = adapter.itemCount
|
||||
viewPager.currentItem = Vars.selectedDay
|
||||
|
||||
return view
|
||||
}
|
||||
@@ -89,7 +100,7 @@ class DayFragment : Fragment() {
|
||||
val view = inflater.inflate(R.layout.fragment_day, container, false)
|
||||
|
||||
val dayLayout: LinearLayout = view.findViewById(R.id.layoutDayMain)
|
||||
Vars.dayMap[Vars.dayCounter]?.let { createDayView(it, dayLayout, resources) }
|
||||
createDayView(Vars.dayList[Vars.dayCounter], dayLayout, resources)
|
||||
Vars.dayCounter += 1
|
||||
|
||||
return view
|
||||
|
||||
@@ -304,6 +304,7 @@ class MainActivity : AppCompatActivity(), MainActivityListener {
|
||||
Vars.days = week
|
||||
for ((i, day) in week.withIndex()) {
|
||||
Vars.dayMap[i] = day
|
||||
Vars.dayList.add(day)
|
||||
}
|
||||
|
||||
// set the main content view
|
||||
|
||||
@@ -22,6 +22,7 @@ class Vars {
|
||||
val subjectNameMap = mutableMapOf<String, String>()
|
||||
|
||||
val dayMap = mutableMapOf<Int, Day>()
|
||||
val dayList = mutableListOf<Day>()
|
||||
var days = listOf<Day>()
|
||||
|
||||
var marksJSON: String = ""
|
||||
|
||||
Reference in New Issue
Block a user