diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 0000000..4a53bee
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index 62d729c..9089cf8 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,10 +4,10 @@
-
+
-
+
diff --git a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java
index eda1286..661727a 100644
--- a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java
+++ b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java
@@ -2,6 +2,8 @@ package com.example.dcav2gui;
import static com.example.dcav2gui.MainActivity.globalSettings;
+import android.util.Log;
+
import androidx.annotation.NonNull;
import com.example.dcav2gui.ui.exchanges.WorkerData;
@@ -652,17 +654,20 @@ public class InstanceInterface {
double nextSoPrice = value.has("next_so_price") && value.get("next_so_price").isJsonPrimitive() ? value.get("next_so_price").getAsDouble() : 0.0;
JsonObject takeProfitOrder = null;
String tpOrderId = "";
- JsonObject safetyOrder = null;
+ JsonArray safetyOrders = null;
String safetyOrderId = "";
JsonElement takeProfitOrderElement = value.get("take_profit_order");
if (takeProfitOrderElement!=null && !takeProfitOrderElement.isJsonNull() && takeProfitOrderElement.isJsonObject()) {
takeProfitOrder = takeProfitOrderElement.getAsJsonObject();
tpOrderId = takeProfitOrder.has("id") && takeProfitOrder.get("id").isJsonPrimitive() ? takeProfitOrder.get("id").getAsString() : "";
}
- JsonElement safetyOrderElement = value.get("safety_order");
- if (safetyOrderElement!=null && !safetyOrderElement.isJsonNull() && safetyOrderElement.isJsonObject()) {
- safetyOrder = safetyOrderElement.getAsJsonObject();
- safetyOrderId = safetyOrder.has("id") && safetyOrder.get("id").isJsonPrimitive() ? safetyOrder.get("id").getAsString() : "";
+ JsonElement safetyOrderElements = value.get("safety_orders");
+ if (safetyOrderElements!=null && !safetyOrderElements.isJsonNull() && safetyOrderElements.isJsonArray()) {
+ safetyOrders = safetyOrderElements.getAsJsonArray();
+ if (!safetyOrders.isEmpty()) {
+ JsonObject firstSafetyOrder = safetyOrders.get(0).getAsJsonObject();
+ safetyOrderId = firstSafetyOrder.has("id") && firstSafetyOrder.get("id").isJsonPrimitive() ? firstSafetyOrder.get("id").getAsString() : "";
+ }
}
double feesPaidInBase = value.has("fees_paid_in_base") && value.get("fees_paid_in_base").isJsonPrimitive() ? value.get("fees_paid_in_base").getAsDouble() : 0.0;
double feesPaidInQuote = value.has("fees_paid_in_quote") && value.get("fees_paid_in_quote").isJsonPrimitive() ? value.get("fees_paid_in_quote").getAsDouble() : 0.0;
@@ -711,7 +716,7 @@ public class InstanceInterface {
tpOrderId,
takeProfitOrder,
safetyOrderId,
- safetyOrder,
+ safetyOrders,
feesPaidInBase,
feesPaidInQuote,
partialProfit,
@@ -1060,7 +1065,7 @@ public class InstanceInterface {
private final String tpOrderId;
private final JsonObject takeProfitOrder;
private final String soOrderId;
- private final JsonObject safetyOrder;
+ private final JsonArray safetyOrders;
private final double feesPaidInBase;
private final double feesPaidInQuote;
private final double partialProfit;
@@ -1070,7 +1075,7 @@ public class InstanceInterface {
private final OldLongDictionary oldLongDictionary; //Change type
private final String statusString;
- public WorkerStatsData(String pair, boolean isShort, boolean isBoosted, boolean isPaused, boolean autoSwitchEnabled, boolean stopWhenProfit, double orderSize, double quoteSpent, double baseBought, int soAmount, int numberOfSafetyOrders, int tpMode, String profitTable, double startTime, double startPrice, double dealStartTime, double dealUptime, double totalUptime, double price, double takeProfitPrice, double nextSoPrice, String tpOrderId, JsonObject takeProfitOrder, String soOrderId, JsonObject safetyOrder, double feesPaidInBase, double feesPaidInQuote, double partialProfit, String safetyPriceTable, String dealOrderHistory, String pauseReason, OldLongDictionary oldLong, String statusString) {
+ public WorkerStatsData(String pair, boolean isShort, boolean isBoosted, boolean isPaused, boolean autoSwitchEnabled, boolean stopWhenProfit, double orderSize, double quoteSpent, double baseBought, int soAmount, int numberOfSafetyOrders, int tpMode, String profitTable, double startTime, double startPrice, double dealStartTime, double dealUptime, double totalUptime, double price, double takeProfitPrice, double nextSoPrice, String tpOrderId, JsonObject takeProfitOrder, String soOrderId, JsonArray safetyOrders, double feesPaidInBase, double feesPaidInQuote, double partialProfit, String safetyPriceTable, String dealOrderHistory, String pauseReason, OldLongDictionary oldLong, String statusString) {
this.pair = pair;
this.isShort = isShort;
this.isBoosted = isBoosted;
@@ -1095,7 +1100,7 @@ public class InstanceInterface {
this.tpOrderId = tpOrderId;
this.takeProfitOrder = takeProfitOrder;
this.soOrderId = soOrderId;
- this.safetyOrder = safetyOrder;
+ this.safetyOrders = safetyOrders;
this.feesPaidInBase = feesPaidInBase;
this.feesPaidInQuote = feesPaidInQuote;
this.partialProfit = partialProfit;
@@ -1129,7 +1134,7 @@ public class InstanceInterface {
public String getTpOrderId() { return tpOrderId; }
public JsonObject getTakeProfitOrder() { return takeProfitOrder; }
public String getSoOrderId() { return soOrderId; }
- public JsonObject getSafetyOrder() { return safetyOrder; }
+ public JsonArray getSafetyOrders() { return safetyOrders; }
public double getFeesPaidInBase() { return feesPaidInBase; }
public double getFeesPaidInQuote() { return feesPaidInQuote; }
public double getPartialProfit() { return partialProfit; }
diff --git a/app/src/main/java/com/example/dcav2gui/WorkerInterface.java b/app/src/main/java/com/example/dcav2gui/WorkerInterface.java
index 57c8cc9..687214e 100644
--- a/app/src/main/java/com/example/dcav2gui/WorkerInterface.java
+++ b/app/src/main/java/com/example/dcav2gui/WorkerInterface.java
@@ -23,6 +23,7 @@ import com.example.dcav2gui.ui.exchanges.adapters.WorkerCardAdapter;
import com.example.dcav2gui.ui.home.HomeFragment;
import com.google.android.material.materialswitch.MaterialSwitch;
import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -94,9 +95,17 @@ public class WorkerInterface {
double takeProfitPrice = value.has("take_profit_price") && value.get("take_profit_price").isJsonPrimitive() ? value.get("take_profit_price").getAsDouble() : 0.0;
double nextSoPrice = value.has("next_so_price") && value.get("next_so_price").isJsonPrimitive() ? value.get("next_so_price").getAsDouble() : 0.0;
JsonObject takeProfitOrder = value.get("take_profit_order").getAsJsonObject();
- JsonObject safetyOrder = value.get("safety_order").getAsJsonObject();
+ JsonArray safetyOrders = null;
+ String safetyOrderId = "";
+ JsonElement safetyOrderElements = value.get("safety_orders");
+ if (safetyOrderElements!=null && !safetyOrderElements.isJsonNull() && safetyOrderElements.isJsonArray()) {
+ safetyOrders = safetyOrderElements.getAsJsonArray();
+ if (!safetyOrders.isEmpty()) {
+ JsonObject firstSafetyOrder = safetyOrders.get(0).getAsJsonObject();
+ safetyOrderId = firstSafetyOrder.has("id") && firstSafetyOrder.get("id").isJsonPrimitive() ? firstSafetyOrder.get("id").getAsString() : "";
+ }
+ }
String tpOrderId = takeProfitOrder.has("id") && takeProfitOrder.get("id").isJsonPrimitive() ? takeProfitOrder.get("id").getAsString() : null;
- String safetyOrderId = safetyOrder.has("id") && safetyOrder.get("id").isJsonPrimitive() ? safetyOrder.get("id").getAsString() : null;
double feesPaidInBase = value.has("fees_paid_in_base") && value.get("fees_paid_in_base").isJsonPrimitive() ? value.get("fees_paid_in_base").getAsDouble() : 0.0;
double feesPaidInQuote = value.has("fees_paid_in_quote") && value.get("fees_paid_in_quote").isJsonPrimitive() ? value.get("fees_paid_in_quote").getAsDouble() : 0.0;
double partialProfit = value.has("partial_profit") && value.get("partial_profit").isJsonPrimitive() ? value.get("partial_profit").getAsDouble() : 0.0;
@@ -144,7 +153,7 @@ public class WorkerInterface {
tpOrderId,
takeProfitOrder,
safetyOrderId,
- safetyOrder,
+ safetyOrders,
feesPaidInBase,
feesPaidInQuote,
partialProfit,
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6bf89ba..0fcd732 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,7 +1,7 @@
DCAv2GUI
DCAv2
- Version 2025.05.16
+ Version 2025.09.05
Open navigation drawer
Close navigation drawer
Navigation header