Skip to content

Commit

Permalink
Merge pull request #34 from chabokpush/dev
Browse files Browse the repository at this point in the history
Dev to master for v1.1.1
  • Loading branch information
Husseinhj authored Nov 14, 2018
2 parents e8f193f + 8c64585 commit 9ce1c20
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import android.util.Log;

import com.adpdigital.push.AdpPushClient;
import com.adpdigital.push.AppState;
import com.adpdigital.push.Callback;
import com.adpdigital.push.ConnectionStatus;
import com.adpdigital.push.EventMessage;
Expand Down Expand Up @@ -378,6 +379,15 @@ public void getUserId(Promise promise) {
}
}

public void onEvent(AppState state){
if (state == AppState.REGISTERED){
WritableMap params = Arguments.createMap();

params.putBoolean("isRegister",true);
sendEvent("onRegister",params);
}
}

@ReactMethod
public void setDevelopment(Boolean devMode) {
chabok.setDevelopment(devMode);
Expand Down Expand Up @@ -538,7 +548,7 @@ public void track(String trackName, ReadableMap data) {
}

@ReactMethod
public void subscribeEvent(String eventName, final Promise promise) {
public void subscribeEvent(final String eventName, final Promise promise) {
if (TextUtils.isEmpty(eventName)) {
promise.reject(new IllegalArgumentException("eventName parameter is null or empty"));
return;
Expand All @@ -547,17 +557,25 @@ public void subscribeEvent(String eventName, final Promise promise) {
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",eventName);
sendEvent("onSubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onSubscribe", params);
}
});
}

@ReactMethod
public void subscribeEvent(String eventName, String installationId, final Promise promise) {
public void subscribeEvent(final String eventName, String installationId, final Promise promise) {
if (TextUtils.isEmpty(eventName)) {
promise.reject(new IllegalArgumentException("eventName parameter is null or empty"));
return;
Expand All @@ -569,18 +587,26 @@ public void subscribeEvent(String eventName, String installationId, final Promis
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",eventName);
sendEvent("onSubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onSubscribe", params);
}
});
}
}

@ReactMethod
public void subscribe(String channel, final Promise promise) {
public void subscribe(final String channel, final Promise promise) {
if (TextUtils.isEmpty(channel)) {
promise.reject(new IllegalArgumentException("channel parameter is null or empty"));
return;
Expand All @@ -589,17 +615,25 @@ public void subscribe(String channel, final Promise promise) {
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",channel);
sendEvent("onSubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onSubscribe", params);
}
});
}

@ReactMethod
public void unSubscribe(String channel, final Promise promise) {
public void unSubscribe(final String channel, final Promise promise) {
if (TextUtils.isEmpty(channel)) {
promise.reject(new IllegalArgumentException("channel parameter is null or empty"));
return;
Expand All @@ -608,17 +642,25 @@ public void unSubscribe(String channel, final Promise promise) {
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",channel);
sendEvent("onUnsubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onUnsubscribe", params);
}
});
}

@ReactMethod
public void unSubscribeEvent(String eventName, final Promise promise) {
public void unSubscribeEvent(final String eventName, final Promise promise) {
if (TextUtils.isEmpty(eventName)) {
promise.reject(new IllegalArgumentException("eventName parameter is null or empty"));
return;
Expand All @@ -628,17 +670,25 @@ public void unSubscribeEvent(String eventName, final Promise promise) {
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",eventName);
sendEvent("onUnsubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onUnsubscribe", params);
}
});
}

@ReactMethod
public void unSubscribeEvent(String eventName, String installationId, final Promise promise) {
public void unSubscribeEvent(final String eventName, String installationId, final Promise promise) {
if (TextUtils.isEmpty(eventName)) {
promise.reject(new IllegalArgumentException("eventName parameter is null or empty"));
return;
Expand All @@ -650,11 +700,19 @@ public void unSubscribeEvent(String eventName, String installationId, final Prom
@Override
public void onSuccess(Object value) {
promise.resolve(true);
WritableMap params = Arguments.createMap();

params.putString("name",eventName);
sendEvent("onUnsubscribe", params);
}

@Override
public void onFailure(Throwable throwable) {
promise.reject(throwable);
WritableMap params = Arguments.createMap();

params.putString("error",throwable.getMessage());
sendEvent("onUnsubscribe", params);
}
});
}
Expand Down
3 changes: 3 additions & 0 deletions history.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
## History

### v1.1.1 (14/11/2018)
- Add `onSubscribe` and `onUnsubscribe` listener for getting subscribe and unsubscribe status.

### v1.1.0 (12/11/2018)
- Update Chabok android SDK version to [v2.14.0](https://github.com/chabokpush/chabok-client-android/releases/tag/v2.14.0)
- Update Chabok iOS SDK version to [v1.18.0](https://github.com/chabokpush/chabok-client-ios/releases/tag/v1.18.0)
Expand Down
47 changes: 34 additions & 13 deletions ios/AdpPushClient.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,12 @@ @implementation AdpPushClient
rejecter:(RCTPromiseRejectBlock)reject) {
NSArray *appIds = [appId componentsSeparatedByString:@"/"];
self.appId = appIds.firstObject;
[PushClientManager.defaultManager addDelegate:self];
[PushClientManager.defaultManager application:UIApplication.sharedApplication
didFinishLaunchingWithOptions:nil];

BOOL state = [PushClientManager.defaultManager registerApplication:self.appId
apiKey:apiKey
userName:username
password:password];

if (state) {
RCTLogInfo(@"Initilized sucessfully");
resolve(@{@"result":@"Initilized sucessfully"});
Expand All @@ -50,6 +48,9 @@ @implementation AdpPushClient
}];
reject(@"400",@"Could not init chabok parameters",error);
}
[PushClientManager.defaultManager addDelegate:self];
[PushClientManager.defaultManager application:UIApplication.sharedApplication
didFinishLaunchingWithOptions:nil];
}

RCT_EXPORT_METHOD(initializeApp:(NSString *) appName options:(NSDictionary *) options cbk:(RCTResponseSenderBlock) cbk) {
Expand All @@ -58,13 +59,9 @@ @implementation AdpPushClient
RCTLogInfo(@"Option parameter is null");
cbk(@[@{@"result":@"Option parameter is null"}]);
} else {

BOOL devMode = [[options valueForKey:@"isDev"] boolValue];

[PushClientManager setDevelopment:devMode];
PushClientManager.defaultManager.enableLog = YES;
[PushClientManager.defaultManager addDelegate:self];


NSString *appId = [options valueForKey:@"appId"];
NSString *apiKey = [options valueForKey:@"apiKey"];
NSString *username = [options valueForKey:@"username"];
Expand All @@ -80,6 +77,7 @@ @implementation AdpPushClient
} rejecter:^(NSString *code, NSString *message, NSError *error) {
cbk(@[@{@"error":message}]);
}];

}
}

Expand Down Expand Up @@ -121,14 +119,23 @@ @implementation AdpPushClient
chnl = channels;
}
BOOL state = [PushClientManager.defaultManager registerUser:userId
channels:chnl];
channels:chnl registrationHandler:^(BOOL isRegistered, NSString *userId, NSError *error) {
RCTLogInfo(@"isRegistered : %d userId : %@ error : %@",isRegistered, userId, error );
if (error) {
[self sendEventWithName:@"onRegister" body:@{@"error":error,
@"isRegister":@(NO)
}];
} else {
[self sendEventWithName:@"onRegister" body:@{@"isRegister":@(isRegistered)}];
}
}];
if (state) {
RCTLogInfo(@"@@@@@@@@@@@@@@@@@ Registered to chabok with channels");
RCTLogInfo(@"Registered to chabok with channels");
} else {
RCTLogInfo(@"@@@@@@@@@@@@@@@@@ Fail to registered to chabok");
RCTLogInfo(@"Fail to registered to chabok");
}
} else {
RCTLogInfo(@"@@@@@@@@@@@@@@@@@ Could not register userId to chabok with channels");
RCTLogInfo(@"Could not register userId to chabok with channels");
}
}

Expand Down Expand Up @@ -298,7 +305,7 @@ @implementation AdpPushClient

#pragma mark - chabok delegate methods
- (NSArray<NSString *> *)supportedEvents{
return @[@"connectionStatus",@"onEvent",@"onMessage", @"ChabokMessageReceived"];
return @[@"connectionStatus",@"onEvent",@"onMessage", @"ChabokMessageReceived", @"onSubscribe", @"onUnsubscribe", @"onRegister"];
}

-(void) pushClientManagerDidReceivedMessage:(PushClientMessage *)message{
Expand Down Expand Up @@ -344,6 +351,20 @@ -(void) pushClientManagerDidChangedServerConnectionState {
[self sendEventWithName:@"connectionStatus" body:connectionState];
}

-(void) pushClientManagerDidSubscribed:(NSString *)channel{
[self sendEventWithName:@"onSubscribe" body:@{@"name":channel}];
}
-(void) pushClientManagerDidFailInSubscribe:(NSError *)error{
[self sendEventWithName:@"onSubscribe" body:@{@"error":error}];
}

-(void) pushClientManagerDidUnsubscribed:(NSString *)channel{
[self sendEventWithName:@"onUnsubscribe" body:@{@"name":channel}];
}
-(void) pushClientManagerDidFailInUnsubscribe:(NSError *)error{
[self sendEventWithName:@"onUnsubscribe" body:@{@"error":error}];
}

- (void)invalidate {
self.appId = nil;
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-chabok",
"version": "1.1.0",
"version": "1.1.1",
"description": "React native wrapper for Chabok SDK",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
Expand Down

0 comments on commit 9ce1c20

Please sign in to comment.