Changelog
Unreleased
- Sign in, the hub's API, navigation and foldable layouts (#2): sign in with the hub's device flow, as
oh auth logindoes (a code to approve on the hub's/devicepage, with the password and second factor there, never in the app), against oxygenhub.io or any hub; the token sealed with a Keystore key, kept out of backups, and revoked on the hub when signing out. A hand-written Kotlin client for the hub's API: the user, repositories, a repository's issues, the inbox and marking it read. A dashboard (greeting, recent repositories, unread count), repositories with their issues side by side from a medium width up (a foldable open, a tablet), and the inbox with a badge; a navigation bar on a phone and a rail when wider; light and dark, in dynamic colour or the hub's own palette; loading, empty and error states with pull to refresh. The placeholder login (username and password) and tabs are gone. Unit tests for the client (against fixtures from hub-api's types) and the view models; README screenshots rendered from Compose previews without an emulator. - The project set up properly (#1): the application id and package are
io.oxygenhub.android(permanent), minSdk 31 (Android 12), the Gradle and build caches no longer tracked,rust-core/part of the repository (it was a nested, empty Git repository, so it had never been committed), and the Rust core built for arm64-v8a and x86_64 and its Kotlin bindings generated by the build itself (buildRustCore,generateRustBindings) instead of being committed. The pipeline has no jobs until OxygenFlow has an Android image (oxygenflow#19).