fix notification preview type nested transaction crash
This commit is contained in:
parent
bd73f14915
commit
b7c6eafa87
|
@ -181,6 +181,7 @@ public class NotificationPresenter: NSObject, NotificationsProtocol {
|
||||||
let senderName = Storage.shared.getContact(with: incomingMessage.authorId, using: transaction)?.displayName(for: context) ?? incomingMessage.authorId
|
let senderName = Storage.shared.getContact(with: incomingMessage.authorId, using: transaction)?.displayName(for: context) ?? incomingMessage.authorId
|
||||||
|
|
||||||
let notificationTitle: String?
|
let notificationTitle: String?
|
||||||
|
let previewType = preferences.notificationPreviewType(with: transaction)
|
||||||
switch previewType {
|
switch previewType {
|
||||||
case .noNameNoPreview:
|
case .noNameNoPreview:
|
||||||
notificationTitle = nil
|
notificationTitle = nil
|
||||||
|
|
|
@ -25,8 +25,8 @@ extension Storage {
|
||||||
|
|
||||||
@objc(setContact:usingTransaction:)
|
@objc(setContact:usingTransaction:)
|
||||||
public func setContact(_ contact: Contact, using transaction: Any) {
|
public func setContact(_ contact: Contact, using transaction: Any) {
|
||||||
let oldContact = getContact(with: contact.sessionID)
|
|
||||||
let transaction = transaction as! YapDatabaseReadWriteTransaction
|
let transaction = transaction as! YapDatabaseReadWriteTransaction
|
||||||
|
let oldContact = getContact(with: contact.sessionID, using: transaction)
|
||||||
if contact.sessionID == getUserHexEncodedPublicKey() {
|
if contact.sessionID == getUserHexEncodedPublicKey() {
|
||||||
contact.isTrusted = true // Always trust ourselves
|
contact.isTrusted = true // Always trust ourselves
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <SessionMessagingKit/SSKEnvironment.h>
|
||||||
|
#import <SessionMessagingKit/YapDatabaseConnection+OWS.h>
|
||||||
|
#import <SessionMessagingKit/YapDatabaseTransaction+OWS.h>
|
||||||
|
#import <SessionUtilitiesKit/SessionUtilitiesKit.h>
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@ -47,6 +51,7 @@ extern NSString *const OWSPreferencesCallLoggingDidChangeNotification;
|
||||||
- (void)setScreenSecurity:(BOOL)flag;
|
- (void)setScreenSecurity:(BOOL)flag;
|
||||||
|
|
||||||
- (NotificationType)notificationPreviewType;
|
- (NotificationType)notificationPreviewType;
|
||||||
|
- (NotificationType)notificationPreviewTypeWithTransaction:(YapDatabaseReadTransaction *)transaction;
|
||||||
- (void)setNotificationPreviewType:(NotificationType)type;
|
- (void)setNotificationPreviewType:(NotificationType)type;
|
||||||
- (NSString *)nameForNotificationPreviewType:(NotificationType)notificationType;
|
- (NSString *)nameForNotificationPreviewType:(NotificationType)notificationType;
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "OWSPreferences.h"
|
#import "OWSPreferences.h"
|
||||||
#import <SessionMessagingKit/SSKEnvironment.h>
|
|
||||||
#import <SessionMessagingKit/YapDatabaseConnection+OWS.h>
|
|
||||||
#import <SessionMessagingKit/YapDatabaseTransaction+OWS.h>
|
|
||||||
#import <SessionUtilitiesKit/SessionUtilitiesKit.h>
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@ -384,6 +380,17 @@ NSString *const OWSPreferencesKeySystemCallLogEnabled = @"OWSPreferencesKeySyste
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NotificationType)notificationPreviewTypeWithTransaction:(YapDatabaseReadTransaction *)transaction
|
||||||
|
{
|
||||||
|
NSNumber *preference = [self tryGetValueForKey:OWSPreferencesKeyNotificationPreviewType transaction:transaction];
|
||||||
|
|
||||||
|
if (preference) {
|
||||||
|
return [preference unsignedIntegerValue];
|
||||||
|
} else {
|
||||||
|
return NotificationNamePreview;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (NSString *)nameForNotificationPreviewType:(NotificationType)notificationType
|
- (NSString *)nameForNotificationPreviewType:(NotificationType)notificationType
|
||||||
{
|
{
|
||||||
switch (notificationType) {
|
switch (notificationType) {
|
||||||
|
|
Loading…
Reference in New Issue