update_check: handle update check with localized timer settings

Origin commit data
------------------
Commit: f7da4b368d
Author: Thilo Graf <dbt@novatux.de>
Date: 2021-04-10 (Sat, 10 Apr 2021)
This commit is contained in:
2021-04-10 22:14:39 +02:00
committed by vanhofen
parent 73405aefeb
commit e1fb40440f
9 changed files with 95 additions and 22 deletions

View File

@@ -40,6 +40,7 @@
#include <gui/filebrowser.h>
#include <gui/update_check.h>
#include <gui/opkg_manager.h>
#include <gui/update_check_packages.h>
#include <gui/update_ext.h>
#include <gui/update_settings.h>
#include <gui/widget/icons.h>
@@ -79,6 +80,17 @@ const CMenuOptionChooser::keyval SOFTUPDATE_NAME_MODE2_OPTIONS[SOFTUPDATE_NAME_M
};
#endif
const CMenuOptionChooser::keyval AUTOUPDATE_CHECK_OPTIONS[] =
{
{ -1, LOCALE_AUTO_UPDATE_CHECK_ON_START_ONLY },
{ 0, LOCALE_AUTO_UPDATE_CHECK_OFF },
{ 6, LOCALE_AUTO_UPDATE_CHECK_6_HOURS },
{ 24, LOCALE_AUTO_UPDATE_CHECK_DAILY },
{ 168, LOCALE_AUTO_UPDATE_CHECK_WEEKLY },
{ 672, LOCALE_AUTO_UPDATE_CHECK_MONTHLY }
};
size_t auto_update_options_count = sizeof(AUTOUPDATE_CHECK_OPTIONS)/sizeof(AUTOUPDATE_CHECK_OPTIONS[0]);
int CUpdateSettings::exec(CMenuTarget* parent, const std::string &actionKey)
{
dprintf(DEBUG_DEBUG, "init software-update settings\n");
@@ -145,12 +157,21 @@ int CUpdateSettings::initMenu()
OnOffNotifier->addItem(apply_kernel);
#endif
CMenuOptionChooser *autocheck = new CMenuOptionChooser(LOCALE_FLASHUPDATE_AUTOCHECK, &g_settings.softupdate_autocheck, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, OnOffNotifier);
CMenuOptionChooser *package_autocheck = new CMenuOptionChooser("Package update check", &g_settings.softupdate_autocheck_packages, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, OnOffNotifier);
// apply_settings->setHint("", LOCALE_MENU_HINT_XXX);
CMenuOptionChooser *autocheck = NULL;
autocheck = new CMenuOptionChooser(LOCALE_FLASHUPDATE_AUTOCHECK, &g_settings.softupdate_autocheck, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this);
autocheck->setHint("", LOCALE_MENU_HINT_AUTO_UPDATE_CHECK);
#if 0
CMenuOptionChooser *package_autocheck = NULL;
if (COPKGManager::hasOpkgSupport()){
package_autocheck = new CMenuOptionChooser(LOCALE_FLASHUPDATE_AUTOCHECK_PACKAGES, &g_settings.softupdate_autocheck_packages, AUTOUPDATE_CHECK_OPTIONS, auto_update_options_count, true, this);
package_autocheck->setHint("", LOCALE_MENU_HINT_AUTO_UPDATE_CHECK);
}
#endif
w_upsettings.addItem(fw_update_dir);
w_upsettings.addItem(fw_url);
if (fw_url)
w_upsettings.addItem(fw_url);
#if ENABLE_EXTUPDATE
w_upsettings.addItem(name_backup);
#ifndef BOXMODEL_CST_HD2
@@ -159,8 +180,9 @@ int CUpdateSettings::initMenu()
w_upsettings.addItem(name_apply);
#endif
#endif
w_upsettings.addItem(autocheck);
if (COPKGManager::hasOpkgSupport())
if (autocheck)
w_upsettings.addItem(autocheck);
if (package_autocheck)
w_upsettings.addItem(package_autocheck);
#if 0
w_upsettings.addItem(apply_kernel);
@@ -174,11 +196,19 @@ int CUpdateSettings::initMenu()
bool CUpdateSettings::changeNotify(const neutrino_locale_t OptionName, void * /* data */)
{
if (ARE_LOCALES_EQUAL(OptionName, LOCALE_FLASHUPDATE_AUTOCHECK))
if (ARE_LOCALES_EQUAL(OptionName, LOCALE_FLASHUPDATE_AUTOCHECK) || ARE_LOCALES_EQUAL(OptionName, LOCALE_FLASHUPDATE_AUTOCHECK_PACKAGES))
{
CFlashUpdateCheck::getInstance()->stopThread();
if (g_settings.softupdate_autocheck)
CFlashUpdateCheck::getInstance()->startThread();
#if 0
CUpdateCheck::getInstance()->stopTimer();
if (g_settings.softupdate_autocheck)
CUpdateCheck::getInstance()->startThread();
CUpdateCheckPackages::getInstance()->stopTimer();
if (g_settings.softupdate_autocheck_packages)
CUpdateCheckPackages::getInstance()->startThread();
#endif
}
return false;