You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.0 KiB
121 lines
4.0 KiB
part of 'neon_notes.dart'; |
|
|
|
class NotesAppSpecificOptions extends NextcloudAppOptions { |
|
NotesAppSpecificOptions(super.storage) { |
|
super.categories = [ |
|
generalCategory, |
|
notesCategory, |
|
categoriesCategory, |
|
]; |
|
super.options = [ |
|
defaultCategoryOption, |
|
defaultNoteViewTypeOption, |
|
notesSortPropertyOption, |
|
notesSortBoxOrderOption, |
|
categoriesSortPropertyOption, |
|
categoriesSortBoxOrderOption, |
|
]; |
|
} |
|
|
|
final generalCategory = OptionsCategory( |
|
name: (final context) => AppLocalizations.of(context).general, |
|
); |
|
|
|
final notesCategory = OptionsCategory( |
|
name: (final context) => AppLocalizations.of(context).notes, |
|
); |
|
|
|
final categoriesCategory = OptionsCategory( |
|
name: (final context) => AppLocalizations.of(context).categories, |
|
); |
|
|
|
late final defaultCategoryOption = SelectOption<DefaultCategory>( |
|
storage: super.storage, |
|
category: generalCategory, |
|
key: 'default-category', |
|
label: (final context) => AppLocalizations.of(context).optionsDefaultCategory, |
|
defaultValue: DefaultCategory.notes, |
|
values: BehaviorSubject.seeded({ |
|
DefaultCategory.notes: (final context) => AppLocalizations.of(context).notes, |
|
DefaultCategory.categories: (final context) => AppLocalizations.of(context).categories, |
|
}), |
|
); |
|
|
|
late final defaultNoteViewTypeOption = SelectOption<DefaultNoteViewType>( |
|
storage: super.storage, |
|
category: generalCategory, |
|
key: 'default-note-view-type', |
|
label: (final context) => AppLocalizations.of(context).optionsDefaultNoteViewType, |
|
defaultValue: DefaultNoteViewType.preview, |
|
values: BehaviorSubject.seeded({ |
|
DefaultNoteViewType.preview: (final context) => AppLocalizations.of(context).optionsDefaultNoteViewTypePreview, |
|
DefaultNoteViewType.edit: (final context) => AppLocalizations.of(context).optionsDefaultNoteViewTypeEdit, |
|
}), |
|
); |
|
|
|
late final notesSortPropertyOption = SelectOption<NotesSortProperty>( |
|
storage: super.storage, |
|
category: notesCategory, |
|
key: 'notes-sort-property', |
|
label: (final context) => AppLocalizations.of(context).optionsNotesSortProperty, |
|
defaultValue: NotesSortProperty.lastModified, |
|
values: BehaviorSubject.seeded({ |
|
NotesSortProperty.lastModified: (final context) => |
|
AppLocalizations.of(context).optionsNotesSortPropertyLastModified, |
|
NotesSortProperty.alphabetical: (final context) => |
|
AppLocalizations.of(context).optionsNotesSortPropertyAlphabetical, |
|
}), |
|
); |
|
|
|
late final notesSortBoxOrderOption = SelectOption<SortBoxOrder>( |
|
storage: super.storage, |
|
category: notesCategory, |
|
key: 'notes-sort-box-order', |
|
label: (final context) => AppLocalizations.of(context).optionsNotesSortOrder, |
|
defaultValue: SortBoxOrder.descending, |
|
values: BehaviorSubject.seeded(sortBoxOrderOptionValues), |
|
); |
|
|
|
late final categoriesSortPropertyOption = SelectOption<CategoriesSortProperty>( |
|
storage: super.storage, |
|
category: categoriesCategory, |
|
key: 'categories-sort-property', |
|
label: (final context) => AppLocalizations.of(context).optionsCategoriesSortProperty, |
|
defaultValue: CategoriesSortProperty.alphabetical, |
|
values: BehaviorSubject.seeded({ |
|
CategoriesSortProperty.alphabetical: (final context) => |
|
AppLocalizations.of(context).optionsCategoriesSortPropertyAlphabetical, |
|
CategoriesSortProperty.notesCount: (final context) => |
|
AppLocalizations.of(context).optionsCategoriesSortPropertyNotesCount, |
|
}), |
|
); |
|
|
|
late final categoriesSortBoxOrderOption = SelectOption<SortBoxOrder>( |
|
storage: super.storage, |
|
category: categoriesCategory, |
|
key: 'categories-sort-box-order', |
|
label: (final context) => AppLocalizations.of(context).optionsCategoriesSortOrder, |
|
defaultValue: SortBoxOrder.ascending, |
|
values: BehaviorSubject.seeded(sortBoxOrderOptionValues), |
|
); |
|
} |
|
|
|
enum DefaultNoteViewType { |
|
preview, |
|
edit, |
|
} |
|
|
|
enum NotesSortProperty { |
|
lastModified, |
|
alphabetical, |
|
} |
|
|
|
enum CategoriesSortProperty { |
|
alphabetical, |
|
notesCount, |
|
} |
|
|
|
enum DefaultCategory { |
|
notes, |
|
categories, |
|
}
|
|
|