Cache setting values

filtering
Floens 10 years ago
parent 2171e65cf4
commit 1454b15105
  1. 12
      Clover/app/src/main/java/org/floens/chan/core/settings/BooleanSetting.java
  2. 12
      Clover/app/src/main/java/org/floens/chan/core/settings/StringSetting.java

@ -3,6 +3,9 @@ package org.floens.chan.core.settings;
import android.content.SharedPreferences;
public class BooleanSetting extends Setting<Boolean> {
private boolean hasCached = false;
private boolean cached;
public BooleanSetting(SharedPreferences sharedPreferences, String key, Boolean def) {
super(sharedPreferences, key, def);
}
@ -13,13 +16,20 @@ public class BooleanSetting extends Setting<Boolean> {
@Override
public Boolean get() {
return sharedPreferences.getBoolean(key, def);
if (hasCached) {
return cached;
} else {
cached = sharedPreferences.getBoolean(key, def);
hasCached = true;
return cached;
}
}
@Override
public void set(Boolean value) {
if (!value.equals(get())) {
sharedPreferences.edit().putBoolean(key, value).apply();
cached = value;
onValueChanged();
}
}

@ -3,6 +3,9 @@ package org.floens.chan.core.settings;
import android.content.SharedPreferences;
public class StringSetting extends Setting<String> {
private boolean hasCached = false;
private String cached;
public StringSetting(SharedPreferences sharedPreferences, String key, String def) {
super(sharedPreferences, key, def);
}
@ -13,13 +16,20 @@ public class StringSetting extends Setting<String> {
@Override
public String get() {
return sharedPreferences.getString(key, def);
if (hasCached) {
return cached;
} else {
cached = sharedPreferences.getString(key, def);
hasCached = true;
return cached;
}
}
@Override
public void set(String value) {
if (!value.equals(get())) {
sharedPreferences.edit().putString(key, value).apply();
cached = value;
onValueChanged();
}
}

Loading…
Cancel
Save