Skip to content

Commit a26de16

Browse files
committed
api surface refactoring
1 parent a750395 commit a26de16

File tree

3 files changed

+46
-27
lines changed

3 files changed

+46
-27
lines changed

Example/Example/ViewController.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ class ViewController: UserReportViewController {
3939
self.setupNavigationBar()
4040

4141
// Setup base state for testMode switch
42-
UserReport.shared?.testMode = true
43-
self.testModeSwitch.isOn = (UserReport.shared?.testMode)!
42+
UserReport.testMode = true
43+
self.testModeSwitch.isOn = UserReport.testMode
4444

4545

4646
// Setup base state for Display mode buttons
@@ -85,7 +85,7 @@ class ViewController: UserReportViewController {
8585
@objc private func updateSessionInfo() {
8686

8787
// Session information about the running time of the application and screen views
88-
guard let session = UserReport.shared?.session else { return }
88+
guard let session = UserReport.session else { return }
8989
self.totalScreensLabel.text = "\(session.totalScreenView) screens"
9090
self.sessionScreensLabel.text = "\(session.screenView) screens"
9191
self.totalTimeLabel.text = session.totalSecondsInApp.stringTime()
@@ -109,13 +109,13 @@ class ViewController: UserReportViewController {
109109
}
110110

111111
@IBAction func changeTestMode(_ sender: Any) {
112-
UserReport.shared?.testMode = self.testModeSwitch.isOn
112+
UserReport.testMode = self.testModeSwitch.isOn
113113
}
114114

115115
@IBAction func selectAlertDisplayMode(_ sender: Any) {
116116

117117
// Change display mode survey in UserReport SDK
118-
UserReport.shared?.displayMode = .alert
118+
UserReport.setDisplayMode(.alert)
119119

120120
// Update buttons
121121
self.alertDisplayModeButton.isSelected = true
@@ -125,7 +125,7 @@ class ViewController: UserReportViewController {
125125
@IBAction func selectFullscreenDisplayMode(_ sender: Any) {
126126

127127
// Change display mode survey in UserReport SDK
128-
UserReport.shared?.displayMode = .fullscreen
128+
UserReport.setDisplayMode(.fullscreen)
129129

130130
// Update buttons
131131
self.alertDisplayModeButton.isSelected = false

Example_Objective-C/Example_Objective-C/ViewController.m

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ - (void)viewDidLoad {
2020
[self setupNavigationBar];
2121

2222
// Setup base state for testMode switch
23-
UserReport.shared.testMode = YES;
24-
self.testModeSwitch.on = UserReport.shared.testMode;
23+
UserReport.testMode = YES;
24+
self.testModeSwitch.on = UserReport.testMode;
2525

2626

2727
// Setup base state for Display mode buttons
@@ -66,7 +66,7 @@ - (void)updateSessionInfo {
6666
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
6767

6868
// Session information about the running time of the application and screen views
69-
Session *session = [[UserReport shared] session];
69+
Session *session = [UserReport session];
7070
if (session) {
7171
self.totalScreensLabel.text = [NSString stringWithFormat:@"%li screens", session.totalScreenView];
7272
self.sessionScreensLabel.text = [NSString stringWithFormat:@"%li screens", session.screenView];
@@ -94,14 +94,14 @@ - (IBAction)showUserReport:(id)sender {
9494
}
9595

9696
- (IBAction)changeTestMode:(id)sender {
97-
[UserReport shared].testMode = self.testModeSwitch.isOn;
97+
UserReport.testMode = self.testModeSwitch.isOn;
9898
}
9999

100100
- (IBAction)selectAlertDisplayMode:(id)sender {
101101
NSLog(@"[CLICK]");
102102

103103
// Change display mode survey in UserReport SDK
104-
UserReport.shared.displayMode = DisplayModeAlert;
104+
UserReport.displayMode = DisplayModeAlert;
105105

106106
// Update buttons
107107
self.alertDisplayModeButton.selected = YES;
@@ -111,7 +111,7 @@ - (IBAction)selectAlertDisplayMode:(id)sender {
111111
- (IBAction)selectFullscreenDisplayMode:(id)sender {
112112

113113
// Change display mode survey in UserReport SDK
114-
UserReport.shared.displayMode = DisplayModeFullscreen;
114+
UserReport.displayMode = DisplayModeFullscreen;
115115

116116
// Update buttons
117117
self.alertDisplayModeButton.selected = NO;

UserReport/UserReport/UserReport.swift

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,25 +50,30 @@ private var sharedInstance: UserReport?
5050
public static let sdkVersion = Bundle(for: UserReport.self).infoDictionary?["CFBundleShortVersionString"] as! String
5151

5252
/// Survey view display style. Default `.alert`
53-
@objc public var displayMode: DisplayMode = .alert
53+
@objc public class func setDisplayMode(_ displayMode : DisplayMode) {
54+
UserReport.shared?.displayMode = displayMode
55+
}
56+
@objc public private(set) var displayMode: DisplayMode = .alert
5457

5558
/// Level of messages printing to the console. Default `.debug`
56-
public var logLevel: LogLevel {
57-
set { self.logger.level = newValue }
58-
get { return self.logger.level }
59+
public class var logLevel: LogLevel {
60+
set { UserReport.shared?.logger.level = newValue }
61+
get { return UserReport.shared?.logger.level ?? .debug }
5962
}
6063

6164
/**
6265
* Flag for testing the display of the survey view.
6366
* The server will return data about the survey each time, otherwise they will set up the default settings.
6467
* Default `false`
6568
*/
66-
@objc public var testMode: Bool = false {
67-
didSet {
68-
self.network.testMode = self.testMode
69-
self.logger.log("Test mode: \(self.testMode ? "On" : "Off")", level: .debug)
69+
@objc public class var testMode: Bool {
70+
set {
71+
UserReport.shared?.network.testMode = newValue
72+
UserReport.shared?.logger.log("Test mode: \(self.testMode ? "On" : "Off")", level: .debug)
7073
}
71-
}
74+
get { return UserReport.shared?.testMode ?? false }
75+
}
76+
@objc private var testMode: Bool = false
7277

7378
/**
7479
* Mute display of the survey.
@@ -77,15 +82,23 @@ private var sharedInstance: UserReport?
7782
*
7883
* - Note: Don't forget to return back to `false`
7984
*/
80-
@objc public var mute: Bool = false
85+
@objc public class var mute: Bool {
86+
set { UserReport.shared?.mute = newValue }
87+
get { return UserReport.shared?.mute ?? false }
88+
}
89+
@objc private var mute: Bool = false
8190

8291
/// Returns whether the survey is displayed on the screen
83-
@objc public var isSurveyShown: Bool {
84-
get { return self.surveyStatus == .surveyShown }
92+
@objc public class var isSurveyShown: Bool {
93+
get { return UserReport.shared?.surveyStatus == .surveyShown }
8594
}
8695

8796
/// Session data about count of screens viewed and the time the application is used
88-
@objc public var session: Session!
97+
@objc public class var session: Session? {
98+
set { UserReport.shared?.session = newValue }
99+
get { return UserReport.shared?.session }
100+
}
101+
@objc private var session: Session!
89102

90103
// MARK: private
91104
private var logger: Logger!
@@ -159,7 +172,10 @@ private var sharedInstance: UserReport?
159172
*
160173
* - parameter user: User with new data
161174
*/
162-
@objc public func updateUser(_ user: User) {
175+
@objc public class func updateUser(_ user: User) {
176+
UserReport.shared?.updateUser(user)
177+
}
178+
@objc private func updateUser(_ user: User) {
163179
self.info.user = user
164180
}
165181

@@ -168,7 +184,10 @@ private var sharedInstance: UserReport?
168184
*
169185
* - parameter settings: New settings
170186
*/
171-
@objc public func updateSettings(_ settings: Settings) {
187+
@objc public class func updateSettings(_ settings: Settings) {
188+
UserReport.shared?.session.updateSettings(settings)
189+
}
190+
@objc private func updateSettings(_ settings: Settings) {
172191
self.session.updateSettings(settings)
173192
}
174193

0 commit comments

Comments
 (0)