Releases: DeepakSilaych/umber
Release list
Umber v0.1.3
Calendar periods instead of rolling windows.
Changed
The widget and home screen now show last 24 hours · this week · last week · this month ·
last month, with weeks starting Monday. The week-on-week percentage is gone.
Rolling 7- and 30-day figures reshuffled their boundaries every day, so they could never be
compared against anything. "This week vs last week" is how people actually reason about their own
spending. The 24-hour figure stays rolling on purpose — it answers "what have I just spent", which
a number that resets at midnight cannot.
The widget also shows how many transactions are waiting to be categorised, tapping straight
through to the Review tab.
Fixed
- The widget rendered its cramped layout at any size. Under
SizeMode.Responsive,
LocalSizereports the matched breakpoint rather than the real widget size — a 260dp-tall
widget read as 140dp. Now usesSizeMode.Exact. - Content ran off the bottom edge. Glance clips silently, so a period simply vanished mid-line.
Rows are now dropped by height tier, and the sparkline only appears where there is room. - Daily average divides by days elapsed this month, not a flat 30 — on the 3rd, dividing by 30
understated spending tenfold.
Verify
APK SHA-256 9371cfc9b528d842e6ad68e6b0163fe6854839fa466b451e7c2b8625c3141693
Umber v0.1.2
Widget layout fix, now verified on a real device.
Fixed
- The widget left two thirds of a 2×2 empty. Its size breakpoints assumed a "large" widget was
250×200dp; a 2×2 is closer to 160×160, so every 2×2 rendered the short layout inside a tall box.
Breakpoints now match sizes launchers actually produce, and the chart is anchored to the bottom
edge so the space in between is filled.
A 2×2 now shows the 24-hour figure, the week-on-week trend, the review count, the top three
categories and the 30-day sparkline — all in one glance.
Verify
APK SHA-256 8994301b29a64d227b4542d65f50c9cb0c173ad1cb3ba0f20d715b88d53caef2
Same signing key as before, installs as an upgrade.
Umber v0.1.1
Fixed
.xlsxstatements were unselectable. Android types them as
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, which the file picker's
allowlist omitted — so the file was greyed out with no explanation. The picker no longer filters
by MIME at all; format is identified from magic bytes, which is why filtering by MIME was
self-defeating in the first place.
Widget
- Empty state. A fresh install rendered ₹0, indistinguishable from a week of no spending.
- Weekly trend — last 7 days against the 7 before, so the number has a reference point.
- Review nudge — "N to categorise", tapping straight through to the Review tab.
- Most recent sparkline bucket highlighted.
- Data load wrapped in a guard: a thrown query used to leave a permanently broken widget on the
home screen with no way to retry. - Settings → Home screen widget adds it in one tap. Previously the widget existed but nothing
in the app mentioned it.
Also
- App icon repainted umber to match the logo (it was still green from before the rename).
- Settings → About shows the running version and links to releases.
- README documents every permission the APK requests, including the four WorkManager merges in.
Updates
Umber can't check for updates itself — no network permission. Use
Obtainium pointed at this repo for update notifications.
Verify
APK SHA-256 20e2a25a7e6dff606d655c286c32c120aed016170b59cacaab848c9ae7d08305
Signing cert e98c1305c140dd954ccce7d4b7efe207436c87c29c94475aa7d1859bbb587773
Same signing key as v0.1.0, so this installs as an upgrade. 133 unit tests pass.
Umber v0.1.0
First public build of Umber — an offline expense tracker for Indian bank and UPI SMS.
Android 8.0+ · 12 MB · no INTERNET permission
Install
Download umber-0.1.0.apk below and open it. You'll need to allow installs from unknown sources.
On first launch, grant SMS access, then Settings → Import history → 1 year to populate the
ledger and give the classifier something to learn from.
Not on the Play Store, and won't be:
READ_SMSis a restricted permission that Google's
permitted-use list doesn't cover for expense tracking.
What's in it
- Reads bank and UPI SMS — live, plus 1 month / 3 months / 1 year of history
- Statement import —
.xlsx, CSV or TSV, no per-bank configuration - On-device categorisation — merchant memory → logistic regression over character n-grams →
bundled lexicon of ~200 Indian merchants - Learns from corrections — one tap writes merchant memory, retro-labels that merchant's
history and takes a gradient step - Cross-source dedupe — a statement overlapping months of SMS won't double anything
- Reimbursement netting — pay a friend ₹1,000 and get it back, and you spent ₹0
- Home-screen widget — rolling 24h / 7d / 30d spend
- CSV export — plain numbers that sum in a spreadsheet
Privacy
The app ships without INTERNET. Not a policy — the permission isn't in the manifest, so it
cannot open a socket. Cloud backup is disabled too, since the database holds raw bank SMS.
No reverse geocoding (that would need network), so locations are coordinates only.
Known limitations
- Merchant extraction is the weakest link; bank templates vary a lot. Settings → "Messages skipped"
shows why anything was ignored — please open an issue with redacted examples. - Legacy
.xlsand PDF statements unsupported — export.xlsxor CSV instead. - Unminified, so stack traces in bug reports stay readable.
Verify
APK SHA-256 5e6e0972e52c46856f8e05dab43cb06f9d0d30a5f8f2e8d542a983894de58a40
Signing cert e98c1305c140dd954ccce7d4b7efe207436c87c29c94475aa7d1859bbb587773
133 unit tests pass. See ARCHITECTURE.md for how it works.