Class BatchNotificationChannelsManager

java.lang.Object
com.batch.android.BatchNotificationChannelsManager

public final class BatchNotificationChannelsManager extends Object
BatchNotificationChannelsManager manages how Batch interacts with Android 8.0 (API 26). It allows you to control which default notification channel Batch will use, how it is named, or to provide your own channel per notification
  • Field Details

  • Method Details

    • provide

      public static BatchNotificationChannelsManager provide()
    • setChannelIdOverride

      public void setChannelIdOverride(String channelId)
      Overrides the default notification channel that Batch will use for notifications.
      By default, Batch will manage its own channel, identified by DEFAULT_CHANNEL_ID.
      After calling this method with a non-null channelId, Batch will stop trying to register its default channel

      Note: Please make sure that you've registered this channel using NotificationManager.createNotificationChannel(NotificationChannel) or NotificationManager.createNotificationChannelGroup(NotificationChannelGroup)

      Set to 'null' to revert to the default channel.

    • setChannelNameProvider

      public void setChannelNameProvider(BatchNotificationChannelsManager.ChannelNameProvider provider)
      Used to set a channel name provider, allowing you to change Batch's default channel name.

      This is the string that the user will see in their device settings, so you should translate it.
      Batch will call you back on your provider at least once, to get the channel name, and then will call you on every locale change, to make sure that the Android OS has the right translation.

      If your provider throws an exception, Batch will use its default name.

      If you simply want to use a string resource, use setChannelName(android.content.Context,int).

      Set to 'null' to remove the provider and use Batch's default one.

    • setChannelName

      public void setChannelName(Context context, int channelNameResourceId)
      Used to set a channel name provider, allowing you to change Batch's default channel name.

      This is the string that the user will see in their device settings, so you should translate it properly.
      Calling this is the equivalent of calling setChannelNameProvider(com.batch.android.BatchNotificationChannelsManager.ChannelNameProvider) with a StringResChannelNameProvider instance.

      Calling this method will remove any provider set with setChannelNameProvider(com.batch.android.BatchNotificationChannelsManager.ChannelNameProvider)

    • setChannelIdInterceptor

      public void setChannelIdInterceptor(BatchNotificationChannelsManager.NotificationChannelIdInterceptor interceptor)
      Used to set a channel id interceptor, allowing you to override the Channel ID of a notification, per notification.
      You will be called on this interceptor before displaying notifications, unless you're in manual mode and don't use Batch to display the notification.

      The provider might be called on ANY API Level

      If your provider throws an exception, Batch will use its default name.

    • openSystemChannelSettings

      public static boolean openSystemChannelSettings(Context context)
      Opens the notification channel settings system UI for Batch's default channel.

      Will do nothing on API < 26

      Parameters:
      context - Your context
      Returns:
      Whether the system settings have been opened or not. Always false on API < 26
    • openSystemChannelSettings

      public static boolean openSystemChannelSettings(Context context, String channelId)
      Opens the notification channel settings system UI for the specified channel

      Will do nothing on API < 26

      Parameters:
      context - Your context. Can't be null.
      channelId - The channel to open this. Can't be null.
      Returns:
      Whether the system settings have been opened or not. Always false on API < 26