mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Merge branch 'database-refactor' into emoji-reacts
This commit is contained in:
commit
1c9d23eeb5
5 changed files with 51 additions and 41 deletions
|
@ -759,7 +759,7 @@
|
|||
FDC4381527B329CE00C60D73 /* NonceGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4381427B329CE00C60D73 /* NonceGenerator.swift */; };
|
||||
FDC4381727B32EC700C60D73 /* Personalization.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4381627B32EC700C60D73 /* Personalization.swift */; };
|
||||
FDC4382027B36ADC00C60D73 /* SOGSEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4381F27B36ADC00C60D73 /* SOGSEndpoint.swift */; };
|
||||
FDC4382F27B383AF00C60D73 /* UpdateRegistrationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4382E27B383AF00C60D73 /* UpdateRegistrationResponse.swift */; };
|
||||
FDC4382F27B383AF00C60D73 /* PushServerResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4382E27B383AF00C60D73 /* PushServerResponse.swift */; };
|
||||
FDC4383827B3863200C60D73 /* VersionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4383727B3863200C60D73 /* VersionResponse.swift */; };
|
||||
FDC4384F27B4804F00C60D73 /* Header.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4384E27B4804F00C60D73 /* Header.swift */; };
|
||||
FDC4385127B4807400C60D73 /* QueryParam.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDC4385027B4807400C60D73 /* QueryParam.swift */; };
|
||||
|
@ -1810,7 +1810,7 @@
|
|||
FDC4381427B329CE00C60D73 /* NonceGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonceGenerator.swift; sourceTree = "<group>"; };
|
||||
FDC4381627B32EC700C60D73 /* Personalization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Personalization.swift; sourceTree = "<group>"; };
|
||||
FDC4381F27B36ADC00C60D73 /* SOGSEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SOGSEndpoint.swift; sourceTree = "<group>"; };
|
||||
FDC4382E27B383AF00C60D73 /* UpdateRegistrationResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateRegistrationResponse.swift; sourceTree = "<group>"; };
|
||||
FDC4382E27B383AF00C60D73 /* PushServerResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushServerResponse.swift; sourceTree = "<group>"; };
|
||||
FDC4383727B3863200C60D73 /* VersionResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionResponse.swift; sourceTree = "<group>"; };
|
||||
FDC4383D27B4708600C60D73 /* Atomic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = "<group>"; };
|
||||
FDC4384E27B4804F00C60D73 /* Header.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Header.swift; sourceTree = "<group>"; };
|
||||
|
@ -3820,7 +3820,7 @@
|
|||
FDC4382D27B383A600C60D73 /* Models */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FDC4382E27B383AF00C60D73 /* UpdateRegistrationResponse.swift */,
|
||||
FDC4382E27B383AF00C60D73 /* PushServerResponse.swift */,
|
||||
);
|
||||
path = Models;
|
||||
sourceTree = "<group>";
|
||||
|
@ -5232,7 +5232,7 @@
|
|||
FD6A7A692818BE7300035AC1 /* RetrieveDefaultOpenGroupRoomsJob.swift in Sources */,
|
||||
FD09798D27FD1D8900936362 /* DisappearingMessageConfiguration.swift in Sources */,
|
||||
FDF0B75A2807F3A3004C14C5 /* MessageSenderError.swift in Sources */,
|
||||
FDC4382F27B383AF00C60D73 /* UpdateRegistrationResponse.swift in Sources */,
|
||||
FDC4382F27B383AF00C60D73 /* PushServerResponse.swift in Sources */,
|
||||
FDC4386327B4D94E00C60D73 /* SOGSMessage.swift in Sources */,
|
||||
FD245C692850666800B966DD /* ExpirationTimerUpdate.swift in Sources */,
|
||||
FD42F9A8285064B800A0C77D /* PushNotificationAPI.swift in Sources */,
|
||||
|
@ -6897,7 +6897,7 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 361;
|
||||
CURRENT_PROJECT_VERSION = 363;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -6969,7 +6969,7 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 361;
|
||||
CURRENT_PROJECT_VERSION = 363;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
|
@ -159,13 +159,11 @@ public class MediaView: UIView {
|
|||
loadBlock = { [weak self] in
|
||||
AssertIsOnMainThread()
|
||||
|
||||
guard let strongSelf = self else { return }
|
||||
|
||||
if animatedImageView.image != nil {
|
||||
owsFailDebug("Unexpectedly already loaded.")
|
||||
return
|
||||
}
|
||||
strongSelf.tryToLoadMedia(
|
||||
self?.tryToLoadMedia(
|
||||
loadMediaBlock: { applyMediaBlock in
|
||||
guard attachment.isValid else {
|
||||
self?.configure(forError: .invalid)
|
||||
|
@ -328,6 +326,16 @@ public class MediaView: UIView {
|
|||
}
|
||||
|
||||
private func configure(forError error: MediaError) {
|
||||
// When there is a failure in the 'loadMediaBlock' closure this can be called
|
||||
// on a background thread - rather than dispatching in every 'loadMediaBlock'
|
||||
// usage we just do so here
|
||||
guard Thread.isMainThread else {
|
||||
DispatchQueue.main.async {
|
||||
self.configure(forError: error)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
let icon: UIImage
|
||||
|
||||
switch error {
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension PushNotificationAPI {
|
||||
struct PushServerResponse: Codable {
|
||||
let code: Int
|
||||
let message: String?
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension PushNotificationAPI {
|
||||
struct UpdateRegistrationResponse: Codable {
|
||||
struct Body: Codable {
|
||||
let code: Int
|
||||
let message: String?
|
||||
}
|
||||
|
||||
let status: Int
|
||||
let body: Body
|
||||
}
|
||||
}
|
|
@ -65,13 +65,13 @@ public final class PushNotificationAPI : NSObject {
|
|||
request.httpBody = body
|
||||
|
||||
let promise: Promise<Void> = attempt(maxRetryCount: maxRetryCount, recoveringOn: DispatchQueue.global()) {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
||||
.map2 { _, response in
|
||||
guard let response: UpdateRegistrationResponse = try? response?.decoded(as: UpdateRegistrationResponse.self) else {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, with: serverPublicKey)
|
||||
.map2 { _, data in
|
||||
guard let response: PushServerResponse = try? data?.decoded(as: PushServerResponse.self) else {
|
||||
return SNLog("Couldn't unregister from push notifications.")
|
||||
}
|
||||
guard response.body.code != 0 else {
|
||||
return SNLog("Couldn't unregister from push notifications due to error: \(response.body.message ?? "nil").")
|
||||
guard response.code != 0 else {
|
||||
return SNLog("Couldn't unregister from push notifications due to error: \(response.message ?? "nil").")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -127,13 +127,13 @@ public final class PushNotificationAPI : NSObject {
|
|||
|
||||
promises.append(
|
||||
attempt(maxRetryCount: maxRetryCount, recoveringOn: DispatchQueue.global()) {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, with: serverPublicKey)
|
||||
.map2 { _, data -> Void in
|
||||
guard let response: UpdateRegistrationResponse = try? data?.decoded(as: UpdateRegistrationResponse.self) else {
|
||||
guard let response: PushServerResponse = try? data?.decoded(as: PushServerResponse.self) else {
|
||||
return SNLog("Couldn't register device token.")
|
||||
}
|
||||
guard response.body.code != 0 else {
|
||||
return SNLog("Couldn't register device token due to error: \(response.body.message ?? "nil").")
|
||||
guard response.code != 0 else {
|
||||
return SNLog("Couldn't register device token due to error: \(response.message ?? "nil").")
|
||||
}
|
||||
|
||||
userDefaults[.deviceToken] = hexEncodedToken
|
||||
|
@ -193,13 +193,13 @@ public final class PushNotificationAPI : NSObject {
|
|||
request.httpBody = body
|
||||
|
||||
let promise: Promise<Void> = attempt(maxRetryCount: maxRetryCount, recoveringOn: DispatchQueue.global()) {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
||||
.map2 { _, response in
|
||||
guard let response: UpdateRegistrationResponse = try? response?.decoded(as: UpdateRegistrationResponse.self) else {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, with: serverPublicKey)
|
||||
.map2 { _, data in
|
||||
guard let response: PushServerResponse = try? data?.decoded(as: PushServerResponse.self) else {
|
||||
return SNLog("Couldn't subscribe/unsubscribe for closed group: \(closedGroupPublicKey).")
|
||||
}
|
||||
guard response.body.code != 0 else {
|
||||
return SNLog("Couldn't subscribe/unsubscribe for closed group: \(closedGroupPublicKey) due to error: \(response.body.message ?? "nil").")
|
||||
guard response.code != 0 else {
|
||||
return SNLog("Couldn't subscribe/unsubscribe for closed group: \(closedGroupPublicKey) due to error: \(response.message ?? "nil").")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -236,8 +236,15 @@ public final class PushNotificationAPI : NSObject {
|
|||
|
||||
let retryCount: UInt = (maxRetryCount ?? PushNotificationAPI.maxRetryCount)
|
||||
let promise: Promise<Void> = attempt(maxRetryCount: retryCount, recoveringOn: queue) {
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, using: .v2, with: serverPublicKey)
|
||||
.map { _ in }
|
||||
OnionRequestAPI.sendOnionRequest(request, to: server, with: serverPublicKey)
|
||||
.map2 { _, data in
|
||||
guard let response: PushServerResponse = try? data?.decoded(as: PushServerResponse.self) else {
|
||||
return SNLog("Couldn't send push notification.")
|
||||
}
|
||||
guard response.code != 0 else {
|
||||
return SNLog("Couldn't send push notification due to error: \(response.message ?? "nil").")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return promise
|
||||
|
|
Loading…
Reference in a new issue