Skip to content

Commit 364f225

Browse files
committed
Handling of old profiles with . in the name
1 parent 3484524 commit 364f225

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

2002/dev_2002.patch

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,10 @@ index 8354209..f061a30 100644
177177
B41A60AF23D1DB5B00636320 /* TableViewTitleLabel.swift in Sources */,
178178
diff --git a/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift b/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift
179179
new file mode 100644
180-
index 0000000..56dc952
180+
index 0000000..6d9e370
181181
--- /dev/null
182182
+++ b/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift
183-
@@ -0,0 +1,400 @@
183+
@@ -0,0 +1,402 @@
184184
+//
185185
+// ProfileViewModel+FileManagement.swift
186186
+// LoopKitUI
@@ -229,8 +229,9 @@ index 0000000..56dc952
229229
+// MARK: File management
230230
+extension ProfileViewModel {
231231
+ private func setCurrentProfile(name: String, syncChange: Bool = false) {
232-
+ currentProfileName = name
233-
+ if (syncChange) {
232+
+ let sanitizedProfileName = sanitizeProfileName(name)
233+
+ currentProfileName = sanitizedProfileName
234+
+ if syncChange {
234235
+ triggerProfileSync()
235236
+ }
236237
+ }
@@ -277,7 +278,7 @@ index 0000000..56dc952
277278
+ public func sanitizeProfileName(_ name: String) -> String {
278279
+ // Replace problematic characters
279280
+ var sanitized = name.replacingOccurrences(of: ".", with: "_")
280-
+
281+
+
281282
+ return sanitized
282283
+ }
283284
+
@@ -322,15 +323,15 @@ index 0000000..56dc952
322323
+ if currentProfileName == oldName {
323324
+ setCurrentProfile(name: sanitizedProfileName, syncChange: true)
324325
+ }
325-
+
326+
+
326327
+ do {
327328
+ guard let profileReference = getProfileReference(withName: oldName) else {
328329
+ print("Profile with old name not found.")
329330
+ return
330331
+ }
331-
+
332+
+
332333
+ let profile = try getProfile(from: profileReference)
333-
+
334+
+
334335
+ let newProfile = Profile(
335336
+ name: sanitizedProfileName,
336337
+ correctionRange: profile.correctionRange,
@@ -339,16 +340,16 @@ index 0000000..56dc952
339340
+ insulinSensitivitySchedule: profile.insulinSensitivitySchedule,
340341
+ sortOrder: profile.sortOrder
341342
+ )
342-
+
343+
+
343344
+ if let existingProfile = getProfileReference(withName: sanitizedProfileName) {
344345
+ removeProfile(profileReference: existingProfile)
345346
+ }
346-
+
347+
+
347348
+ let jsonData = try encodeProfile(newProfile)
348349
+ let fileURL = profilesDirectory.appendingPathComponent(profileReference.fileName)
349-
+
350+
+
350351
+ try jsonData.write(to: fileURL)
351-
+
352+
+
352353
+ self.loadProfiles()
353354
+ } catch {
354355
+ print("An error occurred while renaming profile: \(error)")
@@ -387,7 +388,7 @@ index 0000000..56dc952
387388
+ for fileURL in profileFiles {
388389
+ let data = try Data(contentsOf: fileURL)
389390
+ let profile = try decodeProfile(from: data)
390-
+ let profileRef = ProfileReference(name: profile.name, fileName: fileURL.lastPathComponent, sortOrder: profile.sortOrder)
391+
+ let profileRef = ProfileReference(name: sanitizeProfileName(profile.name), fileName: fileURL.lastPathComponent, sortOrder: profile.sortOrder)
391392
+ newProfiles.append(profileRef)
392393
+ }
393394
+
@@ -433,7 +434,8 @@ index 0000000..56dc952
433434
+ }
434435
+
435436
+ func getProfileReference(withName name: String) -> ProfileReference? {
436-
+ return profiles.first(where: { $0.name == name })
437+
+ let sanitizedInputName = sanitizeProfileName(name)
438+
+ return profiles.first(where: { sanitizeProfileName($0.name) == sanitizedInputName })
437439
+ }
438440
+
439441
+ public func removeProfile(profile: Profile) {

2002/main_2002.patch

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,10 @@ index 6b13fc8..c6bcc64 100644
184184
B41A60AF23D1DB5B00636320 /* TableViewTitleLabel.swift in Sources */,
185185
diff --git a/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift b/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift
186186
new file mode 100644
187-
index 0000000..a7b2571
187+
index 0000000..c18c25f
188188
--- /dev/null
189189
+++ b/LoopKit/LoopKitUI/ViewModels/ProfileViewModel+FileManagement.swift
190-
@@ -0,0 +1,400 @@
190+
@@ -0,0 +1,402 @@
191191
+//
192192
+// ProfileViewModel+FileManagement.swift
193193
+// LoopKitUI
@@ -236,8 +236,9 @@ index 0000000..a7b2571
236236
+// MARK: File management
237237
+extension ProfileViewModel {
238238
+ private func setCurrentProfile(name: String, syncChange: Bool = false) {
239-
+ currentProfileName = name
240-
+ if (syncChange) {
239+
+ let sanitizedProfileName = sanitizeProfileName(name)
240+
+ currentProfileName = sanitizedProfileName
241+
+ if syncChange {
241242
+ triggerProfileSync()
242243
+ }
243244
+ }
@@ -394,7 +395,7 @@ index 0000000..a7b2571
394395
+ for fileURL in profileFiles {
395396
+ let data = try Data(contentsOf: fileURL)
396397
+ let profile = try decodeProfile(from: data)
397-
+ let profileRef = ProfileReference(name: profile.name, fileName: fileURL.lastPathComponent, sortOrder: profile.sortOrder)
398+
+ let profileRef = ProfileReference(name: sanitizeProfileName(profile.name), fileName: fileURL.lastPathComponent, sortOrder: profile.sortOrder)
398399
+ newProfiles.append(profileRef)
399400
+ }
400401
+
@@ -440,7 +441,8 @@ index 0000000..a7b2571
440441
+ }
441442
+
442443
+ func getProfileReference(withName name: String) -> ProfileReference? {
443-
+ return profiles.first(where: { $0.name == name })
444+
+ let sanitizedInputName = sanitizeProfileName(name)
445+
+ return profiles.first(where: { sanitizeProfileName($0.name) == sanitizedInputName })
444446
+ }
445447
+
446448
+ public func removeProfile(profile: Profile) {

0 commit comments

Comments
 (0)