Skip to content

Revamp Compose UI into dashboard with tabs and bank cards - #11

Merged
abd3-13 merged 1 commit into
mainfrom
codex/update-compose-ui-for-modern-dashboard
Apr 3, 2026
Merged

abd3-13 merged 1 commit into
mainfrom
codex/update-compose-ui-for-modern-dashboard

Conversation

@abd3-13

@abd3-13 abd3-13 commented Apr 3, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Replace the single-screen settings layout with a modern dashboard to improve visibility of sync statistics and configured banks.
  • Present key metrics in a 2-column stat grid and a Banks/plugins list so users can quickly see parser/plugin status without changing backend logic.
  • Introduce a simple tabbed workflow (Home / Logs / Settings) while keeping existing data flows and behavior unchanged.
  • Modernize visuals using Material3 dark theme, larger card radii and consistent spacing for a cleaner UI.

Description

  • Replaced the previous SettingsScreen composable with a DashboardScreen entry composable and enforced BankSMSTheme(darkTheme = true, dynamicColor = false).
  • Added bottom navigation implemented with NavigationBar / NavigationBarItem to switch between Home, Logs, and Settings tabs without touching app navigation or backend.
  • Implemented HomeTabContent which renders a 2-column stat grid using LazyVerticalGrid for: Total SMS, Parsed SMS, Failed SMS, Synced SMS, and Plugin count, and added a Banks section rendered with LazyColumn where each plugin is displayed as a rounded BankCard with bank name, sms count and active/disabled status.
  • Kept all data sources and logic intact by reusing SyncConfig.load(...), DAO methods (countAll, countByStatus, getByStatuses) and SmsParsePlugin.listFromJson(...) for deriving stats and per-bank counts.
  • Styling adjustments: all cards use RoundedCornerShape(20.dp), standard spacing/padding set to 16.dp, and log/settings panels reorganized into their respective tab content composables; only MainActivity.kt (UI composables) was changed.

Testing

  • Attempted an automated Kotlin compile with ./gradlew :app:compileDebugKotlin, but the build could not complete in this environment because the Gradle wrapper download was blocked by a network proxy (HTTP 403).
  • No other automated build or unit tests were executed in this environment due to the network-restricted Gradle wrapper download.

Codex Task

@abd3-13
abd3-13 merged commit d78129b into main Apr 3, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant