/** * <p>Unsubscribe all subscribers from events</p> * <p>This approach ensures all subscribers will be correctly removed during a shutdown or wizard hide event</p> */ @SuppressWarnings("unchecked") public static void unsubscribeAll() { Set allSubscribers = Sets.newHashSet(); allSubscribers.addAll(hardwareWalletEventBusSubscribers); for (Object subscriber : allSubscribers) { unsubscribe(subscriber); } allSubscribers.clear(); log.info("All subscribers removed"); }
/** * Unregister from hardware wallet events - called during the hide process */ @Override public void unsubscribe() { super.unsubscribe(); HardwareWalletEvents.unsubscribe(this); }
@Override protected boolean shutdownNowInternal(ShutdownEvent.ShutdownType shutdownType) { switch (shutdownType) { case HARD: case SOFT: if (isRegistered) { // Unsubscribe from hardware wallet events HardwareWalletEvents.unsubscribe(this); isRegistered = false; } // Allow ongoing cleanup return true; case SWITCH: // Clear all the events to prevent inaccurate UI latestBitcoinNetworkChangedEvent = Optional.absent(); latestExchangeRateChangedEvent = Optional.absent(); latestHardwareWalletEvent = Optional.absent(); latestEnvironmentEvent = Optional.absent(); // Avoid ongoing cleanup return false; default: throw new IllegalStateException("Unsupported state: " + shutdownType.name()); } }
public void unregister() { ViewEvents.unsubscribe(this); ControllerEvents.unsubscribe(this); HardwareWalletEvents.unsubscribe(this); }
/** * Unsubscribe from events (this controller is no longer required) */ public void unsubscribe() { ControllerEvents.unsubscribe(this); CoreEvents.unsubscribe(this); HardwareWalletEvents.unsubscribe(this); }