available funds and semaphore
This commit is contained in:
parent
16175b11aa
commit
d2802051cd
|
|
@ -48,6 +48,47 @@ public class InstanceInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static double getTodaysProfit(String jsonResponse) {
|
||||||
|
try {
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
||||||
|
if (!jsonElement.isJsonObject()) {
|
||||||
|
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
if (jsonObject.has("combined")) {
|
||||||
|
JsonArray combinedArray = jsonObject.get("combined").getAsJsonArray();
|
||||||
|
return combinedArray.get(0).getAsDouble();
|
||||||
|
} else {
|
||||||
|
System.err.println("The parsed JSON response does not contain a 'combined' array.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error processing combined profit data: " + e.getMessage());
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static double getThisMonthsProfit(String jsonResponse) {
|
||||||
|
try {
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
||||||
|
if (!jsonElement.isJsonObject()) {
|
||||||
|
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
if (jsonObject.has("combined")) {
|
||||||
|
JsonArray combinedArray = jsonObject.get("combined").getAsJsonArray();
|
||||||
|
return combinedArray.get(1).getAsDouble();
|
||||||
|
} else {
|
||||||
|
System.err.println("The parsed JSON response does not contain a 'combined' array.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error processing combined profit data: " + e.getMessage());
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static double getTraderTime(String exchange) throws IOException {
|
public static double getTraderTime(String exchange) throws IOException {
|
||||||
Request uptimeRequest = new Request.Builder()
|
Request uptimeRequest = new Request.Builder()
|
||||||
|
|
@ -61,7 +102,23 @@ public class InstanceInterface {
|
||||||
}
|
}
|
||||||
String stockResponseBody = statsResponse.body().string();
|
String stockResponseBody = statsResponse.body().string();
|
||||||
|
|
||||||
return getUptime(stockResponseBody);
|
try {
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(stockResponseBody);
|
||||||
|
if (!jsonElement.isJsonObject()) {
|
||||||
|
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
if (jsonObject.has("Time")) {
|
||||||
|
return jsonObject.get("Time").getAsDouble();
|
||||||
|
} else {
|
||||||
|
System.err.println("The parsed JSON response does not contain a 'Time' entry.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error processing uptime data: " + e.getMessage());
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -107,11 +164,6 @@ public class InstanceInterface {
|
||||||
List<DealData> kucoinDeals = kucoinFuture.join();
|
List<DealData> kucoinDeals = kucoinFuture.join();
|
||||||
List<DealData> okxDeals = okxFuture.join();
|
List<DealData> okxDeals = okxFuture.join();
|
||||||
|
|
||||||
// List<DealData>binanceDeals = getLastTradesFromExchange("binance");
|
|
||||||
// List<DealData>gateioDeals = getLastTradesFromExchange("gateio");
|
|
||||||
// List<DealData>kucoinDeals = getLastTradesFromExchange("kucoin");
|
|
||||||
// List<DealData>okxDeals = getLastTradesFromExchange("okex");
|
|
||||||
|
|
||||||
List<DealData> allDeals = new ArrayList<>();
|
List<DealData> allDeals = new ArrayList<>();
|
||||||
allDeals.addAll(binanceDeals);
|
allDeals.addAll(binanceDeals);
|
||||||
allDeals.addAll(gateioDeals);
|
allDeals.addAll(gateioDeals);
|
||||||
|
|
@ -192,6 +244,7 @@ public class InstanceInterface {
|
||||||
System.err.println("The parsed JSON response does not contain the logs key.");
|
System.err.println("The parsed JSON response does not contain the logs key.");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonArray logsArray = jsonObject.getAsJsonArray("Logs");
|
JsonArray logsArray = jsonObject.getAsJsonArray("Logs");
|
||||||
List<String> logList = new ArrayList<>();
|
List<String> logList = new ArrayList<>();
|
||||||
for (int i = logsArray.size()-1; i >= 0; i--) {
|
for (int i = logsArray.size()-1; i >= 0; i--) {
|
||||||
|
|
@ -206,12 +259,65 @@ public class InstanceInterface {
|
||||||
|
|
||||||
|
|
||||||
public static ExchangeStatsData getExchangeStatsData(String exchange) throws IOException {
|
public static ExchangeStatsData getExchangeStatsData(String exchange) throws IOException {
|
||||||
//This needs to do A LOT of work
|
double lastSeen;
|
||||||
return null;
|
double fundsAvailable;
|
||||||
|
double fundsNeeded;
|
||||||
|
int onlineWorkers;
|
||||||
|
int longWorkers;
|
||||||
|
int shortWorkers;
|
||||||
|
|
||||||
|
|
||||||
|
// Semaphore
|
||||||
|
lastSeen = getTraderTime(exchange);
|
||||||
|
|
||||||
|
//Funds available
|
||||||
|
fundsAvailable = getFundsAvailable(exchange, "USDT");
|
||||||
|
|
||||||
|
//Individual worker status needed to calculate this
|
||||||
|
//Funds needed
|
||||||
|
fundsNeeded = 0;
|
||||||
|
|
||||||
|
//Online workers
|
||||||
|
onlineWorkers = 0;
|
||||||
|
|
||||||
|
//Long workers
|
||||||
|
longWorkers = 0;
|
||||||
|
|
||||||
|
//Short workers
|
||||||
|
shortWorkers = 0;
|
||||||
|
|
||||||
|
return new ExchangeStatsData(lastSeen,fundsAvailable,fundsNeeded,onlineWorkers,longWorkers,shortWorkers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static List<String> getAllWorkersStats(String exchange) throws IOException {
|
private static double getFundsAvailable(String exchange, String coin) throws IOException {
|
||||||
|
Request fundsRequest = new Request.Builder()
|
||||||
|
.url(API_BASE_URL + "/" + exchange + "/get_balance?coin=" + coin)
|
||||||
|
.header("X-API-KEY", API_KEY)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try (Response statsResponse = httpClient.newCall(fundsRequest).execute()) {
|
||||||
|
if (!statsResponse.isSuccessful()) {
|
||||||
|
throw new IOException("Unexpected code " + statsResponse);
|
||||||
|
}
|
||||||
|
String fundsResponseBody = statsResponse.body().string();
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(fundsResponseBody);
|
||||||
|
if (!jsonElement.isJsonObject()) {
|
||||||
|
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
if (!jsonObject.has(coin)) {
|
||||||
|
System.err.println("The parsed JSON response does not contain the coin requested.");
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return jsonObject.get(coin).getAsDouble();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static List<WorkerStatsData> getAllWorkersStats(String exchange) throws IOException {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -233,67 +339,25 @@ public class InstanceInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static double getTodaysProfit(String jsonResponse) {
|
// private static double getUptime(String jsonResponse) {
|
||||||
try {
|
// try {
|
||||||
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
// JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
||||||
if (!jsonElement.isJsonObject()) {
|
// if (!jsonElement.isJsonObject()) {
|
||||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
// System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
return 0.0;
|
// return 0.0;
|
||||||
}
|
// }
|
||||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
// JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
if (jsonObject.has("combined")) {
|
// if (jsonObject.has("Time")) {
|
||||||
JsonArray combinedArray = jsonObject.get("combined").getAsJsonArray();
|
// return jsonObject.get("Time").getAsDouble();
|
||||||
return combinedArray.get(0).getAsDouble();
|
// } else {
|
||||||
} else {
|
// System.err.println("The parsed JSON response does not contain a 'Time' entry.");
|
||||||
System.err.println("The parsed JSON response does not contain a 'combined' array.");
|
// return 0.0;
|
||||||
return 0.0;
|
// }
|
||||||
}
|
// } catch (Exception e) {
|
||||||
} catch (Exception e) {
|
// System.err.println("Error processing uptime data: " + e.getMessage());
|
||||||
System.err.println("Error processing combined profit data: " + e.getMessage());
|
// return 0.0;
|
||||||
return 0.0;
|
// }
|
||||||
}
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
private static double getThisMonthsProfit(String jsonResponse) {
|
|
||||||
try {
|
|
||||||
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
|
||||||
if (!jsonElement.isJsonObject()) {
|
|
||||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
|
||||||
if (jsonObject.has("combined")) {
|
|
||||||
JsonArray combinedArray = jsonObject.get("combined").getAsJsonArray();
|
|
||||||
return combinedArray.get(1).getAsDouble();
|
|
||||||
} else {
|
|
||||||
System.err.println("The parsed JSON response does not contain a 'combined' array.");
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.err.println("Error processing combined profit data: " + e.getMessage());
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static double getUptime(String jsonResponse) {
|
|
||||||
try {
|
|
||||||
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
|
||||||
if (!jsonElement.isJsonObject()) {
|
|
||||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
|
||||||
if (jsonObject.has("Time")) {
|
|
||||||
return jsonObject.get("Time").getAsDouble();
|
|
||||||
} else {
|
|
||||||
System.err.println("The parsed JSON response does not contain a 'Time' entry.");
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.err.println("Error processing uptime data: " + e.getMessage());
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static InstanceGlobalStatsData getInstanceGlobalStatus(String jsonResponse) {
|
private static InstanceGlobalStatsData getInstanceGlobalStatus(String jsonResponse) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -480,15 +544,15 @@ public class InstanceInterface {
|
||||||
|
|
||||||
|
|
||||||
public static class ExchangeStatsData {
|
public static class ExchangeStatsData {
|
||||||
private final int semaphore;
|
private final double lastSeen;
|
||||||
private final double fundsAvailable;
|
private final double fundsAvailable;
|
||||||
private final double fundsNeeded;
|
private final double fundsNeeded;
|
||||||
private final int onlineWorkers;
|
private final int onlineWorkers;
|
||||||
private final int longWorkers;
|
private final int longWorkers;
|
||||||
private final int shortWorkers;
|
private final int shortWorkers;
|
||||||
|
|
||||||
public ExchangeStatsData(int semaphore, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers) {
|
public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers) {
|
||||||
this.semaphore = semaphore;
|
this.lastSeen = lastSeen;
|
||||||
this.fundsAvailable = fundsAvailable;
|
this.fundsAvailable = fundsAvailable;
|
||||||
this.fundsNeeded = fundsNeeded;
|
this.fundsNeeded = fundsNeeded;
|
||||||
this.onlineWorkers = onlineWorkers;
|
this.onlineWorkers = onlineWorkers;
|
||||||
|
|
@ -496,7 +560,7 @@ public class InstanceInterface {
|
||||||
this.shortWorkers = shortWorkers;
|
this.shortWorkers = shortWorkers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSemaphore() { return semaphore; }
|
public double getLastSeen() { return lastSeen; }
|
||||||
public double getFundsAvailable() { return fundsAvailable; }
|
public double getFundsAvailable() { return fundsAvailable; }
|
||||||
public double getFundsNeeded() { return fundsNeeded; }
|
public double getFundsNeeded() { return fundsNeeded; }
|
||||||
public int getOnlineWorkers() { return onlineWorkers; }
|
public int getOnlineWorkers() { return onlineWorkers; }
|
||||||
|
|
|
||||||
|
|
@ -387,16 +387,54 @@ public class HomeFragment extends Fragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
CompletableFuture<InstanceInterface.ExchangeStatsData> future10 = CompletableFuture.supplyAsync(() -> {
|
||||||
|
try {
|
||||||
|
return InstanceInterface.getExchangeStatsData("binance");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.print(e.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CompletableFuture<InstanceInterface.ExchangeStatsData> future11 = CompletableFuture.supplyAsync(() -> {
|
||||||
|
try {
|
||||||
|
return InstanceInterface.getExchangeStatsData("gateio");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.print(e.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CompletableFuture<InstanceInterface.ExchangeStatsData> future12 = CompletableFuture.supplyAsync(() -> {
|
||||||
|
try {
|
||||||
|
return InstanceInterface.getExchangeStatsData("kucoin");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.print(e.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CompletableFuture<InstanceInterface.ExchangeStatsData> future13 = CompletableFuture.supplyAsync(() -> {
|
||||||
|
try {
|
||||||
|
return InstanceInterface.getExchangeStatsData("okex");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.print(e.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Wait for all futures to complete
|
// Wait for all futures to complete
|
||||||
CompletableFuture<Void> allFutures = CompletableFuture.allOf(future1, future2, future3, future4, future5, future6, future7, future8, future9);
|
CompletableFuture<Void> allFutures = CompletableFuture.allOf(
|
||||||
|
future1, future2, future3, future4, future5, future6, future7, future8,
|
||||||
|
future9, future10, future11, future12, future13);
|
||||||
|
|
||||||
// Update UI
|
// Update UI
|
||||||
allFutures.thenAccept(voidResult -> {
|
allFutures.thenAccept(voidResult -> {
|
||||||
try {
|
try {
|
||||||
requireActivity().runOnUiThread(() -> {
|
requireActivity().runOnUiThread(() -> {
|
||||||
TickerTracker.PriceChangeData priceData = null;
|
TickerTracker.PriceChangeData priceData;
|
||||||
TickerTracker.PriceChangeData priceData2 = null;
|
TickerTracker.PriceChangeData priceData2;
|
||||||
TickerTracker.PriceChangeData priceData3 = null;
|
TickerTracker.PriceChangeData priceData3;
|
||||||
try {
|
try {
|
||||||
priceData = future1.get();
|
priceData = future1.get();
|
||||||
priceData2 = future2.get();
|
priceData2 = future2.get();
|
||||||
|
|
@ -412,10 +450,10 @@ public class HomeFragment extends Fragment {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
String logs1 = null;
|
String logs1;
|
||||||
String logs2 = null;
|
String logs2;
|
||||||
String logs3 = null;
|
String logs3;
|
||||||
String logs4 = null;
|
String logs4;
|
||||||
try {
|
try {
|
||||||
logs1 = future5.get();
|
logs1 = future5.get();
|
||||||
logs2 = future6.get();
|
logs2 = future6.get();
|
||||||
|
|
@ -425,6 +463,48 @@ public class HomeFragment extends Fragment {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Populate deals page
|
||||||
|
try {
|
||||||
|
List<InstanceInterface.DealData> deals = future9.get();
|
||||||
|
if (deals != null) {
|
||||||
|
StringBuilder dealsList = new StringBuilder();
|
||||||
|
for (InstanceInterface.DealData deal : deals) {
|
||||||
|
String timestamp = timeStampConverter(deal.getTimestamp());
|
||||||
|
String pair = deal.getPair();
|
||||||
|
String amount = String.format(Locale.ROOT,"%.2f", deal.getAmount());
|
||||||
|
String exchange = Character.toUpperCase(deal.getExchangeName().charAt(0)) + deal.getExchangeName().substring(1);
|
||||||
|
dealsList.append(timestamp)
|
||||||
|
.append(" | ")
|
||||||
|
.append(pair)
|
||||||
|
.append(" | ")
|
||||||
|
.append(amount)
|
||||||
|
.append(" USDT | ")
|
||||||
|
.append(exchange).append("\n");
|
||||||
|
}
|
||||||
|
lastTrades.setText(dealsList);
|
||||||
|
}
|
||||||
|
} catch (ExecutionException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
InstanceInterface.ExchangeStatsData binanceStats;
|
||||||
|
InstanceInterface.ExchangeStatsData gateioStats;
|
||||||
|
InstanceInterface.ExchangeStatsData kucoinStats;
|
||||||
|
InstanceInterface.ExchangeStatsData okexStats;
|
||||||
|
try {
|
||||||
|
binanceStats = future10.get();
|
||||||
|
gateioStats = future11.get();
|
||||||
|
kucoinStats = future12.get();
|
||||||
|
okexStats = future13.get();
|
||||||
|
} catch (ExecutionException | InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pricePair1.setText(String.format(Locale.ROOT, "%.2f", priceData.getCurrentPrice()));
|
pricePair1.setText(String.format(Locale.ROOT, "%.2f", priceData.getCurrentPrice()));
|
||||||
pricePair124hPercentage.setText(formatPercentage(priceData.getPriceChangePercent24h()));
|
pricePair124hPercentage.setText(formatPercentage(priceData.getPriceChangePercent24h()));
|
||||||
pricePair17dPercentage.setText(formatPercentage(priceData.getPriceChangePercent7d()));
|
pricePair17dPercentage.setText(formatPercentage(priceData.getPriceChangePercent7d()));
|
||||||
|
|
@ -452,32 +532,87 @@ public class HomeFragment extends Fragment {
|
||||||
profitsToday.setText(String.format(Locale.ROOT, "%.2f", profitsData.getProfitsToday()));
|
profitsToday.setText(String.format(Locale.ROOT, "%.2f", profitsData.getProfitsToday()));
|
||||||
profitsThisMonth.setText(String.format(Locale.ROOT, "%.2f", profitsData.getProfitsThisMonth()));
|
profitsThisMonth.setText(String.format(Locale.ROOT, "%.2f", profitsData.getProfitsThisMonth()));
|
||||||
|
|
||||||
|
//Exchange stats
|
||||||
//Populate deals page
|
int timeoutForYellow = 30*1000; //30 seconds
|
||||||
try {
|
int timeoutForRed = 300*1000; //300 seconds
|
||||||
List<InstanceInterface.DealData> deals = future9.get();
|
//Icons
|
||||||
if (deals != null) {
|
if (binanceStats.getLastSeen()*1000+timeoutForRed < System.currentTimeMillis()) {
|
||||||
StringBuilder dealsList = new StringBuilder();
|
exchange1Status.setImageResource(R.drawable.ic_red_circle_48);
|
||||||
for (InstanceInterface.DealData deal : deals) {
|
System.err.println(binanceStats.getLastSeen());}
|
||||||
String timestamp = timeStampConverter(deal.getTimestamp());
|
else if (binanceStats.getLastSeen()*1000+timeoutForYellow < System.currentTimeMillis()) {
|
||||||
String pair = deal.getPair();
|
exchange1Status.setImageResource(R.drawable.ic_yellow_circle_48);}
|
||||||
String amount = String.format(Locale.ROOT,"%.2f", deal.getAmount());
|
else {
|
||||||
String exchange = Character.toUpperCase(deal.getExchangeName().charAt(0)) + deal.getExchangeName().substring(1);
|
exchange1Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
dealsList.append(timestamp)
|
|
||||||
.append(" | ")
|
|
||||||
.append(pair)
|
|
||||||
.append(" | ")
|
|
||||||
.append(amount)
|
|
||||||
.append(" USDT | ")
|
|
||||||
.append(exchange).append("\n");
|
|
||||||
}
|
|
||||||
lastTrades.setText(dealsList);
|
|
||||||
}
|
|
||||||
} catch (ExecutionException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
|
if (gateioStats.getLastSeen()*1000+timeoutForRed < System.currentTimeMillis()) {
|
||||||
|
exchange2Status.setImageResource(R.drawable.ic_red_circle_48);
|
||||||
|
System.err.println(gateioStats.getLastSeen());}
|
||||||
|
else if (gateioStats.getLastSeen()*1000+timeoutForYellow < System.currentTimeMillis()) {
|
||||||
|
exchange2Status.setImageResource(R.drawable.ic_yellow_circle_48);}
|
||||||
|
else {
|
||||||
|
exchange2Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
|
}
|
||||||
|
if (kucoinStats.getLastSeen()*1000+timeoutForRed < System.currentTimeMillis()) {
|
||||||
|
exchange3Status.setImageResource(R.drawable.ic_red_circle_48);
|
||||||
|
System.err.println(kucoinStats.getLastSeen());}
|
||||||
|
else if (kucoinStats.getLastSeen()*1000+timeoutForYellow < System.currentTimeMillis()) {
|
||||||
|
exchange3Status.setImageResource(R.drawable.ic_yellow_circle_48);}
|
||||||
|
else {
|
||||||
|
exchange3Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
|
}
|
||||||
|
if (okexStats.getLastSeen()*1000+timeoutForRed < System.currentTimeMillis()) {
|
||||||
|
exchange4Status.setImageResource(R.drawable.ic_red_circle_48);
|
||||||
|
System.err.println(okexStats.getLastSeen());
|
||||||
|
}
|
||||||
|
else if (okexStats.getLastSeen()*1000+timeoutForYellow < System.currentTimeMillis()) {
|
||||||
|
exchange4Status.setImageResource(R.drawable.ic_yellow_circle_48);}
|
||||||
|
else {
|
||||||
|
exchange4Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
|
}
|
||||||
|
//Funds available
|
||||||
|
String binanceFundsAvailable = String.format(Locale.ROOT,"%.2f",binanceStats.getFundsAvailable());
|
||||||
|
String binanceFundsNeeded = String.format(Locale.ROOT,"%.2f",binanceStats.getFundsNeeded());
|
||||||
|
String gateioFundsAvailable = String.format(Locale.ROOT,"%.2f",gateioStats.getFundsAvailable());
|
||||||
|
String gateioFundsNeeded = String.format(Locale.ROOT,"%.2f",gateioStats.getFundsNeeded());
|
||||||
|
String kucoinFundsAvailable = String.format(Locale.ROOT,"%.2f",kucoinStats.getFundsAvailable());
|
||||||
|
String kucoinFundsNeeded = String.format(Locale.ROOT,"%.2f",kucoinStats.getFundsNeeded());
|
||||||
|
String okexFundsAvailable = String.format(Locale.ROOT,"%.2f",okexStats.getFundsAvailable());
|
||||||
|
String okexFundsNeeded = String.format(Locale.ROOT,"%.2f",okexStats.getFundsNeeded());
|
||||||
|
String binanceFunds = binanceFundsAvailable+"/"+binanceFundsNeeded;
|
||||||
|
String gateioFunds = gateioFundsAvailable+"/"+gateioFundsNeeded;
|
||||||
|
String kucoinFunds = kucoinFundsAvailable+"/"+kucoinFundsNeeded;
|
||||||
|
String okexFunds = okexFundsAvailable+"/"+okexFundsNeeded;
|
||||||
|
double binanceFundsPercentage = 69.4231337;
|
||||||
|
if (binanceStats.getFundsNeeded()!=0) {
|
||||||
|
binanceFundsPercentage = 100 - (binanceStats.getFundsNeeded() - binanceStats.getFundsAvailable()) / binanceStats.getFundsNeeded() * 100;
|
||||||
|
}
|
||||||
|
double gateioFundsPercentage = 69.4231337;
|
||||||
|
if (gateioStats.getFundsNeeded()!=0) {
|
||||||
|
gateioFundsPercentage = 100 - (gateioStats.getFundsNeeded() - gateioStats.getFundsAvailable()) / gateioStats.getFundsNeeded() * 100;
|
||||||
|
}
|
||||||
|
double kucoinFundsPercentage = 69.4231337;
|
||||||
|
if (kucoinStats.getFundsNeeded()!=0) {
|
||||||
|
kucoinFundsPercentage = 100 - (kucoinStats.getFundsNeeded() - kucoinStats.getFundsAvailable()) / kucoinStats.getFundsNeeded() * 100;
|
||||||
|
}
|
||||||
|
double okexFundsPercentage = 69.4231337;
|
||||||
|
if (okexStats.getFundsNeeded()!=0) {
|
||||||
|
okexFundsPercentage = 100 - (okexStats.getFundsNeeded() - okexStats.getFundsAvailable()) / okexStats.getFundsNeeded() * 100;
|
||||||
|
}
|
||||||
|
String binanceFundsPercentageString = String.format(Locale.ROOT,"%.2f",binanceFundsPercentage)+"%";
|
||||||
|
String gateioFundsPercentageString = String.format(Locale.ROOT,"%.2f",gateioFundsPercentage)+"%";
|
||||||
|
String kucoinFundsPercentageString = String.format(Locale.ROOT,"%.2f",kucoinFundsPercentage)+"%";
|
||||||
|
String okexFundsPercentageString = String.format(Locale.ROOT,"%.2f",okexFundsPercentage)+"%";
|
||||||
|
exchange1Funds.setText(binanceFunds);
|
||||||
|
exchange2Funds.setText(gateioFunds);
|
||||||
|
exchange3Funds.setText(kucoinFunds);
|
||||||
|
exchange4Funds.setText(okexFunds);
|
||||||
|
exchange1FundsPercentage.setText(binanceFundsPercentageString);
|
||||||
|
exchange2FundsPercentage.setText(gateioFundsPercentageString);
|
||||||
|
exchange3FundsPercentage.setText(kucoinFundsPercentageString);
|
||||||
|
exchange4FundsPercentage.setText(okexFundsPercentageString);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Populate logs
|
//Populate logs
|
||||||
log1Content.setText(logs1);
|
log1Content.setText(logs1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue