mirror of
https://github.com/bitwarden/mobile
synced 2026-01-06 02:23:57 +00:00
[SG-703] Login request is not removed after dismissing push notification (#2125)
* [SG-703] Handle iOS dismiss notification action. Added core logic to remove passwordless notification from local storage. * [SG-702] Added broadcast receiver to catch dismiss notfication events on android. * [SG-703] PR fixes. * [SG-703] Fix constants namespaces. Lazyloading services on broadcast receiver. * [SG-703] Change services to use lazy loading * [SG-703] Change lazy loading to be parameterless.
This commit is contained in:
@@ -96,23 +96,35 @@ namespace Bit.iOS.Services
|
||||
public void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler)
|
||||
{
|
||||
Debug.WriteLine($"{TAG} DidReceiveNotificationResponse {response?.Notification?.Request?.Content?.UserInfo}");
|
||||
|
||||
if (response.IsDefaultAction && response?.Notification?.Request?.Content?.UserInfo != null)
|
||||
if ((response?.Notification?.Request?.Content?.UserInfo) == null)
|
||||
{
|
||||
var userInfo = response?.Notification?.Request?.Content?.UserInfo;
|
||||
OnMessageReceived(userInfo);
|
||||
completionHandler();
|
||||
return;
|
||||
}
|
||||
|
||||
if (userInfo.TryGetValue(NSString.FromObject(Constants.NotificationData), out NSObject nsObject))
|
||||
var userInfo = response?.Notification?.Request?.Content?.UserInfo;
|
||||
OnMessageReceived(userInfo);
|
||||
|
||||
if (userInfo.TryGetValue(NSString.FromObject(Constants.NotificationData), out NSObject nsObject))
|
||||
{
|
||||
var token = JToken.Parse(NSString.FromObject(nsObject).ToString());
|
||||
var typeToken = token.SelectToken(Constants.NotificationDataType);
|
||||
if (response.IsDefaultAction)
|
||||
{
|
||||
var token = JToken.Parse(NSString.FromObject(nsObject).ToString());
|
||||
var typeToken = token.SelectToken(Constants.NotificationDataType);
|
||||
if (typeToken.ToString() == PasswordlessNotificationData.TYPE)
|
||||
{
|
||||
_pushNotificationListenerService.OnNotificationTapped(token.ToObject<PasswordlessNotificationData>());
|
||||
}
|
||||
}
|
||||
else if (response.IsDismissAction)
|
||||
{
|
||||
if (typeToken.ToString() == PasswordlessNotificationData.TYPE)
|
||||
{
|
||||
_pushNotificationListenerService.OnNotificationDismissed(token.ToObject<PasswordlessNotificationData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Inform caller it has been handled
|
||||
completionHandler();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user