Skip to content
Open
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
12 changes: 6 additions & 6 deletions packages/messaging/__tests__/MessagingTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ describe('Messaging', () => {
let id = 'id';
let autoTrack = true;
let message = new Message({id, autoTrack});
await message.setAutoTrack(false);
message.setAutoTrack(false);
expect(spy).toHaveBeenCalledWith(id, false);
});

Expand All @@ -54,7 +54,7 @@ describe('Messaging', () => {
let id = 'id';
let autoTrack = true;
let message = new Message({id, autoTrack});
await message.show();
message.show();
expect(spy).toHaveBeenCalledWith(id);
});

Expand All @@ -63,7 +63,7 @@ describe('Messaging', () => {
let id = 'id';
let autoTrack = true;
let message = new Message({id, autoTrack});
await message.dismiss(true);
message.dismiss(true);
expect(spy).toHaveBeenCalledWith(id, true);
});

Expand All @@ -74,7 +74,7 @@ describe('Messaging', () => {
let message = new Message({id, autoTrack});
let interaction = 'display';
let eventType = MessagingEdgeEventType.DISPLAY;
await message.track(interaction, eventType);
message.track(interaction, eventType);
expect(spy).toHaveBeenCalledWith(id, interaction, eventType);
});

Expand All @@ -83,7 +83,7 @@ describe('Messaging', () => {
let id = 'id';
let autoTrack = true;
let message = new Message({id, autoTrack});
await message.clear();
message.clear();
expect(spy).toHaveBeenCalledWith(id);
});

Expand All @@ -94,7 +94,7 @@ describe('Messaging', () => {
let message = new Message({id, autoTrack});
let handlerName = 'handlerName';
let handler = jest.fn();
await message.handleJavascriptMessage(handlerName, handler);
message.handleJavascriptMessage(handlerName, handler);
expect(spy).toHaveBeenCalledWith(id, handlerName);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ public void clear(final String messageId) {
}
}


@ReactMethod
public void dismiss(final String messageId) {
if (messageId != null && messageCache.get(messageId) != null) {
Expand Down
19 changes: 19 additions & 0 deletions packages/messaging/ios/src/RCTAEPMessaging.mm
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,23 @@ @interface RCT_EXTERN_MODULE (RCTAEPMessaging, RCTEventEmitter)
: (RCTPromiseResolveBlock)resolve withRejecter
: (RCTPromiseRejectBlock)reject);

RCT_EXTERN_METHOD(setAutoTrack
: (NSString *)messageId autoTrack
: (BOOL)autoTrack);

RCT_EXTERN_METHOD(show
: (NSString *)messageId);

RCT_EXTERN_METHOD(dismiss
: (NSString *)messageId suppressAutoTrack
: (BOOL)suppressAutoTrack);

RCT_EXTERN_METHOD(track
: (NSString *)messageId interaction
: (NSString *)interaction eventType
: (NSInteger)eventType);

RCT_EXTERN_METHOD(clear
: (NSString *)messageId);

@end
66 changes: 27 additions & 39 deletions packages/messaging/ios/src/RCTAEPMessaging.swift
Original file line number Diff line number Diff line change
Expand Up @@ -133,87 +133,75 @@ public class RCTAEPMessaging: RCTEventEmitter, MessagingDelegate {

/// Message Class Methods
@objc
func clearMessage(
_ id: String,
withResolver resolve: @escaping RCTPromiseResolveBlock,
withRejecter reject: @escaping RCTPromiseRejectBlock
func clear(
_ id: String
) {
let msg = messageCache[id]
if msg != nil {
messageCache.removeValue(forKey: msg!.id)
resolve(nil)
print("clear: \(id) removed")
} else {
print("clear: \(id) not found")
}
reject(Constants.CACHE_MISS, nil, nil)
}

@objc
func dismissMessage(
func dismiss(
_ id: String,
withSuppressAutoTrack suppressAutoTrack: Bool,
withResolver resolve: @escaping RCTPromiseResolveBlock,
withRejecter reject: @escaping RCTPromiseRejectBlock
suppressAutoTrack: Bool
) {
let msg = messageCache[id]
if msg != nil {
msg!.dismiss(suppressAutoTrack: suppressAutoTrack)
resolve(nil)
return
print("dismiss: \(id) to \(suppressAutoTrack)")
} else {
print("dismiss: \(id) not found")
}
reject(Constants.CACHE_MISS, nil, nil)
}

@objc
func setAutoTrack(
_ id: String,
withSuppressAutoTrack suppressAutoTrack: Bool,
withResolver resolve: @escaping RCTPromiseResolveBlock,
withRejecter reject: @escaping RCTPromiseRejectBlock
autoTrack: Bool
) {

let msg = messageCache[id]
if msg != nil {
msg!.autoTrack = suppressAutoTrack
resolve(nil)
return
if (msg != nil) {
msg!.autoTrack = autoTrack
print("setAutoTrack: \(id) to \(autoTrack)")
} else {
print("setAutoTrack: \(id) not found")
}
reject(Constants.CACHE_MISS, nil, nil)
}

@objc
private func showMessage(
_ id: String,
withResolver resolve: @escaping RCTPromiseResolveBlock,
withRejecter reject: @escaping RCTPromiseRejectBlock
private func show(
_ id: String
) {
let msg = messageCache[id]
if msg != nil {
msg!.show()
resolve(nil)
return
print("show: \(id) shown")
} else {
print("show: \(id) not found")
}
reject(Constants.CACHE_MISS, nil, nil)

}

@objc
func trackMessage(
func track(
_ id: String,
withInteraction interaction: String,
withEventType eventType: Int,
withResolver resolve: @escaping RCTPromiseResolveBlock,
withRejecter reject: @escaping RCTPromiseRejectBlock
interaction: String,
eventType: Int
) {

let msg = messageCache[id]
let eventType =
MessagingEdgeEventType.init(rawValue: eventType)
?? MessagingEdgeEventType.dismiss
if msg != nil {
msg!.track(interaction, withEdgeEventType: eventType)
resolve(nil)
return
print("track: \(id) to \(interaction) and \(eventType)")
} else {
print("track: \(id) not found")
}
reject(Constants.CACHE_MISS, nil, nil)
}

@objc
Expand Down
13 changes: 11 additions & 2 deletions packages/messaging/src/models/Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ OF ANY KIND, either express or implied. See the License for the specific languag
governing permissions and limitations under the License.
*/

import { NativeEventEmitter, NativeModules } from 'react-native';
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';

const RCTAEPMessaging = NativeModules.AEPMessaging;

Expand Down Expand Up @@ -61,7 +61,16 @@ class Message {
* of the autoTrack setting.
*/
dismiss(suppressAutoTrack?: boolean) {
RCTAEPMessaging.dismiss(this.id, suppressAutoTrack ? true : false);
// iOS message.dismiss() accepts a boolean parameter to suppress autoTrack
// but on android side, message.dismiss() does not accept any parameters
if (Platform.OS === 'android') {
RCTAEPMessaging.dismiss(this.id);
}

if (Platform.OS === 'ios') {
RCTAEPMessaging.dismiss(this.id, suppressAutoTrack ? true : false);
}

}

/**
Expand Down