faturas
This commit is contained in:
@@ -16,13 +16,10 @@ import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.example.lifegrid.menu.AtivosFragment;
|
||||
import com.example.lifegrid.menu.DefinicoesFragment;
|
||||
import com.example.lifegrid.menu.DocumentosFragment;
|
||||
import com.example.lifegrid.menu.GraficosFragment;
|
||||
import com.example.lifegrid.menu.HomeFragment;
|
||||
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;
|
||||
@@ -30,17 +27,12 @@ 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.
|
||||
@@ -182,8 +174,8 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
}
|
||||
transFragment.showNovaTransacaoDialog(valor, descricao, categoria, data);
|
||||
|
||||
// Save document to shared preferences or database
|
||||
saveDocument(imageUri.toString(), descricao, data);
|
||||
// Save document to Firebase
|
||||
uploadDocumentoToFirebase(imageUri, descricao, data);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -194,15 +186,37 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
});
|
||||
}
|
||||
|
||||
private void saveDocument(String uriString, String descricao, String data) {
|
||||
SharedPreferences prefs = getSharedPreferences("LifeGridDocs", Context.MODE_PRIVATE);
|
||||
int count = prefs.getInt("doc_count", 0);
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.putString("doc_uri_" + count, uriString);
|
||||
editor.putString("doc_desc_" + count, descricao);
|
||||
editor.putString("doc_data_" + count, data);
|
||||
editor.putInt("doc_count", count + 1);
|
||||
editor.apply();
|
||||
private void uploadDocumentoToFirebase(android.net.Uri imageUri, String descricao, String data) {
|
||||
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
|
||||
if (user == null) {
|
||||
Toast.makeText(this, "Utilizador não autenticado.", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
Toast.makeText(this, "A guardar documento na Cloud...", Toast.LENGTH_SHORT).show();
|
||||
|
||||
String fileName = "invoice_" + System.currentTimeMillis() + ".jpg";
|
||||
com.google.firebase.storage.StorageReference storageRef = com.google.firebase.storage.FirebaseStorage.getInstance().getReference()
|
||||
.child("users/" + user.getUid() + "/documentos/" + fileName);
|
||||
|
||||
storageRef.putFile(imageUri).addOnSuccessListener(taskSnapshot -> {
|
||||
storageRef.getDownloadUrl().addOnSuccessListener(uri -> {
|
||||
String downloadUrl = uri.toString();
|
||||
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("users")
|
||||
.child(user.getUid()).child("documentos").push();
|
||||
|
||||
com.example.lifegrid.models.Documento doc = new com.example.lifegrid.models.Documento(descricao, data, downloadUrl);
|
||||
dbRef.setValue(doc).addOnCompleteListener(task -> {
|
||||
if (task.isSuccessful()) {
|
||||
Toast.makeText(TelaInicialActivity.this, "Documento guardado com sucesso!", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Toast.makeText(TelaInicialActivity.this, "Erro ao guardar dados na Cloud.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
});
|
||||
}).addOnFailureListener(e -> {
|
||||
Toast.makeText(this, "Erro ao enviar imagem para a Cloud.", Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -276,11 +290,14 @@ public class TelaInicialActivity extends AppCompatActivity {
|
||||
|
||||
public void atualizarDadosHome() {
|
||||
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.fragmentContainerView);
|
||||
int mesSelecionado = spinnerMes.getSelectedItemPosition() + 1; // 1 to 12
|
||||
String anoSelecionado = spinnerAno.getSelectedItem().toString();
|
||||
|
||||
if (currentFragment instanceof HomeFragment) {
|
||||
int mesSelecionado = spinnerMes.getSelectedItemPosition() + 1; // 1 to 12
|
||||
String anoSelecionado = spinnerAno.getSelectedItem().toString();
|
||||
String mesNome = meses[spinnerMes.getSelectedItemPosition()];
|
||||
((HomeFragment) currentFragment).carregarDados(mesSelecionado, anoSelecionado, mesNome);
|
||||
} else if (currentFragment instanceof TransacoesFragment) {
|
||||
((TransacoesFragment) currentFragment).setFiltro(mesSelecionado, anoSelecionado);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user