From b81a453b696e877112ac62ad7944e74e9299cfb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6ttger?= Date: Fri, 4 Apr 2025 20:35:42 +0200 Subject: [PATCH] Keep only one endpoint id --- NearbyShare/Helpers.swift | 1 + NearbyShare/NearbyConnectionManager.swift | 30 +++++++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/NearbyShare/Helpers.swift b/NearbyShare/Helpers.swift index b5b2d9d..9c24fbb 100644 --- a/NearbyShare/Helpers.swift +++ b/NearbyShare/Helpers.swift @@ -18,4 +18,5 @@ public enum UserDefaultsKeys: String, CaseIterable { case transmissionCount = "reviewRequestCountKey" case automaticallyAcceptFiles = "automaticallyAcceptFiles" case saveFolderBookmark = "saveFolderBookmark" + case endpointID = "endpointID" } diff --git a/NearbyShare/NearbyConnectionManager.swift b/NearbyShare/NearbyConnectionManager.swift index 22262f0..dcf6f03 100644 --- a/NearbyShare/NearbyConnectionManager.swift +++ b/NearbyShare/NearbyConnectionManager.swift @@ -189,14 +189,28 @@ public class NearbyConnectionManager : NSObject, NetServiceDelegate, InboundNear tcpListener.start(queue: .global(qos: .utility)) } - private static func generateEndpointID()->[UInt8]{ - var id:[UInt8]=[] - let alphabet="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".compactMap {UInt8($0.asciiValue!)} - for _ in 0...3{ - id.append(alphabet[Int.random(in: 0.. [UInt8] { + let userDefaultsKey = UserDefaultsKeys.endpointID.rawValue + + // Try to retrieve from UserDefaults + if let savedString = UserDefaults.standard.string(forKey: userDefaultsKey), + let savedData = savedString.data(using: .utf8) { + return [UInt8](savedData) + } + + // Generate a new random ID + var id: [UInt8] = [] + let alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".compactMap { UInt8($0.asciiValue!) } + for _ in 0..<4 { // use 0..<4 instead of 0...3 for clarity + id.append(alphabet[Int.random(in: 0..