new AsyncTask<String, Void, Bitmap>() {
@Override
protected Bitmap doInBackground(String... params) {
try {
InputStream in = new URL(params[0]).openStream();
return BitmapFactory.decodeStream(in);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
//REQUIRED! For tracking click notification
intent.putExtra(PersonaClick.NOTIFICATION_TYPE, data.get("type"));
intent.putExtra(PersonaClick.NOTIFICATION_ID, data.get("id"));
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext(), getString(R.string.notification_channel_id))
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(result)
.setStyle(new NotificationCompat.BigTextStyle().bigText(data.get("body")))
.setContentTitle(data.get("title"))
.setContentText(data.get("body"))
.setAutoCancel(true)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if( notificationManager != null ) {
notificationManager.notify(0, notificationBuilder.build());
} else {
Log.e(PersonaClick.TAG, "NotificationManager not allowed");
}
}
}.execute(data.get("icon")); |