From 85fe82ae5bd9d427a7c9b48eea26645a6e9a47ef Mon Sep 17 00:00:00 2001 From: Andreas Smas Date: Thu, 21 Jul 2016 20:20:37 +0200 Subject: [PATCH] Make it possible to opt out from news on home screen --- src/blobcache_file.c | 2 +- src/keyring.c | 2 +- src/main.c | 6 +++--- src/metadata/metadb.c | 2 +- src/notifications.c | 18 ++++++++++++++++++ src/settings.c | 12 ++++++++---- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/blobcache_file.c b/src/blobcache_file.c index 603e05e8b9..34ba317e83 100644 --- a/src/blobcache_file.c +++ b/src/blobcache_file.c @@ -955,7 +955,7 @@ blobcache_init(void) pool_num(item_pool), current_cache_size / 1000000.0, maxsize / 1000000.0, buf); - prop_t *dir = setting_get_dir("general:actions"); + prop_t *dir = setting_get_dir("general:resets"); settings_create_action(dir, _p("Clear cached files"), cache_clear, NULL, 0, NULL); diff --git a/src/keyring.c b/src/keyring.c index 2a831ab093..d93bc3bea0 100644 --- a/src/keyring.c +++ b/src/keyring.c @@ -61,7 +61,7 @@ keyring_init(void) persistent_keyring = htsmsg_create_map(); temporary_keyring = htsmsg_create_map(); - prop_t *dir = setting_get_dir("general:actions"); + prop_t *dir = setting_get_dir("general:resets"); settings_create_action(dir, _p("Forget remembered passwords"), keyring_clear, NULL, 0, NULL); diff --git a/src/main.c b/src/main.c index 6d8d34ea97..af99c40f35 100644 --- a/src/main.c +++ b/src/main.c @@ -366,12 +366,12 @@ main_init(void) prop_init_late(); - /* Notification framework */ - notifications_init(); - /* Initialize settings */ settings_init(); + /* Notification framework */ + notifications_init(); + TRACE(TRACE_DEBUG, "core", "Loading resources from %s", app_dataroot()); TRACE(TRACE_DEBUG, "core", "Cache path: %s", gconf.cache_path); diff --git a/src/metadata/metadb.c b/src/metadata/metadb.c index a5b6dec919..8e65e348e5 100644 --- a/src/metadata/metadb.c +++ b/src/metadata/metadb.c @@ -127,7 +127,7 @@ metadb_init(void) if(r) { metadb_pool = NULL; // Disable } else { - prop_t *dir = setting_get_dir("general:actions"); + prop_t *dir = setting_get_dir("general:resets"); settings_create_action(dir, _p("Clear all metadata"), items_clear, NULL, 0, NULL); } diff --git a/src/notifications.c b/src/notifications.c index 37ca6442fb..f6d2704ec3 100644 --- a/src/notifications.c +++ b/src/notifications.c @@ -30,6 +30,7 @@ #include "fileaccess/fileaccess.h" #include "htsmsg/htsmsg_json.h" #include "misc/time.h" +#include "settings.h" #if ENABLE_WEBPOPUP #include "ui/webpopup.h" @@ -41,6 +42,8 @@ static hts_mutex_t news_mutex; static htsmsg_t *dismissed_news_in; static htsmsg_t *dismissed_news_out; +static int shownews; + /** * */ @@ -55,6 +58,18 @@ notifications_init(void) dismissed_news_out = htsmsg_create_map(); notify_prop_entries = prop_create(root, "nodes"); + +#if ENABLE_WEBPOPUP + + prop_t *dir = setting_get_dir("general:misc"); + + setting_create(SETTING_BOOL, dir, SETTINGS_INITIAL_UPDATE, + SETTING_TITLE(_p("Show news on home screen")), + SETTING_VALUE(1), + SETTING_WRITE_BOOL(&shownews), + SETTING_STORE("notifications", "shownews"), + NULL); +#endif } @@ -502,6 +517,9 @@ parse_created_on_time(time_t *tp, const char *d) void load_site_news(void) { + if(!shownews) + return; + #if ENABLE_WEBPOPUP struct http_header_list response_headers; buf_t *b; diff --git a/src/settings.c b/src/settings.c index 24f14d7bbb..31d3d6e8a9 100644 --- a/src/settings.c +++ b/src/settings.c @@ -1699,7 +1699,8 @@ setting_get_dir(const char *key) static prop_t *general; - static prop_t *actions; + static prop_t *misc; + static prop_t *resets; static prop_t *filebrowse; static prop_t *plugins; static prop_t *runcontrol; @@ -1712,15 +1713,16 @@ setting_get_dir(const char *key) prop_concat_t *pc = prop_concat_create(prop_create(general, "nodes")); - actions = addgroup(pc, NULL); + misc = addgroup(pc, NULL); upgrade = addgroup(pc, _p("Software upgrade")); filebrowse = addgroup(pc, _p("File browsing")); runcontrol = addgroup(pc, _p("Starting and stopping")); plugins = addgroup(pc, _p("Plugins")); + resets = addgroup(pc, _p("Reset")); } - if(!strcmp(k2, "actions")) { - r = actions; + if(!strcmp(k2, "resets")) { + r = resets; } else if(!strcmp(k2, "runcontrol")) { r = runcontrol; } else if(!strcmp(k2, "upgrade")) { @@ -1729,6 +1731,8 @@ setting_get_dir(const char *key) r = filebrowse; } else if(!strcmp(k2, "plugins")) { r = plugins; + } else if(!strcmp(k2, "misc")) { + r = misc; } else { printf("setting key lookup \"%s\" not found\n", k2);