@Override
        public void onLoadFinished(final Loader<Cursor> loader, final Cursor data) {
          final Cursor oldCursor = adapter.swapCursor(data);

          if (oldCursor == null && defaultCurrency != null) {
            final int defaultCurrencyPosition = findCurrencyCode(data, defaultCurrency);
            if (defaultCurrencyPosition >= 0)
              getListView().setSelection(defaultCurrencyPosition); // scroll to selection
          }
        }
  private void updateView() {
    balance = application.getWallet().getBalance(BalanceType.ESTIMATED);

    if (adapter != null) {
      final int btcShift = config.getBtcShift();

      final Coin base = btcShift == 0 ? Coin.COIN : Coin.MILLICOIN;

      adapter.setRateBase(base);
    }
  }
  private void updateView() {
    balance = application.getWallet().getBalance(BalanceType.ESTIMATED);

    if (adapter != null) {
      final int btcShift = config.getBtcShift();

      final BigInteger base = btcShift == 0 ? GenericUtils.ONE_BTC : GenericUtils.ONE_MBTC;

      adapter.setRateBase(base);
    }
  }
  @Override
  public void onListItemClick(final ListView l, final View v, final int position, final long id) {
    final Cursor cursor = (Cursor) adapter.getItem(position);
    final ExchangeRate exchangeRate = ExchangeRatesProvider.getExchangeRate(cursor);

    activity.startActionMode(
        new ActionMode.Callback() {
          @Override
          public boolean onCreateActionMode(final ActionMode mode, final Menu menu) {
            final MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.exchange_rates_context, menu);

            return true;
          }

          @Override
          public boolean onPrepareActionMode(final ActionMode mode, final Menu menu) {
            mode.setTitle(exchangeRate.getCurrencyCode());
            mode.setSubtitle(
                getString(R.string.exchange_rates_fragment_source, exchangeRate.source));

            return true;
          }

          @Override
          public boolean onActionItemClicked(final ActionMode mode, final MenuItem item) {
            switch (item.getItemId()) {
              case R.id.exchange_rates_context_set_as_default:
                handleSetAsDefault(exchangeRate.getCurrencyCode());

                mode.finish();
                return true;
            }

            return false;
          }

          @Override
          public void onDestroyActionMode(final ActionMode mode) {}

          private void handleSetAsDefault(final String currencyCode) {
            config.setExchangeCurrencyCode(currencyCode);

            WalletBalanceWidgetProvider.updateWidgets(activity, wallet);
          }
        });
  }
        @Override
        public void onLoadFinished(final Loader<Cursor> loader, final Cursor data) {
          final Cursor oldCursor = adapter.swapCursor(data);

          if (data != null && oldCursor == null && defaultCurrency != null) {
            final int defaultCurrencyPosition = findCurrencyCode(data, defaultCurrency);
            if (defaultCurrencyPosition >= 0)
              getListView().setSelection(defaultCurrencyPosition); // scroll to selection
          }

          setEmptyText(
              WholeStringBuilder.bold(
                  getString(
                      query != null
                          ? R.string.exchange_rates_fragment_empty_search
                          : R.string.exchange_rates_fragment_empty_text)));
        }