Resolved #12150 - City overview updates when entering a city via it, changing info, and exiting

This commit is contained in:
yairm210 2024-08-24 21:52:50 +03:00
parent 5d7b7c6bcb
commit e8565b0b6f
2 changed files with 6 additions and 6 deletions

View File

@ -36,16 +36,16 @@ class EmpireOverviewScreen(
init { init {
val selectCategory = defaultCategory val selectCategory = defaultCategory
//TODO replace with `?: persistState.last` in a future update //TODO replace with `?: persistState.last` in a future update
?: EmpireOverviewCategories.values().firstOrNull { it.name == game.settings.lastOverviewPage } ?: EmpireOverviewCategories.entries.firstOrNull { it.name == game.settings.lastOverviewPage }
val iconSize = Constants.defaultFontSize.toFloat() val iconSize = Constants.defaultFontSize.toFloat()
tabbedPager = TabbedPager( tabbedPager = TabbedPager(
stage.width, stage.width, stage.width, stage.width,
centerAreaHeight, centerAreaHeight, centerAreaHeight, centerAreaHeight,
separatorColor = Color.WHITE, separatorColor = Color.WHITE,
capacity = EmpireOverviewCategories.values().size) capacity = EmpireOverviewCategories.entries.size)
for (category in EmpireOverviewCategories.values()) { for (category in EmpireOverviewCategories.entries) {
val tabState = category.testState(viewingPlayer) val tabState = category.testState(viewingPlayer)
if (tabState == EmpireOverviewTabState.Hidden) continue if (tabState == EmpireOverviewTabState.Hidden) continue
val icon = if (category.iconName.isEmpty()) null else ImageGetter.getImage(category.iconName) val icon = if (category.iconName.isEmpty()) null else ImageGetter.getImage(category.iconName)
@ -78,7 +78,7 @@ class EmpireOverviewScreen(
tabbedPager.selectPage(-1) // trigger deselect on _old_ instance so the tabs can persist their stuff tabbedPager.selectPage(-1) // trigger deselect on _old_ instance so the tabs can persist their stuff
return EmpireOverviewScreen(viewingPlayer, return EmpireOverviewScreen(viewingPlayer,
//TODO replace with `persistState.last)` in a future update //TODO replace with `persistState.last)` in a future update
EmpireOverviewCategories.values().firstOrNull { it.name == game.settings.lastOverviewPage }) EmpireOverviewCategories.entries.firstOrNull { it.name == game.settings.lastOverviewPage })
} }
fun resizePage(tab: EmpireOverviewTab) { fun resizePage(tab: EmpireOverviewTab) {
@ -111,7 +111,7 @@ class EmpireOverviewScreen(
// This is called by UncivGame.popScreen - e.g. after City Tab opened a City and the user closes that CityScreen... // This is called by UncivGame.popScreen - e.g. after City Tab opened a City and the user closes that CityScreen...
// Notify the current tab via its IPageExtensions.activated entry point so it can refresh if needed // Notify the current tab via its IPageExtensions.activated entry point so it can refresh if needed
val index = tabbedPager.activePage val index = tabbedPager.activePage
val category = EmpireOverviewCategories.values().getOrNull(index - 1) ?: return val category = EmpireOverviewCategories.entries.getOrNull(index) ?: return
pageObjects[category]?.activated(index, "", tabbedPager) // Fake caption marks this as popScreen-triggered pageObjects[category]?.activated(index, "", tabbedPager) // Fake caption marks this as popScreen-triggered
} }
} }

View File

@ -25,7 +25,7 @@ abstract class EmpireOverviewTab (
if (caption.isEmpty()) return // called from EmpireOverviewScreen.resume() if (caption.isEmpty()) return // called from EmpireOverviewScreen.resume()
//TODO remove line in a future update //TODO remove line in a future update
overviewScreen.game.settings.lastOverviewPage = caption overviewScreen.game.settings.lastOverviewPage = caption
overviewScreen.persistState.last = EmpireOverviewCategories.values()[index] // Change this if categories are ever reordered or filtered overviewScreen.persistState.last = EmpireOverviewCategories.entries.toTypedArray()[index] // Change this if categories are ever reordered or filtered
} }
/** Override if the tab can _select_ something specific. /** Override if the tab can _select_ something specific.