public override void DidEnterBackground(UIApplication application)
        {
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            notification = new UILocalNotification();

            //notification.AlertTitle = "Productivity Tracker"; // required for Apple Watch notifications
            notification.AlertAction = "Log productivity";
            notification.AlertBody   = "How productive are you feeling?";
            notification.ApplicationIconBadgeNumber = 1;

            DateTime hourHalfFromNow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 30, 0);

            if (DateTime.Now.Hour + 1 <= hourMax)
            {
                if (DateTime.Now.Hour + 1 == hourMax)
                {
                    hourHalfFromNow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour + 1, minuteMax, 0);
                }
                else
                {
                    hourHalfFromNow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour + 1, 30, 0);
                }
            }
            else if (DateTime.Now.Hour + 1 > hourMax)
            {
                hourHalfFromNow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1, hourMin, minuteMin, 0);
            }

            notification.FireDate = NSDate.FromTimeIntervalSinceNow(hourHalfFromNow.Subtract(DateTime.Now).TotalSeconds);

            UIApplication.SharedApplication.ScheduleLocalNotification(notification);

            //Save min/max times in database
            MinMaxTimes times = new MinMaxTimes();

            times.MinHour   = hourMin;
            times.MaxHour   = hourMax;
            times.MinMinute = minuteMin;
            times.MaxMinute = minuteMax;
            db.DeleteAll <MinMaxTimes>();
            db.Insert(times);
        }
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            //do you want notifications?
            var settings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);

            UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
            UIApplication.SharedApplication.CancelAllLocalNotifications();

            //load database
            string dbName        = "db.sqlite";
            string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); // Documents folder
            string libraryPath   = Path.Combine(documentsPath, "..", "Library");                  // Library folder
            var    dbPath        = Path.Combine(libraryPath, dbName);

            db = new SQLiteConnection(dbPath);
            db.CreateTable <ProductiveData>();

            db.CreateTable <MinMaxTimes>();
            if (db.Table <MinMaxTimes>().Count() == 0)
            {
                MinMaxTimes times = new MinMaxTimes();
                times.MinHour   = hourMin;
                times.MaxHour   = hourMax;
                times.MinMinute = minuteMin;
                times.MaxMinute = minuteMax;
                db.Insert(times);
            }
            else
            {
                MinMaxTimes times = db.Table <MinMaxTimes>().First();
                hourMin   = times.MinHour;
                hourMax   = times.MaxHour;
                minuteMin = times.MinMinute;
                minuteMax = times.MaxMinute;
            }

            return(true);
        }