From 829d0f82e9e17322eff003f8d3b2ff203025a7a7 Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 21 Sep 2014 02:14:49 +0000 Subject: [PATCH] Fix GUI refactoring issue that was preventing Android app from working on mobile devices --- .../src/main/java/forge/GuiDesktop.java | 8 +- .../src/main/java/forge/Singletons.java | 3 - .../src/main/java/forge/view/Main.java | 8 - .../test/java/forge/item/DeckHintsTest.java | 6 - forge-gui-mobile-dev/src/forge/app/Main.java | 2 - forge-gui-mobile/src/forge/Forge.java | 3 +- forge-gui-mobile/src/forge/GuiMobile.java | 11 +- .../main/java/forge/interfaces/IGuiBase.java | 1 + .../java/forge/properties/ForgeConstants.java | 309 ++++++------------ .../properties/ForgeProfileProperties.java | 8 +- 10 files changed, 128 insertions(+), 231 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java index 876cf26036d..7fa1a3acc0f 100644 --- a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java +++ b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java @@ -21,6 +21,7 @@ import javax.swing.MenuElement; import javax.swing.MenuSelectionManager; import javax.swing.SwingUtilities; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Function; @@ -83,7 +84,6 @@ import forge.view.PlayerView; import forge.view.SpellAbilityView; public class GuiDesktop implements IGuiBase { - private boolean showOverlay = true; @Override @@ -96,6 +96,12 @@ public class GuiDesktop implements IGuiBase { return BuildInfo.getVersionString(); } + @Override + public String getAssetsDir() { + return StringUtils.containsIgnoreCase(BuildInfo.getVersionString(), "svn") ? + "../forge-gui/" : ""; + } + @Override public void invokeInEdtLater(Runnable proc) { SwingUtilities.invokeLater(proc); diff --git a/forge-gui-desktop/src/main/java/forge/Singletons.java b/forge-gui-desktop/src/main/java/forge/Singletons.java index 93ad16d6dc6..5d1cf6c3814 100644 --- a/forge-gui-desktop/src/main/java/forge/Singletons.java +++ b/forge-gui-desktop/src/main/java/forge/Singletons.java @@ -19,7 +19,6 @@ package forge; import forge.control.FControl; import forge.model.FModel; -import forge.properties.ForgeProfileProperties; import forge.view.FView; /** @@ -47,8 +46,6 @@ public final class Singletons { initialized = true; } - ForgeProfileProperties.init(GuiBase.getInterface()); - if (withUi) { view = FView.SINGLETON_INSTANCE; } diff --git a/forge-gui-desktop/src/main/java/forge/view/Main.java b/forge-gui-desktop/src/main/java/forge/view/Main.java index cfc3147c8e1..2f390f93ce7 100644 --- a/forge-gui-desktop/src/main/java/forge/view/Main.java +++ b/forge-gui-desktop/src/main/java/forge/view/Main.java @@ -17,15 +17,11 @@ */ package forge.view; -import org.apache.commons.lang3.StringUtils; - import forge.GuiBase; import forge.GuiDesktop; import forge.Singletons; import forge.card.CardReaderExperiments; import forge.error.ExceptionHandler; -import forge.properties.ForgeConstants; -import forge.util.BuildInfo; /** * Main class for Forge's swing application view. @@ -35,10 +31,6 @@ public final class Main { * Main entrypoint for Forge */ public static void main(final String[] args) { - // Init ForgeConstants - final String assetsDir = StringUtils.containsIgnoreCase(BuildInfo.getVersionString(), "svn") ? "../forge-gui/" : ""; - ForgeConstants.init(assetsDir); - // HACK - temporary solution to "Comparison method violates it's general contract!" crash System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"); diff --git a/forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java b/forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java index d0819f32836..a43921fd95b 100644 --- a/forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java +++ b/forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java @@ -6,7 +6,6 @@ import java.util.List; import junit.framework.Assert; -import org.apache.commons.lang3.StringUtils; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -16,7 +15,6 @@ import forge.card.CardRarity; import forge.card.CardRules; import forge.card.DeckHints; import forge.properties.ForgeConstants; -import forge.util.BuildInfo; import forge.util.FileUtil; /** @@ -28,10 +26,6 @@ public class DeckHintsTest { @BeforeTest void setupTest() { - // Init ForgeConstants - final String assetsDir = StringUtils.containsIgnoreCase(BuildInfo.getVersionString(), "svn") ? "../forge-gui/" : ""; - ForgeConstants.init(assetsDir); - GuiBase.setInterface(new GuiDesktop()); } diff --git a/forge-gui-mobile-dev/src/forge/app/Main.java b/forge-gui-mobile-dev/src/forge/app/Main.java index e9716e9a0a2..c50702e3664 100644 --- a/forge-gui-mobile-dev/src/forge/app/Main.java +++ b/forge-gui-mobile-dev/src/forge/app/Main.java @@ -11,14 +11,12 @@ import com.badlogic.gdx.backends.lwjgl.LwjglClipboard; import forge.Forge; import forge.assets.AssetsDownloader; import forge.interfaces.IDeviceAdapter; -import forge.properties.ForgeConstants; import forge.util.FileUtil; import forge.util.Utils; public class Main { public static void main(String[] args) { String assetsDir = AssetsDownloader.SHARE_DESKTOP_ASSETS ? "../forge-gui/" : "testAssets/"; - ForgeConstants.init(assetsDir); if (!AssetsDownloader.SHARE_DESKTOP_ASSETS) { FileUtil.ensureDirectoryExists(assetsDir); } diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 5c3072890cf..3b523dfbbc2 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -55,10 +55,9 @@ public class Forge implements ApplicationListener { public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0) { if (GuiBase.getInterface() == null) { - ForgeConstants.init(assetDir0); clipboard = clipboard0; deviceAdapter = deviceAdapter0; - final IGuiBase gui = new GuiMobile(); + final IGuiBase gui = new GuiMobile(assetDir0); GuiBase.setInterface(gui); soundSystem = new SoundSystem(gui); } diff --git a/forge-gui-mobile/src/forge/GuiMobile.java b/forge-gui-mobile/src/forge/GuiMobile.java index 796e6dcc2c6..34d93f49661 100644 --- a/forge-gui-mobile/src/forge/GuiMobile.java +++ b/forge-gui-mobile/src/forge/GuiMobile.java @@ -62,8 +62,10 @@ import forge.view.PlayerView; import forge.view.SpellAbilityView; public class GuiMobile implements IGuiBase { - - public GuiMobile() { + private final String assetsDir; + + public GuiMobile(String assetsDir0) { + assetsDir = assetsDir0; } @Override @@ -76,6 +78,11 @@ public class GuiMobile implements IGuiBase { return Forge.CURRENT_VERSION; } + @Override + public String getAssetsDir() { + return assetsDir; + } + @Override public void invokeInEdtLater(Runnable proc) { Gdx.app.postRunnable(proc); diff --git a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java index 6c4f40f5b56..4192a0bf3f7 100644 --- a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java +++ b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java @@ -34,6 +34,7 @@ import forge.view.SpellAbilityView; public interface IGuiBase { boolean isRunningOnDesktop(); String getCurrentVersion(); + String getAssetsDir(); void invokeInEdtLater(Runnable runnable); void invokeInEdtAndWait(final Runnable proc); boolean isGuiThread(); diff --git a/forge-gui/src/main/java/forge/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/properties/ForgeConstants.java index 90c76ce5d81..976dd699f1f 100644 --- a/forge-gui/src/main/java/forge/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/properties/ForgeConstants.java @@ -17,112 +17,133 @@ */ package forge.properties; +import forge.GuiBase; + import java.util.Collections; import java.util.Map; public final class ForgeConstants { + public static final String ASSETS_DIR = GuiBase.getInterface().getAssetsDir(); + public static final String PROFILE_FILE = ASSETS_DIR + "forge.profile.properties"; + public static final String PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example"; - public static void init(final String assetsDir) { - ASSETS_DIR = assetsDir; - PROFILE_FILE = ASSETS_DIR + "forge.profile.properties"; - PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example"; + public static final String RES_DIR = ASSETS_DIR + "res/"; + public static final String LISTS_DIR = RES_DIR + "lists/"; + public static final String KEYWORD_LIST_FILE = LISTS_DIR + "NonStackingKWList.txt"; + public static final String TYPE_LIST_FILE = LISTS_DIR + "TypeLists.txt"; + public static final String IMAGE_LIST_TOKENS_FILE = LISTS_DIR + "token-images.txt"; + public static final String IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE = LISTS_DIR + "quest-opponent-icons.txt"; + public static final String IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE = LISTS_DIR + "quest-pet-shop-icons.txt"; + public static final String IMAGE_LIST_QUEST_TOKENS_FILE = LISTS_DIR + "quest-pet-token-images.txt"; + public static final String IMAGE_LIST_QUEST_BOOSTERS_FILE = LISTS_DIR + "booster-images.txt"; + public static final String IMAGE_LIST_QUEST_FATPACKS_FILE = LISTS_DIR + "fatpack-images.txt"; + public static final String IMAGE_LIST_QUEST_BOOSTERBOXES_FILE = LISTS_DIR + "boosterbox-images.txt"; + public static final String IMAGE_LIST_QUEST_PRECONS_FILE = LISTS_DIR + "precon-images.txt"; + public static final String IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE = LISTS_DIR + "tournamentpack-images.txt"; - RES_DIR = ASSETS_DIR + "res/"; - LISTS_DIR = RES_DIR + "lists/"; + public static final String CHANGES_FILE = ASSETS_DIR + "CHANGES.txt"; + public static final String LICENSE_FILE = ASSETS_DIR + "LICENSE.txt"; + public static final String README_FILE = ASSETS_DIR + "README.txt"; + public static final String HOWTO_FILE = RES_DIR + "howto.txt"; - KEYWORD_LIST_FILE = LISTS_DIR + "NonStackingKWList.txt"; - TYPE_LIST_FILE = LISTS_DIR + "TypeLists.txt"; - IMAGE_LIST_TOKENS_FILE = LISTS_DIR + "token-images.txt"; - IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE = LISTS_DIR + "quest-opponent-icons.txt"; - IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE = LISTS_DIR + "quest-pet-shop-icons.txt"; - IMAGE_LIST_QUEST_TOKENS_FILE = LISTS_DIR + "quest-pet-token-images.txt"; - IMAGE_LIST_QUEST_BOOSTERS_FILE = LISTS_DIR + "booster-images.txt"; - IMAGE_LIST_QUEST_FATPACKS_FILE = LISTS_DIR + "fatpack-images.txt"; - IMAGE_LIST_QUEST_BOOSTERBOXES_FILE = LISTS_DIR + "boosterbox-images.txt"; - IMAGE_LIST_QUEST_PRECONS_FILE = LISTS_DIR + "precon-images.txt"; - IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE = LISTS_DIR + "tournamentpack-images.txt"; + public static final String DRAFT_DIR = RES_DIR + "draft/"; + public static final String DRAFT_RANKINGS_FILE = DRAFT_DIR + "rankings.txt"; + public static final String SEALED_DIR = RES_DIR + "sealed/"; + public static final String CARD_DATA_DIR = RES_DIR + "cardsfolder/"; + public static final String EDITIONS_DIR = RES_DIR + "editions/"; + public static final String BLOCK_DATA_DIR = RES_DIR + "blockdata/"; + public static final String DECK_CUBE_DIR = RES_DIR + "cube/"; + public static final String AI_PROFILE_DIR = RES_DIR + "ai/"; + public static final String SOUND_DIR = RES_DIR + "sound/"; + public static final String MUSIC_DIR = RES_DIR + "music/"; + public static final String LANG_DIR = RES_DIR + "languages/"; + public static final String EFFECTS_DIR = RES_DIR + "effects/"; - CHANGES_FILE = ASSETS_DIR + "CHANGES.txt"; - LICENSE_FILE = ASSETS_DIR + "LICENSE.txt"; - README_FILE = ASSETS_DIR + "README.txt"; - HOWTO_FILE = RES_DIR + "howto.txt"; + private static final String QUEST_DIR = RES_DIR + "quest/"; + public static final String QUEST_WORLD_DIR = QUEST_DIR + "world/"; + public static final String QUEST_PRECON_DIR = QUEST_DIR + "precons/"; + public static final String PRICES_BOOSTER_FILE = QUEST_DIR + "booster-prices.txt"; + public static final String BAZAAR_DIR = QUEST_DIR + "bazaar/"; + public static final String BAZAAR_INDEX_FILE = BAZAAR_DIR + "index.xml"; + public static final String DEFAULT_DUELS_DIR = QUEST_DIR + "duels"; + public static final String DEFAULT_CHALLENGES_DIR = QUEST_DIR + "challenges"; + public static final String THEMES_DIR = QUEST_DIR + "themes"; - DRAFT_DIR = RES_DIR + "draft/"; - DRAFT_RANKINGS_FILE = DRAFT_DIR + "rankings.txt"; - SEALED_DIR = RES_DIR + "sealed/"; - CARD_DATA_DIR = RES_DIR + "cardsfolder/"; - EDITIONS_DIR = RES_DIR + "editions/"; - BLOCK_DATA_DIR = RES_DIR + "blockdata/"; - DECK_CUBE_DIR = RES_DIR + "cube/"; - AI_PROFILE_DIR = RES_DIR + "ai/"; - SOUND_DIR = RES_DIR + "sound/"; - MUSIC_DIR = RES_DIR + "music/"; - LANG_DIR = RES_DIR + "languages/"; - EFFECTS_DIR = RES_DIR + "effects/"; - - QUEST_DIR = RES_DIR + "quest/"; - QUEST_WORLD_DIR = QUEST_DIR + "world/"; - QUEST_PRECON_DIR = QUEST_DIR + "precons/"; - PRICES_BOOSTER_FILE = QUEST_DIR + "booster-prices.txt"; - BAZAAR_DIR = QUEST_DIR + "bazaar/"; - BAZAAR_INDEX_FILE = BAZAAR_DIR + "index.xml"; - DEFAULT_DUELS_DIR = QUEST_DIR + "duels"; - DEFAULT_CHALLENGES_DIR = QUEST_DIR + "challenges"; - THEMES_DIR = QUEST_DIR + "themes"; - - SKINS_DIR = RES_DIR + "skins/"; - DEFAULT_SKINS_DIR = SKINS_DIR + "default/"; + public static final String SKINS_DIR = RES_DIR + "skins/"; + public static final String DEFAULT_SKINS_DIR = SKINS_DIR + "default/"; + //don't associate these skin files with a directory since skin directory will be determined later + public static final String SPRITE_ICONS_FILE = "sprite_icons.png"; + public static final String SPRITE_FOILS_FILE = "sprite_foils.png"; + public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; + public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; + public static final String FONT_FILE = "font1.ttf"; + public static final String SPLASH_BG_FILE = "bg_splash.png"; + public static final String MATCH_BG_FILE = "bg_match.jpg"; + public static final String TEXTURE_BG_FILE = "bg_texture.jpg"; + public static final String DRAFT_DECK_IMG_FILE = "bg_draft_deck.png"; + public static final String TROPHIES_FILE = "sprite_trophies.png"; + public static final String TROPHY_SHELF_FILE = "bg_trophy_shelf.png"; + // data tree roots + public static final String USER_DIR; + public static final String CACHE_DIR; + public static final String CACHE_CARD_PICS_DIR; + public static final Map CACHE_CARD_PICS_SUBDIR; + public static final int SERVER_PORT_NUMBER; + static { ForgeProfileProperties.load(); USER_DIR = ForgeProfileProperties.getUserDir(); CACHE_DIR = ForgeProfileProperties.getCacheDir(); CACHE_CARD_PICS_DIR = ForgeProfileProperties.getCardPicsDir(); CACHE_CARD_PICS_SUBDIR = Collections.unmodifiableMap(ForgeProfileProperties.getCardPicsSubDirs()); SERVER_PORT_NUMBER = ForgeProfileProperties.getServerPort(); + } - USER_QUEST_DIR = USER_DIR + "quest/"; - USER_PREFS_DIR = USER_DIR + "preferences/"; - USER_GAMES_DIR = USER_DIR + "games/"; - LOG_FILE = USER_DIR + "forge.log"; - DECK_BASE_DIR = USER_DIR + "decks/"; - ACHIEVEMENTS_DIR = USER_DIR + "achievements/"; - DECK_CONSTRUCTED_DIR = DECK_BASE_DIR + "constructed/"; - DECK_DRAFT_DIR = DECK_BASE_DIR + "draft/"; - DECK_WINSTON_DIR = DECK_BASE_DIR + "winston/"; - DECK_SEALED_DIR = DECK_BASE_DIR + "sealed/"; - DECK_SCHEME_DIR = DECK_BASE_DIR + "scheme/"; - DECK_PLANE_DIR = DECK_BASE_DIR + "planar/"; - DECK_COMMANDER_DIR = DECK_BASE_DIR + "commander/"; - QUEST_SAVE_DIR = USER_QUEST_DIR + "saves/"; - MAIN_PREFS_FILE = USER_PREFS_DIR + "forge.preferences"; - CARD_PREFS_FILE = USER_PREFS_DIR + "card.preferences"; - DECK_PREFS_FILE = USER_PREFS_DIR + "deck.preferences"; - QUEST_PREFS_FILE = USER_PREFS_DIR + "quest.preferences"; - ITEM_VIEW_PREFS_FILE = USER_PREFS_DIR + "item_view.preferences"; + // data that is only in the profile dirs + public static final String USER_QUEST_DIR = USER_DIR + "quest/"; + public static final String USER_PREFS_DIR = USER_DIR + "preferences/"; + public static final String USER_GAMES_DIR = USER_DIR + "games/"; + public static final String LOG_FILE = USER_DIR + "forge.log"; + public static final String DECK_BASE_DIR = USER_DIR + "decks/"; + public static final String ACHIEVEMENTS_DIR = USER_DIR + "achievements/"; + public static final String DECK_CONSTRUCTED_DIR = DECK_BASE_DIR + "constructed/"; + public static final String DECK_DRAFT_DIR = DECK_BASE_DIR + "draft/"; + public static final String DECK_WINSTON_DIR = DECK_BASE_DIR + "winston/"; + public static final String DECK_SEALED_DIR = DECK_BASE_DIR + "sealed/"; + public static final String DECK_SCHEME_DIR = DECK_BASE_DIR + "scheme/"; + public static final String DECK_PLANE_DIR = DECK_BASE_DIR + "planar/"; + public static final String DECK_COMMANDER_DIR = DECK_BASE_DIR + "commander/"; + public static final String QUEST_SAVE_DIR = USER_QUEST_DIR + "saves/"; + public static final String MAIN_PREFS_FILE = USER_PREFS_DIR + "forge.preferences"; + public static final String CARD_PREFS_FILE = USER_PREFS_DIR + "card.preferences"; + public static final String DECK_PREFS_FILE = USER_PREFS_DIR + "deck.preferences"; + public static final String QUEST_PREFS_FILE = USER_PREFS_DIR + "quest.preferences"; + public static final String ITEM_VIEW_PREFS_FILE = USER_PREFS_DIR + "item_view.preferences"; - _DEFAULTS_DIR = RES_DIR + "defaults/"; - NO_CARD_FILE = _DEFAULTS_DIR + "no_card.jpg"; + // data that has defaults in the program dir but overrides/additions in the user dir + private static final String _DEFAULTS_DIR = RES_DIR + "defaults/"; + public static final String NO_CARD_FILE = _DEFAULTS_DIR + "no_card.jpg"; + public static final FileLocation WINDOW_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "window.xml"); + public static final FileLocation MATCH_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "match.xml"); + public static final FileLocation WORKSHOP_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "workshop.xml"); + public static final FileLocation EDITOR_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "editor.xml"); + public static final FileLocation GAUNTLET_DIR = new FileLocation(_DEFAULTS_DIR, USER_DIR, "gauntlet/"); - WINDOW_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "window.xml"); - MATCH_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "match.xml"); - WORKSHOP_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "workshop.xml"); - EDITOR_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "editor.xml"); - GAUNTLET_DIR = new FileLocation(_DEFAULTS_DIR, USER_DIR, "gauntlet/"); + // data that is only in the cached dir + private static final String PICS_DIR = CACHE_DIR + "pics/"; + public static final String DB_DIR = CACHE_DIR + "db/"; + public static final String FONTS_DIR = CACHE_DIR + "fonts/"; + public static final String CACHE_TOKEN_PICS_DIR = PICS_DIR + "tokens/"; + public static final String CACHE_ICON_PICS_DIR = PICS_DIR + "icons/"; + public static final String CACHE_SYMBOLS_DIR = PICS_DIR + "symbols/"; + public static final String CACHE_BOOSTER_PICS_DIR = PICS_DIR + "boosters/"; + public static final String CACHE_FATPACK_PICS_DIR = PICS_DIR + "fatpacks/"; + public static final String CACHE_BOOSTERBOX_PICS_DIR = PICS_DIR + "boosterboxes/"; + public static final String CACHE_PRECON_PICS_DIR = PICS_DIR + "precons/"; + public static final String CACHE_TOURNAMENTPACK_PICS_DIR = PICS_DIR + "tournamentpacks/"; + public static final String QUEST_CARD_PRICE_FILE = DB_DIR + "all-prices.txt"; - PICS_DIR = CACHE_DIR + "pics/"; - DB_DIR = CACHE_DIR + "db/"; - FONTS_DIR = CACHE_DIR + "fonts/"; - CACHE_TOKEN_PICS_DIR = PICS_DIR + "tokens/"; - CACHE_ICON_PICS_DIR = PICS_DIR + "icons/"; - CACHE_SYMBOLS_DIR = PICS_DIR + "symbols/"; - CACHE_BOOSTER_PICS_DIR = PICS_DIR + "boosters/"; - CACHE_FATPACK_PICS_DIR = PICS_DIR + "fatpacks/"; - CACHE_BOOSTERBOX_PICS_DIR = PICS_DIR + "boosterboxes/"; - CACHE_PRECON_PICS_DIR = PICS_DIR + "precons/"; - CACHE_TOURNAMENTPACK_PICS_DIR = PICS_DIR + "tournamentpacks/"; - QUEST_CARD_PRICE_FILE = DB_DIR + "all-prices.txt"; - - PROFILE_DIRS = new String[] { + public static final String[] PROFILE_DIRS = { USER_DIR, CACHE_DIR, CACHE_CARD_PICS_DIR, @@ -142,123 +163,7 @@ public final class ForgeConstants { CACHE_BOOSTERBOX_PICS_DIR, CACHE_PRECON_PICS_DIR, CACHE_TOURNAMENTPACK_PICS_DIR }; - } - public static String ASSETS_DIR; - public static String PROFILE_FILE; - public static String PROFILE_TEMPLATE_FILE; - - public static String RES_DIR; - public static String LISTS_DIR; - public static String KEYWORD_LIST_FILE; - public static String TYPE_LIST_FILE; - public static String IMAGE_LIST_TOKENS_FILE; - public static String IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE; - public static String IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE; - public static String IMAGE_LIST_QUEST_TOKENS_FILE; - public static String IMAGE_LIST_QUEST_BOOSTERS_FILE; - public static String IMAGE_LIST_QUEST_FATPACKS_FILE; - public static String IMAGE_LIST_QUEST_BOOSTERBOXES_FILE; - public static String IMAGE_LIST_QUEST_PRECONS_FILE; - public static String IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE; - - public static String CHANGES_FILE; - public static String LICENSE_FILE; - public static String README_FILE; - public static String HOWTO_FILE; - - public static String DRAFT_DIR; - public static String DRAFT_RANKINGS_FILE; - public static String SEALED_DIR; - public static String CARD_DATA_DIR; - public static String EDITIONS_DIR; - public static String BLOCK_DATA_DIR; - public static String DECK_CUBE_DIR; - public static String AI_PROFILE_DIR; - public static String SOUND_DIR; - public static String MUSIC_DIR; - public static String LANG_DIR; - public static String EFFECTS_DIR; - - private static String QUEST_DIR; - public static String QUEST_WORLD_DIR; - public static String QUEST_PRECON_DIR; - public static String PRICES_BOOSTER_FILE; - public static String BAZAAR_DIR; - public static String BAZAAR_INDEX_FILE; - public static String DEFAULT_DUELS_DIR; - public static String DEFAULT_CHALLENGES_DIR; - public static String THEMES_DIR; - - public static String SKINS_DIR; - public static String DEFAULT_SKINS_DIR; - //don't associate these skin files with a directory since skin directory will be determined later - public static final String SPRITE_ICONS_FILE = "sprite_icons.png"; - public static final String SPRITE_FOILS_FILE = "sprite_foils.png"; - public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; - public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; - public static final String TROPHIES_FILE = "sprite_trophies.png"; - public static final String TROPHY_SHELF_FILE = "bg_trophy_shelf.png"; - public static final String FONT_FILE = "font1.ttf"; - public static final String SPLASH_BG_FILE = "bg_splash.png"; - public static final String MATCH_BG_FILE = "bg_match.jpg"; - public static final String TEXTURE_BG_FILE = "bg_texture.jpg"; - public static final String DRAFT_DECK_IMG_FILE = "bg_draft_deck.png"; - - // data tree roots - public static String USER_DIR; - public static String CACHE_DIR; - public static String CACHE_CARD_PICS_DIR; - public static Map CACHE_CARD_PICS_SUBDIR; - public static int SERVER_PORT_NUMBER; - - // data that is only in the profile dirs - public static String USER_QUEST_DIR; - public static String USER_PREFS_DIR; - public static String USER_GAMES_DIR; - public static String LOG_FILE; - public static String DECK_BASE_DIR; - public static String ACHIEVEMENTS_DIR; - public static String DECK_CONSTRUCTED_DIR; - public static String DECK_DRAFT_DIR; - public static String DECK_WINSTON_DIR; - public static String DECK_SEALED_DIR; - public static String DECK_SCHEME_DIR; - public static String DECK_PLANE_DIR; - public static String DECK_COMMANDER_DIR; - public static String QUEST_SAVE_DIR; - public static String MAIN_PREFS_FILE; - public static String CARD_PREFS_FILE; - public static String DECK_PREFS_FILE; - public static String QUEST_PREFS_FILE; - public static String ITEM_VIEW_PREFS_FILE; - public static String ACHIEVEMENTS_FILE; - - // data that has defaults in the program dir but overrides/additions in the user dir - private static String _DEFAULTS_DIR; - public static String NO_CARD_FILE; - public static FileLocation WINDOW_LAYOUT_FILE; - public static FileLocation MATCH_LAYOUT_FILE; - public static FileLocation WORKSHOP_LAYOUT_FILE; - public static FileLocation EDITOR_LAYOUT_FILE; - public static FileLocation GAUNTLET_DIR; - - // data that is only in the cached dir - private static String PICS_DIR; - public static String DB_DIR; - public static String FONTS_DIR; - public static String CACHE_TOKEN_PICS_DIR; - public static String CACHE_ICON_PICS_DIR; - public static String CACHE_SYMBOLS_DIR; - public static String CACHE_BOOSTER_PICS_DIR; - public static String CACHE_FATPACK_PICS_DIR; - public static String CACHE_BOOSTERBOX_PICS_DIR; - public static String CACHE_PRECON_PICS_DIR; - public static String CACHE_TOURNAMENTPACK_PICS_DIR; - public static String QUEST_CARD_PRICE_FILE; - - public static String[] PROFILE_DIRS; - // URLs private static final String URL_CARDFORGE = "http://cardforge.org"; public static final String URL_DRAFT_UPLOAD = URL_CARDFORGE + "/draftAI/submitDraftData.php"; diff --git a/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java b/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java index 10dd9d848fe..366e590d599 100644 --- a/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java +++ b/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java @@ -26,7 +26,7 @@ import java.util.Properties; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import forge.interfaces.IGuiBase; +import forge.GuiBase; import forge.util.FileSection; import forge.util.FileUtil; @@ -36,7 +36,6 @@ import forge.util.FileUtil; * so they can be easily appended with further path elements. */ public class ForgeProfileProperties { - private static boolean isRunningOnDesktop; private static String userDir; private static String cacheDir; private static String cardPicsDir; @@ -53,8 +52,7 @@ public class ForgeProfileProperties { //prevent initializing static class } - public static void init(final IGuiBase gui) { - isRunningOnDesktop = gui.isRunningOnDesktop(); + public static void init() { } public static void load() { @@ -149,7 +147,7 @@ public class ForgeProfileProperties { // returns a pair private static Pair getDefaultDirs() { - if (isRunningOnDesktop) { //special case for mobile devices + if (!GuiBase.getInterface().isRunningOnDesktop()) { //special case for mobile devices String assetsDir = ForgeConstants.ASSETS_DIR; return Pair.of(assetsDir + "data" + File.separator, assetsDir + "cache" + File.separator); }