From 3733e027ae1bfafba81d3e3549f41f2e924444bf Mon Sep 17 00:00:00 2001 From: 230421 <230421@epvc.pt> Date: Tue, 10 Mar 2026 16:46:25 +0000 Subject: [PATCH] mudancas desgin --- .../com/example/vdcscore/models/Club.java | 6 +- .../ui/clubs/ClubPlayersFragment.java | 7 +- .../vdcscore/ui/clubs/PlayerAdapter.java | 35 ++++--- .../ui/clubs/PlayerDetailFragment.java | 62 ++++++++++++ .../res/layout/fragment_player_detail.xml | 95 +++++++++++++++++++ app/src/main/res/layout/item_player.xml | 28 ++---- .../main/res/navigation/mobile_navigation.xml | 14 +++ 7 files changed, 202 insertions(+), 45 deletions(-) create mode 100644 app/src/main/java/com/example/vdcscore/ui/clubs/PlayerDetailFragment.java create mode 100644 app/src/main/res/layout/fragment_player_detail.xml diff --git a/app/src/main/java/com/example/vdcscore/models/Club.java b/app/src/main/java/com/example/vdcscore/models/Club.java index 361ed5a..9e840ff 100644 --- a/app/src/main/java/com/example/vdcscore/models/Club.java +++ b/app/src/main/java/com/example/vdcscore/models/Club.java @@ -19,7 +19,7 @@ public class Club implements Serializable { @PropertyName("campo") private String stadium; - @PropertyName("ano fundacao") + @PropertyName("ano_fundacao") private int foundationYear; @PropertyName("morada") @@ -83,12 +83,12 @@ public class Club implements Serializable { this.stadium = stadium; } - @PropertyName("ano fundacao") + @PropertyName("ano_fundacao") public int getFoundationYear() { return foundationYear; } - @PropertyName("ano fundacao") + @PropertyName("ano_fundacao") public void setFoundationYear(int foundationYear) { this.foundationYear = foundationYear; } diff --git a/app/src/main/java/com/example/vdcscore/ui/clubs/ClubPlayersFragment.java b/app/src/main/java/com/example/vdcscore/ui/clubs/ClubPlayersFragment.java index da8f0a0..bf07903 100644 --- a/app/src/main/java/com/example/vdcscore/ui/clubs/ClubPlayersFragment.java +++ b/app/src/main/java/com/example/vdcscore/ui/clubs/ClubPlayersFragment.java @@ -82,7 +82,12 @@ public class ClubPlayersFragment extends Fragment { } if (!playerList.isEmpty()) { - PlayerAdapter adapter = new PlayerAdapter(playerList); + PlayerAdapter adapter = new PlayerAdapter(playerList, player -> { + android.os.Bundle bundle = new android.os.Bundle(); + bundle.putSerializable("jogador_selecionado", player); + androidx.navigation.Navigation.findNavController(requireView()).navigate( + com.example.vdcscore.R.id.action_nav_club_players_to_nav_player_detail, bundle); + }); binding.recyclerPlayersList.setAdapter(adapter); binding.textNoPlayers.setVisibility(View.GONE); } else { diff --git a/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerAdapter.java b/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerAdapter.java index 52391c9..a6117a6 100644 --- a/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerAdapter.java +++ b/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerAdapter.java @@ -19,9 +19,15 @@ import java.util.List; public class PlayerAdapter extends RecyclerView.Adapter { private final List mPlayers; + private final OnItemClickListener listener; - public PlayerAdapter(List players) { - mPlayers = players; + public interface OnItemClickListener { + void onItemClick(Player player); + } + + public PlayerAdapter(List players, OnItemClickListener listener) { + this.mPlayers = players; + this.listener = listener; } @NonNull @@ -35,7 +41,7 @@ public class PlayerAdapter extends RecyclerView.Adapter { + if (listener != null) { + listener.onItemClick(player); + } + }); } } } diff --git a/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerDetailFragment.java b/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerDetailFragment.java new file mode 100644 index 0000000..9ee9aee --- /dev/null +++ b/app/src/main/java/com/example/vdcscore/ui/clubs/PlayerDetailFragment.java @@ -0,0 +1,62 @@ +package com.example.vdcscore.ui.clubs; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.bumptech.glide.Glide; +import com.example.vdcscore.R; +import com.example.vdcscore.databinding.FragmentPlayerDetailBinding; +import com.example.vdcscore.models.Player; + +public class PlayerDetailFragment extends Fragment { + + private FragmentPlayerDetailBinding binding; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + binding = FragmentPlayerDetailBinding.inflate(inflater, container, false); + return binding.getRoot(); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + if (getArguments() != null) { + Player jogadorRecebido = (Player) getArguments().getSerializable("jogador_selecionado"); + + if (jogadorRecebido != null) { + binding.textDetailPlayerName.setText(jogadorRecebido.getNome()); + + String birthDate = jogadorRecebido.getDataNascimento(); + binding.textDetailBirthdate.setText(birthDate != null && !birthDate.isEmpty() ? birthDate : "N/D"); + + String birthplace = jogadorRecebido.getNaturalidade(); + binding.textDetailBirthplace.setText(birthplace != null && !birthplace.isEmpty() ? birthplace : "N/D"); + + if (getContext() != null) { + Glide.with(this) + .load(jogadorRecebido.getFoto()) + .placeholder(R.drawable.ic_menu_camera) + .error(R.drawable.ic_menu_camera) + .circleCrop() + .into(binding.imageDetailPlayerPhoto); + } + } + } + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} diff --git a/app/src/main/res/layout/fragment_player_detail.xml b/app/src/main/res/layout/fragment_player_detail.xml new file mode 100644 index 0000000..cb9f0c2 --- /dev/null +++ b/app/src/main/res/layout/fragment_player_detail.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_player.xml b/app/src/main/res/layout/item_player.xml index 59538c2..3a52198 100644 --- a/app/src/main/res/layout/item_player.xml +++ b/app/src/main/res/layout/item_player.xml @@ -15,30 +15,14 @@ android:contentDescription="Player Icon" android:layout_marginEnd="16dp"/> - - - - - - - + android:text="Player Name" + android:textSize="16sp" + android:textColor="@color/black" + android:textStyle="bold" /> diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index be6303a..e5e0d0a 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -76,6 +76,20 @@ + + + + + + \ No newline at end of file