Minor data loading optimizations

This commit is contained in:
Nicolás Sánchez 2024-12-19 07:38:21 -03:00
parent b795578e5b
commit 8a9e86efeb
4 changed files with 35 additions and 36 deletions

View File

@ -286,6 +286,8 @@ public class InstanceInterface {
int onlineWorkers = 0; int onlineWorkers = 0;
int longWorkers = 0; int longWorkers = 0;
int shortWorkers = 0; int shortWorkers = 0;
int safetyOrdersSent = 0;
int maxSafetyOrders = 0;
List<WorkerStatsData> workers; List<WorkerStatsData> workers;
InstanceGlobalStatsData instanceGlobalStats; InstanceGlobalStatsData instanceGlobalStats;
@ -324,36 +326,25 @@ public class InstanceInterface {
workers = workerStatsFuture.join(); workers = workerStatsFuture.join();
instanceGlobalStats = instanceGlobalStatsFuture.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) { if (workers != null) {
for (WorkerStatsData worker : workers) { for (WorkerStatsData worker : workers) {
if (!worker.isShort) { if (!worker.isShort) {
longWorkers++; longWorkers++;
} //Funds needed
else { 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++; 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 onlineWorkers;
private final int longWorkers; private final int longWorkers;
private final int shortWorkers; private final int shortWorkers;
private final int safetyOrdersSent;
private final int maxSafetyOrders;
private final InstanceGlobalStatsData globalStats; private final InstanceGlobalStatsData globalStats;
private final List<WorkerStatsData> workers; private final List<WorkerStatsData> workers;
public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, InstanceGlobalStatsData globalStats, List<WorkerStatsData> workers) { public ExchangeStatsData(double lastSeen, double fundsAvailable, double fundsNeeded, int onlineWorkers, int longWorkers, int shortWorkers, int safetyOrdersSent, int maxSafetyOrders, InstanceGlobalStatsData globalStats, List<WorkerStatsData> workers) {
this.lastSeen = lastSeen; this.lastSeen = lastSeen;
this.fundsAvailable = fundsAvailable; this.fundsAvailable = fundsAvailable;
this.fundsNeeded = fundsNeeded; this.fundsNeeded = fundsNeeded;
this.onlineWorkers = onlineWorkers; this.onlineWorkers = onlineWorkers;
this.longWorkers = longWorkers; this.longWorkers = longWorkers;
this.shortWorkers = shortWorkers; this.shortWorkers = shortWorkers;
this.safetyOrdersSent = safetyOrdersSent;
this.maxSafetyOrders = maxSafetyOrders;
this.globalStats = globalStats; this.globalStats = globalStats;
this.workers = workers; this.workers = workers;
} }
@ -789,6 +784,8 @@ public class InstanceInterface {
public int getOnlineWorkers() { return onlineWorkers; } public int getOnlineWorkers() { return onlineWorkers; }
public int getLongWorkers() { return longWorkers; } public int getLongWorkers() { return longWorkers; }
public int getShortWorkers() { return shortWorkers; } public int getShortWorkers() { return shortWorkers; }
public int getSafetyOrdersSent() {return safetyOrdersSent; }
public int getMaxSafetyOrders() {return maxSafetyOrders; }
public InstanceGlobalStatsData getGlobalStats() { return globalStats; } public InstanceGlobalStatsData getGlobalStats() { return globalStats; }
public List<WorkerStatsData> getWorkers() { return workers; } public List<WorkerStatsData> getWorkers() { return workers; }
} }

View File

@ -2,6 +2,8 @@ package com.example.dcav2gui;
import android.view.MenuItem; import android.view.MenuItem;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavController; import androidx.navigation.NavController;
import androidx.navigation.Navigation;// import androidx.navigation.Navigation;//
@ -11,10 +13,11 @@ import android.view.Menu;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast; 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.home.HomeFragment;
import com.example.dcav2gui.ui.settings.SettingsData; import com.example.dcav2gui.ui.settings.SettingsData;
import com.example.dcav2gui.ui.settings.SettingsViewModel; import com.example.dcav2gui.ui.settings.SettingsViewModel;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.navigation.NavigationView; import com.google.android.material.navigation.NavigationView;
import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.AppBarConfiguration;
@ -27,8 +30,7 @@ import com.example.dcav2gui.databinding.ActivityMainBinding;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.atomic.AtomicReference;
import okhttp3.internal.connection.Exchange;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
@ -122,7 +124,6 @@ public class MainActivity extends AppCompatActivity {
addButton.setVisibility(View.VISIBLE); addButton.setVisibility(View.VISIBLE);
} }
}); });
} }
public static SettingsData getGlobalSettings() { public static SettingsData getGlobalSettings() {

View File

@ -12,6 +12,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.example.dcav2gui.InstanceInterface; import com.example.dcav2gui.InstanceInterface;
@ -58,8 +59,6 @@ public class BinanceFragment extends Fragment {
workerCardAdapter.updateData(workerDataList); workerCardAdapter.updateData(workerDataList);
} }
}); });
return root; return root;
} }

View File

@ -166,16 +166,18 @@ public class WorkerCardAdapter{
//double lastSeen = exchangeData.getLastSeen(); //double lastSeen = exchangeData.getLastSeen();
int longWorkers = exchangeData.getLongWorkers(); int longWorkers = exchangeData.getLongWorkers();
int shortWorkers = exchangeData.getShortWorkers(); int shortWorkers = exchangeData.getShortWorkers();
int safetyOrdersSent = 0; int safetyOrdersSent = exchangeData.getSafetyOrdersSent();
int maxSafetyOrders = 0; int maxSafetyOrders = exchangeData.getMaxSafetyOrders();
// int safetyOrdersSent = 0;
// int maxSafetyOrders = 0;
//Iterate workerDataList and extract the total amount of safety orders //Iterate workerDataList and extract the total amount of safety orders
for (WorkerData worker : InstanceInterface.translateToWorkerData(exchangeData.getWorkers())) { // for (WorkerData worker : InstanceInterface.translateToWorkerData(exchangeData.getWorkers())) {
if (!worker.isShort()) { // if (!worker.isShort()) {
safetyOrdersSent+=worker.getAmountOfSafetyOrders()-1; // safetyOrdersSent+=worker.getAmountOfSafetyOrders()-1;
maxSafetyOrders+=worker.getMaxSafetyOrders(); // maxSafetyOrders+=worker.getMaxSafetyOrders();
} // }
} // }
String percentage = String.format(Locale.ROOT, "%.2f", (double) safetyOrdersSent/maxSafetyOrders*100); String percentage = String.format(Locale.ROOT, "%.2f", (double) safetyOrdersSent/maxSafetyOrders*100);
String statusBarText = amountOfWorkers + " traders online (" + longWorkers + "/" + shortWorkers + ") - Occupancy " + percentage + "%"; String statusBarText = amountOfWorkers + " traders online (" + longWorkers + "/" + shortWorkers + ") - Occupancy " + percentage + "%";
statusBar.setText(statusBarText); statusBar.setText(statusBarText);