fixed safety order id - compatibility with concurrent safety orders
This commit is contained in:
parent
614ca2f525
commit
94137f57e6
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -4,10 +4,10 @@
|
|||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2025-01-09T00:51:44.224576189Z">
|
||||
<DropdownSelection timestamp="2025-06-16T13:28:36.173409509Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=ZY22FN7MHQ" />
|
||||
<DeviceId pluginId="LocalEmulator" identifier="path=/home/nicolas/.android/avd/Pixel_6_Pro_API_34.avd" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<resources>
|
||||
<string name="app_name" translatable="false">DCAv2GUI</string>
|
||||
<string name="nav_header_title" translatable="false">DCAv2</string>
|
||||
<string name="nav_header_subtitle">Version 2025.05.16</string>
|
||||
<string name="nav_header_subtitle">Version 2025.09.05</string>
|
||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
<string name="nav_header_desc">Navigation header</string>
|
||||
|
|
|
|||
Loading…
Reference in New Issue