Skip to content

Conversation

gavine99
Copy link

@gavine99 gavine99 commented Sep 7, 2024

changes to allow any UnifiedPush distributor to deliver push messages in generic/f-droid build.

image

added a setting item to reset push notification registrations in case of issues with push (in case UnifiedPush distributor gets out of sync). this same setting item can also be used to reset firebase push in case of issues with it too.

image

modified settings->diagnosis to cater for both unified push and fcm push messaging.

image

a similar pr has been submitted for the nextcloud android client app - nextcloud/android#13516

app/build.gradle Outdated
implementation 'com.github.nextcloud-deps:android-talk-webrtc:121.6167.0'

// unified push library for generic flavour
genericImplementation 'org.codeberg.UnifiedPush:android-connector:2.4.0'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
genericImplementation 'org.codeberg.UnifiedPush:android-connector:2.4.0'
genericImplementation 'org.unifiedpush.android:connector:2.5.0'

Copy link
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

@Fuseteam
Copy link

Fuseteam commented Feb 7, 2025

@gavine99 you may want checkout the DCO error message, if you click on "details" it will explain what you need to do

@gavine99
Copy link
Author

gavine99 commented Feb 8, 2025

@Fuseteam i'm not sure what i'm supposed to do to fix ?? dco results say 8 commits not signed off my 4 commit messages all have sign-off string; Signed-off-by: Gavin Element <[email protected]>

the other 4 commits listed dco results are nextcloud android bot and i can't sign them off;

Commit sha: [36716fa](https://github.com/nextcloud/talk-android/pull/4169/commits/36716fa78871d4bd24376d11adebdb4749d745d1), Author: Nextcloud Android Bot, Committer: Nextcloud Android Bot; The sign-off is missing. Commit sha: [d450c47](https://github.com/nextcloud/talk-android/pull/4169/commits/d450c470fe56138b1c1bc345d95a67e0adc427d7), Author: Nextcloud Android Bot, Committer: Nextcloud Android Bot; The sign-off is missing. Commit sha: [be235c8](https://github.com/nextcloud/talk-android/pull/4169/commits/be235c8141e8e1c6906198ace61ae17c307445e6), Author: Nextcloud Android Bot, Committer: Nextcloud Android Bot; The sign-off is missing. Commit sha: [667a67b](https://github.com/nextcloud/talk-android/pull/4169/commits/667a67b7fc0858d20549133d17386a23a98a6bf1), Author: Nextcloud Android Bot, Committer: Nextcloud Android Bot; The sign-off is missing.

@Fuseteam
Copy link

Fuseteam commented Feb 9, 2025

@gavine99 then i think you need to drop the commits that are not yours, i assume those should be in the main tree already

@Fuseteam
Copy link

@gavine99 perhaps try rebasing your branch and only picking your own commits

@gavine99 gavine99 force-pushed the unified_push_nextcloud_notifications branch from 3a39598 to b190409 Compare March 24, 2025 05:51
@Fuseteam
Copy link

ayyy nice DCO looks good now :D

@Fuseteam
Copy link

looks like remaining issues are listed here: https://app.codacy.com/gh/nextcloud/talk-android/pull-requests/4169/issues

@gavine99 gavine99 force-pushed the unified_push_nextcloud_notifications branch 3 times, most recently from b8f144c to 2d54efb Compare March 24, 2025 21:17
@Fuseteam
Copy link

Fuseteam commented Mar 26, 2025

nice i see no failing checks anymore, i suppose now the other 3 PRs likely also need the same treatment, 2 of them have review comments from a member of nextcloud that may need to be addressed

p.s other than for the rebase(s), i believe you shouldn't force push, the maintainer can always squash later. But maybe that's just me

@p1gp1g
Copy link

p1gp1g commented Mar 27, 2025

As I said on the NextPush PR, a better approach is to add support for webpush, so we can have a proper UnifiedPush support on the Nextcloud applications: it won't depend on a pre-defined distributor (which goes against the whole UnifiedPush idea)

I will work on adding this support in not so long. Your different PR on the clients may be used as a base for it

@gavine99
Copy link
Author

it won't depend on a pre-defined distributor

@p1gp1g maybe i don't understand enough but this pr uses the generic unified push connector so it doesn't depend on a predefined distributor (ie the distributor can use webpush or any other push tech). this pr also uses the same message format as the existing fcm push messages. it's all very generic and doesn't commit anyone to using anything.

@gavine99
Copy link
Author

other than for the rebase(s), i believe you shouldn't force push, the maintainer can always squash later. But maybe that's just me

@Fuseteam i rebased and squashed because all my commits had the wrong signed-off-by info

@p1gp1g
Copy link

p1gp1g commented Mar 27, 2025

it won't depend on a pre-defined distributor

@p1gp1g maybe i don't understand enough but this pr uses the generic unified push connector so it doesn't depend on a predefined distributor (ie the distributor can use webpush or any other push tech). this pr also uses the same message format as the existing fcm push messages. it's all very generic and doesn't commit anyone to using anything.

I didn't look at the details, this is what I understood based on your requirements for nextpush. Does it work with another distributor right now ?

@gavine99
Copy link
Author

there is nothing to make it rely on nextpush. the original pr description does say; ... this pr is related to, but not dependent on,... i will edit the pr description to make it more clear.

if one has multiple distributors installed (i have nextpush and ntfy) it even allows you to choose which distributor to use using the connector-ui library dialog.

image

@p1gp1g
Copy link

p1gp1g commented Mar 28, 2025

Well, that's great then. It would be nice to edit the different PR to know what is required, what is not, and what has changed!

If you want, I'm OK to review your different client-side PRs.

From uppush PR:

allow this app to be used to push nextcloud notifications to nextcloud android client and talk apps.

It isn't true anymore then ? Or it has never been a requirement ?


I will still work to add webpush on notifications app, it is needed for different reasons. And it can then be used by the different clients then.

Do you use the same trick than neon at this moment ? It adds a hash # to remove the hardcoded path from nextcloud proxy

@gavine99
Copy link
Author

allow this app to be used to push nextcloud notifications to nextcloud android client and talk apps.

It isn't true anymore then ? Or it has never been a requirement ?

it was never a hard requirement. that uppush pr can be abandoned because it is no longer required since i have developed the stand-alone nextcloud server app that bridges notifications and uppush. i have been using it for months and it works great.

there are no dependencies for my nextcloud talk and nextcloud app unified push connector pull requests. they are totally independent.

I will still work to add webpush on notifications app, it is needed for different reasons. And it can then be used by the different clients then.

that sounds good. do you intend webpush to be used as transport for unified push - ie webpush used between server and unified push distributor? or totally separate from unified push?

Do you use the same trick than neon at this moment ? It adds a hash # to remove the hardcoded path from nextcloud proxy

i don't know what neon is, what the hard-coded path is, and what nextcloud proxy you mean :) but i can say i didn't do any tricks or work-arounds. i just added the unified push libraries and plumbed them into the existing fcm push receiver code with the least amount of changes to existing code as possible.

@p1gp1g
Copy link

p1gp1g commented Mar 28, 2025

I will still work to add webpush on notifications app, it is needed for different reasons. And it can then be used by the different clients then.

that sounds good. do you intend webpush to be used as transport for unified push - ie webpush used between server and unified push distributor? or totally separate from unified push?

The specs have been clarified to explicitly define webpush as the server to server protocol. It generally work even if it misses some parts.

Can you reach me on matrix (from the UnifiedPush room), so we can clarify the different PR ? I think I wasn't the only one confused with what the different PRs do. And I think it is necessary if we want these PR to be merged

@Fuseteam
Copy link

Fuseteam commented Mar 28, 2025

The specs have been clarified to explicitly define webpush as the server to server protocol. It generally work even if it misses some parts.

if understand correctly does this mean that the nextcloud notifications app will talk to ntfy, uppush or ubports push over webpush?

To me it sounds like this pr and nextcloud/android#13516 simply enable the android applications to use an unified push distributor that is installed on the device, while adding webpush to the notifications app will able to supercede nextcloud/server#47763, nextcloud/notifications#2027 and the bridge app

@p1gp1g
Copy link

p1gp1g commented Mar 28, 2025

The specs have been clarified to explicitly define webpush as the server to server protocol. It generally work even if it misses some parts.

if understand correctly does this mean that the nextcloud notifications app will talk to ntfy, uppush or ubports push over webpush?

It means UnifiedPush servers are webpush servers

To me it sounds like this pr and nextcloud/android#13516 simply enable the android applications to use an unified push distributor that is installed on the device

Yeah, there is still one brick that will be changed: getting the VAPID key, the API to send new endpoint & webpush keys

while adding webpush to the notifications app will able to supercede nextcloud/server#47763, nextcloud/notifications#2027 and the bridge app

This is the most confusing part because @gavine99 said these PR aren't necessary anymore. But "webpush to the notifications app will able to supercede" was exactly what I had in mind

@Fuseteam
Copy link

Fuseteam commented Mar 28, 2025

while adding webpush to the notifications app will able to supercede nextcloud/server#47763, nextcloud/notifications#2027 and the bridge app

This is the most confusing part because @gavine99 said these PR aren't necessary anymore. But "webpush to the notifications app will able to supercede" was exactly what I had in mind

it was never a hard requirement. that uppush pr can be abandoned because it is no longer required since i have developed the stand-alone nextcloud server app that bridges notifications and uppush. i have been using it for months and it works great.

there are no dependencies for my nextcloud talk and nextcloud app unified push connector pull requests. they are totally independent.

I believe this refers to the this PR: https://codeberg.org/NextPush/uppush/pulls/17#issuecomment-2282854

as the server app seems to say

requires some customisations to nextcloud core and nextcloud notifications app that have not been merged yet

well that and i think we may be confusing nextpush the distributor and uppush the server app in this discussion (i almost did too) So i think @gavine99 meant to say the nextpush PR is no longer needed

@Fuseteam
Copy link

then again that nextpush pr is for the uppush the server app— is there is even a nextpush pr for the distributor? looks like i'm still confusing the two 😂

@gavine99
Copy link
Author

@Fuseteam @p1gp1g

i'll try to clear things up with the pushes;

mobile apps
the talk app and the nextcloud app pr's can be merged any time. they are completely separate and have no dependency on any other pr's. they enable any unified push distributor to be used for delivering push messages to the apps. push messages can be in the same format as the existing fcm messages but without the encryption as it's not required because the notifications are no longer going through nextcloud push proxy or google fcm.

uppush server app
the pr's for uppush can be abandoned, because as you say @p1gp1g, they 'tied' notifications into the uppush app. the notification-uppush 'bridge' that i developed (https://github.com/gavine99/uppush-notifications) does the job of the old uppush pr's.

nextcloud server and the nextcloud server notifications app
these pr's achieved 1 main thing; to allow the deletion 'event' of notifications to go through the 'manager' in main code base so that all registered notification-managing-apps get a call when a notification is deleted. but these pr's are possibly not implemented well. i intend to revisit them soon to see if the same can be achieved in a different fashion. this doesn't change the fact that the mobile app pr's can be merged ahead of any changes on the server.

i hope this is helpful.

@gavine99
Copy link
Author

is there is even a nextpush pr for the distributor

there is a pr for the distributor, but it's completely separate bug fix and has no relationship to nextcloud or uppush

@gavine99
Copy link
Author

The specs have been clarified to explicitly define webpush as the server to server protocol

for me, i am not a fan of this idea. i think unified push should be transport agnostic.

a reason why is that, in the future when i had time available, i wanted to develop a unified push distributor based on mqtt back-end so that apps can 'push messages back.' (and other benefits that mqtt provides). yes, i realise this would be a non-standard extension of unified push but it would be unified push compliant for messages from server to client so ok for 100% unified push compliance. it would just do extra stuff. (maybe name it "unified pushback" ?? :) )

a nice example of what is good about apps being able to 'push messages back' would be that sip protocol could be 100% performed over this.

@Fuseteam
Copy link

i wanted to develop a unified push distributor

Note @p1gp1g said "server to server protocol"

So it is distributor independent. it just how web services talk to push servers. So that more services can make use of webpush. I can imagine that webpush may also make it possible to have pwa push notifications 🤔

@gavine99
Copy link
Author

it just how web services talk to push servers

sounds great

@p1gp1g
Copy link

p1gp1g commented Apr 3, 2025

@gavine99 I've sent you a message on matrix

@gavine99 gavine99 force-pushed the unified_push_nextcloud_notifications branch from 2d54efb to 875663c Compare June 6, 2025 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants