Skip to content

Commit 3523e59

Browse files
Preferences added missing method for Arduino strings
1 parent 5e3622b commit 3523e59

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/WiFiPreferences.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,14 @@ size_t Preferences::putUChar(const char* key, uint8_t value) {
6666

6767
size_t Preferences::putShort(const char* key, int16_t value) {
6868
return WiFiDrv::prefPut(key, PT_I16, (uint8_t*) &value, sizeof(value));
69-
7069
}
7170

7271
size_t Preferences::putUShort(const char* key, uint16_t value) {
7372
return WiFiDrv::prefPut(key, PT_U16, (uint8_t*) &value, sizeof(value));
74-
7573
}
7674

7775
size_t Preferences::putInt(const char* key, int32_t value) {
7876
return WiFiDrv::prefPut(key, PT_I32, (uint8_t*) &value, sizeof(value));
79-
8077
}
8178

8279
size_t Preferences::putUInt(const char* key, uint32_t value) {
@@ -284,13 +281,18 @@ size_t Preferences::getString(const char* key, char* value, const size_t maxLen)
284281
return WiFiDrv::prefGet(key, PT_STR, (uint8_t*)value, maxLen);
285282
}
286283

287-
String Preferences::getString(const char* key, const String defaultValue) { // TODO
288-
Serial.println("This function is not implemented yet");
289-
if(!isKey(key)) {
290-
return defaultValue;
291-
}
284+
String Preferences::getString(const char* key, const String defaultValue) {
285+
size_t len = getBytesLength(key);
286+
char *str = new char[len+1];
287+
288+
getString(key, str, len+1);
289+
str[len] = '\0';
292290

293-
return defaultValue;
291+
String res(str);
292+
delete str;
293+
str = nullptr;
294+
295+
return res;
294296
}
295297

296298
size_t Preferences::getBytesLength(const char* key) {

0 commit comments

Comments
 (0)