Repository navigation
Adding Grouping, 'Taken At' & some general improvements #1821
Replies: 7 comments 7 replies
I 100% agree, group by default is a big improvement, but I didn't want to be too forward and completely change look w/out your input. :) I'll make it default for all.
Here's my major use case for dedicated "Taken at" function
Example test data if you want to play with it: MedTimer_example_meds_taken_at.mp4
My personal, ideal UI/UX rules (unofficial):Very common or default workflows should be:
*NOTE* I'm not a UI/UX designer, but have assembled them through much experience
I'm not a super fan of the filters as they work today, some of that is me coming from what I'm used to with MyTherapyApp, and minimal cognitive load. Some is actually functionality gaps in my usage (see example below)
Example scenario: I want to see easily see unresolved/active tasks
Ouch - so much thinking & clicking for a simple task! I hear you on the "resolved" section adding complexity. I'm open to better implementations. I took claude's options and tried to implement best, so definitely open to any other or more elegant ways to do it or something similar Thoughts? |
|
Oh, and by the way, I really like this one: "Confirm all and a group menu" |
|
Hello, Grouping by time in the overview looks good; I would like it. I'm just a little worried about long lists of meds. "Taken At..." would be amazing! I had to change the time of several meds per day, one by one, probably every day (at least every two days, if I'm lucky). I'm curious about the "Resolved" section. Not a priority for me, I tap on Taken and Passed/Not Taken (I'm guessing the word in English) to see the hidden meds, but it could be useful. Reminder edits apply to today: Y-es! The actual way takes me some time to adjust the reminders or the start/end intervals. |
|
@numericOverflow Any plans on creating the PRs you proposed? I really like the grouping idea, so if you don't have time or lost interest, I would pursue this myself... |
|
YES! I'll work on it. Got sidetracked and hadn't see the discussion notifications of late. You want me to wait until #1879 is merged and base of that? |
|
OK @Futsch1 - got the changes isolated for grouping and taken time. There are 2 PRs in draft (#1880 and #1881) and then after those merge, I'll rebase the third from this move-combine-notifications-setting branch in my fork and open that as the 3rd PR. LMK if you want changes. I have an APK I build with all 3 PRs combined and am testing, can send your way if you want. FOSS test build: [Note: the AI summary of plan starts here...]
A: grouping. The four commits each hold one feature, so you can drop any of them. Grouping uses an exact match on the reminder time and has its own Display setting, B: Taken at. C: settings move. This PR only relocates the preference. The key, the default (off) and the strings stay the same. It waits for A, because A gives grouping its own setting, and after that combining is a notification-only choice. Merge order. A and B are independent and both start from Not included. The resolved section and the hide-status-filters setting wait for the filter design you suggested (three states behind a Translations. New strings have machine-drafted translations in all locales. Please treat them as drafts. No existing translation is changed. Testing. I tested all three PRs together on a device, using one combined build. |









Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hey @Futsch1 - I've coded up some changes to make some general quality-of-life improvements. I leaned on Claude for the actual coding, but I made the architecture decisions, bigger picture plan, and kept it from running amok.
FWIW, I've been using MyTherapy App daily for several years of med tracking and would really like to transition to this open-source project where users have actual control over their data & who can('t) access it.
I'd love to help with some of the work to make it a more user-friendly app. I think it's got a ton of great features and work, but could use some polish to simplify the workflow a bit to reduce the cognitive load on users.
I have a slug of PRs out there to push these changes, but can re-org them however you prefer merging them. I'm also open to feedback.
</humanGenerated>
Now for the AI generated overview of all the changes...:
Proposed Overview and reminder improvements for MedTimer
Hi, I am numericOverflow. I use MedTimer every day with several medicines that are due at the same time, and over a few weeks I collected a list of small things that made that daily routine slower or confusing, plus three real bugs. I built the changes with Claude Code, reviewed every change myself, and tested them on my own phones (including a spare Android 10 device for the Alarm settings crash). I know you did not ask for any of this, so I split everything into small, separate pull requests: you can accept, reshape or decline each one on its own, and nothing depends on you taking all of it.
What changes for users
All screenshots use synthetic test data only.
Same-time doses show as one block
Doses due at the same reminder time share one time header and one card in the Overview list, so a morning routine reads as one block; a single dose looks as it does today, and the card is a little lighter in dark theme. A new Display setting, "Group entries by reminder time in overview", turns it off. Relates to issue 1696.
Confirm all and a group menu
Each group header gets a "Confirm all" button that marks all still-open doses of that time as taken, and a menu with the actions that all doses in the group share (the same set as the selection bar). A group where everything is already logged shows neither. Relates to issue 1451.
Taken at, with a time-only picker
A new "Taken at..." action, next to "Taken", records the time you really took a dose, for one dose or a whole selection, with a picker that asks only for the time and offers "Change date" for another day (future times are rejected). A new Display setting, "Default taken time", chooses whether plain "Taken" records the time of logging (today's behavior, the default) or the scheduled time (never later than now). Relates to issues 1406 and 1232.
Resolved section
Groups where every dose is taken or skipped move into a collapsed "Resolved" section at the bottom of the day (it opens by itself when nothing is open or when you filter for taken or skipped), and in a partly done group the finished rows sit dimmed at its bottom. The section exists only while Overview grouping is on, so turning that one switch off brings back today's list exactly.
Filter label and a setting to hide the filters
The four status filter icons get a small "Filter" caption cut into their outline, like a Material outlined text field, so they no longer read like a legend. The caption reuses the existing translated "Filter" string. Separately, a Display setting "Show status filters" (on by default) hides the row for people who never use it; hiding it also clears any active filter, so no dose stays hidden by accident.
Reminder edits apply to today
Today, changing a reminder's time or amount, or a medicine's name, only affects future days, so the dose already showing today keeps the old values. With this change, open doses due today or later follow the edit and a showing notification updates without a new sound, while taken or skipped doses, earlier days and doses moved with Reschedule keep their time. All rules live in one JVM-tested file, and this may fix issue 1778.
Alarm settings no longer crash on Android 9 to 11
Opening Settings > Alarm settings crashes on Android 9, 10 and 11 (API 28 to 30) in v1.26.1. The ringtone preference used a call that only exists from Android 12. The fix uses the AndroidX helper instead and has a Robolectric test for SDK 28 to 30.
Combine notifications moves to Notification settings
The existing "Combine same time notifications" switch only changes notifications, but it sits in Display settings. It moves to Notification and reminder settings. Its key, default, text and every translation stay exactly as they are, so existing choices and backups keep working.
Two further PRs have no user-visible change: one fixes drift between
AGENTS.md, the guidelines and the build files (D), and one gives debug builds their own application ID,com.futsch1.medtimer.debug, so they install beside the store app (K). Release names stay unchanged.All reactions