X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2FMainConfig.java;h=3ffb506285028aada2dd994cc104f772fc4ff59d;hb=90daad1796cd59f11f12589686d9afe882ddb9b1;hp=0219655c9c83f109ec6f862b542517b2ff6d9b50;hpb=6b49d51c59f6d639d949d1e9c264f7f144a305ab;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/MainConfig.java b/core/src/ru/deadsoftware/cavedroid/MainConfig.java index 0219655..3ffb506 100644 --- a/core/src/ru/deadsoftware/cavedroid/MainConfig.java +++ b/core/src/ru/deadsoftware/cavedroid/MainConfig.java @@ -2,16 +2,24 @@ package ru.deadsoftware.cavedroid; import ru.deadsoftware.cavedroid.game.GameUiWindow; import ru.deadsoftware.cavedroid.game.input.Joystick; +import ru.deadsoftware.cavedroid.prefs.PreferencesStore; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; +import java.util.HashMap; @Singleton public class MainConfig { + private final HashMap mPreferencesCache = new HashMap<>(); + + @CheckForNull + private FullscreenToggleListener mFullscreenToggleListener = null; + private final CaveGame mCaveGame; + private final PreferencesStore mPreferencesStore; @CheckForNull private MainComponent mMainComponent; @@ -33,8 +41,9 @@ public class MainConfig { private String mAssetsPackPath = null; @Inject - public MainConfig(CaveGame caveGame) { + public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) { mCaveGame = caveGame; + mPreferencesStore = preferencesStore; mGameUiWindow = GameUiWindow.NONE; mGameFolder = ""; @@ -126,4 +135,37 @@ public class MainConfig { public void setJoystick(@CheckForNull Joystick joystick) { mJoystick = joystick; } + + @CheckForNull + public String getPreference(String key) { + if (mPreferencesCache.containsKey(key)) { + return mPreferencesCache.get(key); + } + + String value = mPreferencesStore.getPreference(key); + mPreferencesCache.put(key, value); + + return value; + } + + public void setPreference(String key, String value) { + mPreferencesCache.put(key, value); + mPreferencesStore.setPreference(key, value); + + if (mFullscreenToggleListener != null && key.equals("fullscreen")) { + mFullscreenToggleListener.onFullscreenToggled(Boolean.parseBoolean(value)); + } + } + + public void setFullscreenToggleListener(@Nullable FullscreenToggleListener fullscreenToggleListener) { + mFullscreenToggleListener = fullscreenToggleListener; + } + + public boolean isUseDynamicCamera() { + return Boolean.parseBoolean(getPreference("dyncam")); + } + + public interface FullscreenToggleListener { + void onFullscreenToggled(boolean value); + } }