This commit is contained in:
2026-05-08 10:44:12 +01:00
parent cdd000b88d
commit cd75d3acfc
11 changed files with 427 additions and 206 deletions

View File

@@ -1,37 +0,0 @@
package com.example.lifegrid.menu;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.lifegrid.R;
/**
* DocumentosFragment é a área orientada ao scan, compilação de faturas e arquivo seguro.
* Foca-se unicamente nas componentes não contabéis mas sim em anotações em anexo faturado.
*/
public class DocumentosFragment extends Fragment {
public DocumentosFragment() {
// Construtor público vazio obrigatório
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflaciona o layout para este fragmento
View root = inflater.inflate(R.layout.fragment_documentos, container, false);
return root;
}
}

View File

@@ -50,9 +50,12 @@ public class TransacoesFragment extends Fragment {
private RecyclerView rvTransacoes;
private TransacaoAdapter transacaoAdapter;
private List<Transacao> transacoesList;
private List<Transacao> allTransacoesList;
private TextView tvEmptyState;
private DatabaseReference databaseReference;
private String userId;
private int currentMes = -1;
private String currentAno = "";
public TransacoesFragment() {
// Construtor público vazio obrigatório
@@ -65,6 +68,14 @@ public class TransacoesFragment extends Fragment {
}
@Override
public void onResume() {
super.onResume();
if (getActivity() instanceof com.example.lifegrid.TelaInicialActivity) {
((com.example.lifegrid.TelaInicialActivity) getActivity()).atualizarDadosHome();
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@@ -88,6 +99,7 @@ public class TransacoesFragment extends Fragment {
rvTransacoes.setLayoutManager(new LinearLayoutManager(requireContext()));
transacoesList = new ArrayList<>();
allTransacoesList = new ArrayList<>();
transacaoAdapter = new TransacaoAdapter(transacoesList, transacao -> {
new AlertDialog.Builder(requireContext())
@@ -119,23 +131,15 @@ public class TransacoesFragment extends Fragment {
databaseReference.child("users").child(userId).child("transacoes").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
transacoesList.clear();
allTransacoesList.clear();
for (DataSnapshot ds : snapshot.getChildren()) {
Transacao t = ds.getValue(Transacao.class);
if (t != null) {
t.setId(ds.getKey());
transacoesList.add(t);
allTransacoesList.add(t);
}
}
transacaoAdapter.notifyDataSetChanged();
if (transacoesList.isEmpty()) {
tvEmptyState.setVisibility(View.VISIBLE);
rvTransacoes.setVisibility(View.GONE);
} else {
tvEmptyState.setVisibility(View.GONE);
rvTransacoes.setVisibility(View.VISIBLE);
}
aplicarFiltro();
}
@Override
@@ -145,6 +149,61 @@ public class TransacoesFragment extends Fragment {
});
}
private void aplicarFiltro() {
transacoesList.clear();
for (Transacao t : allTransacoesList) {
if (currentMes != -1 && !currentAno.isEmpty() && t.getData() != null) {
String[] parts = t.getData().split("/");
if (parts.length == 3) {
try {
int mesTransacao = Integer.parseInt(parts[1]);
String anoTransacao = parts[2];
if (mesTransacao == currentMes && anoTransacao.equals(currentAno)) {
transacoesList.add(t);
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
} else {
transacoesList.add(t);
}
}
java.util.Collections.sort(transacoesList, new java.util.Comparator<Transacao>() {
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy", java.util.Locale.getDefault());
@Override
public int compare(Transacao t1, Transacao t2) {
try {
java.util.Date d1 = sdf.parse(t1.getData());
java.util.Date d2 = sdf.parse(t2.getData());
if (d1 != null && d2 != null) {
return d2.compareTo(d1); // Ordem decrescente (mais recentes no topo)
}
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return 0;
}
});
transacaoAdapter.notifyDataSetChanged();
if (transacoesList.isEmpty()) {
tvEmptyState.setVisibility(View.VISIBLE);
rvTransacoes.setVisibility(View.GONE);
} else {
tvEmptyState.setVisibility(View.GONE);
rvTransacoes.setVisibility(View.VISIBLE);
}
}
public void setFiltro(int mesSelecionado, String anoSelecionado) {
this.currentMes = mesSelecionado;
this.currentAno = anoSelecionado;
aplicarFiltro();
}
public void showNovaTransacaoDialog() {
showNovaTransacaoDialog(0.0, "", "", "");
}