public NotificationCompat.Builder getBuilder(boolean isUpdate) {
        if (options.isSilent()) return null;

        Bundle extras = new Bundle();
        extras.putInt(Notification.EXTRA_ID, options.getId());

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, options.getAndroidChannelId())
            .setExtras(extras)
            .setOnlyAlertOnce(options.isOnlyAlertOnce())
            .setContentTitle(options.getTitle())
            .setContentText(options.getText())
            // Text that summarizes this notification for accessibility services.
            // Since Android 5, this text is no longer shown on screen, but it is
            // still useful to accessibility services (where it serves as an audible announcement
            // of the notification's appearance).
            .setTicker(options.getText())
            // Since Android 8 shows as a badge count for Launchers that support badging
            // prior to 8 it could be shown in the header
            .setNumber(options.getBadgeNumber())
            .setAutoCancel(options.isAndroidAutoCancel())
            .setOngoing(options.isAndroidOngoing())
            .setColor(options.getColor())
            .setVisibility(options.getVisibility())
            // Show the Notification when date
            .setShowWhen(options.isAndroidShowWhen())
            // Show the Notification#when field as a stopwatch. Instead of presenting when as a timestamp,
            // the notification will show an automatically updating display of the minutes and seconds since
            // when
            .setUsesChronometer(options.isAndroidUsesChronometer())
            .setGroup(options.getGroup())
            .setGroupSummary(options.isGroupSummary());

        // Specify the duration in milliseconds after which this notification should be canceled
        if (options.getAndroidTimeoutAfter() >= 0) builder.setTimeoutAfter(options.getAndroidTimeoutAfter());

        // Settings for Android older than 8
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
            builder.setDefaults(options.getDefaults());
            builder.setPriority(options.getPriorityByImportance());
            builder.setLights(options.getLedColor(), options.getLedOn(), options.getLedOff());

            Uri soundUri = options.getSoundUri();

            // Set sound only, if the notification should not be updated
            if (soundUri != Uri.EMPTY && !isUpdate) {
                // Grant permission to the system to play the sound, needed in Android 7 and 8
                Manager.grantUriPermission(context, soundUri);
                builder.setSound(soundUri);
            }
        }

        if (options.getProgressBar() != null) {
            builder.setProgress(
                options.getProgressMaxValue(),
                options.getProgressValue(),
                options.isProgressIndeterminate());
        }

        // Get smallIcon from resources only
        //
        // There exists also a setSmallIcon(IconCompat icon) method, but tested on Android 15, when multiple notifications with the
        // same icon are posted, the app icon will be shown in statusbar instead of the small icon. This does not happen,
        // when using the setSmallIcon(int icon) method.
        builder.setSmallIcon(options.getSmallIcon());

        Bitmap largeIcon = new AssetUtil(context).getBitmap(options.getAndroidLargeIcon());
        
        if (largeIcon != null) {
            if (options.getAndroidLargeIconType().equals(Options.LARGE_ICON_TYPE_CIRCLE)) {
                largeIcon = AssetUtil.getCircleBitmap(largeIcon);
            }

            builder.setLargeIcon(largeIcon);
        }

        applyStyle(builder);
        addActions(builder);

        // Supply a PendingIntent to send when the notification is cleared by the user directly from the notification panel
        setDeleteIntent(builder);

        // Supply a PendingIntent to send when the notification is clicked
        setContentIntent(builder);

        return builder;
    }
Creates a {@link NotificationCompat.Builder} from options
@return The builder instance or null if the notification is silent.
src/android/Notification.java