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); }