Added mark as unread by default option

This commit is contained in:
Juan Gilsanz Polo
2025-04-03 22:24:59 +02:00
parent 09fda86e61
commit 7982644c23
9 changed files with 1604 additions and 2701 deletions

View File

@@ -7,4 +7,5 @@ class SharedPreferencesKeys {
static const showFavicon = "showFavicon";
static const openLinksBrowser = "openLinksBrowser";
static const defaultTags = "defaultTags";
static const markAsUnreadDefault = "markAsUnreadDefault";
}

File diff suppressed because it is too large Load Diff

View File

@@ -214,7 +214,10 @@
"addTag": "Add tag",
"removeThisTag": "Remove this tag",
"noDefaultTags": "There are no default tags"
}
},
"others": "Others",
"setMarkAsUnreadDefault": "Set mark as unread by default",
"setMarkAsUnreadDefaultDescription": "Set the mark as unread option by default when creating a new bookmark."
}
},
"webview": {

View File

@@ -214,7 +214,10 @@
"addTag": "Añadir etiqueta",
"removeThisTag": "Eliminar esta etiqueta",
"noDefaultTags": "No hay etiquetas por defecto"
}
},
"others": "Otros",
"setMarkAsUnreadDefault": "Marcar como no leído por defecto",
"setMarkAsUnreadDefaultDescription": "Habilitar por defecto la opción de marcar como leído al crear un marcador."
}
},
"webview": {

View File

@@ -214,7 +214,10 @@
"addTag": "AddTag",
"removeThisTag": "Remove this tag",
"noDefaultTags": "There are no default tags"
}
},
"others": "Others",
"setMarkAsUnreadDefault": "Set mark as unread by default",
"setMarkAsUnreadDefaultDescription": "Set the mark as unread option by default when creating a new bookmark."
}
},
"webview": {

View File

@@ -8,6 +8,7 @@ class AppStatusModel {
OpenLinksBrowser openLinksBrowser;
bool showFavicon;
List<String> defaultTags;
bool markAsUnreadDefault;
AppStatusModel({
this.selectedTheme = SelectedTheme.system,
@@ -17,5 +18,6 @@ class AppStatusModel {
this.openLinksBrowser = OpenLinksBrowser.integrated,
this.showFavicon = true,
required this.defaultTags,
this.markAsUnreadDefault = false,
});
}

View File

@@ -23,6 +23,7 @@ class AppStatus extends _$AppStatus {
OpenLinksBrowser.integrated,
showFavicon: sharedPreferences.getBool(SharedPreferencesKeys.showFavicon) ?? true,
defaultTags: sharedPreferences.getStringList(SharedPreferencesKeys.defaultTags) ?? [],
markAsUnreadDefault: sharedPreferences.getBool(SharedPreferencesKeys.markAsUnreadDefault) ?? false,
);
}
@@ -74,6 +75,12 @@ class AppStatus extends _$AppStatus {
ref.read(sharedPreferencesProvider).setStringList(SharedPreferencesKeys.defaultTags, newTags);
ref.notifyListeners();
}
void setMarkAsUnreadDefault(bool value) {
state.markAsUnreadDefault = value;
ref.read(sharedPreferencesProvider).setBool(SharedPreferencesKeys.markAsUnreadDefault, value);
ref.notifyListeners();
}
}
@riverpod

View File

@@ -4,6 +4,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:linkdy/screens/bookmarks/provider/bookmarks.provider.dart';
import 'package:linkdy/screens/bookmarks/model/bookmark_form.model.dart';
import 'package:linkdy/providers/app_status.provider.dart';
import 'package:linkdy/constants/global_keys.dart';
import 'package:linkdy/models/data/bookmarks.dart';
import 'package:linkdy/utils/snackbar.dart';
@@ -43,6 +44,7 @@ class BookmarkForm extends _$BookmarkForm {
tagsController: TextEditingController(),
tags: [],
notesController: TextEditingController(),
markAsUnread: ref.read(appStatusProvider).markAsUnreadDefault,
);
}
@@ -55,7 +57,7 @@ class BookmarkForm extends _$BookmarkForm {
state.descriptionController.text = bookmark.description ?? '';
state.tags = bookmark.tagNames ?? [];
state.notesController.text = bookmark.notes ?? '';
state.markAsUnread = bookmark.unread ?? false;
state.markAsUnread = bookmark.unread ?? ref.read(appStatusProvider).markAsUnreadDefault;
state.share = bookmark.shared ?? false;
}
@@ -97,7 +99,7 @@ class BookmarkForm extends _$BookmarkForm {
state.descriptionController.text = result.content?.metadata?.description ?? "";
state.tags = result.content?.bookmark?.tagNames ?? [];
state.notesController.text = result.content?.bookmark?.notes ?? "";
state.markAsUnread = result.content?.bookmark?.unread ?? false;
state.markAsUnread = result.content?.bookmark?.unread ?? ref.read(appStatusProvider).markAsUnreadDefault;
state.share = result.content?.bookmark?.shared ?? false;
state.bookmarkExists = true;
} else {

View File

@@ -77,6 +77,13 @@ class GeneralSettings extends ConsumerWidget {
subtitle: Text(t.settings.generalSettings.defaultTags.defaultTagsDescription),
onTap: () => ref.watch(routerProvider).push(RoutesPaths.defaultTags),
),
SectionLabel(label: t.settings.generalSettings.others),
SwitchListTile(
title: Text(t.settings.generalSettings.setMarkAsUnreadDefault),
subtitle: Text(t.settings.generalSettings.setMarkAsUnreadDefaultDescription),
value: ref.watch(appStatusProvider).markAsUnreadDefault,
onChanged: ref.read(appStatusProvider.notifier).setMarkAsUnreadDefault,
),
const Padding(
padding: EdgeInsets.symmetric(vertical: 16),
child: Divider(),