Fix and features
- Fix symbol bug when selecting form ETH|BTC|USDT currencies from Binance - Add candlestick chart in detail activity
This commit is contained in:
parent
0ab73ddc87
commit
f1a4a03a5a
@ -10,14 +10,13 @@ import android.graphics.drawable.BitmapDrawable;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.SwitchPreference;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.BottomNavigationView;
|
import android.support.design.widget.BottomNavigationView;
|
||||||
import android.support.design.widget.Snackbar;
|
|
||||||
import android.support.v4.app.NavUtils;
|
import android.support.v4.app.NavUtils;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
@ -30,16 +29,19 @@ import android.widget.ViewFlipper;
|
|||||||
import com.binance.api.client.domain.account.Trade;
|
import com.binance.api.client.domain.account.Trade;
|
||||||
import com.daimajia.swipe.SwipeLayout;
|
import com.daimajia.swipe.SwipeLayout;
|
||||||
import com.github.mikephil.charting.charts.BarChart;
|
import com.github.mikephil.charting.charts.BarChart;
|
||||||
|
import com.github.mikephil.charting.charts.CandleStickChart;
|
||||||
import com.github.mikephil.charting.charts.LineChart;
|
import com.github.mikephil.charting.charts.LineChart;
|
||||||
import com.github.mikephil.charting.data.BarData;
|
import com.github.mikephil.charting.data.BarData;
|
||||||
import com.github.mikephil.charting.data.BarDataSet;
|
import com.github.mikephil.charting.data.BarDataSet;
|
||||||
import com.github.mikephil.charting.data.BarEntry;
|
import com.github.mikephil.charting.data.BarEntry;
|
||||||
|
import com.github.mikephil.charting.data.CandleData;
|
||||||
|
import com.github.mikephil.charting.data.CandleDataSet;
|
||||||
|
import com.github.mikephil.charting.data.CandleEntry;
|
||||||
import com.github.mikephil.charting.data.Entry;
|
import com.github.mikephil.charting.data.Entry;
|
||||||
import com.github.mikephil.charting.data.LineData;
|
import com.github.mikephil.charting.data.LineData;
|
||||||
import com.github.mikephil.charting.data.LineDataSet;
|
import com.github.mikephil.charting.data.LineDataSet;
|
||||||
import com.github.mikephil.charting.highlight.Highlight;
|
import com.github.mikephil.charting.highlight.Highlight;
|
||||||
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
|
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
|
||||||
import com.nauk.coinfolio.DataManagers.BalanceManager;
|
|
||||||
import com.nauk.coinfolio.DataManagers.CurrencyData.Currency;
|
import com.nauk.coinfolio.DataManagers.CurrencyData.Currency;
|
||||||
import com.nauk.coinfolio.DataManagers.CurrencyData.CurrencyDataChart;
|
import com.nauk.coinfolio.DataManagers.CurrencyData.CurrencyDataChart;
|
||||||
import com.nauk.coinfolio.DataManagers.CurrencyData.Transaction;
|
import com.nauk.coinfolio.DataManagers.CurrencyData.Transaction;
|
||||||
@ -54,6 +56,7 @@ import java.text.NumberFormat;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@ -77,10 +80,16 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
private final static int YEAR = 4;
|
private final static int YEAR = 4;
|
||||||
private List<CurrencyDataChart> dataChartList;
|
private List<CurrencyDataChart> dataChartList;
|
||||||
private LineChart lineChart;
|
private LineChart lineChart;
|
||||||
|
private CandleStickChart candleStickChart;
|
||||||
private BarChart barChart;
|
private BarChart barChart;
|
||||||
private PreferencesManager preferencesManager;
|
private PreferencesManager preferencesManager;
|
||||||
private BinanceManager binanceManager;
|
private BinanceManager binanceManager;
|
||||||
|
|
||||||
|
private boolean displayLineChart;
|
||||||
|
|
||||||
|
private Button lineChartButton;
|
||||||
|
private Button candleStickChartButton;
|
||||||
|
|
||||||
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
|
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
|
||||||
= new BottomNavigationView.OnNavigationItemSelectedListener() {
|
= new BottomNavigationView.OnNavigationItemSelectedListener() {
|
||||||
|
|
||||||
@ -133,13 +142,44 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
databaseManager = new DatabaseManager(this);
|
databaseManager = new DatabaseManager(this);
|
||||||
preferencesManager = new PreferencesManager(this);
|
preferencesManager = new PreferencesManager(this);
|
||||||
|
|
||||||
|
displayLineChart = true;
|
||||||
|
|
||||||
viewFlipper = findViewById(R.id.vfCurrencyDetails);
|
viewFlipper = findViewById(R.id.vfCurrencyDetails);
|
||||||
transactionLayout = findViewById(R.id.listTransactions);
|
transactionLayout = findViewById(R.id.listTransactions);
|
||||||
tradeLayout = findViewById(R.id.listTrades);
|
tradeLayout = findViewById(R.id.listTrades);
|
||||||
lineChart = findViewById(R.id.chartPriceView);
|
lineChart = findViewById(R.id.chartPriceView);
|
||||||
|
candleStickChart = findViewById(R.id.chartCandleStickView);
|
||||||
barChart = findViewById(R.id.chartVolumeView);
|
barChart = findViewById(R.id.chartVolumeView);
|
||||||
|
lineChartButton = findViewById(R.id.lineChartButton);
|
||||||
|
candleStickChartButton = findViewById(R.id.candleStickChartButton);
|
||||||
binanceManager = new BinanceManager(preferencesManager.getBinancePublicKey(), preferencesManager.getBinancePrivateKey());
|
binanceManager = new BinanceManager(preferencesManager.getBinancePublicKey(), preferencesManager.getBinancePrivateKey());
|
||||||
|
|
||||||
|
lineChartButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
lineChartButton.setEnabled(false);
|
||||||
|
candleStickChartButton.setEnabled(true);
|
||||||
|
|
||||||
|
lineChart.setVisibility(View.VISIBLE);
|
||||||
|
candleStickChart.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
displayLineChart = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
candleStickChartButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
lineChartButton.setEnabled(true);
|
||||||
|
candleStickChartButton.setEnabled(false);
|
||||||
|
|
||||||
|
lineChart.setVisibility(View.GONE);
|
||||||
|
candleStickChart.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
displayLineChart = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
((BottomNavigationView) findViewById(R.id.navigation_details)).getMenu().getItem(1).setEnabled(false);
|
((BottomNavigationView) findViewById(R.id.navigation_details)).getMenu().getItem(1).setEnabled(false);
|
||||||
|
|
||||||
setupActionBar();
|
setupActionBar();
|
||||||
@ -147,6 +187,8 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
drawTransactionList();
|
drawTransactionList();
|
||||||
|
|
||||||
initializeButtons();
|
initializeButtons();
|
||||||
|
initializeLineChart(lineChart);
|
||||||
|
initializeCandleStickChart(candleStickChart);
|
||||||
|
|
||||||
updateChartTab(DAY, 1);
|
updateChartTab(DAY, 1);
|
||||||
|
|
||||||
@ -225,6 +267,7 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
private void updateCharts(Button button)
|
private void updateCharts(Button button)
|
||||||
{
|
{
|
||||||
findViewById(R.id.chartPriceView).setVisibility(View.GONE);
|
findViewById(R.id.chartPriceView).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.chartCandleStickView).setVisibility(View.GONE);
|
||||||
findViewById(R.id.chartVolumeView).setVisibility(View.GONE);
|
findViewById(R.id.chartVolumeView).setVisibility(View.GONE);
|
||||||
findViewById(R.id.progressLayoutChart).setVisibility(View.VISIBLE);
|
findViewById(R.id.progressLayoutChart).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
@ -325,8 +368,22 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
private void updateChartTab(int timeUnit, int amount)
|
private void updateChartTab(int timeUnit, int amount)
|
||||||
{
|
{
|
||||||
updateChartsData(timeUnit, amount);
|
updateChartsData(timeUnit, amount);
|
||||||
drawPriceChart();
|
drawPriceLineChart();
|
||||||
|
drawPriceCandleStickChart();
|
||||||
|
|
||||||
|
if(displayLineChart)
|
||||||
|
{
|
||||||
|
findViewById(R.id.chartPriceView).setVisibility(View.VISIBLE);
|
||||||
|
findViewById(R.id.progressLayoutChart).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
findViewById(R.id.chartCandleStickView).setVisibility(View.VISIBLE);
|
||||||
|
findViewById(R.id.progressLayoutChart).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
drawVolumeChart();
|
drawVolumeChart();
|
||||||
|
updateGeneralData(lineChart.getData().getDataSets().get(0).getEntryForIndex(0).getY(), lineChart.getData().getDataSets().get(0).getEntryForIndex(lineChart.getData().getDataSets().get(0).getEntryCount() - 1).getY());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateChartsData(int timeUnit, int amount)
|
private void updateChartsData(int timeUnit, int amount)
|
||||||
@ -399,11 +456,14 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
barChart.setFitBars(true);
|
barChart.setFitBars(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawPriceChart()
|
private void drawPriceCandleStickChart()
|
||||||
{
|
{
|
||||||
initializeLineChart(lineChart);
|
candleStickChart.setData(generatePriceCandleStickChartSet());
|
||||||
|
}
|
||||||
|
|
||||||
lineChart.setData(generatePriceChartSet());
|
private void drawPriceLineChart()
|
||||||
|
{
|
||||||
|
lineChart.setData(generatePriceLineChartSet());
|
||||||
lineChart.getAxisLeft().setAxisMinValue(lineChart.getData().getYMin());
|
lineChart.getAxisLeft().setAxisMinValue(lineChart.getData().getYMin());
|
||||||
|
|
||||||
lineChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
|
lineChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
|
||||||
@ -424,11 +484,19 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
return toucheEvent(motionEvent);
|
return toucheEvent(motionEvent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
updateGeneralData(lineChart.getData().getDataSets().get(0).getEntryForIndex(0).getY(), lineChart.getData().getDataSets().get(0).getEntryForIndex(lineChart.getData().getDataSets().get(0).getEntryCount() - 1).getY());
|
private void initializeCandleStickChart(CandleStickChart candleStickChart)
|
||||||
|
{
|
||||||
findViewById(R.id.chartPriceView).setVisibility(View.VISIBLE);
|
candleStickChart.setDrawGridBackground(false);
|
||||||
findViewById(R.id.progressLayoutChart).setVisibility(View.GONE);
|
candleStickChart.setDrawBorders(false);
|
||||||
|
candleStickChart.setDrawMarkers(true);
|
||||||
|
candleStickChart.getDescription().setEnabled(false);
|
||||||
|
candleStickChart.getAxisLeft().setEnabled(true);
|
||||||
|
candleStickChart.getAxisRight().setEnabled(true);
|
||||||
|
candleStickChart.getLegend().setEnabled(false);
|
||||||
|
candleStickChart.getXAxis().setEnabled(true);
|
||||||
|
candleStickChart.setViewPortOffsets(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeLineChart(LineChart lineChart)
|
private void initializeLineChart(LineChart lineChart)
|
||||||
@ -472,8 +540,11 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
timestampPlaceholder = getResources().getString(R.string.timestampPlaceholder, date);
|
timestampPlaceholder = getResources().getString(R.string.timestampPlaceholder, date);
|
||||||
|
|
||||||
((TextView) findViewById(R.id.volumeHightlight)).setText(volumePlaceholder);
|
((TextView) findViewById(R.id.volumeHightlight)).setText(volumePlaceholder);
|
||||||
|
findViewById(R.id.volumeHightlight).setVisibility(View.VISIBLE);
|
||||||
((TextView) findViewById(R.id.priceHightlight)).setText(pricePlaceholder);
|
((TextView) findViewById(R.id.priceHightlight)).setText(pricePlaceholder);
|
||||||
|
findViewById(R.id.priceHightlight).setVisibility(View.VISIBLE);
|
||||||
((TextView) findViewById(R.id.timestampHightlight)).setText(timestampPlaceholder);
|
((TextView) findViewById(R.id.timestampHightlight)).setText(timestampPlaceholder);
|
||||||
|
findViewById(R.id.timestampHightlight).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,9 +563,12 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void hideDataIndicators()
|
private void hideDataIndicators()
|
||||||
{
|
{
|
||||||
((TextView) findViewById(R.id.volumeHightlight)).setText("\n");
|
((TextView) findViewById(R.id.volumeHightlight)).setText(".\n.");
|
||||||
((TextView) findViewById(R.id.priceHightlight)).setText("\n");
|
findViewById(R.id.volumeHightlight).setVisibility(View.INVISIBLE);
|
||||||
((TextView) findViewById(R.id.timestampHightlight)).setText("\n");
|
((TextView) findViewById(R.id.priceHightlight)).setText(".\n.");
|
||||||
|
findViewById(R.id.priceHightlight).setVisibility(View.INVISIBLE);
|
||||||
|
((TextView) findViewById(R.id.timestampHightlight)).setText(".\n.");
|
||||||
|
findViewById(R.id.timestampHightlight).setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getDate(long timeStamp){
|
private String getDate(long timeStamp){
|
||||||
@ -558,7 +632,43 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LineData generatePriceChartSet()
|
private CandleData generatePriceCandleStickChartSet()
|
||||||
|
{
|
||||||
|
CandleDataSet dataSet;
|
||||||
|
ArrayList<CandleEntry> values = new ArrayList<>();
|
||||||
|
|
||||||
|
int offsetRange = (int) Math.floor(dataChartList.size() / 200);
|
||||||
|
|
||||||
|
if(offsetRange < 1)
|
||||||
|
{
|
||||||
|
offsetRange = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0, j = 0; i < dataChartList.size(); i+= offsetRange, j++)
|
||||||
|
{
|
||||||
|
values.add(new CandleEntry(j, (float) dataChartList.get(i).getHigh()
|
||||||
|
, (float) dataChartList.get(i).getLow()
|
||||||
|
, (float) dataChartList.get(i).getOpen()
|
||||||
|
, (float) dataChartList.get(i).getClose()));
|
||||||
|
}
|
||||||
|
|
||||||
|
dataSet = new CandleDataSet(values, "History");
|
||||||
|
dataSet.setDrawIcons(false);
|
||||||
|
dataSet.setDrawValues(false);
|
||||||
|
dataSet.setDecreasingColor(getColor(R.color.decreaseCandle));
|
||||||
|
dataSet.setShowCandleBar(true);
|
||||||
|
dataSet.setShadowColorSameAsCandle(true);
|
||||||
|
dataSet.setDecreasingPaintStyle(Paint.Style.FILL);
|
||||||
|
dataSet.setIncreasingColor(getColor(R.color.increaseCandle));
|
||||||
|
dataSet.setIncreasingPaintStyle(Paint.Style.STROKE);
|
||||||
|
dataSet.setNeutralColor(getColor(R.color.increaseCandle));
|
||||||
|
dataSet.setHighLightColor(getColor(R.color.colorAccent));
|
||||||
|
dataSet.setDrawHorizontalHighlightIndicator(false);
|
||||||
|
|
||||||
|
return new CandleData(dataSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LineData generatePriceLineChartSet()
|
||||||
{
|
{
|
||||||
LineDataSet dataSet;
|
LineDataSet dataSet;
|
||||||
ArrayList<Entry> values = new ArrayList<>();
|
ArrayList<Entry> values = new ArrayList<>();
|
||||||
@ -656,13 +766,15 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
return transColor;
|
return transColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTradeList(List<Trade> trades, String pairSymbol)
|
private void drawTradeList(HashMap<String, List<Trade>> trades)
|
||||||
{
|
{
|
||||||
findViewById(R.id.tradeProgressBar).setVisibility(View.GONE);
|
findViewById(R.id.tradeProgressBar).setVisibility(View.GONE);
|
||||||
|
|
||||||
tradeLayout.removeAllViews();
|
tradeLayout.removeAllViews();
|
||||||
|
|
||||||
for(int i = trades.size()-1; i >= 0; i--)
|
for(String key : trades.keySet())
|
||||||
|
{
|
||||||
|
for(int i = trades.get(key).size()-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
View view = LayoutInflater.from(this).inflate(R.layout.custom_trade_row, null);
|
View view = LayoutInflater.from(this).inflate(R.layout.custom_trade_row, null);
|
||||||
TextView amountTxtView = view.findViewById(R.id.amountPurchased);
|
TextView amountTxtView = view.findViewById(R.id.amountPurchased);
|
||||||
@ -671,7 +783,7 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
TextView dateTxtView = view.findViewById(R.id.tradeDate);
|
TextView dateTxtView = view.findViewById(R.id.tradeDate);
|
||||||
View tradeIndicator = view.findViewById(R.id.tradeIndicator);
|
View tradeIndicator = view.findViewById(R.id.tradeIndicator);
|
||||||
|
|
||||||
if(trades.get(i).isBuyer())
|
if(trades.get(key).get(i).isBuyer())
|
||||||
{
|
{
|
||||||
tradeIndicator.setBackgroundColor(getColor(R.color.green));
|
tradeIndicator.setBackgroundColor(getColor(R.color.green));
|
||||||
}
|
}
|
||||||
@ -680,14 +792,15 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
tradeIndicator.setBackgroundColor(getColor(R.color.red));
|
tradeIndicator.setBackgroundColor(getColor(R.color.red));
|
||||||
}
|
}
|
||||||
|
|
||||||
amountTxtView.setText(String.valueOf(trades.get(i).getQty()));
|
amountTxtView.setText(String.valueOf(trades.get(key).get(i).getQty()));
|
||||||
purchasedPrice.setText(trades.get(i).getPrice());
|
purchasedPrice.setText(trades.get(key).get(i).getPrice());
|
||||||
dateTxtView.setText(getDate(trades.get(i).getTime()));
|
dateTxtView.setText(getDate(trades.get(key).get(i).getTime()));
|
||||||
tradePair.setText(currency.getSymbol() + "/" + pairSymbol);
|
tradePair.setText(currency.getSymbol() + "/" + key);
|
||||||
|
|
||||||
tradeLayout.addView(view);
|
tradeLayout.addView(view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void drawTransactionList()
|
private void drawTransactionList()
|
||||||
{
|
{
|
||||||
@ -790,12 +903,12 @@ public class CurrencyDetailsActivity extends AppCompatActivity {
|
|||||||
binanceManager.updateTrades(new BinanceManager.BinanceCallBack() {
|
binanceManager.updateTrades(new BinanceManager.BinanceCallBack() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
final List<Trade> trades = binanceManager.getTrades();
|
final HashMap<String, List<Trade>> trades = binanceManager.getTrades();
|
||||||
|
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
drawTradeList(trades, "ETH");
|
drawTradeList(trades);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -53,6 +53,26 @@ public class CurrencyDataChart implements Parcelable {
|
|||||||
return timestamp;
|
return timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setClose(double close) {
|
||||||
|
this.close = close;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getHigh() {
|
||||||
|
return high;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHigh(double high) {
|
||||||
|
this.high = high;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLow() {
|
||||||
|
return low;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLow(double low) {
|
||||||
|
this.low = low;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int describeContents() {
|
public int describeContents() {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -11,6 +11,7 @@ import com.binance.api.client.exception.BinanceApiException;
|
|||||||
import com.nauk.coinfolio.DataManagers.CurrencyData.Currency;
|
import com.nauk.coinfolio.DataManagers.CurrencyData.Currency;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ public class BinanceManager {
|
|||||||
private String privateKey;
|
private String privateKey;
|
||||||
|
|
||||||
private List<Currency> balance;
|
private List<Currency> balance;
|
||||||
private List<Trade> trades;
|
private HashMap<String, List<Trade>> trades;
|
||||||
|
|
||||||
public BinanceManager(String publicKey, String privateKey)
|
public BinanceManager(String publicKey, String privateKey)
|
||||||
{
|
{
|
||||||
@ -59,39 +60,33 @@ public class BinanceManager {
|
|||||||
|
|
||||||
public void updateTrades(BinanceCallBack callBack, String symbol)
|
public void updateTrades(BinanceCallBack callBack, String symbol)
|
||||||
{
|
{
|
||||||
List<Trade> totalTrades = new ArrayList<>();
|
trades = new HashMap<>();
|
||||||
|
|
||||||
updateTrades(null, symbol, "BTC");
|
trades.put("BTC", updateTrades(null, symbol, "BTC"));
|
||||||
totalTrades.addAll(trades);
|
|
||||||
|
|
||||||
updateTrades(null, symbol, "ETH");
|
trades.put("ETH", updateTrades(null, symbol, "ETH"));
|
||||||
totalTrades.addAll(trades);
|
|
||||||
|
|
||||||
updateTrades(null, symbol, "USDT");
|
trades.put("USDT", updateTrades(null, symbol, "USDT"));
|
||||||
totalTrades.addAll(trades);
|
|
||||||
|
|
||||||
trades = totalTrades;
|
|
||||||
|
|
||||||
callBack.onSuccess();
|
callBack.onSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateTrades(BinanceCallBack callBack, String symbol, String pairSymbol)
|
public List<Trade> updateTrades(BinanceCallBack callBack, String symbol, String pairSymbol)
|
||||||
{
|
{
|
||||||
|
List<Trade> presentTrades = new ArrayList<>();
|
||||||
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance(publicKey, privateKey);
|
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance(publicKey, privateKey);
|
||||||
BinanceApiRestClient client = factory.newRestClient();
|
BinanceApiRestClient client = factory.newRestClient();
|
||||||
|
|
||||||
Log.d("coinfolio", symbol + pairSymbol);
|
Log.d("coinfolio", symbol + pairSymbol);
|
||||||
|
|
||||||
trades = new ArrayList<>();
|
|
||||||
|
|
||||||
if(!symbol.equals(pairSymbol))
|
if(!symbol.equals(pairSymbol))
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
trades = client.getMyTrades(symbol + pairSymbol);
|
presentTrades = client.getMyTrades(symbol + pairSymbol);
|
||||||
|
|
||||||
} catch (BinanceApiException e) {
|
} catch (BinanceApiException e) {
|
||||||
try {
|
try {
|
||||||
trades = client.getMyTrades(pairSymbol + symbol);
|
presentTrades = client.getMyTrades(pairSymbol + symbol);
|
||||||
|
|
||||||
} catch (BinanceApiException f) {
|
} catch (BinanceApiException f) {
|
||||||
f.printStackTrace();
|
f.printStackTrace();
|
||||||
@ -103,6 +98,8 @@ public class BinanceManager {
|
|||||||
{
|
{
|
||||||
callBack.onSuccess();
|
callBack.onSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return presentTrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPublicKey(String publicKey)
|
public void setPublicKey(String publicKey)
|
||||||
@ -120,7 +117,7 @@ public class BinanceManager {
|
|||||||
return balance;
|
return balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Trade> getTrades()
|
public HashMap<String, List<Trade>> getTrades()
|
||||||
{
|
{
|
||||||
return trades;
|
return trades;
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,33 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:text="Line chart"
|
||||||
|
android:id="@+id/lineChartButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.5"
|
||||||
|
android:enabled="false"
|
||||||
|
style="@style/Widget.AppCompat.Button.Colored"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:text="Candle stick chart"
|
||||||
|
android:id="@+id/candleStickChartButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.5"
|
||||||
|
style="@style/Widget.AppCompat.Button.Colored"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/progressLayoutChart"
|
android:id="@+id/progressLayoutChart"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="305dp"
|
android:layout_height="305dp"
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:gravity="center">
|
android:gravity="center">
|
||||||
|
|
||||||
@ -39,8 +61,13 @@
|
|||||||
<com.github.mikephil.charting.charts.LineChart
|
<com.github.mikephil.charting.charts.LineChart
|
||||||
android:id="@+id/chartPriceView"
|
android:id="@+id/chartPriceView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="250dp"/>
|
||||||
|
|
||||||
|
<com.github.mikephil.charting.charts.CandleStickChart
|
||||||
|
android:id="@+id/chartCandleStickView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="250dp"
|
android:layout_height="250dp"
|
||||||
android:layout_marginTop="15dp" />
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -36,4 +36,6 @@
|
|||||||
<color name="white">#FFFFFFFF</color>
|
<color name="white">#FFFFFFFF</color>
|
||||||
<color name="cardview_background">#FFFFFFFF</color>
|
<color name="cardview_background">#FFFFFFFF</color>
|
||||||
<color name="summary_background">#FBFCFF</color>
|
<color name="summary_background">#FBFCFF</color>
|
||||||
|
<color name="decreaseCandle">#FFFF5754</color>
|
||||||
|
<color name="increaseCandle">#FF45B64A</color>
|
||||||
</resources>
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user