47 {
48 ensureChannel(ctx);
49
50 Uri uri = FileProvider.getUriForFile(ctx, AUTHORITY, pdfFile);
51
52 PendingIntent openIntent = PendingIntent.getActivity(
53 ctx, notifId.get(),
54 new Intent(Intent.ACTION_VIEW)
55 .setDataAndType(uri, "application/pdf")
56 .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION),
57 PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
58
59 Intent printLaunch = new Intent(ctx, PrintProxyActivity.class);
60 printLaunch.setData(uri);
61 printLaunch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
62 PendingIntent printIntent = PendingIntent.getActivity(
63 ctx, notifId.get() + 1, printLaunch,
64 PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
65
66 Notification notif = new NotificationCompat.Builder(ctx, CHANNEL_ID)
67 .setSmallIcon(android.R.drawable.ic_dialog_info)
68 .setContentTitle(ctx.getString(R.string.print_notif_title))
69 .setContentText(pdfFile.getName())
70 .setContentIntent(openIntent)
71 .addAction(android.R.drawable.ic_menu_view,
72 ctx.getString(R.string.print_notif_open), openIntent)
73 .addAction(android.R.drawable.ic_menu_send,
74 ctx.getString(R.string.print_notif_print), printIntent)
75 .setAutoCancel(true)
76 .build();
77
78 NotificationManager nm =
79 (NotificationManager)ctx.getSystemService(Context.NOTIFICATION_SERVICE);
80 nm.notify(notifId.getAndIncrement(), notif);
81 }