Skip to content

Tag-alarms: friendly tag names, write before saving, and a Settings page for NFC tags - #133

Merged
mapgie merged 1 commit into
mainfrom
claude/nfc-alarm-scheduling-0m9cre
Sep 11, 2026
Merged

Tag-alarms: friendly tag names, write before saving, and a Settings page for NFC tags#133
mapgie merged 1 commit into
mainfrom
claude/nfc-alarm-scheduling-0m9cre

Conversation

@mapgie

@mapgie mapgie commented Sep 11, 2026

Copy link
Copy Markdown
Owner

What

Friendly tag ids. A tag-alarm's tag is no longer its record UUID. Name it from the Tag row ("Name the tag" folds whatever you type to lower-case letters, digits and hyphens, so "Office A" becomes "office-a" and the dialog shows exactly what will be written), or leave it blank and the write mints one from the title. Ids a chore or another tag-alarm owns are refused with the owner named.

Write before saving. Since the id no longer depends on the record, "Write "office-a" to a blank tag" is offered on the New sheet too. It saves the memo with that id as its linked tag, closes, and waits for the tap.

Settings > NFC tags. One page for tag maintenance:

  • Identify: scan any tag and see what it belongs to ("Chore: Laundry", "Tag-alarm: Office A", or not linked).
  • Chores: every chore's tag id, archived ones last, each with Write.
  • Tag-alarms: every unarchived tag-alarm, with its tag id or "No tag yet"; Write (minting an unused id first when there is none) and Unlink (behind a confirm; the sticker itself is untouched).

How

  • suggestTagId / freeTagId in TagAlarm.kt are pure and tested. ReminderRepository.setTagAlarmTag links or unlinks.
  • NfcWriteRequest gains fromSettings; MainActivity exposes one onStartNfcWriteRequest and the nav graph derives the chore, memo and settings variants, so each tab shows only its own write dialog.
  • TagsViewModel holds TagsUiState (pure, tested: listing, ordering, identify, free id) and follows the on-device memos so a link written from the sheet shows without a reload; chores load from Supabase and a failure leaves the tag-alarms showing.
  • TagsSubScreen reuses SubScreenHeader, SettingsCard, ValueChip and WriteTagDialog. Identify uses the activity's capture mode, so a tap while listening is never logged as a chore or armed as an alarm.

Changelog

changelog/unreleased/friendly-tag-ids.json, minor bump.

🤖 Generated with Claude Code

https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv


Generated by Claude Code

…age for NFC tags

A tag-alarm's tag id is now something you can read: name it from the Tag
row ("Office A" folds to "office-a"), or let the write mint one from the
title. Because the id no longer depends on the record, a new tag-alarm can
be written to a blank tag straight from the New sheet, which saves it with
that id first.

Settings > NFC tags lists every tag the app recognises: each chore's tag
(archived last) and each tag-alarm, with or without a tag. Scan a tag to
see what it belongs to, write any row's id to a blank sticker through the
shared write dialog, give a tag-alarm an unused id, or unlink one. The
write request now records where it was started so each tab shows only its
own dialog.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016rWgRBgBaGjrH7iWGmUeSv
@mapgie
mapgie marked this pull request as ready for review September 11, 2026 23:19
@mapgie
mapgie merged commit 2d65807 into main Sep 11, 2026
6 checks passed
@mapgie
mapgie deleted the claude/nfc-alarm-scheduling-0m9cre branch September 11, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants