private void SendNtfIfRequired(Context context) { var ntfTextBuilder = new IncompleteTaskNtfTextBuilder(App.Current.TaskManager); var strs = ntfTextBuilder.GetEnumerableStrings(); if (strs.Count > 0) { var builder = new NotificationCompat.Builder(context) .SetAutoCancel(true) // Dismiss from the notif. area when clicked .SetContentTitle("TODO") .SetSmallIcon(Resource.Drawable.Icon) .SetContentText("TODO"); // The message to display. var inboxStyle = new NotificationCompat.InboxStyle(); foreach (var str in strs) { inboxStyle.AddLine(str); } builder.SetStyle(inboxStyle); // Finally, publish the notification: NotificationManager notificationManager = (NotificationManager)context.GetSystemService(Context.NotificationService); notificationManager.Notify(_notificationId, builder.Build()); } }
public void NotifyNewChapters(Context context, List <Chapter> chapters) { if (chapters.Count < 1) { return; } Builder builder = GetBuilder(context, ChannelId.NewChapter); builder.SetAutoCancel(true); builder.SetNumber(4); builder.SetOnlyAlertOnce(true); builder.SetContentTitle("1 New Chapter"); builder.SetContentText(chapters[0].Title); Intent intent = new Intent(Intent.ActionView); intent.SetData(Uri.Parse(chapters[0].URL)); intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask); PendingIntent pendingIntent = PendingIntent.GetActivity(context, (int)ChannelId.NewChapter, intent, PendingIntentFlags.OneShot); builder.SetContentIntent(pendingIntent); if (chapters.Count > 1) { builder.SetContentTitle($"{chapters.Count} New Chapters"); builder.SetSubText($"and {chapters.Count - 1} more"); var inboxStyle = new Notification.InboxStyle(GetBuilder(context, ChannelId.NewChapter)); inboxStyle.SetBigContentTitle($"{chapters.Count} New Chapters"); foreach (Chapter chapter in chapters) { inboxStyle.AddLine(chapter.Title); } builder.SetStyle(inboxStyle); } //Bitmap icon = BitmapFactory.DecodeResource(context.Resources, Resource.Drawable.new_chapter_icon); builder.SetSmallIcon(Resource.Drawable.new_chapter_icon); NotificationManagerCompat notificationManager = GetManager(context); notificationManager.Notify((int)ChannelId.NewChapter, builder.Build()); }
//Inbox Style Notification void ButtonOnClick4(object sender, EventArgs eventArgs) { // Pass the current button press count4 value to the next activity: var valuesForActivity = new Bundle(); valuesForActivity.PutInt(COUNT_KEY, count4); // When the user clicks the notification, SecondActivity will start up. var resultIntent = new Intent(this, typeof(InboxNotificationActivity)); // Pass some values to SecondActivity: resultIntent.PutExtras(valuesForActivity); // Construct a back stack for cross-task navigation: var stackBuilder = TaskStackBuilder.Create(this); stackBuilder.AddParentStack(Class.FromType(typeof(InboxNotificationActivity))); stackBuilder.AddNextIntent(resultIntent); // Create the PendingIntent with the back stack: var resultPendingIntent = stackBuilder.GetPendingIntent(0, (int)PendingIntentFlags.UpdateCurrent); // Build the notification: var builder = new NotificationCompat.Builder(this, CHANNEL_ID) .SetAutoCancel(true) // Dismiss the notification from the notification area when the user clicks on it .SetContentIntent(resultPendingIntent) // Start up this activity when the user clicks the intent. .SetContentTitle("Button4 Clicked") // Set the title .SetSmallIcon(Resource.Drawable.logo) // This is the icon to display .SetLargeIcon(BitmapFactory.DecodeResource(Resources, Resource.Drawable.pic1)) .SetPriority(2) .SetContentText($"The button has been clicked {count4} times."); // the message to display. // Instantiate the Big Text style: //Notification.BigTextStyle textStyle = new Notification.BigTextStyle(); if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop) { builder.SetCategory(NotificationCompact.CategoryCall); } // Convert the image to a bitmap before passing it into the style: // Instantiate the Inbox style: NotificationCompact.InboxStyle inboxStyle = new NotificationCompact.InboxStyle(); // Set the title and text of the notification: builder.SetContentTitle("5 new messages"); builder.SetContentText("*****@*****.**"); // Generate a message summary for the body of the notification: inboxStyle.AddLine("Cheeta: Bananas on sale"); inboxStyle.AddLine("George: Curious about your blog post"); inboxStyle.AddLine("Nikko: Need a ride to Evolve?"); inboxStyle.SetSummaryText("+2 more"); // Plug this style into the builder: builder.SetStyle(inboxStyle); //builder.SetPriority(NotificationPriority.High); // Finally, publish the notification: var notificationManager = NotificationManagerCompat.From(this); notificationManager.Notify(NOTIFICATION_ID4, builder.Build()); // Increment the button press count4: count4++; }