OXYGENHUB
# db00632a61d6 oxygenhub-android / CHANGELOG.md
2.4 KiB · Markdown · last changed Your avatar on the dashboard and the Account screen (closes #13) 11 days ago renderedsource blame history raw

Changelog

Unreleased

  • Your avatar (#13): the dashboard's greeting and the Account screen show the signed-in account's avatar from the hub's /avatar/{name}: an uploaded picture as it is, or the hub's identicon, read from its SVG (hue and cells) and drawn natively, so no SVG library; the initial while there is neither, or the hub cannot be reached. Fetched without the token (it is public), kept for the run, and refreshed with the dashboard.
  • The keyboard no longer comes up on its own on Repositories (#12): opening Repositories gave the filter focus and brought the keyboard up on every visit (tapping the navigation bar gives the app's view focus, which Compose hands to the screen's first focusable). The filter now takes focus only when it is touched, or reached from a keyboard. Checked on a Pixel 10 Pro Fold.
  • Sign in, the hub's API, navigation and foldable layouts (#2): sign in with the hub's device flow, as oh auth login does (a code to approve on the hub's /device page, 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).