mirror of
https://github.com/bitwarden/android.git
synced 2024-12-18 23:31:52 +03:00
* Opt-out of Google Analytics * Move OptOut to Other in Settings * Change OptOut Order and Resource key
This commit is contained in:
parent
a45773e1ca
commit
fb35b9b10a
7 changed files with 59 additions and 2 deletions
|
@ -1,5 +1,7 @@
|
|||
using System;
|
||||
using Bit.App;
|
||||
using Bit.App.Abstractions;
|
||||
using Plugin.Settings.Abstractions;
|
||||
using Android.Gms.Analytics;
|
||||
using Android.Content;
|
||||
|
||||
|
@ -17,7 +19,8 @@ namespace Bit.Android.Services
|
|||
public GoogleAnalyticsService(
|
||||
Context appContext,
|
||||
IAppIdService appIdService,
|
||||
IAuthService authService)
|
||||
IAuthService authService,
|
||||
ISettings settings)
|
||||
{
|
||||
_authService = authService;
|
||||
|
||||
|
@ -29,6 +32,9 @@ namespace Bit.Android.Services
|
|||
_tracker.EnableAdvertisingIdCollection(true);
|
||||
_tracker.EnableAutoActivityTracking(true);
|
||||
_tracker.SetClientId(appIdService.AnonymousAppId);
|
||||
|
||||
var gaOptOut = settings.GetValueOrDefault(Constants.SettingGAOptOut, false);
|
||||
SetAppOptOut(gaOptOut);
|
||||
}
|
||||
|
||||
public void RefreshUserId()
|
||||
|
@ -92,5 +98,10 @@ namespace Bit.Android.Services
|
|||
_instance.DispatchLocalHits();
|
||||
completionHandler?.Invoke();
|
||||
}
|
||||
|
||||
public void SetAppOptOut(bool optOut)
|
||||
{
|
||||
_instance.AppOptOut = optOut;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,5 +11,6 @@ namespace Bit.App.Abstractions
|
|||
void TrackEvent(string category, string eventName, string label = null);
|
||||
void TrackException(string message, bool fatal);
|
||||
void Dispatch(Action completionHandler = null);
|
||||
void SetAppOptOut(bool optOut);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
public const string SettingFingerprintUnlockOn = "setting:fingerprintUnlockOn";
|
||||
public const string SettingPinUnlockOn = "setting:pinUnlockOn";
|
||||
public const string SettingLockSeconds = "setting:lockSeconds";
|
||||
public const string SettingGAOptOut = "setting:googleAnalyticsOptOut";
|
||||
|
||||
public const string PasswordGeneratorLength = "pwGenerator:length";
|
||||
public const string PasswordGeneratorUppercase = "pwGenerator:uppercase";
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace Bit.App.Pages
|
|||
private ExtendedTextCell TwoStepCell { get; set; }
|
||||
private ExtendedTextCell ChangeMasterPasswordCell { get; set; }
|
||||
private ExtendedTextCell ChangeEmailCell { get; set; }
|
||||
private ExtendedSwitchCell AnalyticsCell { get; set; }
|
||||
private ExtendedTextCell FoldersCell { get; set; }
|
||||
private ExtendedTextCell SyncCell { get; set; }
|
||||
private ExtendedTextCell LockCell { get; set; }
|
||||
|
@ -103,6 +104,12 @@ namespace Bit.App.Pages
|
|||
ShowDisclousure = true
|
||||
};
|
||||
|
||||
AnalyticsCell = new ExtendedSwitchCell
|
||||
{
|
||||
Text = AppResources.DisableGA,
|
||||
On = _settings.GetValueOrDefault(Constants.SettingGAOptOut, false)
|
||||
};
|
||||
|
||||
FoldersCell = new ExtendedTextCell
|
||||
{
|
||||
Text = AppResources.Folders,
|
||||
|
@ -139,6 +146,7 @@ namespace Bit.App.Pages
|
|||
|
||||
var otherSection = new TableSection(AppResources.Other)
|
||||
{
|
||||
AnalyticsCell,
|
||||
AboutCell,
|
||||
HelpCell
|
||||
};
|
||||
|
@ -193,6 +201,7 @@ namespace Bit.App.Pages
|
|||
base.OnAppearing();
|
||||
|
||||
PinCell.OnChanged += PinCell_Changed;
|
||||
AnalyticsCell.OnChanged += AnalyticsCell_Changed;
|
||||
LockOptionsCell.Tapped += LockOptionsCell_Tapped;
|
||||
TwoStepCell.Tapped += TwoStepCell_Tapped;
|
||||
ChangeMasterPasswordCell.Tapped += ChangeMasterPasswordCell_Tapped;
|
||||
|
@ -226,6 +235,7 @@ namespace Bit.App.Pages
|
|||
base.OnDisappearing();
|
||||
|
||||
PinCell.OnChanged -= PinCell_Changed;
|
||||
AnalyticsCell.OnChanged -= AnalyticsCell_Changed;
|
||||
LockOptionsCell.Tapped -= LockOptionsCell_Tapped;
|
||||
TwoStepCell.Tapped -= TwoStepCell_Tapped;
|
||||
ChangeMasterPasswordCell.Tapped -= ChangeMasterPasswordCell_Tapped;
|
||||
|
@ -411,6 +421,18 @@ namespace Bit.App.Pages
|
|||
}
|
||||
}
|
||||
|
||||
private void AnalyticsCell_Changed(object sender, ToggledEventArgs e)
|
||||
{
|
||||
var cell = sender as ExtendedSwitchCell;
|
||||
if (cell == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_settings.AddOrUpdateValue(Constants.SettingGAOptOut, cell.On);
|
||||
_googleAnalyticsService.SetAppOptOut(cell.On);
|
||||
}
|
||||
|
||||
private void PinEntered(SettingsPinPage page)
|
||||
{
|
||||
page.PinControl.Entry.Unfocus();
|
||||
|
|
9
src/App/Resources/AppResources.Designer.cs
generated
9
src/App/Resources/AppResources.Designer.cs
generated
|
@ -520,6 +520,15 @@ namespace Bit.App.Resources {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Disable Google Analytics.
|
||||
/// </summary>
|
||||
public static string DisableGA {
|
||||
get {
|
||||
return ResourceManager.GetString("DisableGA", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Do you really want to delete? This cannot be undone..
|
||||
/// </summary>
|
||||
|
|
|
@ -302,6 +302,9 @@
|
|||
<value>Ok</value>
|
||||
<comment>Acknowledgement.</comment>
|
||||
</data>
|
||||
<data name="DisableGA" xml:space="preserve">
|
||||
<value>Disable Google Analytics</value>
|
||||
</data>
|
||||
<data name="Password" xml:space="preserve">
|
||||
<value>Password</value>
|
||||
<comment>Label for a password.</comment>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using Bit.App.Abstractions;
|
||||
using Google.Analytics;
|
||||
using Plugin.Settings.Abstractions;
|
||||
|
||||
namespace Bit.iOS.Core.Services
|
||||
{
|
||||
|
@ -12,7 +13,8 @@ namespace Bit.iOS.Core.Services
|
|||
|
||||
public GoogleAnalyticsService(
|
||||
IAppIdService appIdService,
|
||||
IAuthService authService)
|
||||
IAuthService authService,
|
||||
ISettings settings)
|
||||
{
|
||||
_authService = authService;
|
||||
|
||||
|
@ -21,6 +23,9 @@ namespace Bit.iOS.Core.Services
|
|||
_tracker = Gai.SharedInstance.GetTracker("UA-81915606-1");
|
||||
_tracker.SetAllowIdfaCollection(true);
|
||||
_tracker.Set(GaiConstants.ClientId, appIdService.AnonymousAppId);
|
||||
|
||||
var gaOptOut = settings.GetValueOrDefault(App.Constants.SettingGAOptOut, false);
|
||||
SetAppOptOut(gaOptOut);
|
||||
}
|
||||
|
||||
public void RefreshUserId()
|
||||
|
@ -78,5 +83,10 @@ namespace Bit.iOS.Core.Services
|
|||
_setUserId = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAppOptOut(bool optOut)
|
||||
{
|
||||
Gai.SharedInstance.OptOut = optOut;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue