Skip to content

Commit 66d1af3

Browse files
authored
noop: Refactor FirebaseSessions.LocalOverrideSettings code (#15523)
1 parent 826b7a1 commit 66d1af3

File tree

3 files changed

+22
-40
lines changed

3 files changed

+22
-40
lines changed

FirebaseSessions/Sources/SessionInitiator.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ class SessionInitiator {
112112
@objc private func appForegrounded() {
113113
let interval = currentTime().timeIntervalSince(backgroundTime)
114114

115-
// If the interval is greater the the session timeout duration, generate a new session.
115+
// If the interval is greater than the session timeout duration, generate
116+
// a new session.
116117
if interval > settings.sessionTimeout {
117118
initiateSessionStart()
118119
}

FirebaseSessions/Sources/Settings/LocalOverrideSettings.swift

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,51 +17,38 @@ import Foundation
1717

1818
/// Class that manages the local overrides configs related to the library.
1919
class LocalOverrideSettings: SettingsProvider {
20-
// This will disable Sessions SDK Events, but not Settings requests.
21-
// If any apps use this flag to disable the Firebase Sessions SDK,
22-
// keep in mind this may break metrics future features with products like
23-
// FirePerf and Crashlytics. As a result, we would recommend apps
24-
// use another way to disable data collection (like disabling it via
25-
// the product public data collection APIs themselves).
26-
// This flag is internal and may break in the future.
27-
static let PlistKey_sessions_enabled = "FirebaseSessionsEnabled"
28-
static let PlistKey_sessions_timeout = "FirebaseSessionsTimeout"
29-
static let PlistKey_sessions_samplingRate = "FirebaseSessionsSampingRate"
20+
private enum PlistKey: String {
21+
/// This will disable Sessions SDK Events, but not Settings requests.
22+
/// If any apps use this flag to disable the Firebase Sessions SDK,
23+
/// keep in mind this may break metrics future features with products like
24+
/// FirePerf and Crashlytics. As a result, we would recommend apps
25+
/// use another way to disable data collection (like disabling it via
26+
/// the product public data collection APIs themselves).
27+
/// This flag is internal and may break in the future.
28+
case sessionsEnabled = "FirebaseSessionsEnabled"
29+
case sessionsTimeout = "FirebaseSessionsTimeout"
30+
case sessionsSamplingRate = "FirebaseSessionsSampingRate"
31+
}
3032

3133
var sessionsEnabled: Bool? {
32-
let session_enabled = plistValueForConfig(configName: LocalOverrideSettings
33-
.PlistKey_sessions_enabled) as? Bool
34-
if session_enabled != nil {
35-
return Bool(session_enabled!)
36-
}
37-
return nil
34+
let isEnabled = plistValue(for: .sessionsEnabled)
35+
return isEnabled as? Bool
3836
}
3937

4038
var sessionTimeout: TimeInterval? {
41-
let timeout = plistValueForConfig(configName: LocalOverrideSettings
42-
.PlistKey_sessions_timeout) as? Double
43-
if timeout != nil {
44-
return Double(timeout!)
45-
}
46-
return nil
39+
let timeout = plistValue(for: .sessionsTimeout)
40+
return timeout as? Double
4741
}
4842

4943
var samplingRate: Double? {
50-
let rate = plistValueForConfig(configName: LocalOverrideSettings
51-
.PlistKey_sessions_samplingRate) as? Double
52-
if rate != nil {
53-
return Double(rate!)
54-
}
55-
return nil
44+
let rate = plistValue(for: .sessionsSamplingRate)
45+
return rate as? Double
5646
}
5747

58-
private func plistValueForConfig(configName: String) -> Any? {
59-
return Bundle.main.infoDictionary?[configName]
48+
private func plistValue(for key: PlistKey) -> Any? {
49+
return Bundle.main.infoDictionary?[key.rawValue]
6050
}
61-
}
6251

63-
typealias LocalOverrideSettingsProvider = LocalOverrideSettings
64-
extension LocalOverrideSettingsProvider {
6552
func updateSettings() {
6653
// Nothing to be done since there is nothing to be updated.
6754
}

FirebaseSessions/Sources/Settings/RemoteSettings.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,7 @@ final class RemoteSettings: SettingsProvider, Sendable {
7676
}
7777
}
7878
}
79-
}
8079

81-
typealias RemoteSettingsConfigurations = RemoteSettings
82-
extension RemoteSettingsConfigurations {
8380
var sessionsEnabled: Bool? {
8481
return sessionsCache[RemoteSettings.flagSessionsEnabled] as? Bool
8582
}
@@ -91,10 +88,7 @@ extension RemoteSettingsConfigurations {
9188
var sessionTimeout: TimeInterval? {
9289
return sessionsCache[RemoteSettings.flagSessionTimeout] as? Double
9390
}
94-
}
9591

96-
typealias RemoteSettingsProvider = RemoteSettings
97-
extension RemoteSettingsConfigurations {
9892
func updateSettings(currentTime: Date) {
9993
fetchAndCacheSettings(currentTime: currentTime)
10094
}

0 commit comments

Comments
 (0)