Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.
Prev Previous commit
Next Next commit
#62[30m]. Adding exchange rate on base of existed.
  • Loading branch information
Evgenii Kanivets committed Apr 27, 2016
commit 42767e766a915f41388e88cde34b1c268369e9a3
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.blogspot.e_kanivets.moneytracker.activity.exchange_rate;

import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatSpinner;
import android.view.Menu;
import android.view.MenuItem;
Expand All @@ -13,6 +14,7 @@
import com.blogspot.e_kanivets.moneytracker.entity.data.ExchangeRate;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

Expand All @@ -22,11 +24,17 @@ public class AddExchangeRateActivity extends BaseBackActivity {
@SuppressWarnings("unused")
private static final String TAG = "AddExchangeRateActivity";

public static final String KEY_EXCHANGE_RATE = "key_exchange_rate";

@Inject
ExchangeRateController exchangeRateController;
@Inject
CurrencyController currencyController;

// This field passed from Intent and may be used for presetting from/to spinner values
@Nullable
private ExchangeRate exchangeRate;

@Bind(R.id.spinner_from_currency)
AppCompatSpinner spinnerFromCurrency;
@Bind(R.id.spinner_to_currency)
Expand All @@ -43,20 +51,36 @@ protected int getContentViewId() {
protected boolean initData() {
boolean result = super.initData();
getAppComponent().inject(AddExchangeRateActivity.this);

exchangeRate = getIntent().getParcelableExtra(KEY_EXCHANGE_RATE);

return result;
}

@Override
protected void initViews() {
super.initViews();
List<String> currencyList = currencyController.readAll();

spinnerFromCurrency.setAdapter(new ArrayAdapter<>(AddExchangeRateActivity.this,
android.R.layout.simple_list_item_1,
new ArrayList<>(currencyController.readAll())));
new ArrayList<>(currencyList)));

spinnerToCurrency.setAdapter(new ArrayAdapter<>(AddExchangeRateActivity.this,
android.R.layout.simple_list_item_1,
new ArrayList<>(currencyController.readAll())));
new ArrayList<>(currencyList)));

// Set selections from passed ExchangeRate
if (exchangeRate != null) {
for (int i = 0; i < currencyList.size(); i++) {
if (currencyList.get(i).equals(exchangeRate.getFromCurrency())) {
spinnerFromCurrency.setSelection(i);
}
if (currencyList.get(i).equals(exchangeRate.getToCurrency())) {
spinnerToCurrency.setSelection(i);
}
}
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

import butterknife.Bind;
import butterknife.OnClick;
import butterknife.OnItemClick;

public class ExchangeRatesActivity extends BaseBackActivity {
@SuppressWarnings("unused")
Expand Down Expand Up @@ -85,6 +86,14 @@ public void addExchangeRate() {
startActivityForResult(intent, REQUEST_ADD_EXCHANGE_RATE);
}

@OnItemClick(R.id.list_view)
public void addExchangeRateOnBaseOfExisted(int position) {
if (position < 0 || position >= exchangeRateList.size()) return;
Intent intent = new Intent(ExchangeRatesActivity.this, AddExchangeRateActivity.class);
intent.putExtra(AddExchangeRateActivity.KEY_EXCHANGE_RATE, exchangeRateList.get(position));
startActivityForResult(intent, REQUEST_ADD_EXCHANGE_RATE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Expand Down