AppGroupConstants.swift 2.98 KB
import Foundation

enum HealthUploadCursorMode: String {
    /// Use the latest data time returned by the server.
    case serverTime
    /// Use a per-device, per-user HKQueryAnchor stored locally.
    case localAnchor
}

enum HealthUploadCursorConfiguration {
    /// Change this single value to compare the two upload cursor strategies.
    static var mode: HealthUploadCursorMode = .localAnchor
}

/// Shared container used by the iPhone app, Watch app, and Widget extension.
/// Keep these keys aligned with `ios/Runner Watch App` and the watch extension.
enum AppGroupConstants {
  static let identifier = "group.com.luiz.doublefeel.watchkitapp"

  enum Key {
      static let deviceInfo = "deviceInfo"
      static let appDeviceToken = "appDeviceToken"
      static let watchDeviceToken = "watchDeviceToken"

    static let latestHealthData = "latestHealthData"
    static let localHealthActivityTarget = "localHealthActivityTarget"
    static let acitivyTarget = "acitivyTarget"
    static let myWatchTheme = "myWatchTheme"
    static let otherWatchTheme = "otherWatchTheme"

    static let myTodayStandTime = "myTodayStandTime"
      static let myTodayExerciseTime = "myTodayExerciseTime"
      static let myTodayActiveEnergy = "myTodayActiveEnergy"
      static let myTodayStepCount = "myTodayStepCount"
      static let myLatestHeartRate = "myLatestHeartRate"

    static let myUserInfo = "myUserInfo"
      /// flutter登录信息
      static let userSummary = "flutterUserSummary"
      /// 显示好友信息
    static let showOtherUserInfo = "showOtherUserInfo"
      /// 会员信息
      static let vipInfo = "vipInfo"
      static let showRealtimeHRV = "showRealtimeHRV"
  }

  static var defaults: UserDefaults? {
    UserDefaults(suiteName: identifier)
  }
    static func clearAllData(){
        defaults?.removePersistentDomain(forName: identifier)
        defaults?.synchronize()
    }

    static func clearUserSessionData() {
        [
            Key.latestHealthData,
            Key.localHealthActivityTarget,
            Key.acitivyTarget,
            Key.myWatchTheme,
            Key.otherWatchTheme,
            Key.myTodayStandTime,
            Key.myTodayExerciseTime,
            Key.myTodayActiveEnergy,
            Key.myTodayStepCount,
            Key.myLatestHeartRate,
            Key.myUserInfo,
            Key.userSummary,
            Key.showOtherUserInfo,
            Key.vipInfo,
            Key.showRealtimeHRV
        ].forEach { key in
            defaults?.removeObject(forKey: key)
        }
        defaults?.synchronize()
    }
}



struct AppGroupMessageKey{
    static let login = "login"
    static let logout = "logout"
    static let requestLoginState = "requestLoginState"

    static let reloadAll = "reloadAll"
    static let reloadVip = "reloadVip"
    static let reloadTheme = "reloadTheme"
    static let deleteTheme = "deleteTheme"

    // 手表通知app刷新连接状态
    static let statusPulseRefresh = "statusPulseRefresh"
    static let watchDeviceToken = "watchDeviceToken"
}