Skip to content

Commit f75ecd9

Browse files
committed
Calling callback with send (WIP)
1 parent 78b5ae9 commit f75ecd9

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

android/src/main/java/io/fullstack/firestack/FirestackCloudMessaging.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ public void unsubscribeFromTopic(String topic, final Callback callback) {
119119
}
120120

121121
private void initMessageHandler() {
122+
Log.d(TAG, "Firestack initMessageHandler called");
122123
getReactApplicationContext().registerReceiver(new BroadcastReceiver() {
123124
@Override
124125
public void onReceive(Context context, Intent intent) {
@@ -154,10 +155,10 @@ public void onReceive(Context context, Intent intent) {
154155
}
155156

156157
@ReactMethod
157-
public void send(String senderId, Integer messageId, String messageType, ReadableMap params) {
158+
public void send(String senderId, String messageId, String messageType, ReadableMap params, final Callback callback) {
158159
FirebaseMessaging fm = FirebaseMessaging.getInstance();
159160
RemoteMessage.Builder remoteMessage = new RemoteMessage.Builder(senderId);
160-
remoteMessage.setMessageId(messageId.toString());
161+
remoteMessage.setMessageId(messageId);
161162
remoteMessage.setMessageType(messageType);
162163
ReadableMapKeySetIterator iterator = params.keySetIterator();
163164
while (iterator.hasNextKey()) {
@@ -169,7 +170,18 @@ public void send(String senderId, Integer messageId, String messageType, Readabl
169170
Log.d(TAG, "Firebase send: " + params.getString(key));
170171
}
171172
}
172-
fm.send(remoteMessage.build());
173+
try {
174+
fm.send(remoteMessage.build());
175+
WritableMap res = Arguments.createMap();
176+
res.putString("status", "success");
177+
callback.invoke(null, res);
178+
} catch(Exception e) {
179+
Log.e(TAG, "Error sending message", e);
180+
WritableMap error = Arguments.createMap();
181+
error.putString("code", e.toString());
182+
error.putString("message", e.toString());
183+
callback.invoke(error);
184+
}
173185
}
174186

175187
private void initSendHandler() {

lib/modules/cloudmessaging.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ export class CloudMessaging extends Base {
1515
this.log.info('getToken for cloudMessaging');
1616
return promisify('getToken', FirestackCloudMessaging)();
1717
}
18-
send(senderId,messageId,messageType,msg){
19-
FirestackCloudMessaging.send(senderId,messageId,messageType,msg);
18+
send(senderId, messageId, messageType, msg){
19+
return promisify('send', FirestackCloudMessaging)(senderId, messageId, messageType, msg);
2020
}
2121
listenForTokenRefresh(callback) {
2222
this.log.info('Setting up listenForTokenRefresh callback');

0 commit comments

Comments
 (0)