diff --git a/HabitRPG/AppDelegate+Notifications.swift b/HabitRPG/AppDelegate+Notifications.swift
index c3a9fba9..604d2ae7 100644
--- a/HabitRPG/AppDelegate+Notifications.swift
+++ b/HabitRPG/AppDelegate+Notifications.swift
@@ -9,6 +9,7 @@
import UIKit
import UserNotifications
import Habitica_Models
+import FirebaseMessaging
extension HabiticaAppDelegate: UNUserNotificationCenterDelegate {
@@ -47,6 +48,8 @@ extension HabiticaAppDelegate: UNUserNotificationCenterDelegate {
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
+ let userInfo = response.notification.request.content.userInfo
+ Messaging.messaging().appDidReceiveMessage(userInfo)
switch response.actionIdentifier {
case "acceptAction":
acceptQuestInvitation { _ in
@@ -100,6 +103,8 @@ extension HabiticaAppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
+ let userInfo = notification.request.content.userInfo
+ Messaging.messaging().appDidReceiveMessage(userInfo)
if let taskID = notification.request.content.userInfo["taskID"] as? String {
let alert = HabiticaAlertController(title: notification.request.content.title, message: notification.request.content.body)
alert.addAction(title: L10n.complete, isMainAction: true) {[weak self] _ in
@@ -112,10 +117,12 @@ extension HabiticaAppDelegate: UNUserNotificationCenterDelegate {
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
+ Messaging.messaging().apnsToken = deviceToken
saveDeviceToken(deviceToken)
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
+ Messaging.messaging().appDidReceiveMessage(userInfo)
displayNotificationInApp(title: userInfo["title"] as? String ?? "", text: userInfo["body"] as? String ?? "")
completionHandler(.newData)
}
diff --git a/HabitRPG/AppDelegate.swift b/HabitRPG/AppDelegate.swift
index 7f7dbe4b..38db7f88 100644
--- a/HabitRPG/AppDelegate.swift
+++ b/HabitRPG/AppDelegate.swift
@@ -126,7 +126,9 @@ class HabiticaAppDelegate: UIResponder, MessagingDelegate, UIApplicationDelegate
}
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
-
+ if let token = fcmToken {
+ print("Received FCM Token: \(token)")
+ }
}
func saveDeviceToken(_ deviceToken: Data) {
diff --git a/HabitRPG/Extensions/Down-Extensions.swift b/HabitRPG/Extensions/Down-Extensions.swift
index 5bb88747..978e721d 100644
--- a/HabitRPG/Extensions/Down-Extensions.swift
+++ b/HabitRPG/Extensions/Down-Extensions.swift
@@ -83,8 +83,8 @@ extension Down {
}
applyCustomEmoji(string, size: baseSize)
replaceIn(string: string, characters: "
", with: "\n")
- replaceIn(string: string, characters: " ", with: " ")
- replaceIn(string: string, characters: " ", with: " ")
+ replaceIn(string: string, characters: " ", with: " ")
+ replaceIn(string: string, characters: " ", with: " ")
replaceIn(string: string, characters: " ", with: " ")
var range = string.mutableString.range(of: "")
diff --git a/HabitRPG/Habitica-Info.plist b/HabitRPG/Habitica-Info.plist
index 1f355953..ffbcd253 100644
--- a/HabitRPG/Habitica-Info.plist
+++ b/HabitRPG/Habitica-Info.plist
@@ -44,6 +44,8 @@
${CUSTOM_DOMAIN}
DisableSSL
${DISABLE_SSL}
+ FirebaseAppDelegateProxyEnabled
+
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
diff --git a/HabitRPG/TableViewDataSources/EquipmentViewDataSource.swift b/HabitRPG/TableViewDataSources/EquipmentViewDataSource.swift
index d4881dee..ea17c94d 100644
--- a/HabitRPG/TableViewDataSources/EquipmentViewDataSource.swift
+++ b/HabitRPG/TableViewDataSources/EquipmentViewDataSource.swift
@@ -33,9 +33,9 @@ class EquipmentViewDataSource: BaseReactiveTableViewDataSource {
var predicateString = ""
for (index, word) in search.split(separator: " ").enumerated() {
if index != 0 {
- predicateString.append(" || ")
+ predicateString.append(" && ")
}
- predicateString.append("text CONTAINS[cd] \"\(word)\" || notes CONTAINS[cd] \"\(word)\"")
+ predicateString.append("(text CONTAINS[cd] \"\(word)\" || notes CONTAINS[cd] \"\(word)\")")
}
predicate = NSPredicate(format: "key IN %@ && type == %@ && (\(predicateString))", keys, gearType)