1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-25 20:53:25 +00:00

Added track screen events for pages and controller in extension. UserId refresh on login/logout.

This commit is contained in:
Kyle Spearrin
2016-08-04 00:06:09 -04:00
parent c86c82ee69
commit a831c9ac4f
27 changed files with 498 additions and 6512 deletions

View File

@@ -35,7 +35,8 @@ namespace Bit.Android
Resolver.Resolve<IFingerprint>(),
Resolver.Resolve<ISettings>(),
Resolver.Resolve<IPushNotification>(),
Resolver.Resolve<ILockService>()));
Resolver.Resolve<ILockService>(),
Resolver.Resolve<IGoogleAnalyticsService>()));
}
protected override void OnPause()

View File

@@ -109,6 +109,9 @@ namespace Bit.Android
var container = new UnityContainer();
container
// Android Stuff
.RegisterInstance(ApplicationContext)
.RegisterInstance<Application>(this)
// Services
.RegisterType<IDatabaseService, DatabaseService>(new ContainerControlledLifetimeManager())
.RegisterType<ISqlService, SqlService>(new ContainerControlledLifetimeManager())
@@ -126,6 +129,7 @@ namespace Bit.Android
.RegisterType<IReflectionService, ReflectionService>(new ContainerControlledLifetimeManager())
.RegisterType<ILockService, LockService>(new ContainerControlledLifetimeManager())
.RegisterType<IAppInfoService, AppInfoService>(new ContainerControlledLifetimeManager())
.RegisterType<IGoogleAnalyticsService, GoogleAnalyticsService>(new ContainerControlledLifetimeManager())
// Repositories
.RegisterType<IFolderRepository, FolderRepository>(new ContainerControlledLifetimeManager())
.RegisterType<IFolderApiRepository, FolderApiRepository>(new ContainerControlledLifetimeManager())

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,7 @@ namespace Bit.Android.Services
private readonly IAuthService _authService;
private readonly Tracker _tracker;
private bool _setUserId = true;
public GoogleAnalyticsService(
Context appContext,
@@ -29,7 +30,11 @@ namespace Bit.Android.Services
_tracker.SetClientId(appIdService.AppId);
}
public bool SetUserId { get; set; } = true;
public void RefreshUserId()
{
_tracker.Set(UserId, null);
_setUserId = true;
}
public void TrackEvent(string category, string eventName)
{
@@ -38,11 +43,7 @@ namespace Bit.Android.Services
builder.SetAction(eventName);
builder.SetLabel("AppEvent");
if(SetUserId)
{
_tracker.Set(UserId, _authService.UserId);
SetUserId = false;
}
SetUserId();
_tracker.Send(builder.Build());
}
@@ -52,23 +53,24 @@ namespace Bit.Android.Services
builder.SetDescription(message);
builder.SetFatal(fatal);
if(SetUserId)
{
_tracker.Set(UserId, _authService.UserId);
SetUserId = false;
}
SetUserId();
_tracker.Send(builder.Build());
}
public void TrackPage(string pageName)
{
if(SetUserId)
{
_tracker.Set(UserId, _authService.UserId);
SetUserId = false;
}
SetUserId();
_tracker.SetScreenName(pageName);
_tracker.Send(new HitBuilders.ScreenViewBuilder().Build());
}
private void SetUserId()
{
if(_setUserId && _authService.IsAuthenticated)
{
_tracker.Set(UserId, _authService.UserId);
_setUserId = false;
}
}
}
}