Skip to content
This repository was archived by the owner on Oct 26, 2024. It is now read-only.

Commit 56c1a3c

Browse files
committed
fix: save preferences with correct type
Signed-off-by: oSumAtrIX <johan.melkonyan1@web.de>
1 parent 915b8d3 commit 56c1a3c

2 files changed

Lines changed: 59 additions & 53 deletions

File tree

app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java

Lines changed: 51 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -281,44 +281,32 @@ private static void load() {
281281
Context context = ReVancedUtils.getContext();
282282
if (context == null) {
283283
Log.e("revanced: SettingsEnum", "Context returned null! Setings NOT initialized");
284-
} else {
285-
try {
286-
for (SettingsEnum setting : values()) {
287-
Object value = setting.getDefaultValue();
288-
289-
//LogHelper is not initialized here
290-
Log.d("revanced: SettingsEnum", "Loading Setting: " + setting.name());
291-
292-
var path = setting.getPath();
293-
var defaultValue = setting.getDefaultValue();
294-
switch (setting.getReturnType()) {
295-
case FLOAT:
296-
value = SharedPrefHelper.getFloat(setting.sharedPref, path, (float) defaultValue);
297-
break;
298-
case LONG:
299-
value = SharedPrefHelper.getLong(setting.sharedPref, path, (long) defaultValue);
300-
break;
301-
case BOOLEAN:
302-
value = SharedPrefHelper.getBoolean(setting.sharedPref, path, (boolean) defaultValue);
303-
break;
304-
case INTEGER:
305-
value = SharedPrefHelper.getInt(setting.sharedPref, path, (int) defaultValue);
306-
break;
307-
case STRING:
308-
value = SharedPrefHelper.getString(setting.sharedPref, path, (String) defaultValue);
309-
break;
310-
default:
311-
LogHelper.printException(() -> ("Setting does not have a valid Type. Name is: " + setting.name()));
312-
break;
313-
}
314-
setting.setValue(value);
315-
316-
//LogHelper is not initialized here
317-
Log.d("revanced: SettingsEnum", "Loaded Setting: " + setting.name() + " Value: " + value);
318-
}
319-
} catch (Throwable th) {
320-
LogHelper.printException(() -> ("Error during load()!"), th);
284+
return;
285+
}
286+
for (SettingsEnum setting : values()) {
287+
var path = setting.getPath();
288+
var defaultValue = setting.getDefaultValue();
289+
switch (setting.getReturnType()) {
290+
case FLOAT:
291+
defaultValue = SharedPrefHelper.getFloat(setting.sharedPref, path, (float) defaultValue);
292+
break;
293+
case LONG:
294+
defaultValue = SharedPrefHelper.getLong(setting.sharedPref, path, (long) defaultValue);
295+
break;
296+
case BOOLEAN:
297+
defaultValue = SharedPrefHelper.getBoolean(setting.sharedPref, path, (boolean) defaultValue);
298+
break;
299+
case INTEGER:
300+
defaultValue = SharedPrefHelper.getInt(setting.sharedPref, path, (int) defaultValue);
301+
break;
302+
case STRING:
303+
defaultValue = SharedPrefHelper.getString(setting.sharedPref, path, (String) defaultValue);
304+
break;
305+
default:
306+
LogHelper.printException(() -> ("Setting does not have a valid Type. Name is: " + setting.name()));
307+
break;
321308
}
309+
setting.setValue(defaultValue);
322310
}
323311
}
324312

@@ -346,16 +334,34 @@ public void setValue(Object newValue) {
346334
*/
347335
public void saveValue(Object newValue) {
348336
Context context = ReVancedUtils.getContext();
349-
if (context != null) {
350-
if (returnType == ReturnType.BOOLEAN) {
351-
SharedPrefHelper.saveBoolean(sharedPref, path, (Boolean) newValue);
352-
} else {
353-
SharedPrefHelper.saveString(sharedPref, path, newValue + "");
354-
}
355-
value = newValue;
356-
} else {
337+
338+
if (context == null) {
357339
LogHelper.printException(() -> ("Context on SaveValue is null!"));
340+
return;
358341
}
342+
343+
switch (getReturnType()) {
344+
case FLOAT:
345+
SharedPrefHelper.saveFloat(sharedPref, path, (float) defaultValue);
346+
break;
347+
case LONG:
348+
SharedPrefHelper.saveLong(sharedPref, path, (long) defaultValue);
349+
break;
350+
case BOOLEAN:
351+
SharedPrefHelper.saveBoolean(sharedPref, path, (boolean) newValue);
352+
break;
353+
case INTEGER:
354+
SharedPrefHelper.saveInt(sharedPref, path, (int) defaultValue);
355+
break;
356+
case STRING:
357+
SharedPrefHelper.saveString(sharedPref, path, (String) defaultValue);
358+
break;
359+
default:
360+
LogHelper.printException(() -> ("Setting does not have a valid Type. Name is: " + name()));
361+
break;
362+
}
363+
364+
value = newValue;
359365
}
360366

361367
public int getInt() {

app/src/main/java/app/revanced/integrations/utils/SharedPrefHelper.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,39 @@ public static void saveString(SharedPrefNames prefName, String key, String value
1010
getPreferences(prefName).edit().putString(key, value).apply();
1111
}
1212

13-
public static void saveBoolean(SharedPrefNames prefName, String key, Boolean value) {
13+
public static void saveBoolean(SharedPrefNames prefName, String key, boolean value) {
1414
getPreferences(prefName).edit().putBoolean(key, value).apply();
1515
}
1616

17-
public static void saveFloat(SharedPrefNames prefName, String key, Float value) {
17+
public static void saveFloat(SharedPrefNames prefName, String key, float value) {
1818
getPreferences(prefName).edit().putFloat(key, value).apply();
1919
}
2020

21-
public static void saveInt(SharedPrefNames prefName, String key, Integer value) {
21+
public static void saveInt(SharedPrefNames prefName, String key, int value) {
2222
getPreferences(prefName).edit().putInt(key, value).apply();
2323
}
2424

25-
public static void saveLong(SharedPrefNames prefName, String key, Long value) {
25+
public static void saveLong(SharedPrefNames prefName, String key, long value) {
2626
getPreferences(prefName).edit().putLong(key, value).apply();
2727
}
2828

2929
public static String getString(SharedPrefNames prefName, String key, String _default) {
3030
return getPreferences(prefName).getString(key, _default);
3131
}
3232

33-
public static Boolean getBoolean(SharedPrefNames prefName, String key, Boolean _default) {
33+
public static boolean getBoolean(SharedPrefNames prefName, String key, boolean _default) {
3434
return getPreferences(prefName).getBoolean(key, _default);
3535
}
3636

37-
public static Long getLong(SharedPrefNames prefName, String key, Long _default) {
37+
public static long getLong(SharedPrefNames prefName, String key, long _default) {
3838
return getPreferences(prefName).getLong(key, _default);
3939
}
4040

41-
public static Float getFloat(SharedPrefNames prefName, String key, Float _default) {
41+
public static float getFloat(SharedPrefNames prefName, String key, float _default) {
4242
return getPreferences(prefName).getFloat(key, _default);
4343
}
4444

45-
public static Integer getInt(SharedPrefNames prefName, String key, Integer _default) {
45+
public static int getInt(SharedPrefNames prefName, String key, int _default) {
4646
return getPreferences(prefName).getInt(key, _default);
4747
}
4848

0 commit comments

Comments
 (0)