summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/bookmark.c5
-rw-r--r--apps/lang/english.lang14
-rw-r--r--apps/menus/settings_menu.c3
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_list.c2
5 files changed, 24 insertions, 1 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c
index 3d8df3ec0b..b8d41c7464 100644
--- a/apps/bookmark.c
+++ b/apps/bookmark.c
@@ -166,16 +166,21 @@ bool bookmark_mrb_load()
166bool bookmark_autobookmark(bool prompt_ok) 166bool bookmark_autobookmark(bool prompt_ok)
167{ 167{
168 char* bookmark; 168 char* bookmark;
169 bool update = false;
169 if (!system_check()) 170 if (!system_check())
170 return false; 171 return false;
171 172
172 audio_pause(); /* first pause playback */ 173 audio_pause(); /* first pause playback */
174 if (global_settings.autoupdatebookmark && bookmark_exist())
175 update = true;
173 bookmark = create_bookmark(); 176 bookmark = create_bookmark();
174 /* Workaround for inability to speak when paused: all callers will 177 /* Workaround for inability to speak when paused: all callers will
175 just do audio_stop() when we return, so we can do it right 178 just do audio_stop() when we return, so we can do it right
176 away. This makes it possible to speak the "Create a Bookmark?" 179 away. This makes it possible to speak the "Create a Bookmark?"
177 prompt and the "Bookmark Created" splash. */ 180 prompt and the "Bookmark Created" splash. */
178 audio_stop(); 181 audio_stop();
182 if (update)
183 return write_bookmark(true, bookmark);
179 switch (global_settings.autocreatebookmark) 184 switch (global_settings.autocreatebookmark)
180 { 185 {
181 case BOOKMARK_YES: 186 case BOOKMARK_YES:
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 2c09b594b2..653a0be3ed 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12605,3 +12605,17 @@
12605 touchscreen: "Cancel" 12605 touchscreen: "Cancel"
12606 </voice> 12606 </voice>
12607</phrase> 12607</phrase>
12608<phrase>
12609 id: LANG_BOOKMARK_SETTINGS_AUTOUPDATE
12610 desc: prompt for user to decide whether to update bookmarks
12611 user: core
12612 <source>
12613 *: "Update on Stop"
12614 </source>
12615 <dest>
12616 *: "Update on Stop"
12617 </dest>
12618 <voice>
12619 *: "Update on Stop"
12620 </voice>
12621</phrase>
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index bcd49c942c..efd18b2204 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -347,11 +347,12 @@ static int bmark_callback(int action,const struct menu_item_ex *this_item)
347} 347}
348MENUITEM_SETTING(autocreatebookmark, 348MENUITEM_SETTING(autocreatebookmark,
349 &global_settings.autocreatebookmark, bmark_callback); 349 &global_settings.autocreatebookmark, bmark_callback);
350MENUITEM_SETTING(autoupdatebookmark, &global_settings.autoupdatebookmark, NULL);
350MENUITEM_SETTING(autoloadbookmark, &global_settings.autoloadbookmark, NULL); 351MENUITEM_SETTING(autoloadbookmark, &global_settings.autoloadbookmark, NULL);
351MENUITEM_SETTING(usemrb, &global_settings.usemrb, NULL); 352MENUITEM_SETTING(usemrb, &global_settings.usemrb, NULL);
352MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0, 353MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0,
353 Icon_Bookmark, 354 Icon_Bookmark,
354 &autocreatebookmark, &autoloadbookmark, &usemrb); 355 &autocreatebookmark, &autoupdatebookmark, &autoloadbookmark, &usemrb);
355/* BOOKMARK MENU */ 356/* BOOKMARK MENU */
356/***********************************/ 357/***********************************/
357 358
diff --git a/apps/settings.h b/apps/settings.h
index a324ef2dd7..d9aec8fc92 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -604,6 +604,7 @@ struct user_settings
604 /* auto bookmark settings */ 604 /* auto bookmark settings */
605 int autoloadbookmark; /* auto load option: 0=off, 1=ask, 2=on */ 605 int autoloadbookmark; /* auto load option: 0=off, 1=ask, 2=on */
606 int autocreatebookmark; /* auto create option: 0=off, 1=ask, 2=on */ 606 int autocreatebookmark; /* auto create option: 0=off, 1=ask, 2=on */
607 bool autoupdatebookmark;/* auto update option */
607 int usemrb; /* use MRB list: 0=No, 1=Yes*/ 608 int usemrb; /* use MRB list: 0=No, 1=Yes*/
608 609
609#ifdef HAVE_DIRCACHE 610#ifdef HAVE_DIRCACHE
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 9412ee4dd5..09eee6bb57 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -989,6 +989,8 @@ const struct settings_list settings[] = {
989 ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES), 989 ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES),
990 ID2P(LANG_ASK), ID2P(LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES), 990 ID2P(LANG_ASK), ID2P(LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES),
991 ID2P(LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK)), 991 ID2P(LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK)),
992 OFFON_SETTING(0, autoupdatebookmark, LANG_BOOKMARK_SETTINGS_AUTOUPDATE,
993 false, "autoupdate bookmarks", NULL),
992 CHOICE_SETTING(0, autoloadbookmark, LANG_BOOKMARK_SETTINGS_AUTOLOAD, 994 CHOICE_SETTING(0, autoloadbookmark, LANG_BOOKMARK_SETTINGS_AUTOLOAD,
993 BOOKMARK_NO, "autoload bookmarks", off_on_ask, NULL, 3, 995 BOOKMARK_NO, "autoload bookmarks", off_on_ask, NULL, 3,
994 ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES), 996 ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES),