Commit 35d4bf03 authored by Libin Lu's avatar Libin Lu

requestPermissions for android

parent d14cbc73
...@@ -24,6 +24,7 @@ import com.google.firebase.messaging.RemoteMessage.Notification; ...@@ -24,6 +24,7 @@ import com.google.firebase.messaging.RemoteMessage.Notification;
import android.app.Application; import android.app.Application;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log; import android.util.Log;
import android.content.Context; import android.content.Context;
...@@ -57,7 +58,7 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li ...@@ -57,7 +58,7 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
@ReactMethod @ReactMethod
public void getInitialNotification(Promise promise){ public void getInitialNotification(Promise promise){
Activity activity = getCurrentActivity(); Activity activity = getCurrentActivity();
if(activity == null || activity.getIntent().getAction() == "android.intent.action.MAIN"){ if(activity == null || activity.getIntent().getAction().equals("android.intent.action.MAIN")){
promise.resolve(null); promise.resolve(null);
return; return;
} }
...@@ -65,7 +66,12 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li ...@@ -65,7 +66,12 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
} }
@ReactMethod @ReactMethod
public void requestPermissions(){ public void requestPermissions(Promise promise){
if(NotificationManagerCompat.from(getReactApplicationContext()).areNotificationsEnabled()){
promise.resolve(true);
} else {
promise.reject(null, "Notification disabled");
}
} }
@ReactMethod @ReactMethod
...@@ -298,7 +304,7 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li ...@@ -298,7 +304,7 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
@Override @Override
public void onNewIntent(Intent intent){ public void onNewIntent(Intent intent){
// don't call notification if it is started from icon // don't call notification if it is started from icon
if(intent.getAction() == "android.intent.action.MAIN"){ if(intent.getAction().equals("android.intent.action.MAIN")){
return; return;
} }
sendEvent("FCMNotificationReceived", parseIntent(intent)); sendEvent("FCMNotificationReceived", parseIntent(intent));
......
package com.evollu.react.fcm; package com.evollu.react.fcm;
import android.app.Notification; import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
...@@ -17,6 +16,7 @@ import android.os.AsyncTask; ...@@ -17,6 +16,7 @@ import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log; import android.util.Log;
import java.io.IOException; import java.io.IOException;
...@@ -200,18 +200,15 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> { ...@@ -200,18 +200,15 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, notificationID, intent, PendingIntent pendingIntent = PendingIntent.getActivity(mContext, notificationID, intent,
PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager notificationManager =
(NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
notification.setContentIntent(pendingIntent); notification.setContentIntent(pendingIntent);
Notification info = notification.build(); Notification info = notification.build();
if (bundle.containsKey("tag")) { if (bundle.containsKey("tag")) {
String tag = bundle.getString("tag"); String tag = bundle.getString("tag");
notificationManager.notify(tag, notificationID, info); NotificationManagerCompat.from(mContext).notify(tag, notificationID, info);
} else { } else {
notificationManager.notify(notificationID, info); NotificationManagerCompat.from(mContext).notify(notificationID, info);
} }
} }
//clear out one time scheduled notification once fired //clear out one time scheduled notification once fired
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment