From 14080458fbf2118f0f3a2815d0ee6c916397dcee Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 2 Feb 2020 10:43:17 +0100 Subject: [PATCH] Add push notifications for GNU + Friendica --- .../android/jobs/NotificationsSyncJob.java | 11 +++++++--- .../LiveNotificationDelayedService.java | 22 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java index 09b710a60..540982721 100644 --- a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java @@ -48,6 +48,7 @@ import app.fedilab.android.client.API; import app.fedilab.android.client.APIResponse; import app.fedilab.android.client.Entities.Account; import app.fedilab.android.client.Entities.Notification; +import app.fedilab.android.client.GNUAPI; import app.fedilab.android.fragments.DisplayNotificationsFragment; import app.fedilab.android.helper.Helper; import app.fedilab.android.sqlite.AccountDAO; @@ -139,11 +140,15 @@ public class NotificationsSyncJob extends Job { return; //Retrieve users in db that owner has. for (Account account : accounts) { - if (account.getSocial() == null || account.getSocial().equals("MASTODON") || account.getSocial().equals("PLEROMA")) { + APIResponse apiResponse; + if(account.getSocial().compareTo("FRIENDICA") != 0 && account.getSocial().compareTo("GNU") != 0 ) { API api = new API(getContext(), account.getInstance(), account.getToken()); - APIResponse apiResponse = api.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, null, false); - onRetrieveNotifications(apiResponse, account); + apiResponse = api.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, null, false); + }else{ + GNUAPI gnuApi = new GNUAPI(getContext(), account.getInstance(), account.getToken()); + apiResponse = gnuApi.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, null, false); } + onRetrieveNotifications(apiResponse, account); } } } diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java index eea2587c3..959f754e0 100644 --- a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java +++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java @@ -57,6 +57,7 @@ import app.fedilab.android.client.API; import app.fedilab.android.client.APIResponse; import app.fedilab.android.client.Entities.Account; import app.fedilab.android.client.Entities.Notification; +import app.fedilab.android.client.GNUAPI; import app.fedilab.android.fragments.DisplayNotificationsFragment; import app.fedilab.android.helper.Helper; import app.fedilab.android.sqlite.AccountDAO; @@ -103,11 +104,9 @@ public class LiveNotificationDelayedService extends Service { totalAccount = 0; if( accountStreams != null) { for (Account account : accountStreams) { - if (account.getSocial() == null || account.getSocial().equals("MASTODON") || account.getSocial().equals("PLEROMA") || account.getSocial().equals("PIXELFED")) { - boolean allowStream = sharedpreferences.getBoolean(Helper.SET_ALLOW_STREAM + account.getId() + account.getInstance(), true); - if (allowStream) { - totalAccount++; - } + boolean allowStream = sharedpreferences.getBoolean(Helper.SET_ALLOW_STREAM + account.getId() + account.getInstance(), true); + if (allowStream) { + totalAccount++; } } } @@ -240,15 +239,22 @@ public class LiveNotificationDelayedService extends Service { private void taks(Account account) { String key = account.getUsername() + "@" + account.getInstance(); APIResponse apiResponse; - API api; - api = new API(getApplicationContext(), account.getInstance(), account.getToken()); + String last_notifid = null; if (since_ids.containsKey(key)) { last_notifid = since_ids.get(key); } apiResponse = null; try { - apiResponse = api.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, last_notifid, false); + if(account.getSocial().compareTo("FRIENDICA") != 0 && account.getSocial().compareTo("GNU") != 0 ) { + API api; + api = new API(getApplicationContext(), account.getInstance(), account.getToken()); + apiResponse = api.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, last_notifid, false); + }else{ + GNUAPI gnuApi; + gnuApi = new GNUAPI(getApplicationContext(), account.getInstance(), account.getToken()); + apiResponse = gnuApi.getNotificationsSince(DisplayNotificationsFragment.Type.ALL, last_notifid, false); + } } catch (Exception ignored) { }