コード例 #1
0
        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());
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
ファイル: ViewSessionBase.cs プロジェクト: paul-pagnan/helps
        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();
                }
            };
        }