Request: Re-enable daily reminder feature #97

Closed
opened 1 month ago by matthijs · 6 comments
matthijs commented 1 month ago

I used to have a daily reminders configured, but at some point this stopped working. Looking in the git history, I see this feature was disabled on Android 8+ in cdacf1ff50.

I've been missing this feature for quite a bit, would it be possible to re-enable this?

The git commit says "Google's new background execution policy no longer allows this behavior", but that seems weird to me. I'm pretty sure that just showing a notification at a given time is something that should be possible and in fact other apps (like Simplest Reminder, or Loop Habits Tracker) manage just fine. Maybe the way that meditationassistent handles these reminders is no longer supported, but it could be implemented differently? Loop Habits Tracker linked above is open, so maybe that can serve as inspiration?

I used to have a daily reminders configured, but at some point this stopped working. Looking in the git history, I see this feature was disabled on Android 8+ in cdacf1ff50. I've been missing this feature for quite a bit, would it be possible to re-enable this? The git commit says "Google's new background execution policy no longer allows this behavior", but that seems weird to me. I'm pretty sure that just showing a notification at a given time is something that should be possible and in fact other apps (like Simplest Reminder, or [Loop Habits Tracker](https://github.com/iSoron/uhabits)) manage just fine. Maybe the way that meditationassistent handles these reminders is no longer supported, but it could be implemented differently? Loop Habits Tracker linked above is open, so maybe that can serve as inspiration?

I would also be very happy to see this back, it was my primary reason to use Meditation Assistant, which I've just installed on a new phone to find it has no reminder.

I would also be very happy to see this back, it was my primary reason to use Meditation Assistant, which I've just installed on a new phone to find it has no reminder.
Owner

Here is some information on the changes to Android which caused this feature to be removed. I will look into this more and determine whether there is a way to re-enable this feature for newer devices.

Here is [some information](https://developer.android.com/about/versions/oreo/background) on the changes to Android which caused this feature to be removed. I will look into this more and determine whether there is a way to re-enable this feature for newer devices.
tslocum added the
enhancement
label 4 weeks ago
tslocum referenced this issue from a commit 3 weeks ago
Owner

I have tried re-enabling the feature and testing on newer devices. I believe the exact issue is that Android 8.0 and later do not allow broadcast receivers for things that do not originate within the app after being manually started by the user. Because Meditation Assistant relies on the ACTION_BOOT_COMPLETED intent to set the reminder after the device turns on, and this intent is not sent on Android 8.0 or later, this feature does not work properly. If the user opens Meditation Assistant manually before the reminder time, it will work until Meditation Assistant stops running. But if Meditation Assistant is not opened, the reminder will never be displayed. I haven't found a solution for the issue of Meditation Assistant not starting when the device turns on, as far as I can tell this is simply not allowed on newer android devices. I could be missing something if other apps appear to have this feature, even when the device is restarted and the app is not started manually before the reminder. If anyone has more info on how to still have this functionality on newer devices, any help would be appreciated.

I have tried re-enabling the feature and testing on newer devices. I believe the exact issue is that Android 8.0 and later do not allow broadcast receivers for things that do not originate within the app after being manually started by the user. Because Meditation Assistant relies on the [ACTION_BOOT_COMPLETED](https://developer.android.com/reference/android/content/Intent#ACTION_BOOT_COMPLETED) intent to set the reminder after the device turns on, and this intent is not sent on Android 8.0 or later, this feature does not work properly. If the user opens Meditation Assistant manually before the reminder time, it will work until Meditation Assistant stops running. But if Meditation Assistant is not opened, the reminder will never be displayed. I haven't found a solution for the issue of Meditation Assistant not starting when the device turns on, as far as I can tell this is simply not allowed on newer android devices. I could be missing something if other apps appear to have this feature, even when the device is restarted and the app is not started manually before the reminder. If anyone has more info on how to still have this functionality on newer devices, any help would be appreciated.

I am not a programmer and may rapidly run out of usefulness here, however I use two open source apps that reliably (100%) start on boot on Android 11 and stay running day after day, often with no interaction.

Better battery stats is one, the other is GPSLogger. The latter has a FAQ that digs into a little of this, this particularly may be relevant (I'd be ok with a notification sitting there if neeeded).

I am not a programmer and may rapidly run out of usefulness here, however I use two open source apps that reliably (100%) start on boot on Android 11 and stay running day after day, often with no interaction. [Better battery stats](https://https://github.com/asksven/BetterBatteryStats) is one, the other is [GPSLogger](https://https://gpslogger.app/). The latter has a FAQ that digs into a little of this, [this particularly](https://https://gpslogger.app/#whycan'tiremovethenotification) may be relevant (I'd be ok with a notification sitting there if neeeded).
tslocum referenced this issue from a commit 3 weeks ago
tslocum closed this issue 3 weeks ago
Owner

I spent more time on this and managed to figure out what changes needed to be made to support Android 8.0+. Now that I've solved one introduced issue from changes to Android, I will need to solve another to make this change available to users on Google Play.

To submit an app update to Google Play, apps must now target versions of Android that are too high for the file path permissions exception the app currently requests. Rather than receiving real file paths, URIs like "file:30" are returned instead. This has been a major source of confusion and I've tried to put the migration off as long as possible, but the migration is now required to publish an update.

This is a friendly reminder that there are a few ways to donate linked in the README if you would like to support the development of Meditation Assistant. I've sunk a good amount of time into the daily reminder feature, and the file path migration will also take some time.

I spent more time on this and managed to figure out what changes needed to be made to support Android 8.0+. Now that I've solved one introduced issue from changes to Android, I will need to solve another to make this change available to users on Google Play. To submit an app update to Google Play, apps must now target versions of Android that are too high for the file path permissions exception the app currently requests. Rather than receiving real file paths, URIs like "file:30" are returned instead. This has been a major source of confusion and I've tried to put the migration off as long as possible, but the migration is now required to publish an update. This is a friendly reminder that there are a few ways to donate linked in the README if you would like to support the development of Meditation Assistant. I've sunk a good amount of time into the daily reminder feature, and the file path migration will also take some time.
Poster

I spent more time on this and managed to figure out what changes needed to be made to support Android 8.0+. Now that I've solved one introduced issue from changes to Android, I will need to solve another to make this change available to users on Google Play.

Awesome, thanks!

This is a friendly reminder that there are a few ways to donate linked in the README if you would like to support the development of Meditation Assistant. I've sunk a good amount of time into the daily reminder feature, and the file path migration will also take some time.

Good that you mention it - donating something for apps I use regularly (and MA certainly qualifies - using it daily) has been on my TODO-list for too long, so this was a good nudge to finally start doing this :-) It's not much, but hopefully others will join and together it will give a bit of room for developing nice apps like this. Thanks!

> I spent more time on this and managed to figure out what changes needed to be made to support Android 8.0+. Now that I've solved one introduced issue from changes to Android, I will need to solve another to make this change available to users on Google Play. Awesome, thanks! > This is a friendly reminder that there are a few ways to donate linked in the README if you would like to support the development of Meditation Assistant. I've sunk a good amount of time into the daily reminder feature, and the file path migration will also take some time. Good that you mention it - donating something for apps I use regularly (and MA certainly qualifies - using it daily) has been on my TODO-list for too long, so this was a good nudge to finally start doing this :-) It's not much, but hopefully others will join and together it will give a bit of room for developing nice apps like this. Thanks!
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.