diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef3..ca16a99 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,7 @@
+
diff --git a/app/src/main/java/com/example/vdcscore/ui/home/HomeFragment.java b/app/src/main/java/com/example/vdcscore/ui/home/HomeFragment.java
index beb99a0..563130b 100644
--- a/app/src/main/java/com/example/vdcscore/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/example/vdcscore/ui/home/HomeFragment.java
@@ -61,49 +61,45 @@ public class HomeFragment extends Fragment {
}
private void fetchStandings() {
- // Remove previous listener from previous database path
- if (mDatabase != null && mValueEventListener != null) {
+ mDatabase = FirebaseDatabase.getInstance().getReference("classificacoes").child(currentEscalao);
+
+ // Remove previous listener to avoid duplicate data or leaks
+ if (mValueEventListener != null) {
mDatabase.removeEventListener(mValueEventListener);
}
- mDatabase = FirebaseDatabase.getInstance().getReference("classificacoes").child(currentEscalao);
-
mValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
- if (binding == null) return;
-
List teams = new ArrayList<>();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
- try {
- Team team = postSnapshot.getValue(Team.class);
- if (team != null) {
- if (team.getTeam_id() == null) {
- team.setTeam_id(postSnapshot.getKey());
- }
- teams.add(team);
+ Team team = postSnapshot.getValue(Team.class);
+ if (team != null) {
+ // If ID is missing, set it from the key (although team_id comes from json usually)
+ if (team.getTeam_id() == null) {
+ team.setTeam_id(postSnapshot.getKey());
}
- } catch (Exception e) {
- e.printStackTrace();
+ teams.add(team);
}
}
- // Sort properly
- Collections.sort(teams, (t1, t2) -> {
- if (t1.getPontos() != t2.getPontos()) {
- return t2.getPontos() - t1.getPontos();
+ // Sort properly (JSON might already be sorted by "posicao", but we sort by points and GD just in case)
+ Collections.sort(teams, new Comparator() {
+ @Override
+ public int compare(Team t1, Team t2) {
+ if (t1.getPontos() != t2.getPontos()) {
+ return t2.getPontos() - t1.getPontos(); // Descending points
+ }
+ return t2.getDiferenca_golos() - t1.getDiferenca_golos(); // Descending GD
}
- return t2.getDiferenca_golos() - t1.getDiferenca_golos();
});
- if (adapter != null) {
- adapter.setTeams(teams);
- }
+ adapter.setTeams(teams);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
- if (getContext() != null && binding != null) {
+ if (getContext() != null) {
Toast.makeText(getContext(), "Erro ao carregar classificação: " + error.getMessage(),
Toast.LENGTH_SHORT).show();
}
diff --git a/app/src/main/java/com/example/vdcscore/ui/home/StandingsAdapter.java b/app/src/main/java/com/example/vdcscore/ui/home/StandingsAdapter.java
index e7c8bab..4075ae1 100644
--- a/app/src/main/java/com/example/vdcscore/ui/home/StandingsAdapter.java
+++ b/app/src/main/java/com/example/vdcscore/ui/home/StandingsAdapter.java
@@ -39,7 +39,6 @@ public class StandingsAdapter extends RecyclerView.Adapter