Skip to content

Commit 6bb7519

Browse files
committed
revert fix ViewPager2 crash to avoid TransactionTooLargeException
1 parent fd1f2c4 commit 6bb7519

File tree

5 files changed

+5
-5
lines changed

5 files changed

+5
-5
lines changed

core/src/main/java/com/example/util/simpletimetracker/core/base/BaseFragment.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ abstract class BaseFragment<T : ViewBinding> : Fragment(), Throttler {
3333
// This also somehow fixes memory leaks occurring on navigation
3434
// from main to some edit screen and back.
3535
// If this ever changes - need to also fix these memory leaks.
36-
// Also ViewPagers has isSaveEnabled set to false, to avoid crash
37-
// "Expected the adapter to be 'fresh' while restoring state".
3836
return _binding?.root?.also {
3937
initialized = true
4038
} ?: run {

core/src/main/java/com/example/util/simpletimetracker/core/view/SafeFragmentStateAdapter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ class SafeFragmentStateAdapter(
8383

8484
override fun restoreState(savedState: Parcelable) {
8585
try {
86+
// Restoring is crashing with "Expected the adapter to be 'fresh' while restoring state".
87+
// Don't need it anyway, because binding is saved in BaseFragment.
88+
// Crash can be avoided with setSaveEnabled,
89+
// which would cause skipping of saveState / restoreState,
90+
// but it will cause fragments to save themselves which would cause TransactionTooLargeException.
8691
adapter.restoreState(savedState)
8792
} catch (e: Exception) {
8893
Timber.e(e)

features/feature_main/src/main/java/com/example/util/simpletimetracker/feature_main/view/MainFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ class MainFragment : BaseFragment<Binding>() {
7979
}
8080

8181
private fun setupPager() = with(binding) {
82-
mainPager.isSaveEnabled = false // See BaseFragment.
8382
mainPager.adapter = SafeFragmentStateAdapter(
8483
MainContentAdapter(
8584
fragment = this@MainFragment,

features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsContainerFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ class RecordsContainerFragment :
5555

5656
override fun initUi(): Unit = with(binding) {
5757
pagerRecordsContainer.apply {
58-
isSaveEnabled = false // See BaseFragment.
5958
adapter = SafeFragmentStateAdapter(
6059
RecordsContainerAdapter(this@RecordsContainerFragment),
6160
)

features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsContainerFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class StatisticsContainerFragment :
5353

5454
override fun initUi(): Unit = with(binding) {
5555
pagerStatisticsContainer.apply {
56-
isSaveEnabled = false // See BaseFragment.
5756
adapter = SafeFragmentStateAdapter(
5857
StatisticsContainerAdapter(this@StatisticsContainerFragment),
5958
)

0 commit comments

Comments
 (0)