diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 91b691a..9e8dcb4 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -1773,11 +1773,10 @@ void WiFiManager::handleWifiSave() { #endif } - // @todo use new callback for before paramsaves - if (!_paramsInWifi && _presavecallback != NULL) { + if (_presavecallback != NULL) { _presavecallback(); // @CALLBACK } - + if(_paramsInWifi) doParamSave(); String page; @@ -1827,8 +1826,8 @@ void WiFiManager::handleParamSave() { void WiFiManager::doParamSave(){ // @todo use new callback for before paramsaves, is this really needed? - if ( _presavecallback != NULL) { - _presavecallback(); // @CALLBACK + if ( _presaveparamscallback != NULL) { + _presaveparamscallback(); // @CALLBACK } //parameters @@ -2713,6 +2712,15 @@ void WiFiManager::setSaveParamsCallback( std::function func ) { _saveparamscallback = func; } +/** + * setPreSaveParamsCallback, set a pre save params callback on params save prior to anything else + * @access public + * @param {[type]} void (*func)(void) + */ +void WiFiManager::setPreSaveParamsCallback( std::function func ) { + _presaveparamscallback = func; +} + /** * setPreSaveConfigCallback, set a callback to fire before saving wifi or params * @access public diff --git a/WiFiManager.h b/WiFiManager.h index ad11faf..81c3c4f 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -244,12 +244,15 @@ class WiFiManager //called when wifi settings have been changed and connection was successful ( or setBreakAfterConfig(true) ) void setSaveConfigCallback( std::function func ); - //called when saving either params-in-wifi or params page - void setSaveParamsCallback( std::function func ); - //called when saving params-in-wifi or params before anything else happens (eg wifi) void setPreSaveConfigCallback( std::function func ); + //called when saving params before anything else happens + void setPreSaveParamsCallback( std::function func ); + + //called when saving either params-in-wifi or params page + void setSaveParamsCallback( std::function func ); + //called just before doing OTA update void setPreOtaUpdateCallback( std::function func ); @@ -729,6 +732,7 @@ class WiFiManager std::function _webservercallback; std::function _savewificallback; std::function _presavecallback; + std::function _presaveparamscallback; std::function _saveparamscallback; std::function _resetcallback; std::function _preotaupdatecallback;