From d407039f6dd24bd18bbbddf979f7ece528c160e5 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Tue, 23 Aug 2022 18:15:24 -0300 Subject: [PATCH] Fix comments on MR --- .../Controllers/SettingsAdvancedController.swift | 3 ++- .../ViewModels/SettingsAdvancedViewModel.swift | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift b/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift index 16d474d8..efe25a00 100644 --- a/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift +++ b/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift @@ -63,7 +63,8 @@ public final class SettingsAdvancedController: UIViewController { screenView.reportingSwitcher.switcherView .publisher(for: .valueChanged) - .sink { [weak viewModel] in viewModel?.didToggleReporting() } + .compactMap { [weak screenView] _ in screenView?.reportingSwitcher.switcherView.isOn } + .sink { [weak viewModel] isOn in viewModel?.didSetReporting(enabled: isOn) } .store(in: &cancellables) viewModel.sharePublisher diff --git a/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift b/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift index a0f199a9..3ec9be36 100644 --- a/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift +++ b/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift @@ -18,6 +18,7 @@ final class SettingsAdvancedViewModel { @KeyObject(.recordingLogs, defaultValue: true) var isRecordingLogs: Bool @KeyObject(.crashReporting, defaultValue: true) var isCrashReporting: Bool + private var cancellables = Set<AnyCancellable>() private let isShowingUsernamesKey = "isShowingUsernames" @Dependency private var logger: XXLogger @@ -33,9 +34,13 @@ final class SettingsAdvancedViewModel { func loadCachedSettings() { stateRelay.value.isRecordingLogs = isRecordingLogs stateRelay.value.isCrashReporting = isCrashReporting - stateRelay.value.isReportingEnabled = reportingStatus.isEnabled() stateRelay.value.isReportingOptional = reportingStatus.isOptional() + reportingStatus + .isEnabledPublisher() + .sink { [weak stateRelay] in stateRelay?.value.isReportingEnabled = $0 } + .store(in: &cancellables) + guard let defaults = UserDefaults(suiteName: "group.elixxir.messenger") else { print("^^^ Couldn't access user defaults in the app group container \(#file):\(#line)") return @@ -82,8 +87,7 @@ final class SettingsAdvancedViewModel { crashReporter.setEnabled(isCrashReporting) } - func didToggleReporting() { - reportingStatus.enable(reportingStatus.isEnabled()) - stateRelay.value.isReportingEnabled.toggle() + func didSetReporting(enabled: Bool) { + reportingStatus.enable(enabled) } } -- GitLab