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 863bbb4..361ed5a 100644 --- a/app/src/main/java/com/example/vdcscore/models/Club.java +++ b/app/src/main/java/com/example/vdcscore/models/Club.java @@ -28,12 +28,8 @@ public class Club implements Serializable { @PropertyName("presidente") private String president; - @PropertyName("jogadores") - private HashMap players; - public Club() { // Default constructor for Firebase - players = new HashMap<>(); } public Club(int id, String name, String imageUrl, String stadium, int foundationYear, String address, @@ -45,7 +41,6 @@ public class Club implements Serializable { this.foundationYear = foundationYear; this.address = address; this.president = president; - this.players = new HashMap<>(); } @PropertyName("id") @@ -118,19 +113,4 @@ public class Club implements Serializable { this.president = president; } - @PropertyName("jogadores") - public HashMap getPlayersMap() { - return players; - } - - @PropertyName("jogadores") - public void setPlayersMap(HashMap players) { - this.players = players; - } - - public List getPlayersList() { - if (players == null) - return new ArrayList<>(); - return new ArrayList<>(players.values()); - } } diff --git a/app/src/main/java/com/example/vdcscore/models/Player.java b/app/src/main/java/com/example/vdcscore/models/Player.java index 3689fe8..0678298 100644 --- a/app/src/main/java/com/example/vdcscore/models/Player.java +++ b/app/src/main/java/com/example/vdcscore/models/Player.java @@ -10,13 +10,25 @@ public class Player implements Serializable { @PropertyName("nome") private String nome; + @PropertyName("foto") + private String foto; + + @PropertyName("data_nascimento") + private String dataNascimento; + + @PropertyName("naturalidade") + private String naturalidade; + public Player() { // Default constructor required for calls to DataSnapshot.getValue(Player.class) } - public Player(int id, String nome) { + public Player(int id, String nome, String foto, String dataNascimento, String naturalidade) { this.id = id; this.nome = nome; + this.foto = foto; + this.dataNascimento = dataNascimento; + this.naturalidade = naturalidade; } @PropertyName("id") @@ -38,4 +50,34 @@ public class Player implements Serializable { public void setNome(String nome) { this.nome = nome; } + + @PropertyName("foto") + public String getFoto() { + return foto; + } + + @PropertyName("foto") + public void setFoto(String foto) { + this.foto = foto; + } + + @PropertyName("data_nascimento") + public String getDataNascimento() { + return dataNascimento; + } + + @PropertyName("data_nascimento") + public void setDataNascimento(String dataNascimento) { + this.dataNascimento = dataNascimento; + } + + @PropertyName("naturalidade") + public String getNaturalidade() { + return naturalidade; + } + + @PropertyName("naturalidade") + public void setNaturalidade(String naturalidade) { + this.naturalidade = naturalidade; + } } 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 2ad22d6..da8f0a0 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 @@ -55,7 +55,8 @@ public class ClubPlayersFragment extends Fragment { binding.progressBarPlayers.setVisibility(View.VISIBLE); if (clubId != null && escalao != null) { - mDatabase = FirebaseDatabase.getInstance().getReference().child("clubes").child(escalao).child(clubId); + mDatabase = FirebaseDatabase.getInstance().getReference().child("clubes").child(clubId).child("jogadores") + .child(escalao); loadPlayers(); } else { binding.progressBarPlayers.setVisibility(View.GONE); @@ -68,18 +69,22 @@ public class ClubPlayersFragment extends Fragment { mDatabase.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { - Club club = snapshot.getValue(Club.class); binding.progressBarPlayers.setVisibility(View.GONE); - if (club != null) { - List playerList = club.getPlayersList(); - if (playerList != null && !playerList.isEmpty()) { - PlayerAdapter adapter = new PlayerAdapter(playerList); - binding.recyclerPlayersList.setAdapter(adapter); - binding.textNoPlayers.setVisibility(View.GONE); - } else { - binding.textNoPlayers.setVisibility(View.VISIBLE); + List playerList = new ArrayList<>(); + if (snapshot.exists()) { + for (DataSnapshot playerSnapshot : snapshot.getChildren()) { + Player player = playerSnapshot.getValue(Player.class); + if (player != null) { + playerList.add(player); + } } + } + + if (!playerList.isEmpty()) { + PlayerAdapter adapter = new PlayerAdapter(playerList); + binding.recyclerPlayersList.setAdapter(adapter); + binding.textNoPlayers.setVisibility(View.GONE); } else { binding.textNoPlayers.setVisibility(View.VISIBLE); } diff --git a/app/src/main/java/com/example/vdcscore/ui/clubs/ClubsFragment.java b/app/src/main/java/com/example/vdcscore/ui/clubs/ClubsFragment.java index 06c83f3..e3a7b9a 100644 --- a/app/src/main/java/com/example/vdcscore/ui/clubs/ClubsFragment.java +++ b/app/src/main/java/com/example/vdcscore/ui/clubs/ClubsFragment.java @@ -63,7 +63,7 @@ public class ClubsFragment extends Fragment { private void loadClubsData(RecyclerView recyclerView, ProgressBar progressBar) { progressBar.setVisibility(View.VISIBLE); - mDatabase = FirebaseDatabase.getInstance().getReference().child("clubes").child(currentEscalao); + mDatabase = FirebaseDatabase.getInstance().getReference().child("clubes"); // Remove previous listener to avoid duplicate data or leaks if (mValueEventListener != null) { 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 ba40a94..52391c9 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 @@ -3,11 +3,14 @@ package com.example.vdcscore.ui.clubs; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; + import com.example.vdcscore.R; import com.example.vdcscore.models.Player; @@ -42,15 +45,43 @@ public class PlayerAdapter extends RecyclerView.Adapter - + android:layout_weight="1" + android:orientation="vertical"> + + + + + + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b..6f45571 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,3 +1,4 @@ +#Tue Mar 10 15:29:15 WET 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip