tudo a andar rapido vamossss
This commit is contained in:
@@ -17,6 +17,25 @@ import com.example.lifegrid.menu.DocumentosFragment;
|
||||
import com.example.lifegrid.menu.GraficosFragment;
|
||||
import com.example.lifegrid.menu.MetasFragment;
|
||||
import com.example.lifegrid.menu.TransacoesFragment;
|
||||
import com.example.lifegrid.models.Transacao;
|
||||
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* TelaInicialActivity funciona como a janela mestre (Container) de navegação da aplicação.
|
||||
@@ -33,6 +52,13 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
private TextView tvTransacoes3;
|
||||
private TextView tvValor4;
|
||||
private TextView tvTransacoes4;
|
||||
private TextView tvTitulo;
|
||||
private TextView tvTitulo2;
|
||||
|
||||
private Spinner spinnerMes;
|
||||
private Spinner spinnerAno;
|
||||
|
||||
private String[] meses = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"};
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -45,6 +71,22 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
return insets;
|
||||
});
|
||||
|
||||
tvValor = findViewById(R.id.tvValor);
|
||||
tvTransacoes = findViewById(R.id.tvTransacoes);
|
||||
tvValor2 = findViewById(R.id.tvValor2);
|
||||
tvTransacoes2 = findViewById(R.id.tvTransacoes2);
|
||||
tvValor3 = findViewById(R.id.tvValor3);
|
||||
tvTransacoes3 = findViewById(R.id.tvTransacoes3);
|
||||
tvValor4 = findViewById(R.id.tvValor4);
|
||||
tvTransacoes4 = findViewById(R.id.tvTransacoes4);
|
||||
tvTitulo = findViewById(R.id.tvTitulo);
|
||||
tvTitulo2 = findViewById(R.id.tvTitulo2);
|
||||
|
||||
spinnerMes = findViewById(R.id.spinnerMes);
|
||||
spinnerAno = findViewById(R.id.spinnerAno);
|
||||
|
||||
setupSpinners();
|
||||
|
||||
Fragment transacoesFragment2 = new TransacoesFragment();
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.fragmentContainerView, transacoesFragment2)
|
||||
@@ -93,4 +135,108 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
.commit();
|
||||
});
|
||||
}
|
||||
|
||||
private void setupSpinners() {
|
||||
ArrayAdapter<String> mesAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, meses);
|
||||
mesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
spinnerMes.setAdapter(mesAdapter);
|
||||
|
||||
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
|
||||
List<String> anos = new ArrayList<>();
|
||||
for (int i = currentYear - 5; i <= currentYear + 5; i++) {
|
||||
anos.add(String.valueOf(i));
|
||||
}
|
||||
ArrayAdapter<String> anoAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, anos);
|
||||
anoAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
spinnerAno.setAdapter(anoAdapter);
|
||||
|
||||
// Set current month and year
|
||||
spinnerMes.setSelection(Calendar.getInstance().get(Calendar.MONTH));
|
||||
spinnerAno.setSelection(anos.indexOf(String.valueOf(currentYear)));
|
||||
|
||||
AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, android.view.View view, int position, long id) {
|
||||
carregarDados();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {}
|
||||
};
|
||||
|
||||
spinnerMes.setOnItemSelectedListener(listener);
|
||||
spinnerAno.setOnItemSelectedListener(listener);
|
||||
}
|
||||
|
||||
private void carregarDados() {
|
||||
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
|
||||
if (user == null) return;
|
||||
|
||||
int mesSelecionado = spinnerMes.getSelectedItemPosition() + 1; // 1 to 12
|
||||
String anoSelecionado = spinnerAno.getSelectedItem().toString();
|
||||
|
||||
String mesNome = meses[spinnerMes.getSelectedItemPosition()];
|
||||
tvTitulo.setText("Receitas (" + mesNome + " " + anoSelecionado + ")");
|
||||
tvTitulo2.setText("Despesas (" + mesNome + " " + anoSelecionado + ")");
|
||||
|
||||
DatabaseReference transacoesRef = FirebaseDatabase.getInstance().getReference()
|
||||
.child("users").child(user.getUid()).child("transacoes");
|
||||
|
||||
transacoesRef.addValueEventListener(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot snapshot) {
|
||||
double totalReceitas = 0;
|
||||
double totalDespesas = 0;
|
||||
int countReceitas = 0;
|
||||
int countDespesas = 0;
|
||||
|
||||
for (DataSnapshot ds : snapshot.getChildren()) {
|
||||
Transacao transacao = ds.getValue(Transacao.class);
|
||||
if (transacao != null && transacao.getData() != null) {
|
||||
String[] parts = transacao.getData().split("/");
|
||||
if (parts.length == 3) {
|
||||
try {
|
||||
int mesTransacao = Integer.parseInt(parts[1]);
|
||||
String anoTransacao = parts[2];
|
||||
|
||||
if (mesTransacao == mesSelecionado && anoTransacao.equals(anoSelecionado)) {
|
||||
double valor = Double.parseDouble(transacao.getValor().replace(",", "."));
|
||||
if ("Receita".equals(transacao.getTipo())) {
|
||||
totalReceitas += valor;
|
||||
countReceitas++;
|
||||
} else if ("Despesa".equals(transacao.getTipo())) {
|
||||
totalDespesas += valor;
|
||||
countDespesas++;
|
||||
}
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tvValor.setText(String.format(Locale.getDefault(), "%.2f€", totalReceitas));
|
||||
tvTransacoes.setText(countReceitas + " transações");
|
||||
|
||||
tvValor2.setText(String.format(Locale.getDefault(), "%.2f€", totalDespesas));
|
||||
tvTransacoes2.setText(countDespesas + " transações");
|
||||
|
||||
double saldo = totalReceitas - totalDespesas;
|
||||
tvValor3.setText(String.format(Locale.getDefault(), "%.2f€", saldo));
|
||||
if (saldo >= 0) {
|
||||
tvTransacoes3.setText("Poupança positiva");
|
||||
tvTransacoes3.setTextColor(android.graphics.Color.parseColor("#8E8E8E"));
|
||||
} else {
|
||||
tvTransacoes3.setText("Poupança negativa");
|
||||
tvTransacoes3.setTextColor(android.graphics.Color.parseColor("#FF0000"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError error) {
|
||||
Toast.makeText(TelaInicialActivity.this, "Erro ao carregar dados", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user