Class Batch.Push
- Enclosing class:
- Batch
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Key to retrieve the Alert messagestatic final String
Key to retrieve the body of a push messagestatic final String
Key to retrieve the GCM payload from the activity launch intentstatic final String
Key to retrieve the Title of the message (optional) -
Method Summary
Modifier and TypeMethodDescriptionstatic void
appendBatchData
(Intent pushIntent, Intent openIntent) Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard.static void
appendBatchData
(Bundle pushIntentExtras, Intent openIntent) Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard.static void
appendBatchData
(com.google.firebase.messaging.RemoteMessage remoteMessage, Intent openIntent) Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard.static void
Dismiss all notifications shown by the application.
You should call this method afterhave other notifications in your app.
static void
displayNotification
(Context context, Intent intent) Call this method to display the notification for this intent.static void
displayNotification
(Context context, Intent intent, boolean bypassManualMode) Call this method to display the notification for this intent.static void
displayNotification
(Context context, Intent intent, BatchNotificationInterceptor interceptor) Call this method to display the notification for this intent.static void
displayNotification
(Context context, Intent intent, BatchNotificationInterceptor interceptor, boolean bypassManualMode) Call this method to display the notification for this intent.static void
displayNotification
(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Call this method to display the notification for this message.static void
displayNotification
(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage, BatchNotificationInterceptor interceptor) Call this method to display the notification for this message.Get the channels manager, allowing you to tweak how notifications will behave regarding the channels feature introduced in Android 8.0 (API 26)static EnumSet<PushNotificationType>
getNotificationsType
(Context context) Get the enabled notification types
Matches what you've set in setNotificationsType.static BatchPushRegistration
Get the current push registration.static boolean
isBatchPush
(Intent intent) Check if the received push is a Batch one.static boolean
isBatchPush
(com.google.firebase.messaging.RemoteMessage message) Check if the received push is a Batch one.static boolean
Get manual display mode for push notifications.static PendingIntent
makePendingIntent
(Context context, Intent intent, Bundle pushIntentExtras) Make a PendingIntent suitable for notifications from a given Intent.static PendingIntent
makePendingIntent
(Context context, Intent intent, com.google.firebase.messaging.RemoteMessage remoteMessage) Make a PendingIntent suitable for notifications from a given Intent.static PendingIntent
makePendingIntentForDeeplink
(Context context, String deeplink, Bundle pushIntentExtras) Make a PendingIntent suitable for notifications from a given deeplink.static PendingIntent
makePendingIntentForDeeplink
(Context context, String deeplink, com.google.firebase.messaging.RemoteMessage remoteMessage) Make a PendingIntent suitable for notifications from a given deeplink.static void
onNotificationDisplayed
(Context context, Intent intent) Call this method when you just displayed a Batch push notification by yourself.static void
onNotificationDisplayed
(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Call this method when you just displayed a Batch push notification by yourself.static void
Force Batch to renew the push token.static void
requestNotificationPermission
(Context context) Request the notification runtime permission.static void
requestNotificationPermission
(Context context, BatchPermissionListener listener) Request the notification runtime permission.static void
setAdditionalIntentFlags
(Integer flags) Sets additional intent flags for notifications.static void
setLargeIcon
(Bitmap largeIcon) Set a custom large icon that push notifications will use.static void
setManualDisplay
(boolean manualDisplay) Set manual display mode for push notifications.static void
setNotificationInterceptor
(BatchNotificationInterceptor interceptor) Set a notification interceptor.static void
setNotificationsColor
(int argbColor) Set the notification accent color for Lollipop or later.static void
Adjust the way Batch will display notifications.
You should use this method if you want to remove vibration, light, sound or avoid notifications for this user.static void
setSmallIconResourceId
(int resourceId) Set a custom small icon resource that push notifications will use.static void
Set a custom sound uri that push notifications will use.
On Android 8.0, this setting will be applied to the defaultNotificationChannel
that Batch registers, meaning that you won't be able to change it after the first notification.static boolean
shouldDisplayPush
(Context context, Intent intent) Should the developer handle and display this push, or will Batch display it? Use this method to know if Batch will ignore this push, and that displaying it is your responsibilitystatic boolean
shouldDisplayPush
(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Should the developer handle and display this push, or will Batch display it? Use this method to know if Batch will ignore this push, and that displaying it is your responsibility
-
Field Details
-
ALERT_KEY
Key to retrieve the Alert message- See Also:
-
BODY_KEY
Key to retrieve the body of a push message- See Also:
-
PAYLOAD_KEY
Key to retrieve the GCM payload from the activity launch intent- See Also:
-
TITLE_KEY
Key to retrieve the Title of the message (optional)- See Also:
-
-
Method Details
-
setSmallIconResourceId
public static void setSmallIconResourceId(int resourceId) Set a custom small icon resource that push notifications will use.- Parameters:
resourceId
- id of the resource (for example : R.drawable.push_small_icon)
-
setSound
Set a custom sound uri that push notifications will use.
On Android 8.0, this setting will be applied to the defaultNotificationChannel
that Batch registers, meaning that you won't be able to change it after the first notification. If you use your own channel, this method will have no effect.- Parameters:
uri
- uri of the resource (see Notification.Builder.setSound for more details)
null if you want to use the default notification sound
-
setLargeIcon
Set a custom large icon that push notifications will use.- Parameters:
largeIcon
- bitmap of the large icon
-
getChannelsManager
Get the channels manager, allowing you to tweak how notifications will behave regarding the channels feature introduced in Android 8.0 (API 26) -
dismissNotifications
public static void dismissNotifications()Dismiss all notifications shown by the application.
You should call this method afterhave other notifications in your app.
-
getNotificationsType
Get the enabled notification types
Matches what you've set in setNotificationsType.- Returns:
- Type of notifications you previously set. Be careful, as this can be null if you never used setNotificationsType() or if your context is invalid
-
setNotificationsType
Adjust the way Batch will display notifications.
You should use this method if you want to remove vibration, light, sound or avoid notifications for this user.
Note: On Android 8.0 and higher, this method ignores
PushNotificationType#LIGHTS
,PushNotificationType#VIBRATE
andPushNotificationType#SOUND
.
OnlyPushNotificationType#ALERT
will be honored, toggling whether notifications should be displayed or not.
This is because Android 8 manages notifications using channels, meaning that these settings cannot be in your app anymore, and must redirect to the system's UI.
UsePush#getChannelsManager()
to manage your channels.- Parameters:
types
- Type of notifications you want, default = ALERT + LIGHTS + VIBRATE + SOUND
-
isBatchPush
Check if the received push is a Batch one. If you have a custom push implementation into your app you should call this method before doing anything else into theBroadcastReceiver#onReceive(Context, Intent)
method. If it returns true, you should not handle the push.- Parameters:
intent
- Android's intent that hold the push- Returns:
- true if the push is for Batch and you shouldn't handle it, false otherwise
-
isBatchPush
public static boolean isBatchPush(com.google.firebase.messaging.RemoteMessage message) Check if the received push is a Batch one. If you have a custom push implementation into your app you should call this method before doing anything else. If it returns true, you should not handle the push.- Parameters:
message
- Firebase RemoteMessage- Returns:
- true if the push is for Batch and you shouldn't handle it, false otherwise
-
setNotificationsColor
public static void setNotificationsColor(int argbColor) Set the notification accent color for Lollipop or later. See Notification.color for more details- Parameters:
argbColor
- an ARGB integer like the constants inColor
-
isManualDisplayModeActivated
public static boolean isManualDisplayModeActivated()Get manual display mode for push notifications. -
setManualDisplay
public static void setManualDisplay(boolean manualDisplay) Set manual display mode for push notifications.
If you set manual display mode to true, no notifications will be shown automatically and you'll have to display it by yourself.- Parameters:
manualDisplay
- Whether manual display mode is enabled or not.
-
appendBatchData
Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard. It also powers other features, such as but not limited to mobile landings.- Parameters:
pushIntent
- the intent from GCM/FCM, that originated this pushopenIntent
- the intent of the notification the will be triggered when the user clicks on it
-
appendBatchData
Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard. It also powers other features, such as but not limited to mobile landings.- Parameters:
pushIntentExtras
- the extras of the intent coming from GCM/FCM, that originated this pushopenIntent
- the intent of the notification the will be triggered when the user clicks on it
-
appendBatchData
public static void appendBatchData(com.google.firebase.messaging.RemoteMessage remoteMessage, Intent openIntent) Append Batch data to your open intent so that opens from this push will be tracked by Batch and displayed into your dashboard. It also powers other features, such as but not limited to mobile landings.- Parameters:
remoteMessage
- the FCM message contentopenIntent
- the intent of the notification the will be triggered when the user clicks on it
-
makePendingIntent
public static PendingIntent makePendingIntent(Context context, Intent intent, Bundle pushIntentExtras) Make a PendingIntent suitable for notifications from a given Intent. This is useful for custom receivers, orBatchNotificationInterceptor
implementations.Warning: it will override the intent's action with a unique name, to ensure that existing notifications are not updated with this PendingIntent's content. If you rely on a custom action, you will have to make your own PendingIntent.
- Parameters:
context
- Context. Cannot be null.intent
- The intent you want to be triggered when performing the pending intent. Must be an intent compatible withPendingIntent#getActivity(Context, int, Intent, int)
. Cannot be null.pushIntentExtras
- Raw extras of the push intent, used to copy data used by Batch to power features such as direct opens, or mobile landings. Cannot be null. If these extras don't have valid Batch data in it, a valid PendingIntent will still be returned, but some features might not work correctly.- Returns:
- A PendingIntent instance, wrapping the given Intent.
-
makePendingIntent
public static PendingIntent makePendingIntent(Context context, Intent intent, com.google.firebase.messaging.RemoteMessage remoteMessage) Make a PendingIntent suitable for notifications from a given Intent. This is useful for custom receivers, orBatchNotificationInterceptor
implementations.Warning: it will override the intent's action with a unique name, to ensure that existing notifications are not updated with this PendingIntent's content. If you rely on a custom action, you will have to make your own PendingIntent.
- Parameters:
context
- Context. Cannot be null.intent
- The intent you want to be triggered when performing the pending intent. Must be an intent compatible withPendingIntent#getActivity(Context, int, Intent, int)
. Cannot be null.remoteMessage
- Raw Firebase message, used to copy data used by Batch to power features such as direct opens, or mobile landings. Cannot be null. If these extras don't have valid Batch data in it, a valid PendingIntent will still be returned, but some features might not work correctly.- Returns:
- A PendingIntent instance, wrapping the given Intent.
-
makePendingIntentForDeeplink
public static PendingIntent makePendingIntentForDeeplink(Context context, String deeplink, Bundle pushIntentExtras) Make a PendingIntent suitable for notifications from a given deeplink. It will use Batch's builtin action activity.This is useful for custom receivers, or
BatchNotificationInterceptor
implementations.- Parameters:
context
- Context. Cannot be null.deeplink
- Deeplink string. Cannot be null.pushIntentExtras
- Raw extras of the push intent, used to copy data used by Batch to power features such as direct opens, or mobile landings. Cannot be null. If these extras don't have valid Batch data in it, a valid PendingIntent will still be returned, but some features might not work correctly.- Returns:
- A PendingIntent set to open Batch's builtin action activity to open the specified deeplink. Can be null if the deeplink is not valid.
-
makePendingIntentForDeeplink
public static PendingIntent makePendingIntentForDeeplink(Context context, String deeplink, com.google.firebase.messaging.RemoteMessage remoteMessage) Make a PendingIntent suitable for notifications from a given deeplink. It will use Batch's builtin action activity.This is useful for custom receivers, or
BatchNotificationInterceptor
implementations.- Parameters:
context
- Context. Cannot be null.deeplink
- Deeplink string. Cannot be null.remoteMessage
- Raw Firebase message content, used to copy data used by Batch to power features such as direct opens, or mobile landings. Cannot be null. If these extras don't have valid Batch data in it, a valid PendingIntent will still be returned, but some features might not work correctly.- Returns:
- A PendingIntent set to open Batch's builtin action activity to open the specified deeplink. Can be null if the deeplink is not valid.
-
shouldDisplayPush
Should the developer handle and display this push, or will Batch display it? Use this method to know if Batch will ignore this push, and that displaying it is your responsibility- Returns:
- true if the push will not be processed by Batch and should be handled, false otherwise
-
shouldDisplayPush
public static boolean shouldDisplayPush(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Should the developer handle and display this push, or will Batch display it? Use this method to know if Batch will ignore this push, and that displaying it is your responsibility- Parameters:
context
- Android's contextremoteMessage
- The Firebase message- Returns:
- true if the push will not be processed by Batch and should be handled, false otherwise
-
displayNotification
Call this method to display the notification for this intent.- Parameters:
context
- Android's contextintent
- Android's intent
-
displayNotification
Call this method to display the notification for this intent.- Parameters:
context
- Android's contextintent
- Android's intentbypassManualMode
- If true, This method will ignore the manual mode value and always display the notification
-
displayNotification
public static void displayNotification(Context context, Intent intent, BatchNotificationInterceptor interceptor) Call this method to display the notification for this intent. Allows an interceptor to be set for this call, overriding the global one set usingBatch.Push#setNotificationInterceptor(BatchNotificationInterceptor)
- Parameters:
context
- Android's contextintent
- Android's intent
-
displayNotification
public static void displayNotification(Context context, Intent intent, BatchNotificationInterceptor interceptor, boolean bypassManualMode) Call this method to display the notification for this intent. Allows an interceptor to be set for this call, overriding the global one set usingBatch.Push#setNotificationInterceptor(BatchNotificationInterceptor)
- Parameters:
context
- Android's contextintent
- Android's intentinterceptor
- An optional notification interceptorbypassManualMode
- If true, This method will ignore the manual mode value and always display the notification
-
displayNotification
public static void displayNotification(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Call this method to display the notification for this message. -
displayNotification
public static void displayNotification(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage, BatchNotificationInterceptor interceptor) Call this method to display the notification for this message. Allows an interceptor to be set for this call, overriding the global one set usingBatch.Push#setNotificationInterceptor(BatchNotificationInterceptor)
-
setAdditionalIntentFlags
Sets additional intent flags for notifications. Doesn't work for external deeplinks.- Parameters:
flags
- Additional flags. "null" to clear.
-
onNotificationDisplayed
Call this method when you just displayed a Batch push notification by yourself.- Parameters:
context
- Android's contextintent
- the gcm push intent
-
onNotificationDisplayed
public static void onNotificationDisplayed(Context context, com.google.firebase.messaging.RemoteMessage remoteMessage) Call this method when you just displayed a Batch push notification by yourself.- Parameters:
context
- Android's contextremoteMessage
- The Firebase message
-
getRegistration
Get the current push registration.The returned registration might be outdated and invalid if this method is called too early in your application lifecycle.
Batch MUST be started in order to use this method.
- Returns:
- A push registration, null if unavailable.
-
setNotificationInterceptor
Set a notification interceptor. It allows you to tweak various parts of a notification that Batch generates before displaying it.- Parameters:
interceptor
- ABatchNotificationInterceptor
subclass. Null to remove a previously set one.
-
refreshRegistration
public static void refreshRegistration()Force Batch to renew the push token. You should not be calling this method unless we told you to. -
requestNotificationPermission
Request the notification runtime permission.Android 13 (API 33) introduced a new runtime permission for notifications called POST_NOTIFICATIONS. Without this permission, apps on Android 13 cannot show notifications.
Note: This method does nothing on Android 12 and lower, or if your application does not target API 33 or higher.
- Parameters:
context
- requesting the permission
-
requestNotificationPermission
Request the notification runtime permission.Android 13 (API 33) introduced a new runtime permission for notifications called POST_NOTIFICATIONS. Without this permission, apps on Android 13 cannot show notifications.
Note: This method does nothing on Android 12 and lower, or if your application does not target API 33 or higher.
- Parameters:
context
- requesting the permissionlistener
- Callback notifying whether the permission has been granted or not. Note that the permission will be considered as granted on Android 12 and lower. Listener will not be triggered if your application does not target API 33 or higher.
-