Merge pull request #3348 from blabno/changes-needed-for-minimal-api

Changes needed for minimal api
This commit is contained in:
Christoph Atteneder 2019-10-07 13:21:09 +02:00 committed by GitHub
commit 560d66b05b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 13 deletions

View File

@ -72,7 +72,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
@Slf4j
public abstract class BisqExecutable implements GracefulShutDownHandler, BisqSetup.BisqSetupCompleteListener {
public abstract class BisqExecutable implements GracefulShutDownHandler, BisqSetup.BisqSetupListener {
private final String fullName;
private final String scriptName;
@ -261,7 +261,7 @@ public abstract class BisqExecutable implements GracefulShutDownHandler, BisqSet
protected void startAppSetup() {
BisqSetup bisqSetup = injector.getInstance(BisqSetup.class);
bisqSetup.addBisqSetupCompleteListener(this);
bisqSetup.addBisqSetupListener(this);
bisqSetup.start();
}

View File

@ -43,7 +43,7 @@ public class BisqHeadlessApp implements HeadlessApp {
@Setter
private GracefulShutDownHandler gracefulShutDownHandler;
private boolean shutDownRequested;
private BisqSetup bisqSetup;
protected BisqSetup bisqSetup;
private CorruptedDatabaseFilesHandler corruptedDatabaseFilesHandler;
private TradeManager tradeManager;
@ -54,7 +54,7 @@ public class BisqHeadlessApp implements HeadlessApp {
public void startApplication() {
try {
bisqSetup = injector.getInstance(BisqSetup.class);
bisqSetup.addBisqSetupCompleteListener(this);
bisqSetup.addBisqSetupListener(this);
corruptedDatabaseFilesHandler = injector.getInstance(CorruptedDatabaseFilesHandler.class);
tradeManager = injector.getInstance(TradeManager.class);

View File

@ -116,7 +116,19 @@ import javax.annotation.Nullable;
@Slf4j
@Singleton
public class BisqSetup {
public interface BisqSetupCompleteListener {
public interface BisqSetupListener {
default void onInitP2pNetwork() {
log.info("onInitP2pNetwork");
}
default void onInitWallet() {
log.info("onInitWallet");
}
default void onRequestWalletPassword() {
log.info("onRequestWalletPassword");
}
void onSetupComplete();
}
@ -201,7 +213,7 @@ public class BisqSetup {
private boolean allBasicServicesInitialized;
@SuppressWarnings("FieldCanBeLocal")
private MonadicBinding<Boolean> p2pNetworkAndWalletInitialized;
private List<BisqSetupCompleteListener> bisqSetupCompleteListeners = new ArrayList<>();
private List<BisqSetupListener> bisqSetupListeners = new ArrayList<>();
@Inject
public BisqSetup(P2PNetworkSetup p2PNetworkSetup,
@ -296,8 +308,8 @@ public class BisqSetup {
// Setup
///////////////////////////////////////////////////////////////////////////////////////////
public void addBisqSetupCompleteListener(BisqSetupCompleteListener listener) {
bisqSetupCompleteListeners.add(listener);
public void addBisqSetupListener(BisqSetupListener listener) {
bisqSetupListeners.add(listener);
}
public void start() {
@ -328,7 +340,7 @@ public class BisqSetup {
private void step5() {
initDomainServices();
bisqSetupCompleteListeners.forEach(BisqSetupCompleteListener::onSetupComplete);
bisqSetupListeners.forEach(BisqSetupListener::onSetupComplete);
// We set that after calling the setupCompleteHandler to not trigger a popup from the dev dummy accounts
// in MainViewModel
@ -524,6 +536,7 @@ public class BisqSetup {
}, STARTUP_TIMEOUT_MINUTES, TimeUnit.MINUTES);
bisqSetupListeners.forEach(BisqSetupListener::onInitP2pNetwork);
p2pNetworkReady = p2PNetworkSetup.init(this::initWallet, displayTorNetworkSettingsHandler);
// We only init wallet service here if not using Tor for bitcoinj.
@ -550,7 +563,10 @@ public class BisqSetup {
}
private void initWallet() {
bisqSetupListeners.forEach(BisqSetupListener::onInitWallet);
Runnable walletPasswordHandler = () -> {
log.info("Wallet password required");
bisqSetupListeners.forEach(BisqSetupListener::onRequestWalletPassword);
if (p2pNetworkReady.get())
p2PNetworkSetup.setSplashP2PNetworkAnimationVisible(true);
@ -561,6 +577,9 @@ public class BisqSetup {
if (showFirstPopupIfResyncSPVRequestedHandler != null)
showFirstPopupIfResyncSPVRequestedHandler.run();
} else {
// TODO no guarantee here that the wallet is really fully initialized
// We would need a new walletInitializedButNotEncrypted state to track
// Usually init is fast and we have our wallet initialized at that state though.
walletInitialized.set(true);
}
});

View File

@ -22,7 +22,7 @@ import bisq.common.setup.UncaughtExceptionHandler;
import com.google.inject.Injector;
public interface HeadlessApp extends UncaughtExceptionHandler, BisqSetup.BisqSetupCompleteListener {
public interface HeadlessApp extends UncaughtExceptionHandler, BisqSetup.BisqSetupListener {
void setGracefulShutDownHandler(GracefulShutDownHandler gracefulShutDownHandler);
void setInjector(Injector injector);

View File

@ -95,7 +95,7 @@ import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MainViewModel implements ViewModel, BisqSetup.BisqSetupCompleteListener {
public class MainViewModel implements ViewModel, BisqSetup.BisqSetupListener {
private final BisqSetup bisqSetup;
private final WalletsSetup walletsSetup;
private final User user;
@ -191,12 +191,12 @@ public class MainViewModel implements ViewModel, BisqSetup.BisqSetupCompleteList
GUIUtil.setPreferences(preferences);
setupHandlers();
bisqSetup.addBisqSetupCompleteListener(this);
bisqSetup.addBisqSetupListener(this);
}
///////////////////////////////////////////////////////////////////////////////////////////
// BisqSetupCompleteListener
// BisqSetupListener
///////////////////////////////////////////////////////////////////////////////////////////
@Override