EarnerFragment
This commit is contained in:
parent
adcbdad32d
commit
76f2733e54
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue