Skip to content

Commit 7553ab5

Browse files
Merge pull request #1697 from NativeScript/vladimirov/fix-analytics-sessions-count
Track sessions count per analytics project
2 parents 777e18e + 6c58e6a commit 7553ab5

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

lib/services/analytics-settings-service.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import { createGUID } from "../common/helpers";
44

55
class AnalyticsSettingsService implements IAnalyticsSettingsService {
6+
private static SESSIONS_STARTED_OBSOLETE_KEY = "SESSIONS_STARTED";
7+
private static SESSIONS_STARTED_KEY_PREFIX = "SESSIONS_STARTED_";
8+
69
constructor(private $userSettingsService: UserSettings.IUserSettingsService,
710
private $staticConfig: IStaticConfig,
811
private $logger: ILogger) { }
@@ -33,14 +36,23 @@ class AnalyticsSettingsService implements IAnalyticsSettingsService {
3336
return "http://www.telerik.com/company/privacy-policy";
3437
}
3538

36-
public getUserSessionsCount(): IFuture<number> {
39+
public getUserSessionsCount(projectName: string): IFuture<number> {
3740
return (() => {
38-
return this.$userSettingsService.getSettingValue<number>("SESSIONS_STARTED").wait() || 0;
41+
let oldSessionCount = this.$userSettingsService.getSettingValue<number>(AnalyticsSettingsService.SESSIONS_STARTED_OBSOLETE_KEY).wait();
42+
if(oldSessionCount) {
43+
// remove the old property for sessions count
44+
this.$userSettingsService.removeSetting(AnalyticsSettingsService.SESSIONS_STARTED_OBSOLETE_KEY).wait();
45+
}
46+
return this.$userSettingsService.getSettingValue<number>(this.getSessionsProjectKey(projectName)).wait() || oldSessionCount || 0;
3947
}).future<number>()();
4048
}
4149

42-
public setUserSessionsCount(count: number): IFuture<void> {
43-
return this.$userSettingsService.saveSetting<number>("SESSIONS_STARTED", count);
50+
public setUserSessionsCount(count: number, projectName: string): IFuture<void> {
51+
return this.$userSettingsService.saveSetting<number>(this.getSessionsProjectKey(projectName), count);
52+
}
53+
54+
private getSessionsProjectKey(projectName: string): string {
55+
return `${AnalyticsSettingsService.SESSIONS_STARTED_KEY_PREFIX}${projectName}`;
4456
}
4557
}
4658
$injector.register("analyticsSettingsService", AnalyticsSettingsService);

0 commit comments

Comments
 (0)