Skip to content

Commit 038ce7c

Browse files
authored
chore!: DCMAW-14598 Remove all deprecated components (#120)
* chore: remove deprecated versions * test: update conformances * test: conform * chore: remove unused type aliases * chore: rename all V2 to original version * chore: missed title name * chore: move typealiases
1 parent e602d4a commit 038ce7c

13 files changed

Lines changed: 154 additions & 686 deletions

Sources/GAnalytics/GAnalytics.swift

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,52 @@ import FirebaseAnalytics
33
import FirebaseCrashlytics
44
import Logging
55

6+
@available(*, deprecated, renamed: "GAnalytics")
7+
public typealias GAnalyticsV2 = GAnalytics
8+
69
/// GAnalytics
710
///
811
/// An abstraction class for bringing Google Analytics (Firebase and Crashlytics) into the app from the Firebase package.
912
/// To provide user-specific insights for logging app metrics and performance.
10-
@available(*, deprecated, renamed: "GAnalyticsV2", message: "Please consider moving to GAnalyticsV2, this type will be replaced shortly")
1113
public struct GAnalytics {
12-
private let app: AnalyticsApp.Type
13-
private let analytics: AnalyticsLogger.Type
14+
static var analyticsApp: AnalyticsApp.Type = FirebaseApp.self
15+
public let analyticsPreferenceStore: AnalyticsPreferenceStore
16+
private let analyticsLogger: AnalyticsLogger.Type
1417
private let crashLogger: CrashLogger
15-
private let preferenceStore: AnalyticsPreferenceStore
1618

1719
/// Additional parameters for the application
1820
public var additionalParameters = [String: Any]()
1921

20-
init(app: AnalyticsApp.Type,
21-
analytics: AnalyticsLogger.Type,
22-
crashLogger: CrashLogger,
23-
preferenceStore: AnalyticsPreferenceStore) {
24-
self.app = app
25-
self.analytics = analytics
22+
init(analyticsPreferenceStore: AnalyticsPreferenceStore,
23+
analyticsLogger: AnalyticsLogger.Type,
24+
crashLogger: CrashLogger) {
25+
self.analyticsPreferenceStore = analyticsPreferenceStore
26+
self.analyticsLogger = analyticsLogger
2627
self.crashLogger = crashLogger
27-
self.preferenceStore = preferenceStore
28+
29+
crashLogger.setCrashlyticsCollectionEnabled(true)
2830
}
2931

30-
public init() {
31-
self.init(app: FirebaseApp.self,
32-
analytics: Analytics.self,
33-
crashLogger: Crashlytics.crashlytics(),
34-
preferenceStore: UserDefaultsPreferenceStore())
32+
public init(analyticsPreferenceStore: AnalyticsPreferenceStore) {
33+
self.init(analyticsPreferenceStore: analyticsPreferenceStore,
34+
analyticsLogger: Analytics.self,
35+
crashLogger: Crashlytics.crashlytics())
3536
}
3637

3738
/// Initialises the Firebase instance when launching the app.
38-
public func configure() {
39-
app.configure()
39+
public static func configure() {
40+
analyticsApp.configure()
41+
}
42+
43+
/// Activates subscription to preference store events and updates based on existing preference.
44+
public func activate() {
4045
subscribeToPreferenceStore()
41-
updateAnalyticsPreference(preferenceStore.hasAcceptedAnalytics)
46+
updateAnalyticsPreference(analyticsPreferenceStore.hasAcceptedAnalytics)
4247
}
4348

4449
private func subscribeToPreferenceStore() {
4550
Task {
46-
for await value in preferenceStore.stream() {
51+
for await value in analyticsPreferenceStore.stream() {
4752
updateAnalyticsPreference(value)
4853
}
4954
}
@@ -75,51 +80,46 @@ extension GAnalytics: AnalyticsService {
7580
return newCopy
7681
}
7782

78-
/// Tracks screens adding screen tracking parameters in Firebase package.
79-
public func trackScreen(_ screen: LoggableScreen,
80-
parameters params: [String: Any] = [:]) {
81-
var parameters = mergeAdditionalParameters(params)
82-
83-
parameters[AnalyticsParameterScreenName] = screen.name
84-
parameters[AnalyticsParameterScreenClass] = screen.name
85-
86-
analytics.logEvent(AnalyticsEventScreenView,
87-
parameters: parameters)
88-
}
89-
90-
public func trackScreen(_ screen: any LoggableScreenV2,
83+
public func trackScreen(_ screen: any LoggableScreen,
9184
parameters params: [String: Any]) {
9285
var parameters = mergeAdditionalParameters(params)
9386

9487
parameters[AnalyticsParameterScreenName] = screen.name
9588
parameters[AnalyticsParameterScreenClass] = screen.type.description
9689

97-
analytics.logEvent(AnalyticsEventScreenView,
98-
parameters: parameters)
90+
analyticsLogger.logEvent(AnalyticsEventScreenView,
91+
parameters: parameters)
9992
}
10093

10194
/// Logs events accepting the event name and parameters in Firebase package.
10295
public func logEvent(_ event: LoggableEvent, parameters params: [String: Any]) {
10396
let parameters = mergeAdditionalParameters(params)
104-
analytics.logEvent(event.name, parameters: parameters)
97+
analyticsLogger.logEvent(event.name, parameters: parameters)
10598
}
10699

107100
/// Logs crashes accepting an error in Firebase package.
108101
public func logCrash(_ error: NSError) {
109102
crashLogger.record(error: error, userInfo: nil)
110103
}
111104

105+
public func logCrash(_ crash: Error) {
106+
let errorUserInfo = (crash as? CustomNSError)?.errorUserInfo ?? [:]
107+
108+
let paramsToLog = additionalParameters.merging(errorUserInfo) { lhs, _ in
109+
lhs
110+
}
111+
112+
crashLogger.record(error: crash, userInfo: paramsToLog)
113+
}
114+
112115
/// Granting analytics and crashlytics permissions in Firebase package.
113-
public func grantAnalyticsPermission() {
114-
analytics.setAnalyticsCollectionEnabled(true)
115-
crashLogger.setCrashlyticsCollectionEnabled(true)
116+
func grantAnalyticsPermission() {
117+
analyticsLogger.setAnalyticsCollectionEnabled(true)
116118
}
117119

118120
/// Denying analytics and crashlytics permissions in Firebase package.
119-
public func denyAnalyticsPermission() {
120-
analytics.setAnalyticsCollectionEnabled(false)
121-
analytics.resetAnalyticsData()
122-
123-
crashLogger.setCrashlyticsCollectionEnabled(false)
121+
func denyAnalyticsPermission() {
122+
analyticsLogger.setAnalyticsCollectionEnabled(false)
123+
analyticsLogger.resetAnalyticsData()
124124
}
125125
}

Sources/GAnalytics/GAnalyticsV2.swift

Lines changed: 0 additions & 134 deletions
This file was deleted.

Sources/GDSAnalytics/Screens/ScreenType.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
@available(*, deprecated, renamed: "ScreenType")
2-
public typealias NamedScreen = ScreenType
3-
41
public protocol ScreenType: CustomStringConvertible {
52
var name: String { get }
63
}
Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,19 @@
11
import Foundation
22

3+
@available(*, deprecated, renamed: "AnalyticsService")
4+
public typealias AnalyticsServiceV2 = AnalyticsService
5+
36
/// AnalyticsService
47
///
58
/// A protocol for Types to log analytics to a third-party analytics service.
6-
@available(*, deprecated, renamed: "AnalyticsServiceV2", message: "Please consider moving to AnalyticsServiceV2, this protocol will be replaced shortly")
79
public protocol AnalyticsService: LoggingService {
10+
var analyticsPreferenceStore: AnalyticsPreferenceStore { get }
11+
812
var additionalParameters: [String: Any] { get set }
913
func addingAdditionalParameters(_ additionalParameters: [String: Any]) -> Self
10-
11-
@available(*, deprecated, renamed: "trackScreen", message: "Please use LoggableScreenV2")
12-
func trackScreen(_ screen: LoggableScreen)
13-
14-
@available(*, deprecated, renamed: "trackScreen", message: "Please use LoggableScreenV2")
15-
func trackScreen(_ screen: LoggableScreen, parameters: [String: Any])
16-
17-
func trackScreen(_ screen: any LoggableScreenV2, parameters: [String: Any])
14+
15+
func trackScreen(_ screen: any LoggableScreen, parameters: [String: Any])
1816

1917
func logCrash(_ crash: NSError)
2018
func logCrash(_ crash: Error)
21-
22-
func grantAnalyticsPermission()
23-
func denyAnalyticsPermission()
24-
}
25-
26-
extension AnalyticsService {
27-
/// Protocol method for screen tracking, calling the conforming type's method for adding screen tracking parameters.
28-
public func trackScreen(_ screen: LoggableScreen) {
29-
trackScreen(screen, parameters: [:])
30-
}
31-
32-
/// Protocol method for crash logging, calling the conforming type's method for passing errors as `NSError`s.
33-
public func logCrash(_ crash: Error) {
34-
logCrash(crash as NSError)
35-
}
3619
}

Sources/Logging/AnalyticsServiceV2.swift

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)