mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 03:37:21 +00:00
feat(settings): drag-to-reorder page order in UI Settings card
Users can now change the bottom navigation order (previously fixed): - New "Page order" section under the Settings toggle in the UI Settings card: vertical list of all 7 pages, each with a drag handle (new ic_drag drawable, Material drag_indicator glyph) on the right. - Drag a handle up/down: the item follows the finger with live swap + animateItem() placement animation; on release the order is persisted (OtherSettings.screenOrder, comma-separated in prefs so order survives; StringSet would not). - "Reset order" button restores the default order (Satellites/Passes/Radar/Mutual/Roaming/Map/Settings). - MainScreen now sorts navItems by screenOrder (empty = default, stable sort keeps the canonical order); hiddenScreens filtering unchanged; Settings entry always visible. - New strings prefs_ui_order_title / prefs_ui_order_reset in en/zh/tr; What's-new updated in all three locales. Version stays 4.4.9 (覆盖 per user). Verified: core:data tests pass, settings + app compile.
This commit is contained in:
1 parent
c496d90d5a
commit
0ea9c0ede1
11 files changed
+150
-4
No files matched your search
@@ -78,6 +78,7 @@ class SettingsRepo(
|
||||
private val keyStateOfLightTheme = "stateOfLightTheme"
|
||||
private val keyStateOfNightMode = "stateOfNightMode"
|
||||
private val keyHiddenScreens = "hiddenScreens"
|
||||
private val keyScreenOrder = "screenOrder"
|
||||
private val keyStationAltitude = "stationAltitude"
|
||||
private val keyStationLatitude = "stationLatitude"
|
||||
private val keyStationLongitude = "stationLongitude"
|
||||
@@ -359,6 +360,7 @@ class SettingsRepo(
|
||||
putLong(keyLowElevation, new.lowElevation.toRawBits())
|
||||
putLong(keyHighElevation, new.highElevation.toRawBits())
|
||||
putStringSet(keyHiddenScreens, new.hiddenScreens.toSet())
|
||||
putString(keyScreenOrder, new.screenOrder.joinToString(","))
|
||||
}
|
||||
new
|
||||
}
|
||||
@@ -375,6 +377,7 @@ class SettingsRepo(
|
||||
shouldSeeWhatsNew = preferences.getBoolean(keyShouldSeeWhatsNew, true),
|
||||
sstvMode = preferences.getString(keySstvMode, null) ?: "Auto",
|
||||
hiddenScreens = preferences.getStringSet(keyHiddenScreens, emptySet())?.toList() ?: emptyList(),
|
||||
screenOrder = preferences.getString(keyScreenOrder, null)?.split(",")?.filter { it.isNotBlank() } ?: emptyList(),
|
||||
lowElevation = Double.fromBits(preferences.getLong(keyLowElevation, 15.0.toRawBits())),
|
||||
highElevation = Double.fromBits(preferences.getLong(keyHighElevation, 45.0.toRawBits()))
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user