Commit graph

11 commits

Author SHA1 Message Date
2c850dbd0b
feat: show date in alarm card when set
Display formatted date (e.g. 'Do., 26.02.2026') in alarm list card
when alarm has a specific date. Date shown in primary color between
time and label.
2026-02-24 16:27:44 +01:00
f498ecdef4
fix: correct Room migration - use DEFAULT '' to match entity schema
Migration 1→2 had DEFAULT NULL but @ColumnInfo(defaultValue="") expects
DEFAULT ''. Room schema validation failed on startup.

Since SQLite can't alter column defaults, add migration 2→3 that recreates
the alarms table with the correct DEFAULT '' for the date column.
2026-02-24 16:01:07 +01:00
c78cb8a77d
feat: add optional date field to schedule alarms on specific dates
Add YYYY-MM-DD date parameter to /set endpoint. When provided, the alarm
fires at the exact date instead of the next occurrence of hour:minute.

- AlarmEntity: add nullable date column
- AlarmDatabase: bump to version 2, add migration 1→2
- AppModule: register migration
- KtorService: parse date, validate it's not in the past
- MainViewModel: accept optional date in createAlarm()
- README: document new date parameter
2026-02-24 15:48:05 +01:00
5793af5772
feat: shrink bell icon to 60% with padding 2026-02-23 14:26:07 +01:00
16ed756e4f
ci: sign with consistent release keystore 2026-02-23 14:15:29 +01:00
fe3800866f
feat: update app icon to fire bell 2026-02-23 14:05:43 +01:00
Helios
6b4ee77cba feat: add /last-alarm endpoint
Saves the last fired alarm (hour, minute, label, timestamp) to
SharedPreferences when an alarm fires. New GET /last-alarm endpoint
returns the last alarm info or 404 if none has fired yet.
2026-02-18 16:01:51 +01:00
Moritz
6032e9fd07 Production cleanup: enable R8, add ProGuard rules, validate API input
- Enable R8 minification and resource shrinking for release builds
- Add ProGuard keep rules for Ktor, kotlinx.serialization, Room
- Validate hour/minute range in POST /set endpoint
- Guard wake lock release on server start failure
- Remove unused template colors from colors.xml
- Rewrite README with curl examples, security note, troubleshooting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:10:41 +01:00
Moritz
5ad7c6cee8 fix 2026-02-15 17:00:55 +01:00
Moritz
8b7b2c26c0 Fix alarm not ringing by using AlarmRingService with full-screen intent
AlarmReceiver was calling startActivity() directly, which Android 10+
blocks from background. Now delegates to AlarmRingService which uses a
foreground notification with full-screen intent. Removed duplicate
sound/vibration from AlarmActivity (service owns playback). Removed
all vibration code and VIBRATE permission.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:54:37 +01:00
Moritz
327c5c28fe Initial commit: Helios Alarm Clock
Android alarm clock with embedded Ktor HTTP server for remote control.
Features in-app and HTTP API alarm management, full-screen alarm activity
with sound/vibration, DND bypass, boot persistence, and dark Material 3 UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:47:10 +01:00