private void removeCachedOpenOrderByID(String orderId) { if (isCachedOpenOrderEquals(orderId)) { cachedOpenOrder.postValue(null); } }
@Override public void addAccountStateObserver(@NonNull Observer<Integer> observer) { accountState.addObserver(observer); accountState.postValue(accountState.getValue()); }
@Override public void removeNativeOfferClickedObserver(@NonNull Observer<NativeOfferClickEvent> observer) { nativeSpendOfferObservable.removeObserver(observer); }
@Override public void addBalanceObserver(@NonNull Observer<Balance> observer, boolean startSSE) { balance.addObserver(observer); observer.onChanged(balance.getValue()); if (startSSE) { incrementBalanceSSECount(); } }
@Override public void logout() { removeAccountCreationRegistration(); accountState.removeAllObservers(); accountState.postValue(REQUIRE_CREATION); local.logout(); }
private boolean isCachedOpenOrderEquals(String orderId) { if (cachedOpenOrder != null) { final OpenOrder openOrder = cachedOpenOrder.getValue(); if (openOrder != null) { return openOrder.getId().equals(orderId); } } return false; }
@VisibleForTesting void setBalance(final kin.core.Balance balanceObj) { Balance balanceTemp = balance.getValue(); // if the values are not equals so we need to update, // no need to update for equal values. if (balanceTemp.getAmount().compareTo(balanceObj.value()) != 0) { eventLogger.send(KinBalanceUpdated.create(balanceTemp.getAmount().doubleValue())); Logger.log(new Log().withTag(TAG).text("setBalance: Balance changed, should get update")); balanceTemp.setAmount(balanceObj.value()); balance.postValue(balanceTemp); local.setBalance(balanceObj.value().intValue()); } }
@Override public void addNativeOfferClickedObserver(@NonNull Observer<NativeOfferClickEvent> observer) { nativeSpendOfferObservable.addObserver(observer); }
@Override public void run() { setValue(value); } });
public static <T> ObservableData<T> create() { return new ObservableData<>(); }
/** * Set value on the same thread * @param value */ public void setValue(T value) { this.writeLock.lock(); this.value.lazySet(value); this.onChanged(); this.writeLock.unlock(); }
private AccountManagerImpl(@NonNull final AccountManager.Local local, @NonNull final EventLogger eventLogger, @NonNull final AuthDataSource authRepository, @NonNull final BlockchainSource blockchainSource) { this.local = local; this.eventLogger = eventLogger; this.authRepository = authRepository; this.blockchainSource = blockchainSource; this.accountState = ObservableData.create(local.getAccountState()); }
@Override public void logout() { removeRegistration(paymentRegistration); removeRegistration(balanceRegistration); paymentRegistration = null; balanceRegistration = null; completedPayment.removeAllObservers(); account = null; local.logout(); }
@Override public @AccountState int getAccountState() { return accountState.getValue() == ERROR ? ERROR : local.getAccountState(); }
@Override public void addOrderObserver(@NonNull Observer<Order> observer) { getOrderWatcher().addObserver(observer); }
/** * Set value on the main thread * @param value */ public void postValue(final T value) { if (Looper.myLooper() != Looper.getMainLooper()) { mainThreadHandler.post(new Runnable() { @Override public void run() { setValue(value); } }); } else { setValue(value); } }
public static <T> ObservableData<T> create(@NonNull final T defaultValue) { return new ObservableData<>(defaultValue); }
@Override public void onResponse(OpenOrder response) { cachedOpenOrder.postValue(response); if (callback != null) { callback.onResponse(response); } }
@Override public void retry() { if (getKinAccount() != null && accountState.getValue() == ERROR) { this.setAccountState(local.getAccountState()); } }