Skip to content

Commit

Permalink
Update SendNotificationTask.java
Browse files Browse the repository at this point in the history
  • Loading branch information
ksegla authored Mar 21, 2018
1 parent 6998182 commit b3be22e
Showing 1 changed file with 27 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,20 +71,28 @@ protected Void doInBackground(Void... params) {
title = mContext.getPackageManager().getApplicationLabel(appInfo).toString();
}
title = URLDecoder.decode( title, "UTF-8" );

String ticker = bundle.getString("ticker");
if (ticker != null) ticker = URLDecoder.decode( ticker, "UTF-8" );

String subText = bundle.getString("sub_text");
if (subText != null) subText = URLDecoder.decode( subText, "UTF-8" );

NotificationCompat.Builder notification = new NotificationCompat.Builder(mContext)
.setContentTitle(title)
.setContentText(body)
.setTicker(bundle.getString("ticker"))
.setTicker(ticker)
.setVisibility(NotificationCompat.VISIBILITY_PRIVATE)
.setAutoCancel(bundle.getBoolean("auto_cancel", true))
.setNumber((int)bundle.getDouble("number"))
.setSubText(bundle.getString("sub_text"))
.setSubText(subText)
.setVibrate(new long[]{0, DEFAULT_VIBRATION})
.setExtras(bundle.getBundle("data"));
.setExtras(bundle.getBundle("data"));

if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
notification.setGroup(bundle.getString("group"));
String group = bundle.getString("group");
if (group != null) group = URLDecoder.decode( group, "UTF-8" );
notification.setGroup(group);
}

if (bundle.containsKey("ongoing") && bundle.getBoolean("ongoing")) {
Expand Down Expand Up @@ -120,6 +128,7 @@ protected Void doInBackground(Void... params) {
//large icon
String largeIcon = bundle.getString("large_icon");
if(largeIcon != null && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
largeIcon = URLDecoder.decode( largeIcon, "UTF-8" );
if (largeIcon.startsWith("http://") || largeIcon.startsWith("https://")) {
Bitmap bitmap = getBitmapFromURL(largeIcon);
notification.setLargeIcon(bitmap);
Expand All @@ -142,7 +151,9 @@ protected Void doInBackground(Void... params) {

//picture
String picture = bundle.getString("picture");

if(picture!=null){
picture = URLDecoder.decode( picture, "UTF-8" );
NotificationCompat.BigPictureStyle bigPicture = new NotificationCompat.BigPictureStyle();

if (picture.startsWith("http://") || picture.startsWith("https://")) {
Expand All @@ -165,6 +176,7 @@ protected Void doInBackground(Void... params) {
//sound
String soundName = bundle.getString("sound");
if (soundName != null) {
soundName = URLDecoder.decode( soundName, "UTF-8" );
if (soundName.equalsIgnoreCase("default")) {
notification.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
} else {
Expand All @@ -183,6 +195,7 @@ protected Void doInBackground(Void... params) {

String color = bundle.getString("color");
if (color != null) {
color = URLDecoder.decode( color, "UTF-8" );
notification.setColor(Color.parseColor(color));
}
}
Expand All @@ -207,14 +220,18 @@ protected Void doInBackground(Void... params) {
Intent i = new Intent("com.evollu.react.fcm.ReceiveLocalNotification");
i.putExtras(bundle);
LocalBroadcastManager.getInstance(mContext).sendBroadcast(i);
}
}

if(!mIsForeground || bundle.getBoolean("show_in_foreground")){
Intent intent = new Intent();
intent.setClassName(mContext, intentClassName);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtras(bundle);
intent.setAction(bundle.getString("click_action"));

String clickAction = bundle.getString("click_action");
if (clickAction != null) clickAction = URLDecoder.decode( clickAction, "UTF-8" );

intent.setAction(clickAction);

int notificationID = bundle.containsKey("id") ? bundle.getString("id", "").hashCode() : (int) System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, notificationID, intent,
Expand All @@ -223,7 +240,10 @@ protected Void doInBackground(Void... params) {
notification.setContentIntent(pendingIntent);

if (bundle.containsKey("android_actions")) {
WritableArray actions = ReactNativeJson.convertJsonToArray(new JSONArray(bundle.getString("android_actions")));
String androidActions = bundle.getString("android_actions");
androidActions = URLDecoder.decode( androidActions, "UTF-8" );

WritableArray actions = ReactNativeJson.convertJsonToArray(new JSONArray(androidActions));
for (int a = 0; a < actions.size(); a++) {
ReadableMap action = actions.getMap(a);
String actionTitle = action.getString("title");
Expand Down Expand Up @@ -287,4 +307,3 @@ protected String getMainActivityClassName() {
return launchIntent != null ? launchIntent.getComponent().getClassName() : null;
}
}

0 comments on commit b3be22e

Please sign in to comment.