diff --git a/core/src/ru/deadsoftware/cavedroid/MainConfig.java b/core/src/ru/deadsoftware/cavedroid/MainConfig.java
index 64950f2d43e17325d3afd348d073c066ae989088..3ffb506285028aada2dd994cc104f772fc4ff59d 100644 (file)
import ru.deadsoftware.cavedroid.game.GameUiWindow;
import ru.deadsoftware.cavedroid.game.input.Joystick;
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 javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
+import java.util.HashMap;
@Singleton
public class MainConfig {
@Singleton
public class MainConfig {
+ private final HashMap<String, String> mPreferencesCache = new HashMap<>();
+
+ @CheckForNull
+ private FullscreenToggleListener mFullscreenToggleListener = null;
+
private final CaveGame mCaveGame;
private final CaveGame mCaveGame;
+ private final PreferencesStore mPreferencesStore;
@CheckForNull
private MainComponent mMainComponent;
@CheckForNull
private MainComponent mMainComponent;
private float mWidth;
private float mHeight;
private float mWidth;
private float mHeight;
- private boolean mUseDynamicCamera = true;
-
@Nullable
private String mAssetsPackPath = null;
@Inject
@Nullable
private String mAssetsPackPath = null;
@Inject
- public MainConfig(CaveGame caveGame) {
+ public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) {
mCaveGame = caveGame;
mCaveGame = caveGame;
+ mPreferencesStore = preferencesStore;
mGameUiWindow = GameUiWindow.NONE;
mGameFolder = "";
mGameUiWindow = GameUiWindow.NONE;
mGameFolder = "";
mJoystick = 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() {
public boolean isUseDynamicCamera() {
- return mUseDynamicCamera;
+ return Boolean.parseBoolean(getPreference("dyncam"));
}
}
- public void setUseDynamicCamera(boolean useDynamicCamera) {
- mUseDynamicCamera = useDynamicCamera;
+ public interface FullscreenToggleListener {
+ void onFullscreenToggled(boolean value);
}
}
}
}