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