Skip to content

Releases: Weiores/LockIn

0.2.1 - new mark

Choose a tag to compare

@Weiores Weiores released this 21 Oct 13:53

A new mark, and a splash where the shackle actually closes.

Added

  • New launcher icon: flat padlock with a near-white body, accent shackle and keyhole, on a night-ink plate that gradients from #16233B to #080E18.
  • Themed icon layer (ic_launcher_monochrome) wired through API 33+ mipmap variants, so the lock tints to the wallpaper palette when themed icons are on.

Changed

  • The splash now opens on a drawn lock instead of a bare wordmark. The shackle starts lifted clear of the body and drops into it on a spring with a slight overshoot, then the wordmark fades up and the fill line runs. About 1.04s total.
  • windowSplashScreenAnimatedIcon points at the bare mark, so the pre-Compose frame no longer flashes the icon plate before the splash takes over.

Notes

  • All icon geometry sits inside the 66dp safe circle, so circle, squircle and teardrop launcher masks all crop safely.
  • The splash reuses the icon's exact 108-unit geometry, so the two cannot drift apart.
  • Some launchers cache launcher icons. If the old one persists after installing, clear the launcher's cache or reboot.

0.2.0 - Playfair and six palettes

Choose a tag to compare

@Weiores Weiores released this 21 Oct 13:53

Typography and colour, plus the lock-flow fixes that were still sitting uncommitted.

Added

  • Playfair Display bundled as five static TTFs (SIL OFL 1.1). Applied to display type only: screen titles, card titles, hero and giant timers, metric values, whispers, and Material display/headline/titleLarge.
  • Three new accent schemes: Amber, Violet and Teal, alongside Blue, Green and Red. Settings now wraps the swatch row, so six fit without overflowing.

Changed

  • Each accent scheme owns its whole page wash. canvasMid and canvasBottom were hardcoded blue; they now come from the scheme.
  • Card surfaces are derived from the scheme's own wash instead of fixed blue-grey, so Amber no longer renders blue-grey cards on a warm canvas.
  • Timers moved from Light to Normal weight, because Playfair has no Light.
  • Seven hardcoded 20-22sp headings that bypassed the type tokens were brought onto the serif.

Fixed

  • Starting a session no longer requires nothing: it now requires a key, and the same key ends it. With nothing armed the primary button reads "Scan key to start".
  • Scanning an already-registered code always reported it as unregistered. The lookup read a WhileSubscribed(5000) flow whose cached value is empty when nothing collects it; it now hits the repository directly.
  • Ending a session no longer lands on a blank page. stopSession was resetting the engine to Idle, which fired the overlay's back-navigation while the caller also popped, double-popping the hub.
  • The session summary now reports duration and topic, and the hub's Stop always routes through it so it cannot be skipped.
  • Cancelling during arming no longer leaves the engine in a stale Failed state.

0.1.2 — bug fixes

Choose a tag to compare

@Weiores Weiores released this 21 Oct 04:35

Bug-fix release. No schema or data changes — install over the previous build.

Fixed

  • White status bar in light mode. The band was the system contrast scrim over a transparent status bar (isStatusBarContrastEnforced defaults to true and paints light in light theme), not the Scaffold colour. Both bars now opt out, and the theme disables contrast enforcement for the pre-Compose frame.
  • Unreadable status icons. They were white on the light sky (2.7:1). They now follow the mode.
  • Seam under the status bar. The page wash is drawn once at window level instead of once per screen.
  • Dead-end unlock. Ending a session with the wrong key failed silently. It now says which key the session was opened with, and the unlock sheet matches the session's lock type (camera vs NFC tap) instead of always showing the barcode camera.
  • Wrong start key. Arming with a key that doesn't match did nothing at all; it now reports it.
  • Removed the duplicate QR button from the Trigger Vault header.

Changed

  • Focus Hub: the lock-type picker and saved-key rail are replaced by one strip that shows the armed key (Barcode · Desk bottle) or offers a scan. The key you scan decides the lock type.
  • Scanning an unregistered code now offers to register it and routes to the Trigger Vault.
  • Tab switches use a shared-axis transition (parallax) instead of an equal-width slide.

Added

  • Startup screen on the same frame as the Android 12 system splash, with a single fill line (~860ms).
  • A 2dp load stroke per destination change.

Version: 0.1.2 (versionCode 3) · minSdk 31 · targetSdk 35

Stage 1 — first installable build

Choose a tag to compare

@Weiores Weiores released this 20 Oct 11:45

First installable build of LockIn — a deep-work timer that makes leaving a session cost something.

What's in Stage 1

Focus sessions

  • Pick a course module, set a duration, arm a physical key, then lock in.
  • The session runs in a foreground service with a live count-down notification.
  • Swiping the app away no longer kills the timer: the service is sticky and re-posts its notification.

Weekly journal (new)

  • Notes tab with per-week goals, checkboxes, progress rail and free-text notes.
  • Everything is stored locally in Room (schema v3, additive migration).
  • Open goals from last week can be carried forward in one tap.

Distraction guard (new)

  • Polls the foreground app while a session is locked.
  • Open a blacklisted app and a heads-up notification starts a 10-second countdown.
  • Leave and the session survives. Stay and it fails with DISTRACTION.

Scanners (new)

  • Full-screen barcode/QR page with CameraX + ML Kit, torch control and manual entry fallback.
  • Full-screen NFC page using reader mode; reads the tag UID only.
  • Both follow the app theme instead of forcing dark chrome.

Design

  • Light and dark themes, three accents (blue / green / red).
  • Directional tab transitions and a nav pill that travels on a spring.
  • No decorative glyphs, no sparkle spam.

Install

Requires Android 12 (API 31) or newer.

  1. Download LockIn-0.1.0-debug.apk below.
  2. Allow "install unknown apps" for your file manager when prompted.
  3. Tap the APK.

Or over USB: adb install -r LockIn-0.1.0-debug.apk

This is a debug-signed build — sideload only, not a Play Store artifact. It is 86 MB because ML Kit's barcode model ships inside it and nothing is minified yet.

Known limits

  • Not yet run on physical hardware by the author of this release; compiled clean but unverified at runtime.
  • Usage-access permission must be granted manually in Settings before the distraction guard can see the foreground app.