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