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 d583732..2cbb1be 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 @@ -4,28 +4,37 @@ 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 androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.example.dcav2gui.databinding.FragmentBinanceBinding; +import com.example.dcav2gui.ui.exchanges.adapters.WorkerCardAdapter; + +import java.util.ArrayList; +import java.util.List; public class BinanceFragment extends Fragment { private FragmentBinanceBinding binding; + private WorkerCardAdapter adapter; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - BinanceViewModel BinanceViewModel = + BinanceViewModel binanceViewModel = new ViewModelProvider(this).get(BinanceViewModel.class); binding = FragmentBinanceBinding.inflate(inflater, container, false); View root = binding.getRoot(); - final TextView textView = binding.textBinance; - BinanceViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); + RecyclerView recyclerView = binding.recyclerView; + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + adapter = new WorkerCardAdapter(new ArrayList<>()); + recyclerView.setAdapter(adapter); + + binanceViewModel.getWorkerData().observe(getViewLifecycleOwner(), adapter::updateData); + return root; } diff --git a/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceViewModel.java b/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceViewModel.java index 89ecb6c..e2ac342 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceViewModel.java +++ b/app/src/main/java/com/example/dcav2gui/ui/exchanges/BinanceViewModel.java @@ -1,19 +1,43 @@ package com.example.dcav2gui.ui.exchanges; - +import android.app.Application; +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; +import java.util.ArrayList; +import java.util.List; -public class BinanceViewModel extends ViewModel { +public class BinanceViewModel extends AndroidViewModel { - private final MutableLiveData mText; + private MutableLiveData> workerDataList; - public BinanceViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is Binance fragment"); + public BinanceViewModel(@NonNull Application application) { + super(application); + workerDataList = new MutableLiveData<>(); + fetchWorkerData(); // Initial data fetch } - public LiveData getText() { - return mText; + public LiveData> getWorkerData() { + return workerDataList; } -} \ No newline at end of file + + private void fetchWorkerData() { + // Simulate fetching data from a source + List data = new ArrayList<>(); + // Add WorkerData objects to the list + workerDataList.setValue(data); + + // Schedule a periodic update + new Thread(() -> { + while (true) { + try { + Thread.sleep(5000); + // Fetch and update the data + fetchWorkerData(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }).start(); + } +} 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 new file mode 100644 index 0000000..c4fe3a4 --- /dev/null +++ b/app/src/main/java/com/example/dcav2gui/ui/exchanges/adapters/WorkerCardAdapter.java @@ -0,0 +1,76 @@ +package com.example.dcav2gui.ui.exchanges.adapters; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import com.example.dcav2gui.R; +import com.example.dcav2gui.ui.exchanges.WorkerData; +import java.util.List; + +public class WorkerCardAdapter extends RecyclerView.Adapter { + + private List workerDataList; + + public WorkerCardAdapter(List workerDataList) { + this.workerDataList = workerDataList; + } + + @NonNull + @Override + public WorkerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.worker_card, parent, false); + return new WorkerViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull WorkerViewHolder holder, int position) { + WorkerData worker = workerDataList.get(position); + + //Here goes all the logic to update the view + +// holder.workerName.setText(worker.getName()); +// holder.workerStatus.setText(worker.getStatus()); + } + + @Override + public int getItemCount() { + return workerDataList.size(); + } + + public void updateData(List newData) { + workerDataList = newData; + notifyDataSetChanged(); + } + + public static class WorkerViewHolder extends RecyclerView.ViewHolder { + TextView pair; + TextView safetyOrders; + TextView uptime; + TextView nextSoPrice; + TextView price; + TextView takeProfitPrice; + TextView percentage; + ProgressBar progressBar; + TextView workerStatusString; + ImageView workerCardIcon; + + public WorkerViewHolder(@NonNull View itemView) { + super(itemView); + pair = itemView.findViewById(R.id.workerCardPair); + safetyOrders = itemView.findViewById(R.id.workerCardSafetyOrders); + uptime = itemView.findViewById(R.id.workerCardUptime); + nextSoPrice = itemView.findViewById(R.id.workerCardNextSoPrice); + price = itemView.findViewById(R.id.workerCardCurrentPrice); + takeProfitPrice = itemView.findViewById(R.id.workerCardTakeProfitPrice); + percentage = itemView.findViewById(R.id.workerCardPercentageToDeal); + progressBar = itemView.findViewById(R.id.workerCardProgressBar); + workerStatusString = itemView.findViewById(R.id.workerCardStatusString); + workerCardIcon = itemView.findViewById(R.id.workerCardIcon); + } + } +} \ No newline at end of file