Quick reply / Mark as read using buttons on Bip
TL;DR Add a button action for a predefined quick reply/marking as read for the last compatible notification.
First of all, I just want to say that your app is amazing. It's the only app I've come across, that actually deserves the money for the pro version, I would probably donate even if all the functions of the app were free.
I've been using my Bip for a day and so far, the functions of the app have been very much adequate and using them, it's possible to use all the potential the watch has, even some things, that aren't originally intended.
The only thing, that I'm missing is that when I get a notification for an IM (WA, Viber, Telegram etc.) I usually want to just reply with a simple response (ok, yes, no, possibly a single emoji), or mark the message as read, so the person on the other side knows, that I've read the message on my watch.
The notifications for these apps usually have buttons for these things. AFAIK Android (since version 8?) has a standard API for creating these notifications (the notifications look and act the same for all these apps). I have no idea however, if there is a standard API for interacting with these buttons for apps with notification access. It would be awesome, if I could add a button action to either answer with a predefined response or just mark the conversation as read for the last notification recieved by the watch. It would be also good, if the phone could send a notification to the watch as a confirmation of sending the message, because I still find the button actions a bit unreliable and can't nail them each time.
Thank you very much for your time, you're doing a wonderful thing!
PS: You should get HTTPS for the forums. With Let's Encrypt it's free and these days there is no reason for any website to not use HTTPS. There are many tutorials on the web and it's quite easy to do.
A possible addon to this idea:
Instead of directly replying using the buttons, the buttons could launch a special call notification and assign a different reply to ignore/hangup.
A very similar function has a submitted pull request to GadgetBridge and it should contain all the necessary code for communication with the Bip (creating the call notification after the button press and handling the ignore/hangup buttons) but I still haven't found out if it's possible to interact with the notifications in the way I started.
Here's the link to the PR: https://github.com/Freeyourgadget/Gadgetbridge/pull/925
I've compiled relevant information from the docs, I have it just on paper right now, will post it here later today.
Marking messages as read or even sending a reply would be awesome.
But i am afraid that it will not be possible.
Let's hope somebody comes with a good idea fro this (Tasker?) or the developer is able to build it in the app.
As I said I have put together all the necessary information for the implementation from the docs (it's almost a full implementation in theory), I'll post it later because I have it only on paper. I probably could even implement the function myself (I'm a developer too, web developer though, I have very little experience with Android, but you can write in any language when you have the documentation and I have made some things for Android in the past), but the app isn't open source, so I can't submit a PR.
here's all the information I gathered
Notification access implementation:
Replying to notifications could be done like this: https://medium.com/@lowcarbrob/how-to-reply-to-android-app-notifications-c09e44da9bdb
You should probably use .getSemanticAction to filter the right Action to use, instead of .getResultKey, because you that could cause incompatibilities with different languages.
How this could work in practice:
Have a new button action called something along the lines of "interact with last notification". That would have to have another contextual menu, with a selection of semanticActions the user could choose from, a boolean tickbox for enabling/disabling interaction with the text field and the predefined message to insert into the text field.
Or, you could just make two button actions. First "mark last notification as read", which would have no contextual menu, would just find the Action with the semanticAction of "SEMANTIC_ACTION_MARK_AS_READ" and call the respective intend. The second one would be "reply to last notification", it would have a simple contextual menu to predefine a message and would find the Action with "SEMANTIC_ACTION_REPLY", and send the reply according to the tutorial above.
Confirmation of button actions using call notification
The implementation should be possible using the code in the PR I mentioned in an earlier post.
How this could work in practice:
Add a new button action called "Confirm using call notification" or something similar. Then, each of the call notification buttons (Ignore, Hang Up) would just launch a button action defined by the user. This could be in theory used to chain these notifications and create an infinite amount of possible callbacks. The only drawback is a big amount of vibrations happening, which obviusly isn't ideal, but it isn't a dealbreaker.
Hope this helps.
Have a nice evening,
PS: This forum supports Markdown. Nice.
I made a workaround using tasker, so it's possible. But it's a massive pain in the ass to be honest.
You have to assign the tasks to the intents.