Skip to content

Commit 5dfc618

Browse files
APPLE: fix no active plan text when acc summary is not available yet (#4999)
1 parent ccf2481 commit 5dfc618

3 files changed

Lines changed: 37 additions & 14 deletions

File tree

nym-vpn-apple/NymVPN/Resources/Localizable.xcstrings

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24044,6 +24044,17 @@
2404424044
}
2404524045
}
2404624046
},
24047+
"requestingZkNyms" : {
24048+
"extractionState" : "manual",
24049+
"localizations" : {
24050+
"en" : {
24051+
"stringUnit" : {
24052+
"state" : "translated",
24053+
"value" : "Requesting ZkNyms..."
24054+
}
24055+
}
24056+
}
24057+
},
2404724058
"noActivePlan" : {
2404824059
"extractionState" : "manual",
2404924060
"localizations" : {

nym-vpn-apple/Services/Sources/Services/CredentialsManager/CredentialsManager.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ import PathManager
233233
isUpdatingAccountSummary = true
234234
defer { isUpdatingAccountSummary = false }
235235

236-
let delays: [Duration] = [.zero, .seconds(1), .seconds(3), .seconds(9)]
236+
let delays: [Duration] = [.zero, .seconds(2), .seconds(6), .seconds(8), .seconds(10)]
237237
for delay in delays {
238238
if delay != .zero {
239239
try? await Task.sleep(for: delay)

nym-vpn-apple/Settings/Sources/Settings/SettingsViewModel.swift

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,15 @@ private extension SettingsViewModel {
240240
}
241241
}
242242
.store(in: &cancellables)
243+
244+
credentialsManager.$accountSummary
245+
.receive(on: DispatchQueue.main)
246+
.sink { [weak self] _ in
247+
MainActor.assumeIsolated {
248+
self?.reloadSections()
249+
}
250+
}
251+
.store(in: &cancellables)
243252
}
244253

245254
/// Configures sections, to reload all the content - use reloadSections
@@ -291,22 +300,25 @@ private extension SettingsViewModel {
291300
private extension SettingsViewModel {
292301
func accountSection() -> AppSettingsSection {
293302
let subtitle: AttributedString
294-
if let accountSummary = credentialsManager.accountSummary,
295-
let planText = accountSummary.planValidUntilAttributedString {
296-
if accountSummary.isActive,
297-
isAutoRenewEnabled(accountSummary: accountSummary),
298-
!accountSummary.isExpiringSoon,
299-
!accountSummary.isExpiringWarning {
300-
var second = AttributedString("* \("autoRenews".localizedString)")
301-
second.foregroundColor = NymColor.gray1
302-
subtitle = planText + AttributedString("\n") + second
303+
if let accountSummary = credentialsManager.accountSummary {
304+
if let planText = accountSummary.planValidUntilAttributedString {
305+
if accountSummary.isActive,
306+
isAutoRenewEnabled(accountSummary: accountSummary),
307+
!accountSummary.isExpiringSoon,
308+
!accountSummary.isExpiringWarning {
309+
var second = AttributedString("* \("autoRenews".localizedString)")
310+
second.foregroundColor = NymColor.gray1
311+
subtitle = planText + AttributedString("\n") + second
312+
} else {
313+
subtitle = planText
314+
}
303315
} else {
304-
subtitle = planText
316+
var first = AttributedString("noActivePlan".localizedString)
317+
first.foregroundColor = NymColor.error
318+
subtitle = first
305319
}
306320
} else {
307-
var first = AttributedString("noActivePlan".localizedString)
308-
first.foregroundColor = NymColor.error
309-
subtitle = first
321+
subtitle = AttributedString("requestingZkNyms".localizedString)
310322
}
311323

312324
var viewModels = [

0 commit comments

Comments
 (0)