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:
@@ -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()
|
||||
|
||||
@@ -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())
|
||||
|
||||
6770
src/Android/Resources/Resource.Designer.cs
generated
6770
src/Android/Resources/Resource.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user