stefan-niedermann / nextcloud-deck

📋 Android client for nextcloud deck app
https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play
GNU General Public License v3.0
487 stars 52 forks source link

Support notifications for offline devices and for devices without GSM / google play #1638

Open ahcheing opened 3 months ago

ahcheing commented 3 months ago

Is your feature request related to a problem? Please describe.

I cant get notifications. I spend around half of my working time without network access to my server (and there is nothing I can do about that). Despite having cards and reminders for tasks that I know are going to need to take place without access, I cant rely on your app for those tasks.

And even when I have network access to my server, notifications still dont work because I dont have google play enabled.

Even if I was willing to use google services (and I'm not), that would not address the issue of offline notifications. I have several devices which never connect to the internet, and thus would never receive google play notifications even If I was willing to use google play. But those devices do connect to my lan where my local-only nextcloud server lives.

Describe the solution you'd like

The best way to handle this (I think) is to give users the option to not rely on the base nextcloud app for notification support. Have the app make its own notifications based on its internal understanding of when cards are due.

This would mean you don't have to work with other app devs or wrangle with android breaking deeplinks for self hosted servers (or whatever this means: https://github.com/nextcloud/android/issues/9346#issuecomment-1326113482),

And most importantly it would work even when you dont have accessed to any networking at all. If a task is due to be done, it needs to be done, regardless of whether or not you have access to your server.

Describe alternatives you've considered

Another option is to work with apps like https://github.com/0x50f13/NextcloudServices to add support for using their notification system. But that app requires network access and thus would not work for me a large percentage of the time. but some % of the time is better then zero percent of the time.

Additional context

I have read the FAQ and can see that notifications for your app requires google play, this directly goes against the ethos of nextcloud and of the general purpose of task managment apps (why even have due dates without proper notification support?).

stefan-niedermann commented 3 months ago

Your issue consists of two parts, so let me split the response:

Push notifications in general

As you already learned from our FAQ, Deck Android does not support any Push Notifications and there are currently no plans to implement it ourself. There are various reasons, TL;DR: We currently have no plans to implement Push Notifications in Deck Android. First of all, there is currently no reliable solution (you will have to thank Google for this decision). Unified Push and some other community workarounds are nice ideas, but they are edgy. Other solutions cause battery drain, permanently visible notifications and other drawbacks.

This does not mean, Push Notifications aren't available for Deck Android: It is capable of handling Push Notifications received by Nextcloud Android, and I honestly see no reason why each and every third party app should implement this custom? One of the reasons to use the Single Sign On mechanism is to centralize infrastructure like the network layer, to support self signed certificates, self hosted and local instances, edgy server configurations and other stuff identically, no matter which 3rd party Nextcloud app one is using and implementing Push Notifications directly in the 3rd party apps contradicts this target.

This would mean you don't have to work with other app devs

But this is what we want :smile: We want collaboration between 3rd party app authors, We want to find common solutions for common problems. We do not want different solutions which might work better or worse across the ecosystem. We do not want to show 5 permanent notifications on Android for "News Push Notifications", "Deck Push Notifications", "Talk push Notifications", and so on.

Another option is to work with apps like https://github.com/0x50f13/NextcloudServices to add support for using their notification system

Yes, and the integration most likely can be directly copied from the Nextcloud Android app which has - you guessed it - the exact same mechanism. One app receives (or polls in this case) the notification and displays it, while the corresponding 3rd party app will show it. Wouldn't you agree that one NextcloudServices app that polls each 15 minutes is more efficient than five 3rd party apps, each of them polling every 15 minutes? Again you may see how and why we got the solution we currently have.

Local notifications for due date

Popping up a local notification when a card reaches due date is technically possible of course. What is your proposal to resolve duplicate notifications for the due date when a Push Notification appears? And yes, Push Notifications are only under control when it is opened because the Push Notification itself is displayed by the Nextcloud Android app (by design as explained above).

ahcheing commented 2 months ago

I just want notifications to work. I just want to get a notification that a cards due date has been reached, so I can click on the notification, and see what it is I am supposed to do. I would call it a bug report since its a feature that works for some people and not others, but your faq says you explicitly dont support notifications for my use case, hence this feature request asking you to please support notifications for people like me.

It is capable of handling Push Notifications received by Nextcloud Android

But it does not actually do that in practice. If I fetch a notification from the server using nextcloud services (or even tasker) I have no way of actually interacting with that notification. That is to say, clicking on nextcloud.local/card123 does not take me to card123, which when you have as many cards as I do is a big problem. It can take me longer to find the card in question that it would take to actually complete the task.

I know you tried to add that feature in a while back but it never took. And the android services app has been working on this feature forever but there has been no progress on it.

Again you may see how and why we got the solution we currently have.

Sure I can see the chain of logic. But surely you can also see how understanding how we got to this place does not actually resolve my issue. Its good to understand the problem better but the problem has not gone away.

What is your proposal to resolve duplicate notifications for the due date when a Push Notification appears?

I presume users who enable this feature would disable push notifications from the server. I don't think its that complicated, users like me who who prefer to use their devices built in notification system and calendar app or the tasks app disable push notifications for tasks / calendar events from the server as well.