Skip to content

Commit a8d9c75

Browse files
committed
Save current day, week, month, year when in Fragments holders when rotating
1 parent 2694c00 commit a8d9c75

5 files changed

Lines changed: 40 additions & 0 deletions

File tree

app/src/main/kotlin/org/fossify/calendar/fragments/DayFragmentsHolder.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class DayFragmentsHolder : MyFragmentHolder(), NavigationListener {
3434
override fun onCreate(savedInstanceState: Bundle?) {
3535
super.onCreate(savedInstanceState)
3636
currentDayCode = arguments?.getString(DAY_CODE) ?: ""
37+
if (savedInstanceState != null) {
38+
currentDayCode = savedInstanceState.getString(::currentDayCode.name) ?: currentDayCode
39+
}
3740
todayDayCode = Formatter.getTodayCode()
3841
}
3942

@@ -46,6 +49,11 @@ class DayFragmentsHolder : MyFragmentHolder(), NavigationListener {
4649
return binding.root
4750
}
4851

52+
override fun onSaveInstanceState(outState: Bundle) {
53+
outState.putString(::currentDayCode.name, currentDayCode)
54+
super.onSaveInstanceState(outState)
55+
}
56+
4957
private fun setupFragment() {
5058
val codes = getDays(currentDayCode)
5159
val dailyAdapter = MyDayPagerAdapter(requireActivity().supportFragmentManager, codes, this)

app/src/main/kotlin/org/fossify/calendar/fragments/MonthDayFragmentsHolder.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ class MonthDayFragmentsHolder : MyFragmentHolder(), NavigationListener {
3737
override fun onCreate(savedInstanceState: Bundle?) {
3838
super.onCreate(savedInstanceState)
3939
currentDayCode = arguments?.getString(DAY_CODE) ?: ""
40+
if (savedInstanceState != null) {
41+
currentDayCode = savedInstanceState.getString(::currentDayCode.name) ?: currentDayCode
42+
}
4043
todayDayCode = Formatter.getTodayCode()
4144
}
4245

@@ -49,6 +52,11 @@ class MonthDayFragmentsHolder : MyFragmentHolder(), NavigationListener {
4952
return binding.root
5053
}
5154

55+
override fun onSaveInstanceState(outState: Bundle) {
56+
outState.putString(::currentDayCode.name, currentDayCode)
57+
super.onSaveInstanceState(outState)
58+
}
59+
5260
private fun setupFragment() {
5361
val codes = getMonths(currentDayCode)
5462
val monthlyDailyAdapter = MyMonthDayPagerAdapter(requireActivity().supportFragmentManager, codes, this)

app/src/main/kotlin/org/fossify/calendar/fragments/MonthFragmentsHolder.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ class MonthFragmentsHolder : MyFragmentHolder(), NavigationListener {
3737
override fun onCreate(savedInstanceState: Bundle?) {
3838
super.onCreate(savedInstanceState)
3939
currentDayCode = arguments?.getString(DAY_CODE) ?: ""
40+
if (savedInstanceState != null) {
41+
currentDayCode = savedInstanceState.getString(::currentDayCode.name) ?: currentDayCode
42+
}
4043
todayDayCode = Formatter.getTodayCode()
4144
}
4245

@@ -49,6 +52,11 @@ class MonthFragmentsHolder : MyFragmentHolder(), NavigationListener {
4952
return binding.root
5053
}
5154

55+
override fun onSaveInstanceState(outState: Bundle) {
56+
outState.putString(::currentDayCode.name, currentDayCode)
57+
super.onSaveInstanceState(outState)
58+
}
59+
5260
private fun setupFragment() {
5361
val codes = getMonths(currentDayCode)
5462
val monthlyAdapter = MyMonthPagerAdapter(requireActivity().supportFragmentManager, codes, this)

app/src/main/kotlin/org/fossify/calendar/fragments/WeekFragmentsHolder.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
4444
super.onCreate(savedInstanceState)
4545
val dateTimeString = arguments?.getString(WEEK_START_DATE_TIME) ?: return
4646
currentWeekTS = (DateTime.parse(dateTimeString) ?: DateTime()).seconds()
47+
if (savedInstanceState != null) {
48+
currentWeekTS = savedInstanceState.getLong(::currentWeekTS.name)
49+
}
4750
updateThisWeekTS()
4851
}
4952

@@ -72,6 +75,11 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
7275
setupSeekbar()
7376
}
7477

78+
override fun onSaveInstanceState(outState: Bundle) {
79+
outState.putLong(::currentWeekTS.name, currentWeekTS)
80+
super.onSaveInstanceState(outState)
81+
}
82+
7583
private fun setupFragment() {
7684
addHours()
7785
setupWeeklyViewPager()

app/src/main/kotlin/org/fossify/calendar/fragments/YearFragmentsHolder.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ class YearFragmentsHolder : MyFragmentHolder(), NavigationListener {
3737
super.onCreate(savedInstanceState)
3838
val dateTimeString = arguments?.getString(YEAR_TO_OPEN)
3939
currentYear = (if (dateTimeString != null) DateTime.parse(dateTimeString) else DateTime()).toString(Formatter.YEAR_PATTERN).toInt()
40+
if (savedInstanceState != null) {
41+
currentYear = savedInstanceState.getInt(::currentYear.name)
42+
}
4043
todayYear = DateTime().toString(Formatter.YEAR_PATTERN).toInt()
4144
}
4245

@@ -49,6 +52,11 @@ class YearFragmentsHolder : MyFragmentHolder(), NavigationListener {
4952
return binding.root
5053
}
5154

55+
override fun onSaveInstanceState(outState: Bundle) {
56+
outState.putInt(::currentYear.name, currentYear)
57+
super.onSaveInstanceState(outState)
58+
}
59+
5260
private fun setupFragment() {
5361
val years = getYears(currentYear)
5462
val yearlyAdapter = MyYearPagerAdapter(requireActivity().supportFragmentManager, years, this)

0 commit comments

Comments
 (0)