Ask for consent to sendInfo.
This commit is contained in:
parent
14f919584b
commit
0178efaaf7
@ -21,6 +21,7 @@
|
|||||||
@interface MPConfig : PearlConfig
|
@interface MPConfig : PearlConfig
|
||||||
|
|
||||||
@property(nonatomic, retain) NSNumber *sendInfo;
|
@property(nonatomic, retain) NSNumber *sendInfo;
|
||||||
|
@property(nonatomic, retain) NSNumber *sendInfoDecided;
|
||||||
@property(nonatomic, retain) NSNumber *rememberLogin;
|
@property(nonatomic, retain) NSNumber *rememberLogin;
|
||||||
@property(nonatomic, retain) NSNumber *hidePasswords;
|
@property(nonatomic, retain) NSNumber *hidePasswords;
|
||||||
|
|
||||||
|
@ -29,13 +29,15 @@
|
|||||||
return nil;
|
return nil;
|
||||||
|
|
||||||
[self.defaults registerDefaults:@{
|
[self.defaults registerDefaults:@{
|
||||||
NSStringFromSelector( @selector( askForReviews ) ) : @YES,
|
|
||||||
|
|
||||||
NSStringFromSelector( @selector( sendInfo ) ) : @YES,
|
NSStringFromSelector( @selector( sendInfo ) ) : @YES,
|
||||||
|
NSStringFromSelector( @selector( sendInfoDecided ) ) : @NO,
|
||||||
|
|
||||||
NSStringFromSelector( @selector( rememberLogin ) ) : @NO,
|
NSStringFromSelector( @selector( rememberLogin ) ) : @NO,
|
||||||
NSStringFromSelector( @selector( hidePasswords ) ) : @NO,
|
NSStringFromSelector( @selector( hidePasswords ) ) : @NO,
|
||||||
NSStringFromSelector( @selector( checkInconsistency ) ): @NO,
|
|
||||||
NSStringFromSelector( @selector( siteAttacker ) ) : @(MPAttacker1),
|
NSStringFromSelector( @selector( siteAttacker ) ) : @(MPAttacker1),
|
||||||
|
|
||||||
|
NSStringFromSelector( @selector( checkInconsistency ) ): @NO,
|
||||||
|
NSStringFromSelector( @selector( askForReviews ) ) : @YES,
|
||||||
}];
|
}];
|
||||||
|
|
||||||
self.delegate = [MPAppDelegate_Shared get];
|
self.delegate = [MPAppDelegate_Shared get];
|
||||||
|
@ -86,7 +86,7 @@ static OSStatus MPHotKeyHander(EventHandlerCallRef nextHandler, EventRef theEven
|
|||||||
}];
|
}];
|
||||||
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
||||||
PearlLogLevel level = PearlLogLevelWarn;
|
PearlLogLevel level = PearlLogLevelWarn;
|
||||||
if ([[MPConfig get].sendInfo boolValue])
|
if ([[MPMacConfig get].sendInfo boolValue])
|
||||||
level = PearlLogLevelDebug;
|
level = PearlLogLevelDebug;
|
||||||
|
|
||||||
if (message.level >= level) {
|
if (message.level >= level) {
|
||||||
@ -145,7 +145,7 @@ static OSStatus MPHotKeyHander(EventHandlerCallRef nextHandler, EventRef theEven
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Setup delegates and listeners.
|
// Setup delegates and listeners.
|
||||||
[MPConfig get].delegate = self;
|
[MPMacConfig get].delegate = self;
|
||||||
__weak id weakSelf = self;
|
__weak id weakSelf = self;
|
||||||
[self addObserverBlock:^(NSString *keyPath, id object, NSDictionary *change, void *context) {
|
[self addObserverBlock:^(NSString *keyPath, id object, NSDictionary *change, void *context) {
|
||||||
dispatch_async( dispatch_get_main_queue(), ^{
|
dispatch_async( dispatch_get_main_queue(), ^{
|
||||||
@ -210,7 +210,7 @@ static OSStatus MPHotKeyHander(EventHandlerCallRef nextHandler, EventRef theEven
|
|||||||
|
|
||||||
- (void)applicationWillResignActive:(NSNotification *)notification {
|
- (void)applicationWillResignActive:(NSNotification *)notification {
|
||||||
|
|
||||||
if (![[MPConfig get].rememberLogin boolValue])
|
if (![[MPMacConfig get].rememberLogin boolValue])
|
||||||
[self lock:nil];
|
[self lock:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,12 +408,18 @@ static OSStatus MPHotKeyHander(EventHandlerCallRef nextHandler, EventRef theEven
|
|||||||
|
|
||||||
- (IBAction)togglePreference:(id)sender {
|
- (IBAction)togglePreference:(id)sender {
|
||||||
|
|
||||||
if (sender == self.diagnosticsItem)
|
if (sender == self.diagnosticsItem) {
|
||||||
[MPConfig get].sendInfo = @(self.diagnosticsItem.state != NSOnState);
|
BOOL sendInfo = self.diagnosticsItem.state != NSOnState;
|
||||||
|
[[Countly sharedInstance] recordEvent:@"sendInfoDecided" segmentation:@{
|
||||||
|
@"from": @"preferences",
|
||||||
|
@"sendInfo": [@(sendInfo) description],
|
||||||
|
}];
|
||||||
|
[MPMacConfig get].sendInfo = @(sendInfo);
|
||||||
|
}
|
||||||
if (sender == self.hidePasswordsItem)
|
if (sender == self.hidePasswordsItem)
|
||||||
[MPConfig get].hidePasswords = @(self.hidePasswordsItem.state != NSOnState);
|
[MPMacConfig get].hidePasswords = @(self.hidePasswordsItem.state != NSOnState);
|
||||||
if (sender == self.rememberPasswordItem)
|
if (sender == self.rememberPasswordItem)
|
||||||
[MPConfig get].rememberLogin = @(self.rememberPasswordItem.state != NSOnState);
|
[MPMacConfig get].rememberLogin = @(self.rememberPasswordItem.state != NSOnState);
|
||||||
if (sender == self.openAtLoginItem)
|
if (sender == self.openAtLoginItem)
|
||||||
[self setLoginItemEnabled:self.openAtLoginItem.state != NSOnState];
|
[self setLoginItemEnabled:self.openAtLoginItem.state != NSOnState];
|
||||||
if (sender == self.showFullScreenItem) {
|
if (sender == self.showFullScreenItem) {
|
||||||
@ -760,26 +766,26 @@ static OSStatus MPHotKeyHander(EventHandlerCallRef nextHandler, EventRef theEven
|
|||||||
|
|
||||||
PearlMainQueue( ^{
|
PearlMainQueue( ^{
|
||||||
if (!key || [key isEqualToString:NSStringFromSelector( @selector( sendInfo ) )])
|
if (!key || [key isEqualToString:NSStringFromSelector( @selector( sendInfo ) )])
|
||||||
self.diagnosticsItem.state = [[MPConfig get].sendInfo boolValue]? NSOnState: NSOffState;
|
self.diagnosticsItem.state = [[MPMacConfig get].sendInfo boolValue]? NSOnState: NSOffState;
|
||||||
if (!key || [key isEqualToString:NSStringFromSelector( @selector( hidePasswords ) )])
|
if (!key || [key isEqualToString:NSStringFromSelector( @selector( hidePasswords ) )])
|
||||||
self.hidePasswordsItem.state = [[MPConfig get].hidePasswords boolValue]? NSOnState: NSOffState;
|
self.hidePasswordsItem.state = [[MPMacConfig get].hidePasswords boolValue]? NSOnState: NSOffState;
|
||||||
if (!key || [key isEqualToString:NSStringFromSelector( @selector( rememberLogin ) )])
|
if (!key || [key isEqualToString:NSStringFromSelector( @selector( rememberLogin ) )])
|
||||||
self.rememberPasswordItem.state = [[MPConfig get].rememberLogin boolValue]? NSOnState: NSOffState;
|
self.rememberPasswordItem.state = [[MPMacConfig get].rememberLogin boolValue]? NSOnState: NSOffState;
|
||||||
} );
|
} );
|
||||||
|
|
||||||
// Send info
|
// Send info
|
||||||
NSArray *countlyFeatures = @[
|
NSArray *countlyFeatures = @[
|
||||||
CLYConsentSessions, CLYConsentEvents, CLYConsentUserDetails, CLYConsentCrashReporting, CLYConsentViewTracking, CLYConsentStarRating
|
CLYConsentSessions, CLYConsentEvents, CLYConsentUserDetails, CLYConsentCrashReporting, CLYConsentViewTracking, CLYConsentStarRating
|
||||||
];
|
];
|
||||||
if ([[MPConfig get].sendInfo boolValue]) {
|
if ([[MPMacConfig get].sendInfo boolValue]) {
|
||||||
[Countly.sharedInstance giveConsentForFeatures:countlyFeatures];
|
[Countly.sharedInstance giveConsentForFeatures:countlyFeatures];
|
||||||
if ([PearlLogger get].printLevel > PearlLogLevelInfo)
|
if ([PearlLogger get].printLevel > PearlLogLevelInfo)
|
||||||
[PearlLogger get].printLevel = PearlLogLevelInfo;
|
[PearlLogger get].printLevel = PearlLogLevelInfo;
|
||||||
|
|
||||||
[SentrySDK.currentHub getClient].options.enabled = @YES;
|
[SentrySDK.currentHub getClient].options.enabled = @YES;
|
||||||
[SentrySDK configureScope:^(SentryScope *scope) {
|
[SentrySDK configureScope:^(SentryScope *scope) {
|
||||||
[scope setExtraValue:[MPConfig get].rememberLogin forKey:@"rememberLogin"];
|
[scope setExtraValue:[MPMacConfig get].rememberLogin forKey:@"rememberLogin"];
|
||||||
[scope setExtraValue:[MPConfig get].sendInfo forKey:@"sendInfo"];
|
[scope setExtraValue:[MPMacConfig get].sendInfo forKey:@"sendInfo"];
|
||||||
[scope setExtraValue:[MPMacConfig get].fullScreen forKey:@"fullScreen"];
|
[scope setExtraValue:[MPMacConfig get].fullScreen forKey:@"fullScreen"];
|
||||||
[scope setExtraValue:[PearlConfig get].firstRun forKey:@"firstRun"];
|
[scope setExtraValue:[PearlConfig get].firstRun forKey:@"firstRun"];
|
||||||
[scope setExtraValue:[PearlConfig get].launchCount forKey:@"launchCount"];
|
[scope setExtraValue:[PearlConfig get].launchCount forKey:@"launchCount"];
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
||||||
#import <QuartzCore/QuartzCore.h>
|
#import <QuartzCore/QuartzCore.h>
|
||||||
|
#import <Countly/Countly.h>
|
||||||
#import "MPSitesWindowController.h"
|
#import "MPSitesWindowController.h"
|
||||||
#import "MPMacAppDelegate.h"
|
#import "MPMacAppDelegate.h"
|
||||||
#import "MPAppDelegate_Store.h"
|
#import "MPAppDelegate_Store.h"
|
||||||
@ -42,13 +43,35 @@
|
|||||||
prof_rewind( @"replaceFonts" );
|
prof_rewind( @"replaceFonts" );
|
||||||
|
|
||||||
PearlAddNotificationObserver( NSWindowDidBecomeKeyNotification, self.window, [NSOperationQueue mainQueue],
|
PearlAddNotificationObserver( NSWindowDidBecomeKeyNotification, self.window, [NSOperationQueue mainQueue],
|
||||||
^(id host, NSNotification *note) {
|
(^(id host, NSNotification *note) {
|
||||||
prof_new( @"didBecomeKey" );
|
prof_new( @"didBecomeKey" );
|
||||||
[self.window makeKeyAndOrderFront:nil];
|
[self.window makeKeyAndOrderFront:nil];
|
||||||
prof_rewind( @"fadeIn" );
|
prof_rewind( @"fadeIn" );
|
||||||
[self updateUser];
|
[self updateUser];
|
||||||
prof_finish( @"updateUser" );
|
prof_rewind( @"updateUser" );
|
||||||
} );
|
|
||||||
|
if (![[MPMacConfig get].sendInfoDecided boolValue]) {
|
||||||
|
NSAlert *alert = [NSAlert new];
|
||||||
|
alert.messageText = @"Welcome to Master Password!";
|
||||||
|
alert.informativeText = @"We want you to have a top-notch experience.\n"
|
||||||
|
@"Using diagnostics, we ensure the application keeps working as designed for you.\n"
|
||||||
|
@"\n"
|
||||||
|
@"We look out for application bugs, runtime issues, sudden crashes & usage counters.\n"
|
||||||
|
@"Needless to say, diagnostics are always scrubbed and personal details will never leave your device.";
|
||||||
|
[alert addButtonWithTitle:@"Thanks!"];
|
||||||
|
[alert addButtonWithTitle:@"Disable"];
|
||||||
|
[alert beginSheetModalForWindow:self.window completionHandler:^(NSModalResponse returnCode) {
|
||||||
|
BOOL sendInfo = returnCode != NSAlertSecondButtonReturn;
|
||||||
|
[[Countly sharedInstance] recordEvent:@"sendInfoDecided" segmentation:@{
|
||||||
|
@"from": @"initial",
|
||||||
|
@"sendInfo": [@(sendInfo) description],
|
||||||
|
}];
|
||||||
|
[MPMacConfig get].sendInfo = @(sendInfo);
|
||||||
|
[MPMacConfig get].sendInfoDecided = @(YES);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
prof_finish( @"sendInfoDecided" );
|
||||||
|
}) );
|
||||||
PearlAddNotificationObserver( NSWindowWillCloseNotification, self.window, [NSOperationQueue mainQueue],
|
PearlAddNotificationObserver( NSWindowWillCloseNotification, self.window, [NSOperationQueue mainQueue],
|
||||||
^(id host, NSNotification *note) {
|
^(id host, NSNotification *note) {
|
||||||
NSWindow *sheet = [self.window attachedSheet];
|
NSWindow *sheet = [self.window attachedSheet];
|
||||||
|
Loading…
Reference in New Issue
Block a user