diff --git a/core/src/ru/deadsoftware/cavedroid/MainConfig.java b/core/src/ru/deadsoftware/cavedroid/MainConfig.java
index ff077ee8a64933dc9e1346efbecf6cbccf4e23f5..3ffb506285028aada2dd994cc104f772fc4ff59d 100644 (file)
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<String, String> mPreferencesCache = new HashMap<>();
+
+ @CheckForNull
+ private FullscreenToggleListener mFullscreenToggleListener = null;
+
private final CaveGame mCaveGame;
+ private final PreferencesStore mPreferencesStore;
@CheckForNull
private MainComponent mMainComponent;
+ @CheckForNull
+ private Joystick mJoystick;
+
private GameUiWindow mGameUiWindow;
private String mGameFolder;
private String mAssetsPackPath = null;
@Inject
- public MainConfig(CaveGame caveGame) {
+ public MainConfig(CaveGame caveGame, PreferencesStore preferencesStore) {
mCaveGame = caveGame;
+ mPreferencesStore = preferencesStore;
mGameUiWindow = GameUiWindow.NONE;
mGameFolder = "";
return mGameUiWindow == gameUiWindow;
}
- public GameUiWindow getGameUiWindow() {
- return mGameUiWindow;
- }
-
public void setGameUiWindow(GameUiWindow gameUiWindow) {
mGameUiWindow = gameUiWindow;
}
public void setAssetsPackPath(@Nullable String assetsPackPath) {
mAssetsPackPath = assetsPackPath;
}
+
+ @CheckForNull
+ public Joystick getJoystick() {
+ return mJoystick;
+ }
+
+ 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);
+ }
}