|
|
|
part of 'neon_notes.dart';
|
|
|
|
|
|
|
|
class NotesAppSpecificOptions extends NextcloudAppSpecificOptions {
|
|
|
|
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: BehaviorSubject.seeded(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: BehaviorSubject.seeded(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: BehaviorSubject.seeded(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: BehaviorSubject.seeded(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: BehaviorSubject.seeded(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: BehaviorSubject.seeded(SortBoxOrder.ascending),
|
|
|
|
values: BehaviorSubject.seeded(sortBoxOrderOptionValues),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
enum DefaultNoteViewType {
|
|
|
|
preview,
|
|
|
|
edit,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum NotesSortProperty {
|
|
|
|
lastModified,
|
|
|
|
alphabetical,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum CategoriesSortProperty {
|
|
|
|
alphabetical,
|
|
|
|
notesCount,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum DefaultCategory {
|
|
|
|
notes,
|
|
|
|
categories,
|
|
|
|
}
|