chabok-io / chabok-client-rn

Chabok react native wrapper
https://doc.chabokpush.com/react-native-bridge/introducing.html
3 stars 0 forks source link

کوتاه بودن متن در پیام یا نوتیفیکیشن #1

Closed shahramRezvani closed 4 years ago

shahramRezvani commented 5 years ago

.متن نوتیفیکیشن در یک خط نمایش داده میشه استفاده میکنم react-native (bridge) از .داخل مستندات پیور جی اس این کد رو پیدا کردم اما متوجه نشدم کجا باید اوور راید کرد

@Override
public boolean buildNotification(ChabokNotification chabokNotification, NotificationCompat.Builder builder) {
    boolean isRichNotification = false;

    if (chabokNotification.getExtras() != null) {
            Bundle payload = chabokNotification.getExtras();

            //FCM message
            isRichNotification = payload.containsKey("mediaUrl");
    } else if (chabokNotification.getMessage() != null) {
            PushMessage payload = chabokNotification.getMessage();

            //Chabok message
            if (payload.getNotification() != null) {
                    isRichNotification = payload.getNotification().has("mediaUrl");
            }
    }

    if (!isRichNotification) {
            String notifText = chabokNotification.getText();
            if (notifText != null) {
                    builder.setStyle(new NotificationCompat.BigTextStyle().bigText(notifText));
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                            builder.setPriority(Notification.PRIORITY_MAX);
                    }
            }
    }

    return super.buildNotification(chabokNotification, builder);
}
Husseinhj commented 5 years ago

این کد رو توی کلاس Application به شکل زیر بعد از متد init چابک پیاده‌سازی کنید:


NotificationHandler notificationHandler = new NotificationHandler() {
    @Override
public boolean buildNotification(ChabokNotification chabokNotification, NotificationCompat.Builder builder) {
    boolean isRichNotification = false;

    if (chabokNotification.getExtras() != null) {
            Bundle payload = chabokNotification.getExtras();

            //FCM message
            isRichNotification = payload.containsKey("mediaUrl");
    } else if (chabokNotification.getMessage() != null) {
            PushMessage payload = chabokNotification.getMessage();

            //Chabok message
            if (payload.getNotification() != null) {
                    isRichNotification = payload.getNotification().has("mediaUrl");
            }
    }

    if (!isRichNotification) {
            String notifText = chabokNotification.getText();
            if (notifText != null) {
                    builder.setStyle(new NotificationCompat.BigTextStyle().bigText(notifText));
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                            builder.setPriority(Notification.PRIORITY_MAX);
                    }
            }
    }

    return super.buildNotification(chabokNotification, builder);
    }
};

AdpPushClient.get().addNotificationHandler(notificationHandler);