Skip to content

Commit

Permalink
Add option to auto suggest today - Related to #93 #102
Browse files Browse the repository at this point in the history
  • Loading branch information
DamascenoRafael committed Feb 26, 2023
1 parent ff5910d commit 7e6f082
Show file tree
Hide file tree
Showing 13 changed files with 44 additions and 2 deletions.
5 changes: 5 additions & 0 deletions reminders-menu-bar/Models/RmbReminder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ struct RmbReminder {
priority = .none
}

init(hasDueDate: Bool) {
self.init()
self.hasDueDate = hasDueDate
}

init(reminder: EKReminder) {
originalReminder = reminder
title = reminder.title
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/de.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Auswählen wo die Erinnerung gespeichert wird";
"newReminderAddDateButton" = "Datum";
"newReminderAddTimeButton" = "Uhrzeit";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "Optionen für die Bearbeitung der Erinnerung";
"editReminderOptionButton" = "Bearbeiten";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Select where new reminders will be saved";
"newReminderAddDateButton" = "Add Date";
"newReminderAddTimeButton" = "Add Time";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date";
"newReminderRemoveParsedDateOption" = "Remove parsed date from title";
"remindersOptionsButtonHelp" = "Options for editing the reminder";
"editReminderOptionButton" = "Edit";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Selecciona donde quieres que tu recordatorio se guarde";
"newReminderAddDateButton" = "Añadir fecha";
"newReminderAddTimeButton" = "Añadir hora";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "Opciones para editar un recordatorio";
"editReminderOptionButton" = "Editar";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Seleziona dove verranno salvati i nuovi promemoria";
"newReminderAddDateButton" = "Aggiungi data";
"newReminderAddTimeButton" = "Aggiungi ora";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "Opzioni per modificare il promemoria";
"editReminderOptionButton" = "Modifica";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/ja.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "リマインダーの保存場所を選択";
"newReminderAddDateButton" = "日付を追加";
"newReminderAddTimeButton" = "時刻を追加";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "リマインダーの編集オプション";
"editReminderOptionButton" = "編集";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/nl.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Selecteer waar nieuwe herinneringen worden opgeslagen";
"newReminderAddDateButton" = "Datum";
"newReminderAddTimeButton" = "Tijd";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "Opties voor het bewerken van de herinnering";
"editReminderOptionButton" = "Bewerken";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/pl.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Wybierz, gdzie nowe przypomnienia będą zapisywane";
"newReminderAddDateButton" = "Dodaj Datę";
"newReminderAddTimeButton" = "Dodaj Czas";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "Opcję edycji przypomnienia";
"editReminderOptionButton" = "Edytuj";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "Selecione onde o novo lembrete será salvo";
"newReminderAddDateButton" = "Adicionar Data";
"newReminderAddTimeButton" = "Horário";
"newReminderAutoSuggestTodayOption" = "Auto sugerir hoje como data";
"newReminderRemoveParsedDateOption" = "Remover data analisada do título";
"remindersOptionsButtonHelp" = "Opções para editar o lembrete";
"editReminderOptionButton" = "Editar";
Expand Down
1 change: 1 addition & 0 deletions reminders-menu-bar/Resources/remindersLocalized.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ enum RemindersMenuBarLocalizedKeys: String {
case newReminderCalendarSelectionToSaveHelp
case newReminderAddDateButton
case newReminderAddTimeButton
case newReminderAutoSuggestTodayOption
case newReminderRemoveParsedDateOption
case remindersOptionsButtonHelp
case editReminderOptionButton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"newReminderCalendarSelectionToSaveHelp" = "选择新提醒事项的储存位置";
"newReminderAddDateButton" = "添加日期";
"newReminderAddTimeButton" = "添加时间";
"newReminderAutoSuggestTodayOption" = "Auto suggest today as date"; // TODO: Translate
"newReminderRemoveParsedDateOption" = "Remove parsed date from title"; // TODO: Translate
"remindersOptionsButtonHelp" = "关于编辑提醒事项的选项";
"editReminderOptionButton" = "编辑";
Expand Down
9 changes: 9 additions & 0 deletions reminders-menu-bar/Services/UserPreferences.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ private struct PreferencesKeys {
static let reminderMenuBarIcon = "reminderMenuBarIcon"
static let calendarIdentifiersFilter = "calendarIdentifiersFilter"
static let calendarIdentifierForSaving = "calendarIdentifierForSaving"
static let autoSuggestTodayForNewReminders = "autoSuggestTodayForNewReminders"
static let removeParsedDateFromTitle = "removeParsedDateFromTitle"
static let showUncompletedOnly = "showUncompletedOnly"
static let backgroundIsTransparent = "backgroundIsTransparent"
Expand Down Expand Up @@ -70,6 +71,14 @@ class UserPreferences: ObservableObject {
}
}

@Published var autoSuggestToday: Bool = {
return defaults.bool(forKey: PreferencesKeys.autoSuggestTodayForNewReminders)
}() {
didSet {
UserPreferences.defaults.set(autoSuggestToday, forKey: PreferencesKeys.autoSuggestTodayForNewReminders)
}
}

@Published var removeParsedDateFromTitle: Bool = {
return defaults.bool(forKey: PreferencesKeys.removeParsedDateFromTitle)
}() {
Expand Down
22 changes: 20 additions & 2 deletions reminders-menu-bar/Views/FormNewReminderView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ struct FormNewReminderView: View {

Divider()

Button(action: {
userPreferences.autoSuggestToday.toggle()
if rmbReminder.title.isEmpty {
rmbReminder = newRmbReminder()
}
}) {
let isSelected = userPreferences.autoSuggestToday
SelectableView(title: rmbLocalized(.newReminderAutoSuggestTodayOption),
isSelected: isSelected)
}

Button(action: { userPreferences.removeParsedDateFromTitle.toggle() }) {
let isSelected = userPreferences.removeParsedDateFromTitle
SelectableView(title: rmbLocalized(.newReminderRemoveParsedDateOption),
Expand All @@ -64,9 +75,12 @@ struct FormNewReminderView: View {
}
rmbReminder.updateWithDateParser()
if newValue.isEmpty {
rmbReminder = RmbReminder()
rmbReminder = newRmbReminder()
}
}
.onAppear {
rmbReminder = newRmbReminder()
}
}

@ViewBuilder
Expand All @@ -85,6 +99,10 @@ struct FormNewReminderView: View {
}
}

func newRmbReminder() -> RmbReminder {
return RmbReminder(hasDueDate: userPreferences.autoSuggestToday)
}

func createNewReminder() {
guard !rmbReminder.title.isEmpty,
let calendarForSaving = userPreferences.calendarForSaving else {
Expand All @@ -96,7 +114,7 @@ struct FormNewReminderView: View {
}

RemindersService.shared.createNew(with: rmbReminder, in: calendarForSaving)
rmbReminder = RmbReminder()
rmbReminder = newRmbReminder()
}
}

Expand Down

0 comments on commit 7e6f082

Please sign in to comment.