I hate classes
This commit is contained in:
parent
090bf03a68
commit
bff178991f
|
|
@ -6,27 +6,30 @@ import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
|
import com.google.gson.JsonSyntaxException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
|
||||||
|
|
||||||
public class InstanceInterface {
|
public class InstanceInterface {
|
||||||
private static final String API_BASE_URL = globalSettings.apiUrl;
|
private static final String API_BASE_URL = globalSettings.apiUrl;
|
||||||
private static final String API_KEY = globalSettings.apiKey;
|
private static final String API_KEY = globalSettings.apiKey;
|
||||||
private static final OkHttpClient httpClient = new OkHttpClient();
|
private static final OkHttpClient httpClient = new OkHttpClient();
|
||||||
|
|
||||||
public static ProfitStatsData getProfitStatsData() throws IOException {
|
public static ProfitStatsData getProfitStatsData() throws IOException {
|
||||||
// Construct the API request URL for stock quote
|
Request profitRequest = new Request.Builder()
|
||||||
Request stockRequest = new Request.Builder()
|
|
||||||
.url(API_BASE_URL + "/statistics_server/combined_totals")
|
.url(API_BASE_URL + "/statistics_server/combined_totals")
|
||||||
.header("X-API-KEY", API_KEY)
|
.header("X-API-KEY", API_KEY)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try (Response statsResponse = httpClient.newCall(stockRequest).execute()) {
|
try (Response statsResponse = httpClient.newCall(profitRequest).execute()) {
|
||||||
if (!statsResponse.isSuccessful()) {
|
if (!statsResponse.isSuccessful()) {
|
||||||
throw new IOException("Unexpected code " + statsResponse);
|
throw new IOException("Unexpected code " + statsResponse);
|
||||||
}
|
}
|
||||||
|
|
@ -43,9 +46,55 @@ public class InstanceInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double getTraderTime(String exchange) throws IOException {
|
||||||
|
//Uptime request
|
||||||
|
Request uptimeRequest = new Request.Builder()
|
||||||
|
.url(API_BASE_URL + "/" + exchange + "/trader_time")
|
||||||
|
.header("X-API-KEY", API_KEY)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try (Response statsResponse = httpClient.newCall(uptimeRequest).execute()) {
|
||||||
|
if (!statsResponse.isSuccessful()) {
|
||||||
|
throw new IOException("Unexpected code " + statsResponse);
|
||||||
|
}
|
||||||
|
String stockResponseBody = statsResponse.body().string();
|
||||||
|
|
||||||
|
return getUptime(stockResponseBody);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static ExchangeStatsData getExchangeStatsData(String exchange) throws IOException {
|
||||||
|
//This needs to do A LOT of work
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//All workers stats request
|
||||||
|
Request allWorkersStatsRequest = new Request.Builder()
|
||||||
|
.url(API_BASE_URL + "/" + exchange + "/get_all_worker_status")
|
||||||
|
.header("X-API-KEY", API_KEY)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
//Instance global stats
|
||||||
|
Request instanceGlobalStatsRequest = new Request.Builder()
|
||||||
|
.url(API_BASE_URL + "/" + exchange + "/global_stats")
|
||||||
|
.header("X-API-KEY", API_KEY)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private static double getTodaysProfit(String jsonResponse) {
|
private static double getTodaysProfit(String jsonResponse) {
|
||||||
try {
|
try {
|
||||||
// Parse the JSON response
|
|
||||||
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.");
|
||||||
|
|
@ -67,7 +116,6 @@ public class InstanceInterface {
|
||||||
|
|
||||||
private static double getThisMonthsProfit(String jsonResponse) {
|
private static double getThisMonthsProfit(String jsonResponse) {
|
||||||
try {
|
try {
|
||||||
// Parse the JSON response
|
|
||||||
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.");
|
||||||
|
|
@ -87,8 +135,151 @@ public class InstanceInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
||||||
|
try {
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(jsonResponse);
|
||||||
|
if (!jsonElement.isJsonObject()) {
|
||||||
|
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!jsonElement.getAsJsonObject().has("Error")) {
|
||||||
|
System.err.println("There is an Error field in the JSON response.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||||
|
|
||||||
|
// Extracting online_workers and paused_traders from the response
|
||||||
|
JsonArray onlineWorkersJsonArray = jsonObject.get("online_workers").getAsJsonArray();
|
||||||
|
List<String> onlineWorkers = new ArrayList<>();
|
||||||
|
for (int i = 0; i < onlineWorkersJsonArray.size(); i++) {
|
||||||
|
onlineWorkers.add(onlineWorkersJsonArray.get(i).getAsString());
|
||||||
|
}
|
||||||
|
JsonArray pausedTradersJsonArray = jsonObject.get("paused_traders").getAsJsonArray();
|
||||||
|
List<String> pausedTraders = new ArrayList<>();
|
||||||
|
for (int i = 0; i < pausedTradersJsonArray.size(); i++) {
|
||||||
|
pausedTraders.add(pausedTradersJsonArray.get(i).getAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//Extract BrokerConfigData from the JSON response
|
||||||
|
BrokerConfigData brokerConfigData = null;
|
||||||
|
|
||||||
|
return new InstanceGlobalStatsData(
|
||||||
|
jsonObject.get("name").getAsString(),
|
||||||
|
jsonObject.get("uptime").getAsDouble(),
|
||||||
|
onlineWorkers,
|
||||||
|
pausedTraders,
|
||||||
|
jsonObject.get("version").getAsString(),
|
||||||
|
jsonObject.get("ccxt_version").getAsString(),
|
||||||
|
brokerConfigData);
|
||||||
|
|
||||||
|
} catch (JsonSyntaxException e) {
|
||||||
|
System.err.println("The JSON response is not valid.");
|
||||||
|
return null;
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("There was an error reading the JSON response.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class InstanceGlobalStatsData {
|
||||||
|
private final String instanceName;
|
||||||
|
private final double instanceUptime;
|
||||||
|
private final List<String> onlineWorkers;
|
||||||
|
private final List<String> pausedTraders;
|
||||||
|
private final String version;
|
||||||
|
private final String ccxtVersion;
|
||||||
|
private final BrokerConfigData config;
|
||||||
|
|
||||||
|
public InstanceGlobalStatsData(String name, double uptime, List<String> onlineWorkers, List<String> pausedTraders, String version, String ccxtVersion, BrokerConfigData config) {
|
||||||
|
this.instanceName = name;
|
||||||
|
this.instanceUptime = uptime;
|
||||||
|
this.onlineWorkers = onlineWorkers;
|
||||||
|
this.pausedTraders = pausedTraders;
|
||||||
|
this.version = version;
|
||||||
|
this.ccxtVersion = ccxtVersion;
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() { return instanceName; }
|
||||||
|
public double getUptime() { return instanceUptime; }
|
||||||
|
public List<String> getOnlineWorkers() { return onlineWorkers; }
|
||||||
|
public List<String> getPausedTraders() { return pausedTraders; }
|
||||||
|
public String getVersion() { return version; }
|
||||||
|
public String getCcxtVersion() { return ccxtVersion; }
|
||||||
|
public BrokerConfigData getConfig() { return config; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class BrokerConfigData {
|
||||||
|
// Some fields are ignored, even though they are in the JSON
|
||||||
|
private final String brokerName;
|
||||||
|
private final Boolean isSandbox;
|
||||||
|
private final Boolean simulateMarketOrders;
|
||||||
|
private final List<String> pairs;
|
||||||
|
private final double laptime;
|
||||||
|
private final double cooldownMultiplier;
|
||||||
|
private final double waitBeforeNewSafetyOrder;
|
||||||
|
private final Boolean sendTelegram;
|
||||||
|
private final String telegramBotToken;
|
||||||
|
private final String telegramChatId;
|
||||||
|
private final Boolean attemptToRestart;
|
||||||
|
private final double defaultOrderSize;
|
||||||
|
private final Boolean unifiedOrderQuery;
|
||||||
|
|
||||||
|
public BrokerConfigData(String brokerName, Boolean isSandbox, Boolean simulateMarketOrders, List<String> pairs, double laptime, double cooldownMultiplier, double waitBeforeNewSafetyOrder, Boolean sendTelegram, String telegramBotToken, String telegramChatId, Boolean attemptToRestart, double defaultOrderSize, Boolean unifiedOrderQuery) {
|
||||||
|
this.brokerName = brokerName;
|
||||||
|
this.isSandbox = isSandbox;
|
||||||
|
this.simulateMarketOrders = simulateMarketOrders;
|
||||||
|
this.pairs = pairs;
|
||||||
|
this.laptime = laptime;
|
||||||
|
this.cooldownMultiplier = cooldownMultiplier;
|
||||||
|
this.waitBeforeNewSafetyOrder = waitBeforeNewSafetyOrder;
|
||||||
|
this.sendTelegram = sendTelegram;
|
||||||
|
this.telegramBotToken = telegramBotToken;
|
||||||
|
this.telegramChatId = telegramChatId;
|
||||||
|
this.attemptToRestart = attemptToRestart;
|
||||||
|
this.defaultOrderSize = defaultOrderSize;
|
||||||
|
this.unifiedOrderQuery = unifiedOrderQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBrokerName() { return brokerName; }
|
||||||
|
public Boolean getIsSandbox() { return isSandbox; }
|
||||||
|
public Boolean getSimulateMarketOrders() { return simulateMarketOrders; }
|
||||||
|
public List<String> getPairs() { return pairs; }
|
||||||
|
public double getLaptime() { return laptime; }
|
||||||
|
public double getCooldownMultiplier() { return cooldownMultiplier; }
|
||||||
|
public double getWaitBeforeNewSafetyOrder() { return waitBeforeNewSafetyOrder; }
|
||||||
|
public Boolean getSendTelegram() { return sendTelegram; }
|
||||||
|
public String getTelegramBotToken() { return telegramBotToken; }
|
||||||
|
public String getTelegramChatId() { return telegramChatId; }
|
||||||
|
public Boolean getAttemptToRestart() { return attemptToRestart; }
|
||||||
|
public double getDefaultOrderSize() { return defaultOrderSize; }
|
||||||
|
public Boolean getUnifiedOrderQuery() { return unifiedOrderQuery; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Class to hold profits stats data
|
|
||||||
public static class ProfitStatsData {
|
public static class ProfitStatsData {
|
||||||
private final double profitsToday;
|
private final double profitsToday;
|
||||||
private final double profitsThisMonth;
|
private final double profitsThisMonth;
|
||||||
|
|
@ -98,8 +289,36 @@ public class InstanceInterface {
|
||||||
this.profitsThisMonth = profitsThisMonth;
|
this.profitsThisMonth = profitsThisMonth;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
|
||||||
public double getProfitsToday() { return profitsToday; }
|
public double getProfitsToday() { return profitsToday; }
|
||||||
public double getProfitsThisMonth() { return profitsThisMonth; }
|
public double getProfitsThisMonth() { return profitsThisMonth; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class ExchangeStatsData {
|
||||||
|
// Create an instance: ExchangeStatsData exchangeStatsData = new ExchangeStatsData(R.drawable.your_drawable, 2000, 2500, 20, 14, 6);
|
||||||
|
// Getting the drawable: Drawable drawable = getResources().getDrawable(exchangeStatsData.getSemaphore());
|
||||||
|
|
||||||
|
private final int semaphore;
|
||||||
|
private final double fundsAvailable;
|
||||||
|
private final double fundsNeeded;
|
||||||
|
private final int onlineWorkers;
|
||||||
|
private final int longWorkers;
|
||||||
|
private final int shortWorkers;
|
||||||
|
|
||||||
|
public ExchangeStatsData(int semaphore, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers) {
|
||||||
|
this.semaphore = semaphore;
|
||||||
|
this.fundsAvailable = fundsAvailable;
|
||||||
|
this.fundsNeeded = fundsNeeded;
|
||||||
|
this.onlineWorkers = onlineWorkers;
|
||||||
|
this.longWorkers = longWorkers;
|
||||||
|
this.shortWorkers = shortWorkers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSemaphore() { return semaphore; }
|
||||||
|
public double getFundsAvailable() { return fundsAvailable; }
|
||||||
|
public double getFundsNeeded() { return fundsNeeded; }
|
||||||
|
public int getOnlineWorkers() { return onlineWorkers; }
|
||||||
|
public int getLongWorkers() { return longWorkers; }
|
||||||
|
public int getShortWorkers() { return shortWorkers; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -143,11 +143,6 @@ public class HomeFragment extends Fragment {
|
||||||
exchange3Funds = root.findViewById(R.id.exchangeStats3Funds);
|
exchange3Funds = root.findViewById(R.id.exchangeStats3Funds);
|
||||||
exchange4Funds = root.findViewById(R.id.exchangeStats4Funds);
|
exchange4Funds = root.findViewById(R.id.exchangeStats4Funds);
|
||||||
|
|
||||||
exchange1FundsNeeded = root.findViewById(R.id.exchangeStats1FundsNeeded);
|
|
||||||
exchange2FundsNeeded = root.findViewById(R.id.exchangeStats2FundsNeeded);
|
|
||||||
exchange3FundsNeeded = root.findViewById(R.id.exchangeStats3FundsNeeded);
|
|
||||||
exchange4FundsNeeded = root.findViewById(R.id.exchangeStats4FundsNeeded);
|
|
||||||
|
|
||||||
exchange1FundsPercentage = root.findViewById(R.id.exchangeStats1FundsPercentage);
|
exchange1FundsPercentage = root.findViewById(R.id.exchangeStats1FundsPercentage);
|
||||||
exchange2FundsPercentage = root.findViewById(R.id.exchangeStats2FundsPercentage);
|
exchange2FundsPercentage = root.findViewById(R.id.exchangeStats2FundsPercentage);
|
||||||
exchange3FundsPercentage = root.findViewById(R.id.exchangeStats3FundsPercentage);
|
exchange3FundsPercentage = root.findViewById(R.id.exchangeStats3FundsPercentage);
|
||||||
|
|
@ -184,15 +179,13 @@ public class HomeFragment extends Fragment {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Profits today and this month
|
|
||||||
profitsToday.setText(R.string.profits_today_example);
|
|
||||||
profitsThisMonth.setText(R.string.profits_this_month_example);
|
|
||||||
|
|
||||||
//Prices
|
//Prices
|
||||||
pricePair1.setText(R.string.default_price_ticker_1);
|
pricePair1.setText(R.string.default_price_ticker_1);
|
||||||
pricePair2.setText(R.string.default_price_ticker_2);
|
pricePair2.setText(R.string.default_price_ticker_2);
|
||||||
pricePair3.setText(R.string.default_price_ticker_3);
|
pricePair3.setText(R.string.default_price_ticker_3);
|
||||||
|
|
||||||
|
|
||||||
pricePair124hPercentage.setText(R.string.percentage_example);
|
pricePair124hPercentage.setText(R.string.percentage_example);
|
||||||
pricePair17dPercentage.setText(R.string.percentage_example);
|
pricePair17dPercentage.setText(R.string.percentage_example);
|
||||||
pricePair130dPercentage.setText(R.string.percentage_example);
|
pricePair130dPercentage.setText(R.string.percentage_example);
|
||||||
|
|
@ -205,6 +198,7 @@ public class HomeFragment extends Fragment {
|
||||||
pricePair37dPercentage.setText(R.string.percentage_example);
|
pricePair37dPercentage.setText(R.string.percentage_example);
|
||||||
pricePair330dPercentage.setText(R.string.percentage_example);
|
pricePair330dPercentage.setText(R.string.percentage_example);
|
||||||
|
|
||||||
|
|
||||||
pricePair124hPercentage.setTextColor(Color.GREEN);
|
pricePair124hPercentage.setTextColor(Color.GREEN);
|
||||||
pricePair17dPercentage.setTextColor(Color.GREEN);
|
pricePair17dPercentage.setTextColor(Color.GREEN);
|
||||||
pricePair130dPercentage.setTextColor(Color.GREEN);
|
pricePair130dPercentage.setTextColor(Color.GREEN);
|
||||||
|
|
@ -217,6 +211,12 @@ public class HomeFragment extends Fragment {
|
||||||
pricePair37dPercentage.setTextColor(Color.GREEN);
|
pricePair37dPercentage.setTextColor(Color.GREEN);
|
||||||
pricePair330dPercentage.setTextColor(Color.GREEN);
|
pricePair330dPercentage.setTextColor(Color.GREEN);
|
||||||
|
|
||||||
|
|
||||||
|
// Profits today and this month
|
||||||
|
profitsToday.setText(R.string.profits_today_example);
|
||||||
|
profitsThisMonth.setText(R.string.profits_this_month_example);
|
||||||
|
|
||||||
|
|
||||||
//Exchange status
|
//Exchange status
|
||||||
exchange1Status.setImageResource(R.drawable.ic_green_circle_48);
|
exchange1Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
exchange2Status.setImageResource(R.drawable.ic_green_circle_48);
|
exchange2Status.setImageResource(R.drawable.ic_green_circle_48);
|
||||||
|
|
@ -233,11 +233,6 @@ public class HomeFragment extends Fragment {
|
||||||
exchange3Funds.setText(R.string.exchange_funds_example);
|
exchange3Funds.setText(R.string.exchange_funds_example);
|
||||||
exchange4Funds.setText(R.string.exchange_funds_example);
|
exchange4Funds.setText(R.string.exchange_funds_example);
|
||||||
|
|
||||||
exchange1FundsNeeded.setText(R.string.exchange_funds_needed_example);
|
|
||||||
exchange2FundsNeeded.setText(R.string.exchange_funds_needed_example);
|
|
||||||
exchange3FundsNeeded.setText(R.string.exchange_funds_needed_example);
|
|
||||||
exchange4FundsNeeded.setText(R.string.exchange_funds_needed_example);
|
|
||||||
|
|
||||||
exchange1FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
exchange1FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
||||||
exchange2FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
exchange2FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
||||||
exchange3FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
exchange3FundsPercentage.setText(R.string.exchange_funds_percentage_example);
|
||||||
|
|
@ -268,8 +263,6 @@ public class HomeFragment extends Fragment {
|
||||||
log3Content.setText(R.string.log_example);
|
log3Content.setText(R.string.log_example);
|
||||||
log4Content.setText(R.string.log_example);
|
log4Content.setText(R.string.log_example);
|
||||||
|
|
||||||
// Let's fetch prices
|
|
||||||
//fetchAndDisplayPriceData();
|
|
||||||
|
|
||||||
// Setup task
|
// Setup task
|
||||||
handler = new Handler();
|
handler = new Handler();
|
||||||
|
|
@ -385,7 +378,6 @@ public class HomeFragment extends Fragment {
|
||||||
setPercentageColor(pricePair37dPercentage,priceData3.getPriceChangePercent7d());
|
setPercentageColor(pricePair37dPercentage,priceData3.getPriceChangePercent7d());
|
||||||
setPercentageColor(pricePair330dPercentage,priceData3.getPriceChangePercent30d());
|
setPercentageColor(pricePair330dPercentage,priceData3.getPriceChangePercent30d());
|
||||||
|
|
||||||
//Toast.makeText(getContext(), String.format(Locale.ROOT,"%.2f", profitsData.getProfitsToday()), Toast.LENGTH_SHORT).show();
|
|
||||||
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()));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -372,30 +372,13 @@
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats1Funds"
|
android:id="@+id/exchangeStats1Funds"
|
||||||
android:layout_width="72dp"
|
android:layout_width="148dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:text="@string/exchange_funds_example"
|
android:text="@string/exchange_funds_example"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
<TextView
|
|
||||||
android:layout_width="6dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_separator"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/exchangeStats1FundsNeeded"
|
|
||||||
android:layout_width="72dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_funds_needed_example"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats1FundsPercentage"
|
android:id="@+id/exchangeStats1FundsPercentage"
|
||||||
android:layout_width="52dp"
|
android:layout_width="52dp"
|
||||||
|
|
@ -458,30 +441,13 @@
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats2Funds"
|
android:id="@+id/exchangeStats2Funds"
|
||||||
android:layout_width="72dp"
|
android:layout_width="148dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:text="@string/exchange_funds_example"
|
android:text="@string/exchange_funds_example"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
<TextView
|
|
||||||
android:layout_width="6dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_separator"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/exchangeStats2FundsNeeded"
|
|
||||||
android:layout_width="72dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_funds_needed_example"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats2FundsPercentage"
|
android:id="@+id/exchangeStats2FundsPercentage"
|
||||||
android:layout_width="52dp"
|
android:layout_width="52dp"
|
||||||
|
|
@ -545,30 +511,13 @@
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats3Funds"
|
android:id="@+id/exchangeStats3Funds"
|
||||||
android:layout_width="72dp"
|
android:layout_width="148dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:text="@string/exchange_funds_example"
|
android:text="@string/exchange_funds_example"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
<TextView
|
|
||||||
android:layout_width="6dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_separator"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/exchangeStats3FundsNeeded"
|
|
||||||
android:layout_width="72dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_funds_needed_example"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats3FundsPercentage"
|
android:id="@+id/exchangeStats3FundsPercentage"
|
||||||
android:layout_width="52dp"
|
android:layout_width="52dp"
|
||||||
|
|
@ -632,30 +581,13 @@
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats4Funds"
|
android:id="@+id/exchangeStats4Funds"
|
||||||
android:layout_width="72dp"
|
android:layout_width="148dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:text="@string/exchange_funds_example"
|
android:text="@string/exchange_funds_example"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
<TextView
|
|
||||||
android:layout_width="6dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_separator"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/exchangeStats4FundsNeeded"
|
|
||||||
android:layout_width="72dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="@string/exchange_funds_needed_example"
|
|
||||||
android:textColor="@color/secondary_text_color"
|
|
||||||
android:textAlignment="center"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/exchangeStats4FundsPercentage"
|
android:id="@+id/exchangeStats4FundsPercentage"
|
||||||
android:layout_width="52dp"
|
android:layout_width="52dp"
|
||||||
|
|
@ -705,7 +637,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="20dp"
|
android:layout_height="24dp"
|
||||||
android:text="@string/last_trades_label"
|
android:text="@string/last_trades_label"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
|
|
@ -736,14 +668,13 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="22dp"
|
android:layout_height="24dp"
|
||||||
android:id="@+id/log1CardTitle"
|
android:id="@+id/log1CardTitle"
|
||||||
android:text="@string/exchange_1_log_title"
|
android:text="@string/exchange_1_log_title"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/secondary_text_color"
|
android:textColor="@color/secondary_text_color"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
@ -765,7 +696,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="22dp"
|
android:layout_height="24dp"
|
||||||
android:id="@+id/log2CardTitle"
|
android:id="@+id/log2CardTitle"
|
||||||
android:text="@string/exchange_2_log_title"
|
android:text="@string/exchange_2_log_title"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
|
|
@ -794,7 +725,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="22dp"
|
android:layout_height="24dp"
|
||||||
android:id="@+id/log3CardTitle"
|
android:id="@+id/log3CardTitle"
|
||||||
android:text="@string/exchange_3_log_title"
|
android:text="@string/exchange_3_log_title"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
|
|
@ -823,7 +754,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="22dp"
|
android:layout_height="24dp"
|
||||||
android:id="@+id/log4CardTitle"
|
android:id="@+id/log4CardTitle"
|
||||||
android:text="@string/exchange_4_log_title"
|
android:text="@string/exchange_4_log_title"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,9 @@
|
||||||
<string name="percentage_example" translatable="false"> </string>
|
<string name="percentage_example" translatable="false"> </string>
|
||||||
|
|
||||||
<string name="profits_today_title">Today:</string>
|
<string name="profits_today_title">Today:</string>
|
||||||
<string name="profits_today_example" translatable="false">420.69</string>
|
<string name="profits_today_example" translatable="false"> </string>
|
||||||
<string name="profits_this_month_title">This month:</string>
|
<string name="profits_this_month_title">This month:</string>
|
||||||
<string name="profits_this_month_example" translatable="false">8392.39</string>
|
<string name="profits_this_month_example" translatable="false"> </string>
|
||||||
<string name="profits_quote_currency" translatable="false">USDT</string>
|
<string name="profits_quote_currency" translatable="false">USDT</string>
|
||||||
|
|
||||||
<string name="semaphore_description">Exchange semaphore</string>
|
<string name="semaphore_description">Exchange semaphore</string>
|
||||||
|
|
@ -63,8 +63,7 @@
|
||||||
<string name="exchange_3_name" translatable="false">KuCoin</string>
|
<string name="exchange_3_name" translatable="false">KuCoin</string>
|
||||||
<string name="exchange_4_name" translatable="false">OKX</string>
|
<string name="exchange_4_name" translatable="false">OKX</string>
|
||||||
|
|
||||||
<string name="exchange_funds_example" translatable="false">15203.20</string>
|
<string name="exchange_funds_example" translatable="false">35203.20/65535.20</string>
|
||||||
<string name="exchange_funds_needed_example" translatable="false">59393.39</string>
|
|
||||||
<string name="exchange_funds_percentage_example" translatable="false">169%</string>
|
<string name="exchange_funds_percentage_example" translatable="false">169%</string>
|
||||||
<string name="exchange_workers_online_example" translatable="false">20</string>
|
<string name="exchange_workers_online_example" translatable="false">20</string>
|
||||||
<string name="exchange_workers_long_short_example" translatable="false">20/20</string>
|
<string name="exchange_workers_long_short_example" translatable="false">20/20</string>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue