Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Defaults for Privacy & About tabs #360

Merged
merged 7 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Easydict/Feature/Configuration/Configuration.swift
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,14 @@ let kHideMenuBarIconKey = "EZConfiguration_kHideMenuBarIconKey"
@DefaultsWrapper(.launchAtStartup)
var launchAtStartup: Bool

let updater = GlobalContext.shared.updaterController.updater

var automaticallyChecksForUpdates: Bool {
get {
GlobalContext.shared.updaterController.updater.automaticallyDownloadsUpdates
updater.automaticallyChecksForUpdates
}
set {
GlobalContext.shared.updaterController.updater.automaticallyDownloadsUpdates = newValue
updater.automaticallyChecksForUpdates = newValue
logSettings(["automatically_checks_for_updates": newValue])
}
}
Expand Down
6 changes: 2 additions & 4 deletions Easydict/NewApp/View/MenuItemView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ final class MenuItemStore: ObservableObject {
@Published var canCheckForUpdates = false

init() {
GlobalContext.shared
.updaterController
.updater
Configuration.shared.updater
.publisher(for: \.canCheckForUpdates)
.assign(to: &$canCheckForUpdates)
}
Expand Down Expand Up @@ -171,7 +169,7 @@ struct MenuItemView: View {
private var checkUpdateItem: some View {
Button("check_updates") {
NSLog("检查更新")
GlobalContext.shared.updaterController.updater.checkForUpdates()
Configuration.shared.updater.checkForUpdates()
}.disabled(!store.canCheckForUpdates)
}

Expand Down
23 changes: 20 additions & 3 deletions Easydict/NewApp/View/SettingView/Tabs/AboutTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
// Copyright © 2023 izual. All rights reserved.
//

import Defaults
import SwiftUI

@available(macOS 13, *)
Expand All @@ -20,7 +21,7 @@ struct AboutTab: View {
.font(.system(size: 26, weight: .semibold))
Text("current_version") + Text(verbatim: " \(version)")
.font(.system(size: 14))
Toggle("auto_check_update", isOn: $autoChecksForUpdates)
Toggle("auto_check_update", isOn: $checkUpdaterViewModel.autoChecksForUpdates)
Text(verbatim: "(") + Text("lastest_version") + Text(verbatim: " \(lastestVersion ?? version))")

HStack {
Expand All @@ -45,8 +46,8 @@ struct AboutTab: View {
}
}

@AppStorage("EZConfiguration_kAutomaticallyChecksForUpdatesKey")
private var autoChecksForUpdates = false
@StateObject private var checkUpdaterViewModel = CheckUpdaterViewModel()

@State
private var lastestVersion: String?
private var appName: String {
Expand All @@ -56,6 +57,22 @@ struct AboutTab: View {
private var version: String {
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? ""
}

class CheckUpdaterViewModel: ObservableObject {
private let updater = Configuration.shared.updater

@Published var autoChecksForUpdates = true {
didSet {
updater.automaticallyChecksForUpdates = autoChecksForUpdates
}
}

init() {
updater
.publisher(for: \.automaticallyChecksForUpdates)
.assign(to: &$autoChecksForUpdates)
}
}
}

@available(macOS 13, *)
Expand Down
8 changes: 3 additions & 5 deletions Easydict/NewApp/View/SettingView/Tabs/PrivacyTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
// Copyright © 2023 izual. All rights reserved.
//

import Defaults
import SwiftUI

@available(macOS 13, *)
Expand Down Expand Up @@ -33,11 +34,8 @@ struct PrivacyTab: View {
.formStyle(.grouped)
}

@AppStorage("EZConfiguration_kAllowCrashLogKey")
private var allowCollectCrashLog = true

@AppStorage("EZConfiguration_kAllowAnalyticsKey")
private var allowCollectAnalytics = true
@Default(.allowCrashLog) private var allowCollectCrashLog
@Default(.allowAnalytics) private var allowCollectAnalytics
}

@available(macOS 13, *)
Expand Down