From 76f2733e54241ee3a6f941c749888180fd60721c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20S=C3=A1nchez?= Date: Tue, 11 Mar 2025 12:34:59 -0300 Subject: [PATCH] EarnerFragment --- .../dcav2gui/ui/earners/EarnFragment.java | 56 +++++++++++++++++++ .../ui/earners/EarnerCardAdapter.java | 17 +++--- .../dcav2gui/ui/earners/EarnerViewModel.java | 4 +- 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnFragment.java b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnFragment.java index c8dd9ff..cf0c99d 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnFragment.java +++ b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnFragment.java @@ -1,6 +1,62 @@ package com.example.dcav2gui.ui.earners; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; + +import com.example.dcav2gui.EarnerInterface; +import com.example.dcav2gui.R; +import com.example.dcav2gui.databinding.FragmentEarnersBinding; + +import java.io.IOException; public class EarnFragment extends Fragment { + private EarnerCardAdapter earnerCardAdapter; + private TextView statusBar; + + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + com.example.dcav2gui.databinding.FragmentEarnersBinding binding = FragmentEarnersBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + EarnerInterface.EarnerGlobalData earnerData; + + //Initialize status bar + statusBar = root.findViewById(R.id.earners_status_bar); + + EarnerViewModel earnerViewModel = new ViewModelProvider(this).get(EarnerViewModel.class); + + earnerCardAdapter = new EarnerCardAdapter(binding.earnersCardsContainer); + + try { + earnerData = EarnerInterface.getEarnerGlobalData(true); + earnerCardAdapter.populateStatusBar(statusBar, earnerData); + earnerCardAdapter.updateData(earnerData.getEarnerList()); + } catch (IOException e) { + throw new RuntimeException(e); + } + + + earnerViewModel.getEarnerData().observe(getViewLifecycleOwner(), earnerDataList -> { + if (earnerDataList != null) { + try { + EarnerInterface.EarnerGlobalData earnerNewData = EarnerInterface.getEarnerGlobalData(true); + if (earnerNewData != null) { + earnerCardAdapter.populateStatusBar(statusBar, earnerNewData); + earnerCardAdapter.updateData(earnerNewData.getEarnerList()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + }); + return root; + } } diff --git a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerCardAdapter.java b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerCardAdapter.java index b867a41..20a2e6e 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerCardAdapter.java +++ b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerCardAdapter.java @@ -6,6 +6,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import com.example.dcav2gui.EarnerInterface; import com.example.dcav2gui.InstanceInterface; import com.example.dcav2gui.R; @@ -83,17 +84,13 @@ public class EarnerCardAdapter { } //Refactor for earners' status bar - public static void populateStatusBar(TextView statusBar, InstanceInterface.ExchangeStatsData exchangeData) { - int amountOfWorkers = exchangeData.getOnlineWorkers(); - //double lastSeen = exchangeData.getLastSeen(); - int longWorkers = exchangeData.getLongWorkers(); - int shortWorkers = exchangeData.getShortWorkers(); - int safetyOrdersSent = exchangeData.getSafetyOrdersSent(); - int maxSafetyOrders = exchangeData.getMaxSafetyOrders(); + public void populateStatusBar(TextView statusBar, EarnerInterface.EarnerGlobalData earnerData) { + double uptime = earnerData.getUptime(); + List earnerList = earnerData.getEarnerList(); - String percentage = String.format(Locale.ROOT, "%.2f", (double) safetyOrdersSent/maxSafetyOrders*100); - String statusBarText = amountOfWorkers + " traders online (" + longWorkers + "/" + shortWorkers + ") - Occupancy " + percentage + "%"; - statusBar.setText(statusBarText); + //String percentage = String.format(Locale.ROOT, "%.2f", (double) safetyOrdersSent/maxSafetyOrders*100); + //String statusBarText = amountOfWorkers + " traders online (" + longWorkers + "/" + shortWorkers + ") - Occupancy " + percentage + "%"; + //statusBar.setText(statusBarText); } } diff --git a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerViewModel.java b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerViewModel.java index bb71950..f68abf4 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerViewModel.java +++ b/app/src/main/java/com/example/dcav2gui/ui/earners/EarnerViewModel.java @@ -27,7 +27,7 @@ public class EarnerViewModel extends AndroidViewModel { fetchEarnerData(); // Initial data fetch } - public LiveData getWorkerData() { + public LiveData getEarnerData() { if (earnerGlobalData.getValue() == null) { fetchEarnerData(); @@ -36,7 +36,7 @@ public class EarnerViewModel extends AndroidViewModel { } private void fetchEarnerData() { - HandlerThread handlerThread = new HandlerThread("FetchWorkerDataThread"); + HandlerThread handlerThread = new HandlerThread("FetchEarnerDataThread"); handlerThread.start(); Handler handler = new Handler(handlerThread.getLooper()); handler.post(new Runnable() {