EarnerFragment

This commit is contained in:
Nicolás Sánchez 2025-03-11 12:34:59 -03:00
parent adcbdad32d
commit 76f2733e54
3 changed files with 65 additions and 12 deletions

View File

@ -1,6 +1,62 @@
package com.example.dcav2gui.ui.earners; 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.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 { 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;
}
} }

View File

@ -6,6 +6,7 @@ import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.example.dcav2gui.EarnerInterface;
import com.example.dcav2gui.InstanceInterface; import com.example.dcav2gui.InstanceInterface;
import com.example.dcav2gui.R; import com.example.dcav2gui.R;
@ -83,17 +84,13 @@ public class EarnerCardAdapter {
} }
//Refactor for earners' status bar //Refactor for earners' status bar
public static void populateStatusBar(TextView statusBar, InstanceInterface.ExchangeStatsData exchangeData) { public void populateStatusBar(TextView statusBar, EarnerInterface.EarnerGlobalData earnerData) {
int amountOfWorkers = exchangeData.getOnlineWorkers(); double uptime = earnerData.getUptime();
//double lastSeen = exchangeData.getLastSeen(); List<EarnerData> earnerList = earnerData.getEarnerList();
int longWorkers = exchangeData.getLongWorkers();
int shortWorkers = exchangeData.getShortWorkers();
int safetyOrdersSent = exchangeData.getSafetyOrdersSent();
int maxSafetyOrders = exchangeData.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);
} }
} }

View File

@ -27,7 +27,7 @@ public class EarnerViewModel extends AndroidViewModel {
fetchEarnerData(); // Initial data fetch fetchEarnerData(); // Initial data fetch
} }
public LiveData<EarnerInterface.EarnerGlobalData> getWorkerData() { public LiveData<EarnerInterface.EarnerGlobalData> getEarnerData() {
if (earnerGlobalData.getValue() == null) { if (earnerGlobalData.getValue() == null) {
fetchEarnerData(); fetchEarnerData();
@ -36,7 +36,7 @@ public class EarnerViewModel extends AndroidViewModel {
} }
private void fetchEarnerData() { private void fetchEarnerData() {
HandlerThread handlerThread = new HandlerThread("FetchWorkerDataThread"); HandlerThread handlerThread = new HandlerThread("FetchEarnerDataThread");
handlerThread.start(); handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper()); Handler handler = new Handler(handlerThread.getLooper());
handler.post(new Runnable() { handler.post(new Runnable() {