/** * Initializes network connectivity and starts background threads.<br/> * This is done in a separate thread so the webapp thread is not blocked * by this method. */ public void startUp() { backgroundThreads = new ArrayList<I2PAppThread>(); connectTask = new ConnectTask(); backgroundThreads.add(connectTask); connectTask.start(); if (apiService != null) { if (configuration.isImapEnabled()) apiService.start(ApiService.IMAP); if (configuration.isSmtpEnabled()) apiService.start(ApiService.SMTP); } }
protected ConnectTask() { super("ConnectTask"); setDaemon(true); }
@Override public Exception getConnectError() { return connectTask.getError(); }
@Override public NetworkStatus getNetworkStatus() { if (connectTask == null) return NetworkStatus.NOT_STARTED; if (!connectTask.isDone()) return connectTask.getNetworkStatus(); else if (dht != null) return dht.isReady()?NetworkStatus.CONNECTED:NetworkStatus.CONNECTING; else return NetworkStatus.ERROR; }