private static Notification GetNotification(Context ctx, int sessionId, NotificationOption not) { WorkshopDetail session = null; if (not.isWorkshop) { session = Services.Workshop.GetWorkshopFromBookingLocal(sessionId); } else { session = Services.Session.GetSession(sessionId); } var prefix = (not.isWorkshop) ? "" : "Session with "; Notification.Builder mBuilder = new Notification.Builder(ctx) .SetSmallIcon(Resource.Drawable.notificationIcon) .SetContentTitle(prefix + session.Title) .SetContentText(session.Time + " - " + session.DateHumanFriendly) .SetAutoCancel(true) .SetColor(ctx.Resources.GetColor(Resource.Color.primary)) .SetDefaults(NotificationDefaults.All) .SetStyle( new Notification.BigTextStyle().SetSummaryText(session.Title) .BigText(session.Time + " - " + session.DateHumanFriendly + System.Environment.NewLine + session.Room)); try { Looper.Prepare(); } catch (System.Exception ex) { } Intent resultIntent = new Intent(ctx, new ViewSessionActivity().Class); if (not.isWorkshop) { resultIntent = new Intent(ctx, new ViewWorkshopActivity().Class); } resultIntent.PutExtra("Id", sessionId); resultIntent.PutExtra("IsBooking", true); TaskStackBuilder stackBuilder = TaskStackBuilder.Create(ctx); stackBuilder.AddParentStack(new ViewWorkshopActivity().Class); stackBuilder.AddNextIntent(resultIntent); int identifier = (not.isWorkshop) ? 1 : 0; int notificationId = Integer.ParseInt(identifier + sessionId.ToString() + not.mins); PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent(notificationId, PendingIntentFlags.UpdateCurrent); mBuilder.SetContentIntent(resultPendingIntent); return(mBuilder.Build()); }
protected override async void OnCreate(Bundle bundle) { base.OnCreate(bundle); var extras = Intent.Extras; if (extras != null) { //Get vars from bundle var workshopId = extras.GetInt("Id"); cts.Cancel(); //Get the Booking Details if (extras.GetBoolean("IsBooking")) { session = await Services.Workshop.GetWorkshopFromBooking(workshopId); } else { session = Services.Workshop.GetWorkshop(workshopId); HideEdit = true; } ListBaseAdapter.InitColors(Resources); SetToolbarColor(ListBaseAdapter.GetColor(session.WorkshopSetId)); InitWorkshopComponents(); UpdateFields(); cts.Cancel(); //Load booking information so the buttons can be updated //Get Local Data First, then update later await Task.Factory.StartNew(() => LoadBooking(true)); if (!extras.GetBoolean("IsBooking")) { isWaitlisted = await Services.Workshop.IsWaitlisted(session.Id); } //Do a background Sync now await Task.Factory.StartNew(() => LoadBooking(false, false)); } }
protected void EditNotes(WorkshopDetail session) { var animOut = AnimationUtils.LoadAnimation(this, Resource.Animation.fadeout); fab.StartAnimation(animOut); animOut.AnimationEnd += async(sender, e) => { if (IsEditing) { var dialog = DialogHelper.CreateProgressDialog("Saving...", this); dialog.Show(); var response = await Services.Workshop.AddNotes(editTxtNotes.Text, session.Id); dialog.Hide(); if (response.Success) { IsEditing = !IsEditing; AnimateButton(); FlipView(); } else { DialogHelper.ShowDialog(this, response.Message, response.Title); } } else { locked = DateTime.UtcNow.AddDays(-7) > session.DateEnd; editTxtNotes.Enabled = !locked; if (locked && editTxtNotes.Text == "") { editTxtNotes.Text = "No notes"; } IsEditing = !IsEditing; AnimateButton(); FlipView(); } }; }