Skip to content

Commit

Permalink
refactor display unit
Browse files Browse the repository at this point in the history
  • Loading branch information
Aditi3 committed Dec 10, 2019
1 parent 02691e1 commit eef7b45
Show file tree
Hide file tree
Showing 17 changed files with 353 additions and 354 deletions.
2 changes: 1 addition & 1 deletion CleverTap-iOS-SDK.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ s.ios.dependency 'SDWebImage', '~> 5.1'
s.ios.resources = 'CleverTapSDK/**/*.{png,xib}', 'CleverTapSDK/**/*.xcdatamodeld'
s.ios.deployment_target = '8.0'
s.ios.source_files = 'CleverTapSDK/**/*.{h,m}'
s.ios.public_header_files = 'CleverTapSDK/CleverTap.h', 'CleverTapSDK/CleverTap+SSLPinning.h','CleverTapSDK/CleverTap+Inbox.h', 'CleverTapSDK/CleverTapInstanceConfig.h', 'CleverTapSDK/CleverTapBuildInfo.h', 'CleverTapSDK/CleverTapEventDetail.h', 'CleverTapSDK/CleverTapInAppNotificationDelegate.h', 'CleverTapSDK/CleverTapSyncDelegate.h', 'CleverTapSDK/CleverTapTrackedViewController.h', 'CleverTapSDK/CleverTapUTMDetail.h', 'CleverTapSDK/CleverTapJSInterface.h', 'CleverTapSDK/CleverTap+ABTesting.h', 'CleverTapSDK/CleverTap+AdUnit.h'
s.ios.public_header_files = 'CleverTapSDK/CleverTap.h', 'CleverTapSDK/CleverTap+SSLPinning.h','CleverTapSDK/CleverTap+Inbox.h', 'CleverTapSDK/CleverTapInstanceConfig.h', 'CleverTapSDK/CleverTapBuildInfo.h', 'CleverTapSDK/CleverTapEventDetail.h', 'CleverTapSDK/CleverTapInAppNotificationDelegate.h', 'CleverTapSDK/CleverTapSyncDelegate.h', 'CleverTapSDK/CleverTapTrackedViewController.h', 'CleverTapSDK/CleverTapUTMDetail.h', 'CleverTapSDK/CleverTapJSInterface.h', 'CleverTapSDK/CleverTap+ABTesting.h', 'CleverTapSDK/CleverTap+DisplayUnit.h'
s.tvos.deployment_target = '9.0'
s.tvos.source_files = 'CleverTapSDK/*.{h,m}'
s.tvos.exclude_files = 'CleverTapSDK/CleverTapJSInterface.{h,m}'
Expand Down
40 changes: 20 additions & 20 deletions CleverTapSDK.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
objects = {

/* Begin PBXBuildFile section */
0701E95C2372BA250034AAC2 /* CleverTap+AdUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0701E95A2372BA250034AAC2 /* CleverTap+AdUnit.h */; settings = {ATTRIBUTES = (Public, ); }; };
0701E9622372C1950034AAC2 /* CTAdUnitController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0701E9602372C1950034AAC2 /* CTAdUnitController.h */; };
0701E9632372C1950034AAC2 /* CTAdUnitController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E9612372C1950034AAC2 /* CTAdUnitController.m */; };
0701E9652372DE9C0034AAC2 /* CleverTapAdUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E9642372DE9C0034AAC2 /* CleverTapAdUnit.m */; };
0701E975237A9A760034AAC2 /* CleverTapAdUnitContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E973237A9A760034AAC2 /* CleverTapAdUnitContent.m */; };
0701E95C2372BA250034AAC2 /* CleverTap+DisplayUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0701E95A2372BA250034AAC2 /* CleverTap+DisplayUnit.h */; settings = {ATTRIBUTES = (Public, ); }; };
0701E9622372C1950034AAC2 /* CTDisplayUnitController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0701E9602372C1950034AAC2 /* CTDisplayUnitController.h */; };
0701E9632372C1950034AAC2 /* CTDisplayUnitController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E9612372C1950034AAC2 /* CTDisplayUnitController.m */; };
0701E9652372DE9C0034AAC2 /* CleverTapDisplayUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E9642372DE9C0034AAC2 /* CleverTapDisplayUnit.m */; };
0701E975237A9A760034AAC2 /* CleverTapDisplayUnitContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0701E973237A9A760034AAC2 /* CleverTapDisplayUnitContent.m */; };
070229A8220831CB0093CA41 /* ct_default_landscape_image.png in Resources */ = {isa = PBXBuildFile; fileRef = 070229A6220831CB0093CA41 /* ct_default_landscape_image.png */; };
070229A9220831CB0093CA41 /* ct_default_video.png in Resources */ = {isa = PBXBuildFile; fileRef = 070229A7220831CB0093CA41 /* ct_default_video.png */; };
070229AD22084B0B0093CA41 /* ct_default_portrait_image.png in Resources */ = {isa = PBXBuildFile; fileRef = 070229AC22084B0B0093CA41 /* ct_default_portrait_image.png */; };
Expand Down Expand Up @@ -354,11 +354,11 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
0701E95A2372BA250034AAC2 /* CleverTap+AdUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CleverTap+AdUnit.h"; sourceTree = "<group>"; };
0701E9602372C1950034AAC2 /* CTAdUnitController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CTAdUnitController.h; sourceTree = "<group>"; };
0701E9612372C1950034AAC2 /* CTAdUnitController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CTAdUnitController.m; sourceTree = "<group>"; };
0701E9642372DE9C0034AAC2 /* CleverTapAdUnit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CleverTapAdUnit.m; sourceTree = "<group>"; };
0701E973237A9A760034AAC2 /* CleverTapAdUnitContent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CleverTapAdUnitContent.m; sourceTree = "<group>"; };
0701E95A2372BA250034AAC2 /* CleverTap+DisplayUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CleverTap+DisplayUnit.h"; sourceTree = "<group>"; };
0701E9602372C1950034AAC2 /* CTDisplayUnitController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CTDisplayUnitController.h; sourceTree = "<group>"; };
0701E9612372C1950034AAC2 /* CTDisplayUnitController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CTDisplayUnitController.m; sourceTree = "<group>"; };
0701E9642372DE9C0034AAC2 /* CleverTapDisplayUnit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CleverTapDisplayUnit.m; sourceTree = "<group>"; };
0701E973237A9A760034AAC2 /* CleverTapDisplayUnitContent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CleverTapDisplayUnitContent.m; sourceTree = "<group>"; };
070229A6220831CB0093CA41 /* ct_default_landscape_image.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ct_default_landscape_image.png; sourceTree = "<group>"; };
070229A7220831CB0093CA41 /* ct_default_video.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ct_default_video.png; sourceTree = "<group>"; };
070229AC22084B0B0093CA41 /* ct_default_portrait_image.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ct_default_portrait_image.png; sourceTree = "<group>"; };
Expand Down Expand Up @@ -672,17 +672,17 @@
0701E95E2372BC550034AAC2 /* controllers */ = {
isa = PBXGroup;
children = (
0701E9602372C1950034AAC2 /* CTAdUnitController.h */,
0701E9612372C1950034AAC2 /* CTAdUnitController.m */,
0701E9602372C1950034AAC2 /* CTDisplayUnitController.h */,
0701E9612372C1950034AAC2 /* CTDisplayUnitController.m */,
);
path = controllers;
sourceTree = "<group>";
};
0701E95F2372C0970034AAC2 /* models */ = {
isa = PBXGroup;
children = (
0701E9642372DE9C0034AAC2 /* CleverTapAdUnit.m */,
0701E973237A9A760034AAC2 /* CleverTapAdUnitContent.m */,
0701E9642372DE9C0034AAC2 /* CleverTapDisplayUnit.m */,
0701E973237A9A760034AAC2 /* CleverTapDisplayUnitContent.m */,
);
path = models;
sourceTree = "<group>";
Expand Down Expand Up @@ -1073,7 +1073,7 @@
D0CACF8A20B890EA00A02327 /* CleverTap+SSLPinning.h */,
07B9454F219EA38F00D4C542 /* CleverTap+Inbox.h */,
07B8757C22E983A200328982 /* CleverTap+ABTesting.h */,
0701E95A2372BA250034AAC2 /* CleverTap+AdUnit.h */,
0701E95A2372BA250034AAC2 /* CleverTap+DisplayUnit.h */,
D01DBF25207FCEFB00E8F1B0 /* CleverTapInstanceConfigPrivate.h */,
D01A0892207EC2D400423D6F /* CleverTapInstanceConfig.h */,
D01A0893207EC2D400423D6F /* CleverTapInstanceConfig.m */,
Expand Down Expand Up @@ -1229,7 +1229,7 @@
07B8753322E982F400328982 /* CTWebSocket.h in Headers */,
07D8C08B21DDEC54006F5A1B /* CTCarouselImageView.h in Headers */,
071EB515217F6427008F0FAB /* CTInterstitialViewController.h in Headers */,
0701E9622372C1950034AAC2 /* CTAdUnitController.h in Headers */,
0701E9622372C1950034AAC2 /* CTDisplayUnitController.h in Headers */,
0797132F21A2F09A0011C9A3 /* CTSwipeView.h in Headers */,
07B8757022E982F400328982 /* NSInvocation+CTHelper.h in Headers */,
071EB4F8217F6427008F0FAB /* CTInterstitialImageViewController.h in Headers */,
Expand Down Expand Up @@ -1259,7 +1259,7 @@
D0596EFA208A6A9000A80753 /* CTSwizzle.h in Headers */,
071EB508217F6427008F0FAB /* CTBaseHeaderFooterViewController.h in Headers */,
D0A84AD8209135D400191B1F /* CTPreferences.h in Headers */,
0701E95C2372BA250034AAC2 /* CleverTap+AdUnit.h in Headers */,
0701E95C2372BA250034AAC2 /* CleverTap+DisplayUnit.h in Headers */,
071EB4FB217F6427008F0FAB /* CTInAppDisplayViewController.h in Headers */,
07B8753922E982F400328982 /* CTABTestEditorDeviceInfoMessageResponse.h in Headers */,
D0A6626D20801E7F00B403F3 /* CTDeviceInfo.h in Headers */,
Expand Down Expand Up @@ -1517,7 +1517,7 @@
071EB4CD217F6427008F0FAB /* CTInAppUtils.m in Sources */,
D0CACF9120B8A44C00A02327 /* CTCertificatePinning.m in Sources */,
D033FB84208FE51200B4390F /* CTUtils.m in Sources */,
0701E975237A9A760034AAC2 /* CleverTapAdUnitContent.m in Sources */,
0701E975237A9A760034AAC2 /* CleverTapDisplayUnitContent.m in Sources */,
07B8757B22E982F400328982 /* CTABTestController.m in Sources */,
D0405B4722050C5200D64EC3 /* CTInboxUtils.m in Sources */,
071EB50B217F6427008F0FAB /* CTAVPlayerControlsViewController.m in Sources */,
Expand All @@ -1535,7 +1535,7 @@
07B8756E22E982F400328982 /* CTEditorSession.m in Sources */,
07B8756522E982F400328982 /* CTNSDictionaryFromNSAttributedStringValueTransformer.m in Sources */,
07B8756322E982F400328982 /* CTNSDictionaryFromCGSizeValueTransformer.m in Sources */,
0701E9632372C1950034AAC2 /* CTAdUnitController.m in Sources */,
0701E9632372C1950034AAC2 /* CTDisplayUnitController.m in Sources */,
07B8754222E982F400328982 /* CTABTestEditorVarsMessageRequest.m in Sources */,
D0213D4E207D905800FE5740 /* CleverTapTrackedViewController.m in Sources */,
07B8756722E982F400328982 /* CTCGFloatFromNSNumberValueTransformer.m in Sources */,
Expand Down Expand Up @@ -1593,7 +1593,7 @@
07B8755822E982F400328982 /* CTPropertyDescription.m in Sources */,
071EB4C8217F6427008F0FAB /* CTDismissButton.m in Sources */,
07B8756822E982F400328982 /* CTNSDictionaryFromCATransform3DValueTransformer.m in Sources */,
0701E9652372DE9C0034AAC2 /* CleverTapAdUnit.m in Sources */,
0701E9652372DE9C0034AAC2 /* CleverTapDisplayUnit.m in Sources */,
072F9E3E21B1368000BC6313 /* CTInboxIconMessageCell.m in Sources */,
071EB4D8217F6427008F0FAB /* CTHalfInterstitialImageViewController.m in Sources */,
07B8757122E982F400328982 /* CTEditorImageCache.m in Sources */,
Expand Down
25 changes: 0 additions & 25 deletions CleverTapSDK/AdUnit/controllers/CTAdUnitController.h

This file was deleted.

53 changes: 0 additions & 53 deletions CleverTapSDK/AdUnit/controllers/CTAdUnitController.m

This file was deleted.

25 changes: 25 additions & 0 deletions CleverTapSDK/AdUnit/controllers/CTDisplayUnitController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#import <Foundation/Foundation.h>
#import "CleverTap+DisplayUnit.h"

@protocol CTDisplayUnitDelegate <NSObject>
@required
- (void)displayUnitsDidUpdate;
@end

@interface CTDisplayUnitController : NSObject

@property (nonatomic, assign, readonly) BOOL isInitialized;
@property (nonatomic, copy, readonly) NSArray <CleverTapDisplayUnit *> * _Nullable displayUnits;

@property (nonatomic, weak) id<CTDisplayUnitDelegate> _Nullable delegate;

- (instancetype _Nullable ) init __unavailable;

// blocking, call off main thread
- (instancetype _Nullable)initWithAccountId:(NSString *_Nonnull)accountId
guid:(NSString *_Nonnull)guid;

- (void)updateDisplayUnits:(NSArray<NSDictionary*> *_Nullable)displayUnits;

@end

53 changes: 53 additions & 0 deletions CleverTapSDK/AdUnit/controllers/CTDisplayUnitController.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#import "CTDisplayUnitController.h"
#import "CTPreferences.h"

@interface CTDisplayUnitController() {
}

@property (nonatomic, copy, readonly) NSString *accountId;
@property (atomic, copy) NSString *guid;

@property (nonatomic, copy, readwrite) NSArray *displayUnits;

@end

@implementation CTDisplayUnitController

- (instancetype)initWithAccountId:(NSString *)accountId guid:(NSString *)guid {
self = [super init];
if (self) {
_isInitialized = YES;
_accountId = accountId;
_guid = guid;
}
return self;
}

- (void)updateDisplayUnits:(NSArray<NSDictionary *> *)displayUnits {
[self _updateDisplayUnits:displayUnits];
}

// be sure to call off the main thread
- (void)_updateDisplayUnits:(NSArray<NSDictionary*> *)displayUnits {
NSMutableArray *units = [NSMutableArray new];
NSMutableArray *tempArray = [displayUnits mutableCopy];
for (NSDictionary *obj in tempArray) {
CleverTapDisplayUnit *displayUnit = [[CleverTapDisplayUnit alloc] initWithJSON:obj];
[units addObject:displayUnit];
}
_displayUnits = units;
[self notifyUpdate];
}

- (NSArray *)displayUnits {
if (!self.isInitialized) return nil;
return _displayUnits;
}

- (void)notifyUpdate {
if (self.delegate && [self.delegate respondsToSelector:@selector(displayUnitsDidUpdate)]) {
[self.delegate displayUnitsDidUpdate];
}
}

@end
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#import "CleverTap+AdUnit.h"
#import "CleverTap+DisplayUnit.h"
#import "CTConstants.h"

@implementation CleverTapAdUnit
@implementation CleverTapDisplayUnit

- (instancetype)initWithJSON:(NSDictionary *)json {
if (self = [super init]) {
Expand All @@ -10,9 +10,9 @@ - (instancetype)initWithJSON:(NSDictionary *)json {

NSString *wzrkId = json[@"wzrk_id"];
if (wzrkId) {
_adID = wzrkId;
_unitID = wzrkId;
} else {
_adID = @"0_0";
_unitID= @"0_0";
}

NSString *type = json[@"type"];
Expand All @@ -29,18 +29,18 @@ - (instancetype)initWithJSON:(NSDictionary *)json {
if (!customExtras) customExtras = [NSDictionary new];
_customExtras = customExtras;

NSMutableArray<CleverTapAdUnitContent *> *contentList = [NSMutableArray new];
NSArray *adUnitContent = json[@"content"];
if (adUnitContent) {
for (NSDictionary *obj in adUnitContent) {
CleverTapAdUnitContent *content = [[CleverTapAdUnitContent alloc] initWithJSON:obj];
NSMutableArray<CleverTapDisplayUnitContent *> *contentList = [NSMutableArray new];
NSArray *displayUnitContent = json[@"content"];
if (displayUnitContent) {
for (NSDictionary *obj in displayUnitContent) {
CleverTapDisplayUnitContent *content = [[CleverTapDisplayUnitContent alloc] initWithJSON:obj];
[contentList addObject:content];
}
}
_content = contentList;

} @catch (NSException *e) {
CleverTapLogStaticDebug(@"Error intitializing CleverTapAdUnit: %@", e.reason);
CleverTapLogStaticDebug(@"Error intitializing CleverTapDisplayUnit: %@", e.reason);
return nil;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#import "CleverTap+AdUnit.h"
#import "CleverTap+DisplayUnit.h"
#import "CTConstants.h"

@implementation CleverTapAdUnitContent
@implementation CleverTapDisplayUnitContent

- (instancetype)initWithJSON:(NSDictionary *)jsonObject {
if (self = [super init]) {
Expand Down Expand Up @@ -39,7 +39,7 @@ - (instancetype)initWithJSON:(NSDictionary *)jsonObject {
}
}
} @catch (NSException *e) {
CleverTapLogStaticDebug(@"Error intitializing CleverTapAdUnitContent: %@", e.reason);
CleverTapLogStaticDebug(@"Error intitializing CleverTapDisplayUnitContent: %@", e.reason);
return nil;
}
}
Expand Down
2 changes: 1 addition & 1 deletion CleverTapSDK/CTConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ extern NSString *const kCTNotifViewedApiDomain;
#define CLTAP_INAPP_NOTIF_SHOW_CLOSE @"sc"
#define CLTAP_INAPP_JSON_RESPONSE_KEY @"inapp_notifs"
#define CLTAP_INBOX_MSG_JSON_RESPONSE_KEY @"inbox_notifs"
#define CLTAP_AD_UNIT_JSON_RESPONSE_KEY @"adUnit_notifs"
#define CLTAP_DISPLAY_UNIT_JSON_RESPONSE_KEY @"adUnit_notifs"
#define CLTAP_PREFS_INAPP_KEY @"inapp_notifs"
#define CLTAP_AB_EXP_JSON_RESPONSE_KEY @"ab_exps"
#define CLTAP_INAPP_CLOSE_IV_WIDTH 40
Expand Down
6 changes: 3 additions & 3 deletions CleverTapSDK/CTEventBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
@class CTValidationResult;
@class CTInAppNotification;
@class CleverTapInboxMessage;
@class CleverTapAdUnit;
@class CleverTapDisplayUnit;

@interface CTEventBuilder : NSObject

Expand All @@ -28,8 +28,8 @@
andQueryParameters:(NSDictionary * _Nullable)params
completionHandler:(void(^ _Nonnull)(NSDictionary * _Nullable event, NSArray<CTValidationResult*> * _Nullable errors))completion;

+ (void)buildAdViewStateEvent:(BOOL)clicked
forAdUnit:(CleverTapAdUnit * _Nonnull)adUnit
+ (void)buildDisplayViewStateEvent:(BOOL)clicked
forDisplayUnit:(CleverTapDisplayUnit * _Nonnull)displayUnit
andQueryParameters:(NSDictionary * _Nullable)params
completionHandler:(void(^ _Nonnull)(NSDictionary * _Nullable event, NSArray<CTValidationResult*> * _Nullable errors))completion;

Expand Down
Loading

0 comments on commit eef7b45

Please sign in to comment.