/// <summary> /// The UpdateNotification /// </summary> /// <param name="title">The title<see cref="string"/></param> /// <param name="message">The message<see cref="string"/></param> /// <param name="bShowProgressBar">The bShowProgressBar<see cref="bool"/></param> public void UpdateNotification(string title, string message, bool bShowProgressBar) { if (Build.VERSION.SdkInt >= BuildVersionCodes.M) { if (title != null) { bigTextStyle.SetBigContentTitle(prefix + " : " + title); } if (message != null) { bigTextStyle.BigText(string.IsNullOrWhiteSpace(message) ? defaulttext : message); } mBuilder.SetProgress(0, 0, bShowProgressBar) .SetStyle(bigTextStyle) ; } else { if (title != null) { mBuilder.SetContentTitle(prefix + " : " + title); } if (message != null) { mBuilder.SetContentText(string.IsNullOrWhiteSpace(message) ? defaulttext : message); } } notificationManager.Notify(Notification_ID, mBuilder.Build()); }
private void CreateNotification(Intent intent) { recipe = Recipe.FromBundle(intent.GetBundleExtra(Constants.ExtraRecipe)); List<Notification> notificationPages = new List<Notification> (); int stepCount = recipe.RecipeSteps.Count; for (int i = 0; i < stepCount; i++) { Recipe.RecipeStep recipeStep = recipe.RecipeSteps [i]; var style = new NotificationCompat.BigTextStyle (); style.BigText (recipeStep.StepText); style.SetBigContentTitle (String.Format (Resources.GetString (Resource.String.step_count), i + 1, stepCount)); style.SetSummaryText (""); var builder = new NotificationCompat.Builder (this); builder.SetStyle (style); notificationPages.Add (builder.Build ()); } var notifBuilder = new NotificationCompat.Builder(this); if (recipe.RecipeImage != null) { Bitmap recipeImage = Bitmap.CreateScaledBitmap( AssetUtils.LoadBitmapAsset(this, recipe.RecipeImage), Constants.NotificationImageWidth, Constants.NotificationImageHeight, false); notifBuilder.SetLargeIcon(recipeImage); } notifBuilder.SetContentTitle (recipe.TitleText); notifBuilder.SetContentText (recipe.SummaryText); notifBuilder.SetSmallIcon (Resource.Mipmap.ic_notification_recipe); Notification notification = notifBuilder.Extend(new NotificationCompat.WearableExtender().AddPages(notificationPages)).Build(); notificationManager.Notify (Constants.NotificationId, notification); }
public void CreateLocalNotification(string titolo, string descrizione, int id, string rifordine, int idriga) { Context ctx = Forms.Context; NotificationManager nm = (NotificationManager)ctx.GetSystemService(Context.NotificationService); int notId = id + 9999; //esecuzione dell'intent //Yes intent Intent yesReceive = new Intent( ); yesReceive.SetAction("YES_ACTION"); Bundle yesBundle = new Bundle(); yesBundle.PutInt("risp", 1);//This is the value I want to pass yesBundle.PutInt("id", id); yesBundle.PutString("ordine", rifordine); yesBundle.PutInt("idriga", idriga); yesReceive.PutExtras(yesBundle); PendingIntent pendingIntentYes = PendingIntent.GetBroadcast(ctx, notId, yesReceive, PendingIntentFlags.CancelCurrent); //no intent Intent noReceive = new Intent(); noReceive.SetAction("NO_ACTION"); Bundle noBundle = new Bundle(); noBundle.PutInt("risp", 0);//This is the value I want to pass noBundle.PutInt("id", id); noReceive.PutExtras(noBundle); PendingIntent pendingIntentNo = PendingIntent.GetBroadcast(ctx, notId, noReceive, PendingIntentFlags.CancelCurrent); Android.Content.Res.Resources res = ctx.Resources; Bitmap bm = BitmapFactory.DecodeResource(res, FishOnLine.Droid.Resource.Drawable.icon); System.Text.Encoding utf8 = System.Text.Encoding.UTF8; System.Text.Encoding iso = System.Text.Encoding.GetEncoding("ISO-8859-1"); string msg = iso.GetString(utf8.GetBytes(descrizione)); NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx) .SetPriority(NotificationCompat.PriorityMax) .SetAutoCancel(true) .SetLargeIcon(Bitmap.CreateScaledBitmap(bm, 80, 80, false)) .SetSmallIcon(Resource.Drawable.IcDialogInfo) .SetContentTitle(titolo) .SetContentText(msg) .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification)) .SetOngoing(true) .AddAction(Resource.Drawable.IcDelete, "Cancella", pendingIntentYes) .AddAction(Resource.Drawable.IcMenuCloseClearCancel, "Chiudi", pendingIntentNo); NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle(); bigTextStyle.SetBigContentTitle(titolo); bigTextStyle.BigText(descrizione); builder.SetStyle(bigTextStyle); nm.Notify(notId, builder.Build()); }
/// <summary> /// The OnCreate /// </summary> public override void OnCreate() { context = this; serialPortConnected = false; Intent intent = PackageManager .GetLaunchIntentForPackage(PackageName) .SetPackage(null) .SetFlags(ActivityFlags.NewTask | ActivityFlags.ResetTaskIfNeeded); PendingIntent pendingIntent = PendingIntent.GetActivity(context, 0, intent, 0); exitPendingIntent = PendingIntent.GetBroadcast(this, 0, new Intent("LNG.CMRI.EXIT"), 0); bigTextStyle = new NotificationCompat.BigTextStyle(); bigTextStyle.SetBigContentTitle(prefix); bigTextStyle.BigText(defaulttext); mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID) .SetSmallIcon(Resource.Drawable.ic_gas_meter_free_icon_3) .SetContentTitle("L+G CMRI") .SetContentText("CMRI Service Started") .SetStyle(bigTextStyle) //.SetWhen(System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()) //.SetAutoCancel(false) .SetOnlyAlertOnce(true) .SetProgress(0, 0, false) .SetPriority((int)NotificationPriority.Max) .SetOngoing(true) .SetContentIntent(pendingIntent) //.AddAction(Resource.Drawable.ic_mtrl_chip_close_circle, "EXIT APPLICATION", exitPendingIntent) //.SetFullScreenIntent(pendingIntent,true) ; notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; CreateNotificationChannel(); mNotify = mBuilder.Build(); StartForeground(Notification_ID, mNotify); SERVICE_CONNECTED = true; SetFilter(); usbManager = (UsbManager)GetSystemService(Context.UsbService); FindSerialPortDevice(); }
private void CreateNotification(Intent intent) { recipe = Recipe.FromBundle(intent.GetBundleExtra(Constants.ExtraRecipe)); List <Notification> notificationPages = new List <Notification> (); int stepCount = recipe.RecipeSteps.Count; for (int i = 0; i < stepCount; i++) { Recipe.RecipeStep recipeStep = recipe.RecipeSteps [i]; var style = new NotificationCompat.BigTextStyle(); style.BigText(recipeStep.StepText); style.SetBigContentTitle(String.Format(Resources.GetString(Resource.String.step_count), i + 1, stepCount)); style.SetSummaryText(""); var builder = new NotificationCompat.Builder(this); builder.SetStyle(style); notificationPages.Add(builder.Build()); } var notifBuilder = new NotificationCompat.Builder(this); if (recipe.RecipeImage != null) { Bitmap recipeImage = Bitmap.CreateScaledBitmap( AssetUtils.LoadBitmapAsset(this, recipe.RecipeImage), Constants.NotificationImageWidth, Constants.NotificationImageHeight, false); notifBuilder.SetLargeIcon(recipeImage); } notifBuilder.SetContentTitle(recipe.TitleText); notifBuilder.SetContentText(recipe.SummaryText); notifBuilder.SetSmallIcon(Resource.Mipmap.ic_notification_recipe); Notification notification = notifBuilder.Extend(new NotificationCompat.WearableExtender().AddPages(notificationPages)).Build(); notificationManager.Notify(Constants.NotificationId, notification); }
private void btnSendNotificationWithMultiplePages_OnClick(object sender, EventArgs eventArgs) { // Specify the 'big view' content to display the long var bigStyle = new NotificationCompat.BigTextStyle(); bigStyle.BigText("MUCH MUCH MUCH MUCH MUCH MORE MORE MORE MORE MORE MORE MORE MORE MORE MORE MORE MORE MORE TEXT!!"); var builder = new NotificationCompat.Builder(Context); builder.SetContentTitle("Notification") .SetContentText("With Big Text") .SetLocalOnly(false) .SetSmallIcon(Resource.Drawable.icon10) .SetStyle(bigStyle); // Create a big text style for the second page var secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.SetBigContentTitle("Page 2") .BigText("A lot of text..."); // Create second page notification Notification secondPageNotification = new NotificationCompat.Builder(Context) .SetStyle(secondPageStyle) .Build(); // Extend the notification builder with the second page var notification = builder .Extend(new NotificationCompat.WearableExtender() .AddPage(secondPageNotification)) .Build(); NotificationManagerCompat.From(Context).Notify(119, notification); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); var intent = new Intent(this, typeof(MainActivity)); var contentIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.CancelCurrent); var manager = NotificationManagerCompat.From(this); var title = "I <3 C#"; var message = "Seattle Code Camp rocks!"; var messageLong = "Seattle Code Camp is awesome, I can't wait to see the Xamarin.Forms Demo later! From what I hear it is going to be the best thing ever!"; //Standard Notification FindViewById <Button>(Resource.Id.notification).Click += (sender, e) => { var style = new NotificationCompat.BigTextStyle(); style.BigText(messageLong); //Generate a notification with just short text and small icon var builder = new NotificationCompat.Builder(this) .SetContentIntent(contentIntent) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle(title) .SetContentText(message) .SetStyle(style) .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()) .SetAutoCancel(true); var notification = builder.Build(); manager.Notify(0, notification); }; //Standard action with action FindViewById <Button>(Resource.Id.notification_action).Click += (sender, e) => { NotificationCompat.Action reply = new NotificationCompat.Action.Builder(Resource.Drawable.ic_stat_social_reply, "Reply", contentIntent) .Build(); var style = new NotificationCompat.BigTextStyle(); style.BigText(messageLong); //Generate a notification with just short text and small icon var builder = new NotificationCompat.Builder(this) .SetContentIntent(contentIntent) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle(title) .SetContentText(message) .SetStyle(style) .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()) .SetAutoCancel(true) .AddAction(reply); var notification = builder.Build(); manager.Notify(0, notification); }; //Special Button for Wear FindViewById <Button>(Resource.Id.notification_wear_action).Click += (sender, e) => { NotificationCompat.Action favorite = new NotificationCompat.Action.Builder(Resource.Drawable.ic_stat_rating_favorite, "Favorite", contentIntent) .Build(); NotificationCompat.Action reply = new NotificationCompat.Action.Builder(Resource.Drawable.ic_stat_social_reply, "Reply", contentIntent) .Build(); var style = new NotificationCompat.BigTextStyle(); style.BigText(messageLong); //Generate a notification with just short text and small icon var builder = new NotificationCompat.Builder(this) .SetContentIntent(contentIntent) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle(title) .SetContentText(message) .SetStyle(style) .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()) .SetAutoCancel(true) .AddAction(reply) .Extend(new NotificationCompat.WearableExtender().AddActions(new [] { reply, favorite })); var notification = builder.Build(); manager.Notify(0, notification); }; //Custom Background FindViewById <Button>(Resource.Id.notification_wear_background).Click += (sender, e) => { var action = new NotificationCompat.Action.Builder(Resource.Drawable.ic_stat_rating_favorite, "Favorite", contentIntent) .Build(); var wearableExtender = new NotificationCompat.WearableExtender() .SetHintHideIcon(true) .SetBackground(BitmapFactory.DecodeResource(Resources, Resource.Drawable.ic_background)) .AddAction(action) ; var style = new NotificationCompat.BigTextStyle(); style.BigText(messageLong); //Generate a notification with just short text and small icon var builder = new NotificationCompat.Builder(this) .SetContentIntent(contentIntent) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle(title) .SetContentText(message) .SetStyle(style) .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()) .SetAutoCancel(true) .AddAction(Resource.Drawable.ic_stat_social_reply, "Reply", contentIntent) .Extend(wearableExtender); var notification = builder.Build(); manager.Notify(0, notification); }; //Pages FindViewById <Button>(Resource.Id.notification_wear_pages).Click += (sender, e) => { // Create builder for the main notification var notificationBuilder = new NotificationCompat.Builder(this) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle("Page 1") .SetContentText("Short message") .SetContentIntent(contentIntent); // Create a big text style for the second page var secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.SetBigContentTitle("Page 2") .BigText(messageLong); // Create second page notification var secondPageNotification = new NotificationCompat.Builder(this) .SetStyle(secondPageStyle) .Build(); // Add second page with wearable extender and extend the main notification var twoPageNotification = new NotificationCompat.WearableExtender() .AddPage(secondPageNotification) .Extend(notificationBuilder) .Build(); // Issue the notification manager.Notify(0, twoPageNotification); }; //Stacked Notifications FindViewById <Button>(Resource.Id.notification_wear_stacked).Click += (sender, e) => { var wearableExtender = new NotificationCompat.WearableExtender() .SetBackground(BitmapFactory.DecodeResource(Resources, Resource.Drawable.ic_background)); // Build the notification, setting the group appropriately var notificaiton1 = new NotificationCompat.Builder(this) .SetContentTitle("New mail from James") .SetContentText(message) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetGroup("group_1") .Extend(wearableExtender) .Build(); var notification2 = new NotificationCompat.Builder(this) .SetContentTitle("New mail from ChrisNTR") .SetContentText("this is subject #1") .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetGroup("group_1") .Extend(wearableExtender) .Build(); manager.Notify(0, notificaiton1); manager.Notify(1, notification2); }; //Voice Input FindViewById <Button>(Resource.Id.notification_wear_voice).Click += (sender, e) => { var remoteInput = new Android.Support.V4.App.RemoteInput.Builder(ExtraVoiceReply) .SetLabel("Reply") .SetChoices(new [] { "Yes", "No", "OK you win" }) .Build(); NotificationCompat.Action reply = new NotificationCompat.Action.Builder(Resource.Drawable.ic_stat_social_reply, "Reply", contentIntent) .AddRemoteInput(remoteInput) .Build(); var wearableExtender = new NotificationCompat.WearableExtender(); wearableExtender.AddAction(reply); //Generate a notification with just short text and small icon var builder = new NotificationCompat.Builder(this) .SetContentIntent(contentIntent) .SetSmallIcon(Resource.Drawable.ic_stat_hexagon_blue) .SetContentTitle(title) .SetContentText(message) .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis()) .SetAutoCancel(true) .AddAction(reply) .Extend(wearableExtender); var notification = builder.Build(); manager.Notify(0, notification); }; var voiceReply = GetMessageText(Intent); if (!string.IsNullOrWhiteSpace(voiceReply)) { FindViewById <TextView> (Resource.Id.textView1).Text = voiceReply; } }