mirror of
https://github.com/bitwarden/android.git
synced 2024-11-01 15:45:42 +03:00
62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
|
using System;
|
|||
|
using Bit.App.Abstractions;
|
|||
|
using Google.Analytics;
|
|||
|
|
|||
|
namespace Bit.iOS.Core.Services
|
|||
|
{
|
|||
|
public class GoogleAnalyticsService : IGoogleAnalyticsService
|
|||
|
{
|
|||
|
private readonly ITracker _tracker;
|
|||
|
private readonly IAuthService _authService;
|
|||
|
|
|||
|
public GoogleAnalyticsService(
|
|||
|
IAppIdService appIdService,
|
|||
|
IAuthService authService)
|
|||
|
{
|
|||
|
_authService = authService;
|
|||
|
|
|||
|
Gai.SharedInstance.DispatchInterval = 10;
|
|||
|
Gai.SharedInstance.TrackUncaughtExceptions = true;
|
|||
|
_tracker = Gai.SharedInstance.GetTracker("UA-81915606-1");
|
|||
|
_tracker.Set(GaiConstants.ClientId, appIdService.AppId);
|
|||
|
}
|
|||
|
|
|||
|
public bool SetUserId { get; set; } = true;
|
|||
|
|
|||
|
public void TrackEvent(string category, string eventName)
|
|||
|
{
|
|||
|
if(SetUserId)
|
|||
|
{
|
|||
|
_tracker.Set(GaiConstants.UserId, _authService.UserId);
|
|||
|
SetUserId = false;
|
|||
|
}
|
|||
|
var dict = DictionaryBuilder.CreateEvent(category, eventName, "AppEvent", null).Build();
|
|||
|
_tracker.Send(dict);
|
|||
|
Gai.SharedInstance.Dispatch();
|
|||
|
}
|
|||
|
|
|||
|
public void TrackException(string message, bool fatal)
|
|||
|
{
|
|||
|
if(SetUserId)
|
|||
|
{
|
|||
|
_tracker.Set(GaiConstants.UserId, _authService.UserId);
|
|||
|
SetUserId = false;
|
|||
|
}
|
|||
|
var dict = DictionaryBuilder.CreateException(message, fatal).Build();
|
|||
|
_tracker.Send(dict);
|
|||
|
}
|
|||
|
|
|||
|
public void TrackPage(string pageName)
|
|||
|
{
|
|||
|
if(SetUserId)
|
|||
|
{
|
|||
|
_tracker.Set(GaiConstants.UserId, _authService.UserId);
|
|||
|
SetUserId = false;
|
|||
|
}
|
|||
|
_tracker.Set(GaiConstants.ScreenName, pageName);
|
|||
|
var dict = DictionaryBuilder.CreateScreenView().Build();
|
|||
|
_tracker.Send(dict);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|