Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
react-native-fcm
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ym
react-native-fcm
Commits
61cbaca2
Commit
61cbaca2
authored
Oct 05, 2017
by
Libin Lu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix number and remove tag
parent
4f940c68
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
37 deletions
+33
-37
android/src/main/java/com/evollu/react/fcm/SendNotificationTask.java
.../main/java/com/evollu/react/fcm/SendNotificationTask.java
+33
-37
No files found.
android/src/main/java/com/evollu/react/fcm/SendNotificationTask.java
View file @
61cbaca2
...
...
@@ -28,55 +28,55 @@ import static com.facebook.react.common.ReactConstants.TAG;
public
class
SendNotificationTask
extends
AsyncTask
<
Void
,
Void
,
Void
>
{
private
static
final
long
DEFAULT_VIBRATION
=
300L
;
private
Context
mContext
;
private
Bundle
bundle
;
private
SharedPreferences
sharedPreferences
;
private
Boolean
mIsForeground
;
public
SendNotificationTask
(
Context
context
,
SharedPreferences
sharedPreferences
,
Boolean
mIsForeground
,
Bundle
bundle
){
this
.
mContext
=
context
;
this
.
bundle
=
bundle
;
this
.
sharedPreferences
=
sharedPreferences
;
this
.
mIsForeground
=
mIsForeground
;
}
protected
Void
doInBackground
(
Void
...
params
)
{
try
{
String
intentClassName
=
getMainActivityClassName
();
if
(
intentClassName
==
null
)
{
return
null
;
}
if
(
bundle
.
getString
(
"body"
)
==
null
)
{
return
null
;
}
Resources
res
=
mContext
.
getResources
();
String
packageName
=
mContext
.
getPackageName
();
String
title
=
bundle
.
getString
(
"title"
);
if
(
title
==
null
)
{
ApplicationInfo
appInfo
=
mContext
.
getApplicationInfo
();
title
=
mContext
.
getPackageManager
().
getApplicationLabel
(
appInfo
).
toString
();
}
NotificationCompat
.
Builder
notification
=
new
NotificationCompat
.
Builder
(
mContext
)
.
setContentTitle
(
title
)
.
setContentText
(
bundle
.
getString
(
"body"
))
.
setTicker
(
bundle
.
getString
(
"ticker"
))
.
setVisibility
(
NotificationCompat
.
VISIBILITY_PRIVATE
)
.
setAutoCancel
(
bundle
.
getBoolean
(
"auto_cancel"
,
true
))
.
setNumber
(
bundle
.
getInt
(
"number"
))
.
setNumber
(
(
int
)
bundle
.
getDouble
(
"number"
))
.
setSubText
(
bundle
.
getString
(
"sub_text"
))
.
setGroup
(
bundle
.
getString
(
"group"
))
.
setVibrate
(
new
long
[]{
0
,
DEFAULT_VIBRATION
})
.
setExtras
(
bundle
.
getBundle
(
"data"
));
if
(
bundle
.
containsKey
(
"ongoing"
)
&&
bundle
.
getBoolean
(
"ongoing"
))
{
notification
.
setOngoing
(
bundle
.
getBoolean
(
"ongoing"
));
}
//priority
String
priority
=
bundle
.
getString
(
"priority"
,
""
);
switch
(
priority
)
{
...
...
@@ -92,7 +92,7 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
default
:
notification
.
setPriority
(
NotificationCompat
.
PRIORITY_DEFAULT
);
}
//icon
String
smallIcon
=
bundle
.
getString
(
"icon"
,
"ic_launcher"
);
int
smallIconResId
=
res
.
getIdentifier
(
smallIcon
,
"mipmap"
,
packageName
);
...
...
@@ -102,7 +102,7 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
if
(
smallIconResId
!=
0
){
notification
.
setSmallIcon
(
smallIconResId
);
}
//large icon
String
largeIcon
=
bundle
.
getString
(
"large_icon"
);
if
(
largeIcon
!=
null
&&
android
.
os
.
Build
.
VERSION
.
SDK_INT
>=
android
.
os
.
Build
.
VERSION_CODES
.
LOLLIPOP
){
...
...
@@ -112,41 +112,41 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
}
else
{
int
largeIconResId
=
res
.
getIdentifier
(
largeIcon
,
"mipmap"
,
packageName
);
Bitmap
largeIconBitmap
=
BitmapFactory
.
decodeResource
(
res
,
largeIconResId
);
if
(
largeIconResId
!=
0
)
{
notification
.
setLargeIcon
(
largeIconBitmap
);
}
}
}
//big text
String
bigText
=
bundle
.
getString
(
"big_text"
);
if
(
bigText
!=
null
){
notification
.
setStyle
(
new
NotificationCompat
.
BigTextStyle
().
bigText
(
bigText
));
}
//picture
String
picture
=
bundle
.
getString
(
"picture"
);
if
(
picture
!=
null
){
NotificationCompat
.
BigPictureStyle
bigPicture
=
new
NotificationCompat
.
BigPictureStyle
();
if
(
picture
.
startsWith
(
"http://"
)
||
picture
.
startsWith
(
"https://"
))
{
Bitmap
bitmap
=
getBitmapFromURL
(
picture
);
bigPicture
.
bigPicture
(
bitmap
);
}
else
{
int
pictureResId
=
res
.
getIdentifier
(
picture
,
"mipmap"
,
packageName
);
Bitmap
pictureResIdBitmap
=
BitmapFactory
.
decodeResource
(
res
,
pictureResId
);
if
(
pictureResId
!=
0
)
{
bigPicture
.
bigPicture
(
pictureResIdBitmap
);
}
}
bigPicture
.
setBigContentTitle
(
title
);
bigPicture
.
setSummaryText
(
bundle
.
getString
(
"body"
));
notification
.
setStyle
(
bigPicture
);
}
//sound
String
soundName
=
bundle
.
getString
(
"sound"
);
if
(
soundName
!=
null
)
{
...
...
@@ -161,17 +161,17 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
notification
.
setSound
(
Uri
.
parse
(
"android.resource://"
+
packageName
+
"/"
+
soundResourceId
));
}
}
//color
if
(
android
.
os
.
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
notification
.
setCategory
(
NotificationCompat
.
CATEGORY_CALL
);
String
color
=
bundle
.
getString
(
"color"
);
if
(
color
!=
null
)
{
notification
.
setColor
(
Color
.
parseColor
(
color
));
}
}
//vibrate
if
(
bundle
.
containsKey
(
"vibrate"
)){
long
vibrate
=
Math
.
round
(
bundle
.
getDouble
(
"vibrate"
,
DEFAULT_VIBRATION
));
...
...
@@ -181,40 +181,35 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
notification
.
setVibrate
(
null
);
}
}
//lights
if
(
bundle
.
getBoolean
(
"lights"
))
{
notification
.
setDefaults
(
NotificationCompat
.
DEFAULT_LIGHTS
);
}
if
(
bundle
.
containsKey
(
"fire_date"
))
{
Log
.
d
(
TAG
,
"broadcast intent if it is a scheduled notification"
);
Intent
i
=
new
Intent
(
"com.evollu.react.fcm.ReceiveLocalNotification"
);
i
.
putExtras
(
bundle
);
mContext
.
sendOrderedBroadcast
(
i
,
null
);
}
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"
));
int
notificationID
=
bundle
.
containsKey
(
"id"
)
?
bundle
.
getString
(
"id"
,
""
).
hashCode
()
:
(
int
)
System
.
currentTimeMillis
();
PendingIntent
pendingIntent
=
PendingIntent
.
getActivity
(
mContext
,
notificationID
,
intent
,
PendingIntent
.
FLAG_UPDATE_CURRENT
);
notification
.
setContentIntent
(
pendingIntent
);
Notification
info
=
notification
.
build
();
if
(
bundle
.
containsKey
(
"tag"
))
{
String
tag
=
bundle
.
getString
(
"tag"
);
NotificationManagerCompat
.
from
(
mContext
).
notify
(
tag
,
notificationID
,
info
);
}
else
{
NotificationManagerCompat
.
from
(
mContext
).
notify
(
notificationID
,
info
);
}
NotificationManagerCompat
.
from
(
mContext
).
notify
(
notificationID
,
info
);
}
//clear out one time scheduled notification once fired
if
(!
bundle
.
containsKey
(
"repeat_interval"
)
&&
bundle
.
containsKey
(
"fire_date"
))
{
...
...
@@ -227,7 +222,7 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
}
return
null
;
}
public
Bitmap
getBitmapFromURL
(
String
strURL
)
{
try
{
URL
url
=
new
URL
(
strURL
);
...
...
@@ -241,7 +236,7 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
return
null
;
}
}
public
String
getMainActivityClassName
()
{
String
packageName
=
mContext
.
getPackageName
();
Intent
launchIntent
=
mContext
.
getPackageManager
().
getLaunchIntentForPackage
(
packageName
);
...
...
@@ -249,3 +244,4 @@ public class SendNotificationTask extends AsyncTask<Void, Void, Void> {
return
className
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment