From a020bd6f2d696c47d2084d035a604e1440ceed31 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Sat, 2 Jul 2016 13:35:38 -0500 Subject: [PATCH] Added quest actions --- Habitica/AndroidManifest.xml | 2 ++ .../HabiticaFirebaseMessagingService.java | 2 +- .../notifications/PushNotificationManager.java | 2 +- .../QuestInviteLocalNotification.java | 4 ++-- .../receivers/LocalNotificationActionReceiver.java | 14 +++++++++++++- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index 15f767a52..4741a895f 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -127,6 +127,8 @@ + + diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.java index d5c4d7c4a..5a21f5e97 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.java @@ -12,7 +12,7 @@ public class HabiticaFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.d("test", "Notification Message Body: " + remoteMessage.getNotification().getBody()); - Log.d("test", "Notification Message Body: " + remoteMessage.getData().toString()); + Log.d("test", "Notification Message Body: " + remoteMessage.getData().get("identifier")); PushNotificationManager pushNotificationManager = PushNotificationManager.getInstance(this); pushNotificationManager.displayNotification(remoteMessage); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java index 70c0ae5fa..f84820933 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java @@ -29,7 +29,7 @@ public class PushNotificationManager { public static String RECEIVED_SUBSCRIPTION_GIFT_PUSH_NOTIFICATION_KEY = "Subscription"; public static String GUILD_INVITE_PUSH_NOTIFICATION_KEY = "Guild"; public static String QUEST_INVITE_PUSH_NOTIFICATION_KEY = "questInvitation"; - public static String QUEST_BEGUN_PUSH_NOTIFICATION_KEY = "Your Quest has Begun"; + public static String QUEST_BEGUN_PUSH_NOTIFICATION_KEY = "questStarted"; @Inject public APIHelper apiHelper; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/QuestInviteLocalNotification.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/QuestInviteLocalNotification.java index 1dbb43639..0273f38a7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/QuestInviteLocalNotification.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/QuestInviteLocalNotification.java @@ -40,12 +40,12 @@ public class QuestInviteLocalNotification implements HabiticaLocalNotification { ); notificationBuilder.addAction(R.drawable.ic_gryphon, "Accept", pendingIntentAccept); - Intent rejectInviteIntent = new Intent(); + Intent rejectInviteIntent = new Intent(context, LocalNotificationActionReceiver.class); rejectInviteIntent.setAction(res.getString(R.string.reject_quest_invite)); PendingIntent pendingIntentReject = PendingIntent.getBroadcast( context, 2000, - acceptInviteIntent, + rejectInviteIntent, PendingIntent.FLAG_UPDATE_CURRENT ); notificationBuilder.addAction(R.drawable.ic_gryphon, "Reject", pendingIntentReject); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.java b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.java index 04ea865af..d3305e265 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.java @@ -45,7 +45,7 @@ public class LocalNotificationActionReceiver extends BroadcastReceiver implement private void handleLocalNotificationAction(String action) { //@TODO: This is a good place for a factory and event emitter pattern - + Log.v("test", action); if (action.equals(this.resources.getString(R.string.accept_party_invite))) { if (this.user.getInvitations().getParty() == null) return; String partyId = this.user.getInvitations().getParty().getId(); @@ -58,6 +58,18 @@ public class LocalNotificationActionReceiver extends BroadcastReceiver implement apiHelper.apiService.rejectGroupInvite(partyId) .compose(apiHelper.configureApiCallObserver()) .subscribe(aVoid -> {}, throwable -> {}); + } else if (action.equals(this.resources.getString(R.string.accept_quest_invite))) { + if (this.user.getParty() == null) return; + String partyId = this.user.getParty().getId(); + apiHelper.apiService.acceptQuest(partyId) + .compose(apiHelper.configureApiCallObserver()) + .subscribe(aVoid -> {}, throwable -> {}); + } else if (action.equals(this.resources.getString(R.string.reject_quest_invite))) { + if (this.user.getParty() == null) return; + String partyId = this.user.getParty().getId(); + apiHelper.apiService.rejectQuest(partyId) + .compose(apiHelper.configureApiCallObserver()) + .subscribe(aVoid -> {}, throwable -> {}); } } }