# Design Notes ## Settings view - Current status: implemented through a left-side drawer in `BoardsActivity` plus a modal preferences dialog in `SettingsDialogFragment`/`SettingsPreferencesFragment`. - The drawer opens from the toolbar navigation button and left-edge gesture, dims the content behind it, and is constrained to at most one third of the screen width. - The drawer shows the authenticated user profile data from `users/me`, lists available workspaces, highlights the active workspace, and refreshes boards after successful workspace switches. - Drawer data loading supports retry for recoverable errors and forces sign-out when unauthorized responses are detected. - The settings dialog is backed by AndroidX Preferences and includes Theme (Light/Dark/Follow System), Base URL, and API key fields. - Save-and-close validates URL and API key drafts, runs health-check verification for credential changes, applies settings immediately, and refreshes drawer/boards state when credentials change. - Logout remains available from the drawer with confirmation; it clears stored auth/session workspace state and returns to the login screen. ### Verification - Commands run: `./gradlew :app:testDebugUnitTest --tests "space.hackenslacker.kanbn4droid.app.auth.SettingsApplyCoordinatorTest"`, `./gradlew :app:testDebugUnitTest --tests "space.hackenslacker.kanbn4droid.app.boards.BoardsViewModelTest"`, `./gradlew :app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=space.hackenslacker.kanbn4droid.app.BoardsFlowTest`, `./gradlew :app:testDebugUnitTest`, `./gradlew :app:assembleDebug`. - Result summary: targeted JVM tests passed, full debug JVM test suite passed, and `:app:assembleDebug` passed. - Instrumentation note: blocked in this environment with `No connected devices!` for `:app:connectedDebugAndroidTest`.