private void RefreshRecordChart()
        {
            var entries = new List <Entry>();

            for (int i = 0; i < DayRecords.Count; i++)
            {
                var dayRecord = DayRecords[i];
                var date      = dayRecord.Date;

                var entry = new Entry((float)dayRecord.SuccessRate)
                {
                    Label      = $"{date.Month}/{date.Day},({CreateDateString.ConvertDayOfWeekToKorDayOfWeek(dayRecord.Date)})",
                    Color      = SkiaSharp.SKColor.Parse("#1565c0"),
                    ValueLabel = $"{string.Format("{0:0.##}", Math.Round(dayRecord.SuccessRate * 100))}%"
                };
                entries.Add(entry);
            }

            SuccessChart = new LineChart()
            {
                Entries               = entries,
                LabelTextSize         = DependencyService.Get <INativeFont>().GetNativeSize(LabelFontSize),
                LabelOrientation      = Orientation.Horizontal,
                ValueLabelOrientation = Orientation.Horizontal,
                LineMode              = LineMode.Spline,
                LineAreaAlpha         = 64,
                AnimationProgress     = 3f,
                AnimationDuration     = TimeSpan.FromSeconds(AnimationSec)
            };
        }
Example #2
0
        private async Task Save()
        {
            if (!string.IsNullOrEmpty(Name))
            {
                Name = Name.TrimStart().TrimEnd();
            }
            if (!string.IsNullOrEmpty(WakeUpText))
            {
                WakeUpText = WakeUpText.TrimStart().TrimEnd();
            }
            if (!string.IsNullOrEmpty(PackageName))
            {
                PackageName = PackageName.TrimStart().TrimEnd();
            }

            Alarm.TimeOffset = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes, 0);

            if (string.IsNullOrEmpty(Name))
            {
                await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotAlarmName, AppResources.OK);
            }
            else if (Alarm.TimeOffset.Subtract(DateTime.Now).Ticks < 0 && !DaysOfWeek.GetHasADayBeenSelected(Alarm.Days))
            {
                await Application.Current.MainPage.DisplayAlert("", AppResources.SetTimePast, AppResources.OK);
            }
            else if (string.IsNullOrEmpty(WakeUpText) && Alarm.HasWakeUpText)
            {
                await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotWordsThatWakeMeUp, AppResources.OK);
            }
            else if (string.IsNullOrEmpty(PackageName) && Alarm.IsLinkOtherApp)
            {
                await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotLinkOtherApps, AppResources.OK);
            }
            else
            {
                if (!Alarm.IsActive)
                {
                    Alarm.ChangeIsActive(Alarm, true);
                }
                Alarm.IsLaterAlarm    = false;
                Alarm.IsGoOffPreAlarm = false;

                var id = Service.SaveAlarm(Alarm);

                if (Preferences.Get("MaxAlarmId", 3) < id)
                {
                    Preferences.Set("MaxAlarmId", id);
                }

                await ClosePopup();

                var diffString = CreateDateString.CreateTimeRemainingString(Alarm.NextAlarmTime);
                DependencyService.Get <IToastService>().Show(diffString);
            }
        }
Example #3
0
        private void SetLaterAlarm(int minutes)
        {
            var alarmTime = SetLaterAlarmAndGetLaterAlarmTime(minutes);

            AlarmHelper.SetLaterAlarm(alarm);
            //AlarmController.SetLaterAlarmByManager(alarm, (long)diffTimeSpan.TotalMilliseconds);

            alarmService.SaveAlarmAtLocal(alarm);

            countDownForFailed.Cancel();

            Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show();

            NotificationAndroid.NotifyLaterAlarm(alarm, Intent);
        }
Example #4
0
        protected override void OnUserLeaveHint()
        {
            if (IsNotDelayAlarm)
            {
                var alarmTime = GetLaterAlarmTimeForNotDelayAlarm(3);
                AlarmHelper.SetLaterAlarm(alarm);
                alarmService.SaveAlarmAtLocal(alarm);
                Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show();
                FinishAndRemoveTask();
                return;
            }

            if (!IsFinished)
            {
                SetLaterAlarm(5);
                FinishAndRemoveTask();
            }

            base.OnUserLeaveHint();
        }