feat: add splash screen and login auth flow

This commit is contained in:
2026-03-15 19:58:33 -04:00
parent 75e9ad1da2
commit 6ca5c1abaa
24 changed files with 889 additions and 34 deletions

View File

@@ -9,6 +9,9 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
## Dependencies
- AndroidX Preferences library.
- AndroidX SplashScreen library.
- AndroidX Credential Manager library.
- Kotlin coroutines (Android dispatcher).
## Current bootstrap status
@@ -20,8 +23,8 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
- Minimum SDK: API 29.
- Compile/target SDK: API 35.
- Baseline tests:
- JVM unit test in `app/src/test/`.
- Instrumentation smoke test in `app/src/androidTest/`.
- JVM unit tests for auth URL normalization and auth error mapping in `app/src/test/`.
- Instrumentation login flow tests in `app/src/androidTest/`.
## Command-line workflow
@@ -37,6 +40,7 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
**Splash screen**
- The app displays a standard Android splash screen when open from a cold start.
- Current status: implemented through `Theme.Kanbn4Droid.Splash` with a temporary placeholder image resource at `app/src/main/res/drawable/splash_placeholder.xml`.
**Login view**
- It's the first screen the user sees when opening the app if no login has been successfully stored so far.
@@ -46,6 +50,7 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
- The API key is managed using Android's own Credential Manager.
- On success, the view stores the URL and API key pair in preferences and moves over to the boards view.
- If there is a URL and API Key pair stored, the view tries to authenticate the user through the API automatically and proceeds to the boards view instantly without showing the login screen if successful.
- Current status: implemented in `MainActivity` with XML views and a temporary boards destination (`BoardsPlaceholderActivity`) while the real boards list view is still pending.
**Boards list view**
- Displays a list of boards as rounded-square cards with the board's title centered in it.