From 8a9e86efeb633c2f82d813d9c2e24caef0b27e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20S=C3=A1nchez?= Date: Thu, 19 Dec 2024 07:38:21 -0300 Subject: [PATCH] Minor data loading optimizations --- .../example/dcav2gui/InstanceInterface.java | 41 +++++++++---------- .../com/example/dcav2gui/MainActivity.java | 9 ++-- .../ui/exchanges/BinanceFragment.java | 3 +- .../exchanges/adapters/WorkerCardAdapter.java | 18 ++++---- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java index bfc2888..595bb89 100644 --- a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java +++ b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java @@ -286,6 +286,8 @@ public class InstanceInterface { int onlineWorkers = 0; int longWorkers = 0; int shortWorkers = 0; + int safetyOrdersSent = 0; + int maxSafetyOrders = 0; List workers; InstanceGlobalStatsData instanceGlobalStats; @@ -324,36 +326,25 @@ public class InstanceInterface { workers = workerStatsFuture.join(); instanceGlobalStats = instanceGlobalStatsFuture.join(); - - //Funds needed - if (workers != null) { - for (WorkerStatsData worker : workers) { - if (!worker.isShort) { - for (int i = worker.getSoAmount(); i <= worker.getNumberOfSafetyOrders(); i++) { - fundsNeeded += gibSoSize(worker.getOrderSize(),i,0.0105); // I know I know - } - } - } - } - - //Online workers - if (workers != null) { - onlineWorkers = workers.size(); - } - - //Long workers if (workers != null) { for (WorkerStatsData worker : workers) { if (!worker.isShort) { longWorkers++; - } - else { + //Funds needed + for (int i = worker.getSoAmount(); i <= worker.getNumberOfSafetyOrders(); i++) { + fundsNeeded += gibSoSize(worker.getOrderSize(),i,0.0105); // I know I know + } + //Safety orders + safetyOrdersSent+=worker.getSoAmount()-1; + maxSafetyOrders+=worker.getNumberOfSafetyOrders(); + } else { shortWorkers++; } } + onlineWorkers = workers.size(); } + return new ExchangeStatsData(lastSeen,fundsAvailable,fundsNeeded,onlineWorkers,longWorkers,shortWorkers,safetyOrdersSent,maxSafetyOrders,instanceGlobalStats,workers); - return new ExchangeStatsData(lastSeen,fundsAvailable,fundsNeeded,onlineWorkers,longWorkers,shortWorkers,instanceGlobalStats,workers); } @@ -769,16 +760,20 @@ public class InstanceInterface { private final int onlineWorkers; private final int longWorkers; private final int shortWorkers; + private final int safetyOrdersSent; + private final int maxSafetyOrders; private final InstanceGlobalStatsData globalStats; private final List workers; - public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, InstanceGlobalStatsData globalStats, List workers) { + public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, int safetyOrdersSent, int maxSafetyOrders, InstanceGlobalStatsData globalStats, List workers) { this.lastSeen = lastSeen; this.fundsAvailable = fundsAvailable; this.fundsNeeded = fundsNeeded; this.onlineWorkers = onlineWorkers; this.longWorkers = longWorkers; this.shortWorkers = shortWorkers; + this.safetyOrdersSent = safetyOrdersSent; + this.maxSafetyOrders = maxSafetyOrders; this.globalStats = globalStats; this.workers = workers; } @@ -789,6 +784,8 @@ public class InstanceInterface { public int getOnlineWorkers() { return onlineWorkers; } public int getLongWorkers() { return longWorkers; } public int getShortWorkers() { return shortWorkers; } + public int getSafetyOrdersSent() {return safetyOrdersSent; } + public int getMaxSafetyOrders() {return maxSafetyOrders; } public InstanceGlobalStatsData getGlobalStats() { return globalStats; } public List getWorkers() { return workers; } } diff --git a/app/src/main/java/com/example/dcav2gui/MainActivity.java b/app/src/main/java/com/example/dcav2gui/MainActivity.java index c65ecb1..9756c81 100644 --- a/app/src/main/java/com/example/dcav2gui/MainActivity.java +++ b/app/src/main/java/com/example/dcav2gui/MainActivity.java @@ -2,6 +2,8 @@ package com.example.dcav2gui; import android.view.MenuItem; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavController; import androidx.navigation.Navigation;// @@ -11,10 +13,11 @@ import android.view.Menu; import android.widget.Button; import android.widget.Toast; +import com.example.dcav2gui.ui.exchanges.BinanceFragment; +import com.example.dcav2gui.ui.exchanges.OkxFragment; import com.example.dcav2gui.ui.home.HomeFragment; import com.example.dcav2gui.ui.settings.SettingsData; import com.example.dcav2gui.ui.settings.SettingsViewModel; -import com.google.android.material.snackbar.Snackbar; import com.google.android.material.navigation.NavigationView; import androidx.navigation.ui.AppBarConfiguration; @@ -27,8 +30,7 @@ import com.example.dcav2gui.databinding.ActivityMainBinding; import java.io.File; import java.util.List; import java.util.Objects; - -import okhttp3.internal.connection.Exchange; +import java.util.concurrent.atomic.AtomicReference; public class MainActivity extends AppCompatActivity { @@ -122,7 +124,6 @@ public class MainActivity extends AppCompatActivity { addButton.setVisibility(View.VISIBLE); } }); - } public static SettingsData getGlobalSettings() { diff --git a/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceFragment.java b/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceFragment.java index 84a50c9..05ebe91 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceFragment.java +++ b/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceFragment.java @@ -12,6 +12,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; import com.example.dcav2gui.InstanceInterface; @@ -58,8 +59,6 @@ public class BinanceFragment extends Fragment { workerCardAdapter.updateData(workerDataList); } }); - - return root; } diff --git a/app/src/main/java/com/example/dcav2gui/ui/exchanges/adapters/WorkerCardAdapter.java b/app/src/main/java/com/example/dcav2gui/ui/exchanges/adapters/WorkerCardAdapter.java index 08124fc..f5bb24f 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/exchanges/adapters/WorkerCardAdapter.java +++ b/app/src/main/java/com/example/dcav2gui/ui/exchanges/adapters/WorkerCardAdapter.java @@ -166,16 +166,18 @@ public class WorkerCardAdapter{ //double lastSeen = exchangeData.getLastSeen(); int longWorkers = exchangeData.getLongWorkers(); int shortWorkers = exchangeData.getShortWorkers(); - int safetyOrdersSent = 0; - int maxSafetyOrders = 0; + int safetyOrdersSent = exchangeData.getSafetyOrdersSent(); + int maxSafetyOrders = exchangeData.getMaxSafetyOrders(); +// int safetyOrdersSent = 0; +// int maxSafetyOrders = 0; //Iterate workerDataList and extract the total amount of safety orders - for (WorkerData worker : InstanceInterface.translateToWorkerData(exchangeData.getWorkers())) { - if (!worker.isShort()) { - safetyOrdersSent+=worker.getAmountOfSafetyOrders()-1; - maxSafetyOrders+=worker.getMaxSafetyOrders(); - } - } +// for (WorkerData worker : InstanceInterface.translateToWorkerData(exchangeData.getWorkers())) { +// if (!worker.isShort()) { +// safetyOrdersSent+=worker.getAmountOfSafetyOrders()-1; +// maxSafetyOrders+=worker.getMaxSafetyOrders(); +// } +// } String percentage = String.format(Locale.ROOT, "%.2f", (double) safetyOrdersSent/maxSafetyOrders*100); String statusBarText = amountOfWorkers + " traders online (" + longWorkers + "/" + shortWorkers + ") - Occupancy " + percentage + "%"; statusBar.setText(statusBarText);