Commit graph

233 commits

Author SHA1 Message Date
Jens Reinemann
25c5f4675f chore: version bump 1.7.22 → 1.7.23 2026-05-18 22:28:33 +02:00
Jens Reinemann
2b33f930d0 feat(app): implement resource download + 'open with' dialog
Closes #123
2026-05-18 22:19:23 +02:00
Jens Reinemann
44476b21e6 feat(app): add ResourceListScreen + BottomBar navigation
Closes #122
2026-05-18 22:15:40 +02:00
Jens Reinemann
542fbb0941 feat(app): add ResourceEntity, Dao, Repository + DB migration 8→9
Closes #121
2026-05-18 22:10:51 +02:00
Jens Reinemann
6fc37ee203 fix(notification): wire up updateBadgeCount to launcher badge via setNumber() 2026-05-18 22:10:04 +02:00
Jens Reinemann
ab5aad8f3e feat(server): add REST-API for resources (CRUD + download)
Closes #120
2026-05-18 22:06:24 +02:00
Jens Reinemann
ab2cbff8ba fix(notification): set badge count via setNumber() for multi-sender notifications 2026-05-18 22:05:28 +02:00
Jens Reinemann
22112e7978 feat(server): add Resources table + docker volume + Caddy upload limit
Closes #119
2026-05-18 22:02:59 +02:00
Jens Reinemann
0b94a10acf chore: release v1.7.22 2026-05-18 22:01:44 +02:00
Jens Reinemann
332b814e14 feat(shared): add ResourceDto for resource catalog
Closes #118
2026-05-18 22:00:45 +02:00
Jens Reinemann
ae3cf3e660 fix(notification): minimize FGS notification visibility (bump channel to v2) 2026-05-18 21:59:58 +02:00
Jens Reinemann
5c187db1f9 chore: release v1.7.21 2026-05-18 21:46:15 +02:00
Jens Reinemann
afbec03ebb fix(item-form): make kcal label dynamic based on selected unit
Analogous to the price label, kcal now shows 'kcal pro [Einheit]'
based on the dropdown selection from #114.

Closes #115
2026-05-18 21:41:04 +02:00
Jens Reinemann
645578b66e feat(item-form): add unit dropdown with predefined list and custom option
Provides 8 predefined units (Stück, g, kg, ml, l, Packung, Dose, Flasche)
plus a custom input option. Normalizes legacy unit strings on app start.
Dynamic price label shows selected unit.

Closes #114
2026-05-18 21:39:24 +02:00
Jens Reinemann
975976fd06 feat(chat): add message pagination with cursor-based loading
Load initial 200 messages, auto-load older messages on scroll to top.
Uses cursor-based DAO queries for stable scroll position.
Also fixes pre-existing ackMessage compile errors in test fakes.

Closes #113
2026-05-18 21:32:47 +02:00
Jens Reinemann
7b21394cc6 fix(chat): increase message text size from bodyMedium to bodyLarge
Closes #112
2026-05-18 21:25:27 +02:00
Jens Reinemann
9eefa79c64 fix(notifications): merge FG-service and message notifications into one
Use a single notification ID (9999) for both idle foreground-service state
and incoming-message alerts. Shows sender name for 1 message, summary for
multiple senders. Cancelling resets to idle instead of removing.

Closes #111
2026-05-18 21:23:58 +02:00
Jens Reinemann
b7ef6af0a4 chore: release v1.7.20 2026-05-18 20:12:09 +02:00
Jens Reinemann
37fd66a417 fix(messaging): keyboard layout, message delivery ACK, background foreground service 2026-05-18 19:26:27 +02:00
Jens Reinemann
a6cc4ca4bf fix(ui): remove duplicate versionCode from update button label 2026-05-18 19:07:42 +02:00
Jens Reinemann
309f6961a5 chore: release v1.7.19 2026-05-18 19:00:14 +02:00
Jens Reinemann
93a52c5814 fix(sync): patchItemPartial upserts new items instead of returning 404 2026-05-18 18:58:34 +02:00
Jens Reinemann
6d5066e26a fix(sync): notify all co-users on inventory mutations (PATCH/DELETE/PUT) 2026-05-18 18:53:21 +02:00
Jens Reinemann
5a5e2548ac chore(db): Room-Schema v8 exportieren (is_read-Spalte) 2026-05-18 18:33:25 +02:00
Jens Reinemann
084b315b95 chore: release v1.7.18 2026-05-18 18:30:57 +02:00
Jens Reinemann
512829dd49 feat(messaging): ungelesene Nachrichten als Badges anzeigen (#110)
- DB-Migration 7→8: is_read-Spalte in messages (default 1 für bestehende Rows)
- DAO: getUnreadCountsBySender, getTotalUnreadCount, markConversationAsRead
- Repository: totalUnreadCount Flow + getUnreadCountsBySender() + markConversationAsRead()
- ChatViewModel: markConversationAsRead beim Öffnen/Empfangen
- UserListViewModel: unreadCounts StateFlow
- UserListScreen: rote Badge-Anzeige pro Chat
- MainViewModel: totalUnreadCount StateFlow
- MainScreen: BadgedBox am Nachrichten-Icon in Bottom Nav
- NotificationHelper: updateBadgeCount() für Launcher-Badge
- Tests: 3 neue Fälle, FakeDao+FakeRepo aktualisiert (328 Tests grün)
2026-05-18 18:28:49 +02:00
Jens Reinemann
06fa017c04 chore: update generaltest_admin_message.cpython-313.pyc, receive_admin_messages.cpython-313.pyc, send_admin_messages.cpython-313.pyc 2026-05-18 18:04:50 +02:00
Jens Reinemann
33c7ddb9ab fix(notification): suppress only when active chat is visible 2026-05-18 17:59:54 +02:00
Jens Reinemann
4ce585971d chore: release v1.7.17 2026-05-18 17:59:15 +02:00
Jens Reinemann
fb46c83f7b chore: release v1.7.16 2026-05-18 17:58:05 +02:00
Jens Reinemann
bce4abc1dd chore: release v1.7.15 2026-05-18 17:54:17 +02:00
Jens Reinemann
6fd8528577 feat(admin-message): simplify scripts, add inbox route, fix notification chat switch 2026-05-18 17:45:19 +02:00
Jens Reinemann
0a4d9fc20e fix(server): use CleartextKeysetHandle for admin E2EE encryption 2026-05-18 16:23:12 +02:00
Jens Reinemann
e0026b6eff fix(server): use direct Tink primitive for admin message encryption 2026-05-18 16:17:50 +02:00
Jens Reinemann
cd8290098c chore: remove accidental pycache artifact 2026-05-18 16:14:20 +02:00
Jens Reinemann
65913fa3b5 feat(server): token-only admin message API with sender/receiver usernames 2026-05-18 16:13:38 +02:00
Jens Reinemann
a1a9529b7d chore: release v1.7.14 2026-05-18 15:15:53 +02:00
Jens Reinemann
e3bcddac70 chore: update publish tooling and Android messaging integration 2026-05-18 15:13:49 +02:00
Jens Reinemann
87a8deb83c docs: add slim knowledge-conduit generaltest concept 2026-05-18 15:11:53 +02:00
Jens Reinemann
73d5e62a4e chore: release v1.7 (13) 2026-05-18 15:04:59 +02:00
Jens Reinemann
64ebb737d1 chore: add ADMIN_MESSAGE_TOKEN to VPS docker-compose config 2026-05-18 14:13:52 +02:00
Jens Reinemann
61ef0aa1ac feat(admin): implement E2EE encryption for admin test messages using recipient public keys 2026-05-18 14:12:12 +02:00
Jens Reinemann
ff80293c7a fix(server): add startShadowScripts dependency 2026-05-18 13:57:14 +02:00
Jens Reinemann
ca6cfbfad9 feat: add plaintext admin message endpoint for testing
- New POST /api/admin/send-message endpoint (admin-only)
- Messages prefixed with [PLAINTEXT] bypass E2EE decryption
- App recognizes [PLAINTEXT] marker and strips it before display
- Allows easy chat testing without E2EE key management
2026-05-18 13:56:15 +02:00
Jens Reinemann
30e86bb7e0 feat(notifications): request POST_NOTIFICATIONS permission on app start 2026-05-18 13:54:03 +02:00
Jens Reinemann
c39bc5e485 feat: foreground service for background message notifications 2026-05-18 13:45:06 +02:00
Jens Reinemann
38394c6350 chore: release v1.7 (12) 2026-05-18 13:23:09 +02:00
Jens Reinemann
cc8bbc3111 docs(knowledge-conduit): update Concept + SKILL 2026-05-18 13:22:08 +02:00
Jens Reinemann
e43c0ebbb5 feat(update): UpToDate-Status mit temporärem Feedback anzeigen
- Neuer UpdateStatus.UpToDate State
- Button zeigt 'Keine Updates gefunden' für 5 Sekunden
- Mindestens 1s Checking-Anzeige (vermeidet Flicker bei schneller Antwort)
- UpdateBanner blendet UpToDate-Status aus
2026-05-18 13:04:12 +02:00
Jens Reinemann
f93b4d0b72 fix(docs): Mermaid-Diagramme in Concept.md verbessern
- Emojis aus Mermaid-Nodes entfernt (verursachten Fragezeichen)
- Pipeline-Diagramm vereinfacht (single flowchart statt verschachtelter Subgraphs)
- Dateistruktur: Subgraph-Labels gekuerzt damit Text nicht verdeckt wird
2026-05-18 13:03:13 +02:00