diff --git a/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java b/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java index 7e2b452ed..dcad18895 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java +++ b/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java @@ -39,7 +39,7 @@ public class UnifiedPushNotificationReceiver extends MessagingReceiver{ if (account != null) { PublicKeySet ks = endpoint.getPubKeySet(); if (ks != null){ - account.getPushSubscriptionManager().registerAccountForPush(null, endpoint.getUrl(), ks.getPubKey(), ks.getAuth()); + account.getPushSubscriptionManager().registerAccountForPush(null, true, endpoint.getUrl(), ks.getPubKey(), ks.getAuth()); } else { // ks should never be null on new endpoint account.getPushSubscriptionManager().registerAccountForPush(null, endpoint.getUrl()); diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java index 0e757910b..d913f6f72 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java @@ -166,17 +166,21 @@ public class PushSubscriptionManager{ //work-around for adding the randomAccountId String newEndpoint = endpoint; - if (endpoint.startsWith("https://app.joinmastodon.org/relay-to/fcm/")) - newEndpoint += pushAccountID; + Boolean standard = true; + if (endpoint.startsWith("https://app.joinmastodon.org/relay-to/fcm/")){ + newEndpoint+=pushAccountID; + standard = false; + } - registerAccountForPush(subscription, newEndpoint, encodedPublicKey, encodedAuthKey); + registerAccountForPush(subscription, standard, newEndpoint, encodedPublicKey, encodedAuthKey); }); } - public void registerAccountForPush(PushSubscription subscription, String endpoint, String p256dh, String auth){ + public void registerAccountForPush(PushSubscription subscription, Boolean standard, String endpoint, String p256dh, String auth){ MastodonAPIController.runInBackground(()->{ Log.d(TAG, "registerAccountForPush: started for "+accountID); new RegisterForPushNotifications(endpoint, + standard, p256dh, auth, subscription==null ? PushSubscription.Alerts.ofAll() : subscription.alerts, diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/RegisterForPushNotifications.java b/mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/RegisterForPushNotifications.java index 18bd02884..ae29298eb 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/RegisterForPushNotifications.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/RegisterForPushNotifications.java @@ -4,10 +4,11 @@ import org.joinmastodon.android.api.MastodonAPIRequest; import org.joinmastodon.android.model.PushSubscription; public class RegisterForPushNotifications extends MastodonAPIRequest{ - public RegisterForPushNotifications(String endpoint, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy){ + public RegisterForPushNotifications(String endpoint, Boolean standard, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy){ super(HttpMethod.POST, "/push/subscription", PushSubscription.class); Request r=new Request(); r.subscription.endpoint=endpoint; + r.subscription.standard = standard; r.data.alerts=alerts; r.policy=policy; r.subscription.keys.p256dh=encryptionKey; @@ -28,7 +29,7 @@ public class RegisterForPushNotifications extends MastodonAPIRequest