Skip to content

Commit 938409f

Browse files
committed
fix: Pages stacking on reload
1 parent 0e44829 commit 938409f

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

app/src/main/java/org/nsh07/wikireader/ui/homeScreen/viewModel/HomeScreenViewModel.kt

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,8 @@ class HomeScreenViewModel(
366366
private fun loadPage(
367367
title: String?,
368368
lang: String? = null,
369-
random: Boolean = false
369+
random: Boolean = false,
370+
replaceBackstackEntry: Boolean = false
370371
) {
371372
loaderJob.cancel()
372373
viewModelScope.launch(loaderJob + Dispatchers.IO) {
@@ -447,7 +448,7 @@ class HomeScreenViewModel(
447448
}
448449
}
449450

450-
backStack.add(
451+
if (!replaceBackstackEntry) backStack.add(
451452
HomeSubscreen.Article(
452453
title = apiResponse?.title ?: "Error",
453454
photo = apiResponse?.photo,
@@ -460,6 +461,18 @@ class HomeScreenViewModel(
460461
sections = articleSections
461462
)
462463
)
464+
else
465+
backStack[backStack.lastIndex] = HomeSubscreen.Article(
466+
title = apiResponse?.title ?: "Error",
467+
photo = apiResponse?.photo,
468+
photoDesc = apiResponse?.description,
469+
langs = apiResponse?.langs,
470+
currentLang = setLang,
471+
pageId = apiResponse?.pageId,
472+
savedStatus = saved,
473+
extract = parsedExtract,
474+
sections = articleSections
475+
)
463476

464477
// Reset refList
465478
refCount = 1
@@ -529,12 +542,14 @@ class HomeScreenViewModel(
529542
loadPage(
530543
lastQuery?.first,
531544
lang = lastQuery?.second,
532-
random = false
545+
random = false,
546+
replaceBackstackEntry = true
533547
)
534548
else
535549
loadPage(
536550
lastQuery?.first,
537-
random = false
551+
random = false,
552+
replaceBackstackEntry = true
538553
)
539554
}
540555
}

0 commit comments

Comments
 (0)