Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to load Glide cached image in NotificationCompat.Builder.setLargeIcon()?

Like this image I am trying to set notification large icon as user profile thumbnail like whatsapp or other chatting apps

I have tried

 Glide.with(context)
            .asBitmap()
            .load(messageNotification.getLargeIcon())
            .into(new SimpleTarget<Bitmap>() {
                @Override
                public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
                   builder.setLargeIcon(resource);

                }
            });

but it is not working.. Any Help?

like image 635
SAKhan Avatar asked Feb 24 '18 21:02

SAKhan


1 Answers

If you set the large icon using glide..the you should also notify the NotificationManager onResourceReady(resource, transition)

.into(new SimpleTarget<Bitmap>() {
    @Override
    public void onResourceReady(Bitmap res, Transition<? super Bitmap> t) {
       builder.setLargeIcon(res);
       yourNotificationManager.notify(id, builder.build());

    }
});

This is because glide uses background thread to load image..so before your image is loaded into builder... the notification manager is already notified (mainthread) with builder not having large image..

like image 50
Santanu Sur Avatar answered Nov 13 '22 16:11

Santanu Sur