element-hq / element-android

A Matrix collaboration client for Android.
https://element.io/
Apache License 2.0
3.31k stars 702 forks source link

Bubbles API support #1124

Open kliu128 opened 4 years ago

kliu128 commented 4 years ago

The Android 11 developer preview is introducing the Bubbles API, which allows chat apps to display notifications as openable bubbles much like Facebook Messenger.

It would be nice if RiotX supported this to make opening notifications more convenient.

dkter commented 4 years ago

I had a go at implementing bubbles but haven't figured it out yet. There are some API changes between the Android 10 and 11 versions of bubbles so it might make sense to hold off until AndroidX supports API 30

gediminasel commented 2 years ago

Hi, any updates on this?

genofire commented 2 years ago

Here is the implementation on signal https://github.com/signalapp/Signal-Android/commit/e1bf23251f49d4cd311615fe1c3cbeee685e6835 maybe it helps the developer

slikie commented 2 years ago

Is there any update on this?

torrybr commented 1 year ago

Any update on this?

jadedpasta commented 1 year ago

I have started to work on this. I haven't done any android dev since 2016, so progress may be really slow. But I really want to use this feature, so I thought I'd give it a shot.

I am able to get bubbles to expand without immediately crashing, but I still have a lot of work left.

gordnhoo commented 1 year ago

I have started to work on this. I haven't done any android dev since 2016, so progress may be really slow. But I really want to use this feature, so I thought I'd give it a shot.

I am able to get bubbles to expand without immediately crashing, but I still have a lot of work left.

Hi any updates on this would love to see this feature on element keep up the nice work 😀

AmineI commented 11 months ago

I had a go at this as well a while ago. I ended up at roughly the same point as the user above : The bubbles themselves work, but at the cost of a few features and issues, such as having to manually clear a notification. To clear the notification properly, Google advises to

Update the BubbleMetadata to suppress the notification. Call BubbleMetadata.Builder.setSuppressNotification().

Cancelling a notification "as usual" also cancels the bubble, closing it instantly on opening the notification. I have a hack-ish solution simply disabling cancelling notifications. You can find some the code here https://github.com/vector-im/element-android/compare/develop...AmineI:element-android:conversation_features

I've been using it for a while, but I've had no time or skills to dig deeper on this unfortunately. Signal's implementation could be helpful, or this Android sample, as well as this blog from Slack

AmineI commented 1 month ago

Came back to this and fixed the main blockers, such as the ability to properly dismiss conversations, mark them as read, etc. Also fixed some issues I've had with duplicate notification alerts that seem to be from element upstream.

Code is a bit messy right now but is available here : https://github.com/element-hq/element-android/compare/develop...AmineI:element-android:feature/conversations_api The last thing I'm stuck on is that when started from the launcher, Element opens the home view (and not the previously open conversation/view). Help would be welcome on that, but it is not that big of an issue for my personal use.

Bubbles work great and I've been using this nicely as a daily driver.

mpeter50 commented 1 week ago

That is great to hear! Would you consider opening an MR to this repo?