Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[stable-5.2.7] Nmc/1998 tracking #199

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion iOSClient/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
var disableSharesView: Bool = false
var documentPickerViewController: NCDocumentPickerViewController?
var timerErrorNetworking: Timer?
private var privacyProtectionWindow: UIWindow?

@objc let adjust = AdjustHelper()

var isAppRefresh: Bool = false
var isProcessingTask: Bool = false

Expand Down Expand Up @@ -173,7 +177,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
NCPasscode.shared.enableTouchFaceID()
}
}

adjust.configAdjust()
adjust.subsessionStart()
TealiumHelper.shared.start()
return true
}

Expand Down
47 changes: 47 additions & 0 deletions iOSClient/Helper/AdjustHelper.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//
// AdjustHelper.h
// Nextcloud
//
// Created by A200073704 on 17/05/23.
// Copyright © 2023 Marino Faggiana. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <Adjust.h>

NS_ASSUME_NONNULL_BEGIN

typedef enum : NSUInteger {
Login,
LoginSuccessful,
Sharing,
CreateLink,
DocumentScan,
CameraUpload,
FileUpload,
UseCamera,
Logout,
ResetsApp,
AutomaticUploadPhotosOn,
AutomaticUploadPhotosOff,
ManualBackup,
AutomaticBackup
} TriggerEvent;

@interface AdjustHelper : NSObject

@property (nonatomic, strong) NSString *yourAppToken;
@property (nonatomic, strong) NSString *environment;
@property (nonatomic, strong) ADJConfig *adjustConfig;
@property (nonatomic, strong) ADJEvent *eventLogin;
@property (nonatomic, strong) ADJEvent *event;
@property (nonatomic, assign) TriggerEvent triggerEvent;

-(void)configAdjust;
-(void)subsessionEnd;
-(void)subsessionStart;
-(void)trackLogin;
-(void)trackEvent:(TriggerEvent)event;

@end

NS_ASSUME_NONNULL_END
153 changes: 153 additions & 0 deletions iOSClient/Helper/AdjustHelper.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
//
// AdjustHelper.m
// Nextcloud
//
// Created by A200073704 on 17/05/23.
// Copyright © 2023 Marino Faggiana. All rights reserved.
//

#import "AdjustHelper.h"
//#import <AdjustSdk/AdjustSdk.h>

@implementation AdjustHelper

-(void)configAdjust {
self.yourAppToken = @"1zfaxn19pd7k";
self.environment = ADJEnvironmentProduction;
self.adjustConfig = [ADJConfig configWithAppToken:self.yourAppToken
environment:self.environment];
[self.adjustConfig setLogLevel:ADJLogLevelVerbose];
[Adjust appDidLaunch:self.adjustConfig];
}

-(void)subsessionEnd {
[Adjust trackSubsessionEnd];
}

-(void)subsessionStart {
[Adjust trackSubsessionStart];
}

- (void)trackLogin {
self.eventLogin = [ADJEvent eventWithEventToken:@"p8hl78"];
[Adjust trackEvent: self.eventLogin];
}

-(void)trackEvent:(TriggerEvent)event {
// self.event = [ADJEvent eventWithEventToken:@"gb97gb"];
BOOL track = [[NSUserDefaults standardUserDefaults] valueForKey:@"isAnalysisDataCollectionSwitchOn"];
if (!track) {
return;
}

switch(event){
case Login:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"p8hl78"];
// event = [ADJEvent eventWithEventToken:@"gb97gb"];
// self.event = [ADJEvent eventWithEventToken:@"gb97gb"];
[Adjust trackEvent:event];
}
break;
case LoginSuccessful:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"dowf81"];
// event = [ADJEvent eventWithEventToken:@"gb97gb"];
// self.event = [ADJEvent eventWithEventToken:@"gb97gb"];
[Adjust trackEvent:event];
}
break;
case Sharing:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"mbeoyd"];
[Adjust trackEvent:event];
NSLog(@"%@", [event debugDescription]);
}
// self.event = [ADJEvent eventWithEventToken:@"fqtiu7"];
break;
case CreateLink:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"29b333"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"qeyql3"];
break;
case DocumentScan:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"im963g"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"7fec8n"];
break;
case CameraUpload:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"hf9paq"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"v1g6ly"];
break;
case FileUpload:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"hsbk2m"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"4rd8r4"];
break;
case UseCamera:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"3czack"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"3czack"];
break;
case Logout:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"n5q2qu"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"g6mj9y"];
break;
case ResetsApp:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"3sj1xp"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"zi18r0"];
break;
case AutomaticUploadPhotosOn:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"5lxz6h"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"vwd9yk"];
break;
case AutomaticUploadPhotosOff:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"176496"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"e95w5t"];
break;
case ManualBackup:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"oojr4y"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"oojr4y"];
break;
case AutomaticBackup:
{
ADJEvent *event = [ADJEvent eventWithEventToken:@"7dkhkx"];
[Adjust trackEvent:event];
}
// self.event = [ADJEvent eventWithEventToken:@"7dkhkx"];
break;

default :
break;
}
// [Adjust trackEvent: self.event];
}

@end

56 changes: 56 additions & 0 deletions iOSClient/Helper/TealiumHelper.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
//
// TealiumHelper.swift
// Nextcloud
//
// Created by A200073704 on 17/05/23.
// Copyright © 2023 Marino Faggiana. All rights reserved.
//
import TealiumCore
import TealiumLifecycle
import TealiumAutotracking
import TealiumLocation
import TealiumRemoteCommands
import TealiumTagManagement
import TealiumVisitorService
import Foundation

class TealiumHelper: NSObject {
static let shared = TealiumHelper()
let config = TealiumConfig(account: "telekom",
profile: "magentacloud-app",
environment: "dev")
var tealium: Tealium?

@objc override init() {

config.batchingEnabled = true
config.logLevel = .debug

config.collectors = [Collectors.Lifecycle,
Collectors.Location,
Collectors.VisitorService]

config.dispatchers = [Dispatchers.TagManagement,
Dispatchers.RemoteCommands]

tealium = Tealium(config: config, enableCompletion: {value in
print(value)
}
)
}

func start() {
_ = TealiumHelper.shared
}

@objc func trackView(title: String, data: [String: Any]?) {
let tealView = TealiumView(title, dataLayer: data)
TealiumHelper.shared.tealium?.track(tealView)
}

@objc func trackEvent(title: String, data: [String: Any]?) {
let tealEvent = TealiumEvent(title, dataLayer: data)
TealiumHelper.shared.tealium?.track(tealEvent)
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -852,7 +852,8 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS

if isEditMode { return }
guard let metadata = NCManageDatabase.shared.getMetadataFromOcId(objectId) else { return }

TealiumHelper.shared.trackEvent(title: "magentacloud-app.filebrowser.sharing", data: ["": ""])
appDelegate.adjust.trackEvent(TriggerEvent(Sharing.rawValue))
NCActionCenter.shared.openShare(viewController: self, metadata: metadata, page: .sharing)
}

Expand Down
1 change: 1 addition & 0 deletions iOSClient/Nextcloud-Bridging-Header.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@
#import "CCUtility.h"
#import "NCPushNotification.h"
#import "NCPushNotificationEncryption.h"
#import "AdjustHelper.h"
22 changes: 21 additions & 1 deletion iOSClient/Settings/CCAdvanced.m
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,14 @@
#import "CCAdvanced.h"
#import "CCUtility.h"
#import "NCBridgeSwift.h"
#import "AdjustHelper.h"

@interface CCAdvanced ()
{
AppDelegate *appDelegate;
XLFormSectionDescriptor *sectionSize;
TealiumHelper *tealium;
AdjustHelper *adjust;
}
@end

Expand Down Expand Up @@ -278,7 +281,7 @@ - (void)viewDidLoad
self.title = NSLocalizedString(@"_advanced_", nil);
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.view.backgroundColor = UIColor.systemGroupedBackgroundColor;

adjust = [[AdjustHelper alloc] init];
self.tableView.backgroundColor = UIColor.systemGroupedBackgroundColor;

[self initializeForm];
Expand Down Expand Up @@ -378,6 +381,9 @@ - (void)clearCache:(NSString *)account
[[NCImageCache shared] createMediaCacheWithAccount:appDelegate.account withCacheSize:true];

[[NCActivityIndicator shared] stop];
tealium = [[TealiumHelper alloc] init];
[tealium trackEventWithTitle:@"magentacloud-app.settings.reset" data:nil];
[adjust trackEvent:ResetsApp];
[self calculateSize];
});
}
Expand Down Expand Up @@ -406,6 +412,17 @@ - (void)clearCacheRequest:(XLFormRowDescriptor *)sender
[self presentViewController:alertController animated:YES completion:nil];
}


- (void)clearAllCacheRequest:(XLFormRowDescriptor *)sender
{
[self deselectFormRow:sender];

[[NCActivityIndicator shared] startActivityWithBackgroundView:nil style: UIActivityIndicatorViewStyleLarge blurEffect:true];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
[self clearCache:nil];
});
}

- (void)calculateSize
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
Expand All @@ -429,6 +446,9 @@ - (void)exitNextcloud:(XLFormRowDescriptor *)sender
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:NSLocalizedString(@"_want_exit_", nil) preferredStyle:UIAlertControllerStyleActionSheet];

[alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
tealium = [[TealiumHelper alloc] init];
[tealium trackEventWithTitle:@"magentacloud-app.settings.logout" data:nil];
[adjust trackEvent:Logout];
[appDelegate resetApplication];
}]];

Expand Down
7 changes: 6 additions & 1 deletion iOSClient/Settings/CCManageAutoUpload.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@
#import "CCManageAutoUpload.h"
#import "CCUtility.h"
#import "NCBridgeSwift.h"
#import "AdjustHelper.h"

@interface CCManageAutoUpload () <NCSelectDelegate>
{
AppDelegate *appDelegate;
AdjustHelper *adjust;
TealiumHelper *tealium;
}
@end

Expand Down Expand Up @@ -191,7 +194,9 @@ - (void)viewDidLoad
self.title = NSLocalizedString(@"_settings_autoupload_", nil);
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.view.backgroundColor = UIColor.systemGroupedBackgroundColor;

adjust = [[AdjustHelper alloc] init];
[adjust configAdjust];
tealium = [[TealiumHelper alloc] init];
self.tableView.backgroundColor = UIColor.systemGroupedBackgroundColor;

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeUser) name:NCGlobal.shared.notificationCenterChangeUser object:nil];
Expand Down