From 362b0f979321ed94487f3441edd22dff07f9200a Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 14 Jun 2017 13:03:46 +0200 Subject: [PATCH] Add flags for deactivating dao and dao phase 2 features --- .../main/java/io/bisq/common/app/DevEnv.java | 3 ++ .../java/io/bisq/core/dao/DaoManager.java | 13 +++-- .../dao/blockchain/BsqBlockchainManager.java | 7 ++- .../CompensationRequestManager.java | 49 ++++++++++--------- .../io/bisq/core/dao/vote/VotingManager.java | 9 ++-- .../main/java/io/bisq/gui/main/MainView.java | 4 ++ .../java/io/bisq/gui/main/MainViewModel.java | 9 +++- .../java/io/bisq/gui/main/dao/DaoView.fxml | 2 - .../java/io/bisq/gui/main/dao/DaoView.java | 10 +++- .../gui/main/dao/wallet/tx/BsqTxView.java | 6 ++- 10 files changed, 73 insertions(+), 39 deletions(-) diff --git a/common/src/main/java/io/bisq/common/app/DevEnv.java b/common/src/main/java/io/bisq/common/app/DevEnv.java index a061225c1e..e08acd93ec 100644 --- a/common/src/main/java/io/bisq/common/app/DevEnv.java +++ b/common/src/main/java/io/bisq/common/app/DevEnv.java @@ -19,4 +19,7 @@ public class DevEnv { // offers are filled with default values. Intended to make dev testing faster. @SuppressWarnings("PointlessBooleanExpression") public static final boolean DEV_MODE = STRESS_TEST_MODE || true; + + public static final boolean DAO_ACTIVATED = false; + public static final boolean DAO_PHASE2_ACTIVATED = false; } diff --git a/core/src/main/java/io/bisq/core/dao/DaoManager.java b/core/src/main/java/io/bisq/core/dao/DaoManager.java index bd788e0b7c..d3afce3fe0 100644 --- a/core/src/main/java/io/bisq/core/dao/DaoManager.java +++ b/core/src/main/java/io/bisq/core/dao/DaoManager.java @@ -18,6 +18,7 @@ package io.bisq.core.dao; import com.google.inject.Inject; +import io.bisq.common.app.DevEnv; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.core.btc.provider.squ.BsqUtxoFeedService; import io.bisq.core.dao.blockchain.BsqBlockchainManager; @@ -54,11 +55,13 @@ public class DaoManager { } public void onAllServicesInitialized(ErrorMessageHandler errorMessageHandler) { - daoPeriodService.onAllServicesInitialized(); - bsqUtxoFeedService.onAllServicesInitialized(); - voteManager.onAllServicesInitialized(); - compensationRequestManager.onAllServicesInitialized(); - bsqBlockchainManager.onAllServicesInitialized(errorMessageHandler); + if (DevEnv.DAO_ACTIVATED) { + daoPeriodService.onAllServicesInitialized(); + bsqUtxoFeedService.onAllServicesInitialized(); + voteManager.onAllServicesInitialized(); + compensationRequestManager.onAllServicesInitialized(); + bsqBlockchainManager.onAllServicesInitialized(errorMessageHandler); + } } diff --git a/core/src/main/java/io/bisq/core/dao/blockchain/BsqBlockchainManager.java b/core/src/main/java/io/bisq/core/dao/blockchain/BsqBlockchainManager.java index 061b4cc1f2..c5d80fb38e 100644 --- a/core/src/main/java/io/bisq/core/dao/blockchain/BsqBlockchainManager.java +++ b/core/src/main/java/io/bisq/core/dao/blockchain/BsqBlockchainManager.java @@ -18,6 +18,7 @@ package io.bisq.core.dao.blockchain; import com.google.inject.Inject; +import io.bisq.common.app.DevEnv; import io.bisq.common.handlers.ErrorMessageHandler; import io.bisq.core.dao.DaoOptionKeys; import lombok.extern.slf4j.Slf4j; @@ -42,7 +43,8 @@ public class BsqBlockchainManager { } public void addBsqChainStateListener(BsqChainStateListener bsqChainStateListener) { - bsqNode.addBsqChainStateListener(bsqChainStateListener); + if (DevEnv.DAO_ACTIVATED) + bsqNode.addBsqChainStateListener(bsqChainStateListener); } public boolean isParseBlockchainComplete() { @@ -50,6 +52,7 @@ public class BsqBlockchainManager { } public void removeBsqChainStateListener(BsqChainStateListener bsqChainStateListener) { - bsqNode.removeBsqChainStateListener(bsqChainStateListener); + if (DevEnv.DAO_ACTIVATED) + bsqNode.removeBsqChainStateListener(bsqChainStateListener); } } diff --git a/core/src/main/java/io/bisq/core/dao/compensation/CompensationRequestManager.java b/core/src/main/java/io/bisq/core/dao/compensation/CompensationRequestManager.java index be942c1587..40c20b595c 100644 --- a/core/src/main/java/io/bisq/core/dao/compensation/CompensationRequestManager.java +++ b/core/src/main/java/io/bisq/core/dao/compensation/CompensationRequestManager.java @@ -19,6 +19,7 @@ package io.bisq.core.dao.compensation; import com.google.common.util.concurrent.FutureCallback; import com.google.inject.Inject; +import io.bisq.common.app.DevEnv; import io.bisq.common.proto.persistable.PersistableList; import io.bisq.common.proto.persistable.PersistedDataHost; import io.bisq.common.storage.Storage; @@ -81,33 +82,37 @@ public class CompensationRequestManager implements PersistedDataHost { observableList = FXCollections.observableArrayList(model.getList()); - p2PService.addHashSetChangedListener(new HashMapChangedListener() { - @Override - public void onAdded(ProtectedStorageEntry data) { - final StoragePayload storagePayload = data.getStoragePayload(); + if (DevEnv.DAO_ACTIVATED) { + p2PService.addHashSetChangedListener(new HashMapChangedListener() { + @Override + public void onAdded(ProtectedStorageEntry data) { + final StoragePayload storagePayload = data.getStoragePayload(); + if (storagePayload instanceof CompensationRequestPayload) + addToList((CompensationRequestPayload) storagePayload, true); + } + + @Override + public void onRemoved(ProtectedStorageEntry data) { + // TODO + } + }); + + // At startup the P2PDataStorage inits earlier, otherwise we ge the listener called. + p2PService.getP2PDataStorage().getMap().values().forEach(e -> { + final StoragePayload storagePayload = e.getStoragePayload(); if (storagePayload instanceof CompensationRequestPayload) - addToList((CompensationRequestPayload) storagePayload, true); - } - - @Override - public void onRemoved(ProtectedStorageEntry data) { - // TODO - } - }); - - // At startup the P2PDataStorage inits earlier, otherwise we ge the listener called. - p2PService.getP2PDataStorage().getMap().values().forEach(e -> { - final StoragePayload storagePayload = e.getStoragePayload(); - if (storagePayload instanceof CompensationRequestPayload) - addToList((CompensationRequestPayload) storagePayload, false); - }); + addToList((CompensationRequestPayload) storagePayload, false); + }); + } } @Override public void readPersisted() { - PersistableList persisted = compensationRequestsStorage.initAndGetPersistedWithFileName("CompensationRequests"); - if (persisted != null) - model.setPersistedCompensationRequest(persisted.getList()); + if (DevEnv.DAO_ACTIVATED) { + PersistableList persisted = compensationRequestsStorage.initAndGetPersistedWithFileName("CompensationRequests"); + if (persisted != null) + model.setPersistedCompensationRequest(persisted.getList()); + } } public void onAllServicesInitialized() { diff --git a/core/src/main/java/io/bisq/core/dao/vote/VotingManager.java b/core/src/main/java/io/bisq/core/dao/vote/VotingManager.java index e77a704e2b..51935aeae7 100644 --- a/core/src/main/java/io/bisq/core/dao/vote/VotingManager.java +++ b/core/src/main/java/io/bisq/core/dao/vote/VotingManager.java @@ -19,6 +19,7 @@ package io.bisq.core.dao.vote; import com.google.common.annotations.VisibleForTesting; import com.google.inject.Inject; +import io.bisq.common.app.DevEnv; import io.bisq.common.app.Version; import io.bisq.common.proto.ProtoUtil; import io.bisq.common.proto.persistable.PersistableList; @@ -92,9 +93,11 @@ public class VotingManager implements PersistedDataHost { @Override public void readPersisted() { - PersistableList persisted = voteItemCollectionsStorage.initAndGetPersistedWithFileName("VoteItemCollections"); - if (persisted != null) - voteItemsLists.addAll(persisted.getList()); + if (DevEnv.DAO_ACTIVATED) { + PersistableList persisted = voteItemCollectionsStorage.initAndGetPersistedWithFileName("VoteItemCollections"); + if (persisted != null) + voteItemsLists.addAll(persisted.getList()); + } } public void onAllServicesInitialized() { diff --git a/gui/src/main/java/io/bisq/gui/main/MainView.java b/gui/src/main/java/io/bisq/gui/main/MainView.java index fd04e82241..cce52c2325 100644 --- a/gui/src/main/java/io/bisq/gui/main/MainView.java +++ b/gui/src/main/java/io/bisq/gui/main/MainView.java @@ -143,6 +143,10 @@ public class MainView extends InitializableView { Pane portfolioButtonHolder = new Pane(portfolioButton); Pane disputesButtonHolder = new Pane(disputesButton); + if (!DevEnv.DAO_ACTIVATED) { + daoButton.setVisible(false); + daoButton.setManaged(false); + } HBox leftNavPane = new HBox(marketButton, buyButton, sellButton, portfolioButtonHolder, fundsButton, disputesButtonHolder) {{ setLeftAnchor(this, 10d); setTopAnchor(this, 0d); diff --git a/gui/src/main/java/io/bisq/gui/main/MainViewModel.java b/gui/src/main/java/io/bisq/gui/main/MainViewModel.java index fcc74c4995..0acae3bf01 100644 --- a/gui/src/main/java/io/bisq/gui/main/MainViewModel.java +++ b/gui/src/main/java/io/bisq/gui/main/MainViewModel.java @@ -116,7 +116,7 @@ public class MainViewModel implements ViewModel { private final Preferences preferences; private final AlertManager alertManager; private final PrivateNotificationManager privateNotificationManager; - @SuppressWarnings("unused") + @SuppressWarnings({"unused", "FieldCanBeLocal"}) private final FilterManager filterManager; private final WalletPasswordWindow walletPasswordWindow; private final TradeStatisticsManager tradeStatisticsManager; @@ -143,12 +143,14 @@ public class MainViewModel implements ViewModel { final StringProperty availableBalance = new SimpleStringProperty(); final StringProperty reservedBalance = new SimpleStringProperty(); final StringProperty lockedBalance = new SimpleStringProperty(); + @SuppressWarnings("FieldCanBeLocal") private MonadicBinding btcInfoBinding; private final StringProperty marketPrice = new SimpleStringProperty(Res.get("shared.na")); // P2P network final StringProperty p2PNetworkInfo = new SimpleStringProperty(); + @SuppressWarnings("FieldCanBeLocal") private MonadicBinding p2PNetworkInfoBinding; final BooleanProperty splashP2PNetworkAnimationVisible = new SimpleBooleanProperty(true); final StringProperty p2pNetworkWarnMsg = new SimpleStringProperty(); @@ -163,6 +165,7 @@ public class MainViewModel implements ViewModel { private final String btcNetworkAsString; final StringProperty p2pNetworkLabelId = new SimpleStringProperty("footer-pane"); + @SuppressWarnings("FieldCanBeLocal") private MonadicBinding allServicesDone, tradesAndUIReady; final PriceFeedService priceFeedService; private final User user; @@ -171,8 +174,9 @@ public class MainViewModel implements ViewModel { private Timer checkNumberOfP2pNetworkPeersTimer; private final Map disputeIsClosedSubscriptionsMap = new HashMap<>(); final ObservableList priceFeedComboBoxItems = FXCollections.observableArrayList(); + @SuppressWarnings("FieldCanBeLocal") private MonadicBinding marketPriceBinding; - @SuppressWarnings("unused") + @SuppressWarnings({"unused", "FieldCanBeLocal"}) private Subscription priceFeedAllLoadedSubscription; private Popup startupTimeoutPopup; private BooleanProperty p2pNetWorkReady; @@ -241,6 +245,7 @@ public class MainViewModel implements ViewModel { } private void showTacWindow() { + //noinspection ConstantConditions,ConstantConditions if (!preferences.isTacAccepted() && !DevEnv.DEV_MODE) { UserThread.runAfter(() -> { tacWindow.onAction(() -> { diff --git a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.fxml b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.fxml index e1c8e8ea84..67d7d3ed0c 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.fxml +++ b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.fxml @@ -26,6 +26,4 @@ xmlns:fx="http://javafx.com/fxml"> - - diff --git a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java index db97f88e86..d065d22392 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/DaoView.java @@ -17,6 +17,7 @@ package io.bisq.gui.main.dao; +import io.bisq.common.app.DevEnv; import io.bisq.common.locale.Res; import io.bisq.gui.Navigation; import io.bisq.gui.common.model.Activatable; @@ -56,9 +57,14 @@ public class DaoView extends ActivatableViewAndModel { @Override public void initialize() { + if (DevEnv.DAO_PHASE2_ACTIVATED) { + compensationTab = new Tab(Res.get("dao.tab.compensation")); + votingTab = new Tab(Res.get("dao.tab.voting")); + compensationTab.setClosable(false); + votingTab.setClosable(false); + root.getTabs().addAll(compensationTab, votingTab); + } bsqWalletTab.setText(Res.get("dao.tab.bsqWallet")); - compensationTab.setText(Res.get("dao.tab.compensation")); - votingTab.setText(Res.get("dao.tab.voting")); navigationListener = viewPath -> { if (viewPath.size() == 3 && viewPath.indexOf(DaoView.class) == 1) { diff --git a/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java b/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java index 74b09f266e..2620f691ae 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java @@ -20,6 +20,7 @@ package io.bisq.gui.main.dao.wallet.tx; import de.jensd.fx.fontawesome.AwesomeDude; import de.jensd.fx.fontawesome.AwesomeIcon; import io.bisq.common.UserThread; +import io.bisq.common.app.DevEnv; import io.bisq.common.locale.Res; import io.bisq.core.btc.wallet.BsqBalanceListener; import io.bisq.core.btc.wallet.BsqWalletService; @@ -122,7 +123,10 @@ public class BsqTxView extends ActivatableView { chainSyncIndicator = new ProgressBar(); chainSyncIndicator.setPrefWidth(120); - chainSyncIndicator.setProgress(-1); + if (DevEnv.DAO_ACTIVATED) + chainSyncIndicator.setProgress(-1); + else + chainSyncIndicator.setProgress(0); chainSyncIndicator.setPadding(new Insets(-6, 0, -10, 5)); chainHeightLabel = FormBuilder.addLabel(root, ++gridRow, "");