hotfix days in wrong order after data refresh

This commit is contained in:
Odweta
2024-03-04 09:34:21 +01:00
parent 5f4726d202
commit 62c4be29ed
9 changed files with 45 additions and 7 deletions
@@ -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 = ""