mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Fix timeSinceLastOpen usage
This commit is contained in:
parent
0d6ce4a14b
commit
601062c9ef
3 changed files with 13 additions and 15 deletions
|
@ -4,18 +4,17 @@ import SessionSnodeKit
|
|||
@objc(SNOpenGroupAPIV2)
|
||||
public final class OpenGroupAPIV2 : NSObject {
|
||||
private static var authTokenPromises: [String:Promise<String>] = [:]
|
||||
private static var hasPerformedInitialPoll: [String:Bool] = [:]
|
||||
private static var hasUpdatedLastOpenDate = false
|
||||
public static let workQueue = DispatchQueue(label: "OpenGroupAPIV2.workQueue", qos: .userInitiated) // It's important that this is a serial queue
|
||||
public static var moderators: [String:[String:Set<String>]] = [:] // Server URL to room ID to set of moderator IDs
|
||||
public static var defaultRoomsPromise: Promise<[Info]>?
|
||||
public static var groupImagePromises: [String:Promise<Data>] = [:]
|
||||
|
||||
private static var hasPerformedInitialPoll: [String:Bool] = [:]
|
||||
private static var hasUpdatedLastOpenDate = false
|
||||
|
||||
static var timeSinceLastOpen:Double = {
|
||||
let lastOpenDate = UserDefaults.standard[.lastOpenDate]
|
||||
let now = Double(NSDate.millisecondTimestamp())
|
||||
return now - lastOpenDate
|
||||
private static let timeSinceLastOpen: TimeInterval = {
|
||||
guard let lastOpen = UserDefaults.standard[.lastOpen] else { return .greatestFiniteMagnitude }
|
||||
let now = Date()
|
||||
return now.timeIntervalSince(lastOpen)
|
||||
}()
|
||||
|
||||
// MARK: Settings
|
||||
|
@ -153,21 +152,20 @@ public final class OpenGroupAPIV2 : NSObject {
|
|||
let rooms = storage.getAllV2OpenGroups().values.filter { $0.server == server }.map { $0.room }
|
||||
var body: [JSON] = []
|
||||
var authTokenPromises: [String:Promise<String>] = [:]
|
||||
let timeSinceLastOpen = self.timeSinceLastOpen
|
||||
let useMessageLimit = (!(hasPerformedInitialPoll[server] ?? false) && timeSinceLastOpen > OpenGroupPollerV2.maxInactivityPeriod)
|
||||
let useMessageLimit = (hasPerformedInitialPoll[server] != true && timeSinceLastOpen > OpenGroupPollerV2.maxInactivityPeriod)
|
||||
hasPerformedInitialPoll[server] = true
|
||||
if(!hasUpdatedLastOpenDate) {
|
||||
UserDefaults.standard[.lastOpenDate] = Double(NSDate.millisecondTimestamp())
|
||||
if !hasUpdatedLastOpenDate {
|
||||
UserDefaults.standard[.lastOpen] = Date()
|
||||
hasUpdatedLastOpenDate = true
|
||||
}
|
||||
for room in rooms {
|
||||
authTokenPromises[room] = getAuthToken(for: room, on: server)
|
||||
var json: JSON = [ "room_id" : room ]
|
||||
if let lastMessageServerID = storage.getLastMessageServerID(for: room, on: server) {
|
||||
json["from_message_server_id"] = (useMessageLimit) ? nil : lastMessageServerID
|
||||
json["from_message_server_id"] = useMessageLimit ? nil : lastMessageServerID
|
||||
}
|
||||
if let lastDeletionServerID = storage.getLastDeletionServerID(for: room, on: server) {
|
||||
json["from_deletion_server_id"] = (useMessageLimit) ? nil : lastDeletionServerID
|
||||
json["from_deletion_server_id"] = useMessageLimit ? nil : lastDeletionServerID
|
||||
}
|
||||
body.append(json)
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ public final class OpenGroupPollerV2 : NSObject {
|
|||
|
||||
// MARK: Settings
|
||||
private let pollInterval: TimeInterval = 4
|
||||
static let maxInactivityPeriod: Double = 14 * 24 * 60 * 60 * 1000
|
||||
static let maxInactivityPeriod: Double = 14 * 24 * 60 * 60
|
||||
|
||||
// MARK: Lifecycle
|
||||
public init(for server: String) {
|
||||
|
|
|
@ -14,11 +14,11 @@ public enum SNUserDefaults {
|
|||
case lastDisplayNameUpdate
|
||||
case lastProfilePictureUpdate
|
||||
case lastOpenGroupImageUpdate
|
||||
case lastOpen
|
||||
}
|
||||
|
||||
public enum Double : Swift.String {
|
||||
case lastDeviceTokenUpload = "lastDeviceTokenUploadTime"
|
||||
case lastOpenDate
|
||||
}
|
||||
|
||||
public enum Int : Swift.String {
|
||||
|
|
Loading…
Reference in a new issue