ja acabei a app acho?
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
#Tue Mar 03 16:47:40 WET 2026
|
#Wed Mar 04 11:26:11 WET 2026
|
||||||
base.0=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
|
base.0=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
|
||||||
base.1=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
|
base.1=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
|
||||||
base.10=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeExtDexDebug/classes2.dex
|
base.10=/Users/230405/Desktop/papcuida/app/build/intermediates/dex/debug/mergeExtDexDebug/classes2.dex
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -12,16 +12,18 @@ public class Appointment {
|
|||||||
public String time; // HH:mm
|
public String time; // HH:mm
|
||||||
public String reason;
|
public String reason;
|
||||||
public boolean isPast;
|
public boolean isPast;
|
||||||
|
public String userId;
|
||||||
|
|
||||||
// Required empty constructor for Firestore deserialization
|
// Required empty constructor for Firestore deserialization
|
||||||
public Appointment() {
|
public Appointment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Appointment(String type, String date, String time, String reason, boolean isPast) {
|
public Appointment(String type, String date, String time, String reason, boolean isPast, String userId) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.date = date;
|
this.date = date;
|
||||||
this.time = time;
|
this.time = time;
|
||||||
this.reason = reason;
|
this.reason = reason;
|
||||||
this.isPast = isPast;
|
this.isPast = isPast;
|
||||||
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,16 +12,18 @@ public class Medication {
|
|||||||
public String dosage; // e.g. "1 compprimido"
|
public String dosage; // e.g. "1 compprimido"
|
||||||
public String notes;
|
public String notes;
|
||||||
public boolean isTaken;
|
public boolean isTaken;
|
||||||
|
public String userId;
|
||||||
|
|
||||||
// Required empty constructor for Firestore deserialization
|
// Required empty constructor for Firestore deserialization
|
||||||
public Medication() {
|
public Medication() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Medication(String name, String time, String dosage, String notes) {
|
public Medication(String name, String time, String dosage, String notes, String userId) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.time = time;
|
this.time = time;
|
||||||
this.dosage = dosage;
|
this.dosage = dosage;
|
||||||
this.notes = notes;
|
this.notes = notes;
|
||||||
this.isTaken = false;
|
this.isTaken = false;
|
||||||
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ public class AppointmentsViewModel extends AndroidViewModel {
|
|||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
// 1. Fetch Future Appointments
|
// 1. Fetch Future Appointments
|
||||||
db.collection("users").document(userId).collection("appointments")
|
db.collection("consultas")
|
||||||
|
.whereEqualTo("userId", userId)
|
||||||
.whereEqualTo("isPast", false)
|
.whereEqualTo("isPast", false)
|
||||||
.addSnapshotListener((value, error) -> {
|
.addSnapshotListener((value, error) -> {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
@@ -68,7 +69,8 @@ public class AppointmentsViewModel extends AndroidViewModel {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 2. Fetch Past Appointments
|
// 2. Fetch Past Appointments
|
||||||
db.collection("users").document(userId).collection("appointments")
|
db.collection("consultas")
|
||||||
|
.whereEqualTo("userId", userId)
|
||||||
.whereEqualTo("isPast", true)
|
.whereEqualTo("isPast", true)
|
||||||
.addSnapshotListener((value, error) -> {
|
.addSnapshotListener((value, error) -> {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
@@ -113,7 +115,9 @@ public class AppointmentsViewModel extends AndroidViewModel {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("appointments")
|
appointment.userId = userId;
|
||||||
|
|
||||||
|
db.collection("consultas")
|
||||||
.add(appointment)
|
.add(appointment)
|
||||||
.addOnSuccessListener(documentReference -> Log.d("AppointmentsVM", "Appointment added"))
|
.addOnSuccessListener(documentReference -> Log.d("AppointmentsVM", "Appointment added"))
|
||||||
.addOnFailureListener(e -> Log.w("AppointmentsVM", "Error adding appointment", e));
|
.addOnFailureListener(e -> Log.w("AppointmentsVM", "Error adding appointment", e));
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class RegisterActivity extends AppCompatActivity {
|
|||||||
userMap.put("numero_utente", utenteStr);
|
userMap.put("numero_utente", utenteStr);
|
||||||
userMap.put("profilePictureUri", ""); // Init empty
|
userMap.put("profilePictureUri", ""); // Init empty
|
||||||
|
|
||||||
db.collection("usuarios").document(userId)
|
db.collection("utilizadores").document(userId)
|
||||||
.set(userMap)
|
.set(userMap)
|
||||||
.addOnSuccessListener(aVoid -> {
|
.addOnSuccessListener(aVoid -> {
|
||||||
Toast.makeText(RegisterActivity.this, "Conta criada com sucesso!",
|
Toast.makeText(RegisterActivity.this, "Conta criada com sucesso!",
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public class MedicationDialog extends DialogFragment {
|
|||||||
if (listener != null)
|
if (listener != null)
|
||||||
listener.onSave(medicationToEdit);
|
listener.onSave(medicationToEdit);
|
||||||
} else {
|
} else {
|
||||||
Medication newMed = new Medication(name, time, dosage, notes);
|
Medication newMed = new Medication(name, time, dosage, notes, null);
|
||||||
if (listener != null)
|
if (listener != null)
|
||||||
listener.onSave(newMed);
|
listener.onSave(newMed);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ public class MedicationViewModel extends AndroidViewModel {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("medications")
|
db.collection("medicamentos")
|
||||||
|
.whereEqualTo("userId", userId)
|
||||||
.orderBy("time", Query.Direction.ASCENDING)
|
.orderBy("time", Query.Direction.ASCENDING)
|
||||||
.addSnapshotListener((value, error) -> {
|
.addSnapshotListener((value, error) -> {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
@@ -73,7 +74,9 @@ public class MedicationViewModel extends AndroidViewModel {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("medications")
|
medication.userId = userId;
|
||||||
|
|
||||||
|
db.collection("medicamentos")
|
||||||
.add(medication)
|
.add(medication)
|
||||||
.addOnSuccessListener(documentReference -> Log.d("MedicationViewModel", "Medication added"))
|
.addOnSuccessListener(documentReference -> Log.d("MedicationViewModel", "Medication added"))
|
||||||
.addOnFailureListener(e -> Log.w("MedicationViewModel", "Error adding medication", e));
|
.addOnFailureListener(e -> Log.w("MedicationViewModel", "Error adding medication", e));
|
||||||
@@ -84,7 +87,9 @@ public class MedicationViewModel extends AndroidViewModel {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("medications")
|
medication.userId = userId;
|
||||||
|
|
||||||
|
db.collection("medicamentos")
|
||||||
.document(medication.id)
|
.document(medication.id)
|
||||||
.set(medication)
|
.set(medication)
|
||||||
.addOnSuccessListener(aVoid -> Log.d("MedicationViewModel", "Medication updated"))
|
.addOnSuccessListener(aVoid -> Log.d("MedicationViewModel", "Medication updated"))
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class ProfileFragment extends Fragment {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).get()
|
db.collection("utilizadores").document(userId).get()
|
||||||
.addOnSuccessListener(documentSnapshot -> {
|
.addOnSuccessListener(documentSnapshot -> {
|
||||||
if (documentSnapshot.exists()) {
|
if (documentSnapshot.exists()) {
|
||||||
currentUser = documentSnapshot.toObject(User.class);
|
currentUser = documentSnapshot.toObject(User.class);
|
||||||
@@ -175,7 +175,7 @@ public class ProfileFragment extends Fragment {
|
|||||||
currentUser.email = newEmail;
|
currentUser.email = newEmail;
|
||||||
|
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
db.collection("users").document(userId)
|
db.collection("utilizadores").document(userId)
|
||||||
.set(currentUser)
|
.set(currentUser)
|
||||||
.addOnSuccessListener(aVoid -> {
|
.addOnSuccessListener(aVoid -> {
|
||||||
if (emailChanged) {
|
if (emailChanged) {
|
||||||
|
|||||||
@@ -75,7 +75,8 @@ public class ScheduleViewModel extends AndroidViewModel {
|
|||||||
return;
|
return;
|
||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("appointments")
|
db.collection("consultas")
|
||||||
|
.whereEqualTo("userId", userId)
|
||||||
.whereEqualTo("date", date)
|
.whereEqualTo("date", date)
|
||||||
.get()
|
.get()
|
||||||
.addOnCompleteListener(task -> {
|
.addOnCompleteListener(task -> {
|
||||||
@@ -122,9 +123,9 @@ public class ScheduleViewModel extends AndroidViewModel {
|
|||||||
String userId = auth.getCurrentUser().getUid();
|
String userId = auth.getCurrentUser().getUid();
|
||||||
|
|
||||||
if (date != null && time != null) {
|
if (date != null && time != null) {
|
||||||
Appointment appointment = new Appointment("Consulta Geral", date, time, reason, false);
|
Appointment appointment = new Appointment("Consulta Geral", date, time, reason, false, userId);
|
||||||
|
|
||||||
db.collection("users").document(userId).collection("appointments")
|
db.collection("consultas")
|
||||||
.add(appointment)
|
.add(appointment)
|
||||||
.addOnSuccessListener(documentReference -> {
|
.addOnSuccessListener(documentReference -> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -646,7 +646,7 @@ code + .copy-button {
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function configurationCacheProblems() { return (
|
function configurationCacheProblems() { return (
|
||||||
// begin-report-data
|
// begin-report-data
|
||||||
{"diagnostics":[{"locations":[{"path":"/Users/230405/Desktop/papcuida/app/build.gradle","line":7}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.2.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"/Users/230405/Desktop/papcuida/app/build.gradle","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.2.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('viewBinding = <value>') instead."}]]}],"problemsReport":{"totalProblemCount":2,"buildName":"Cuida","requestedTasks":"","documentationLink":"https://docs.gradle.org/9.2.1/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
|
{"diagnostics":[{"locations":[{"path":"/Users/230405/Desktop/papcuida/app/build.gradle","line":7}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.2.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"/Users/230405/Desktop/papcuida/app/build.gradle","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.2.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('viewBinding = <value>') instead."}]]},{"locations":[{"taskPath":":app:compileDebugJavaWithJavac"}],"problem":[{"text":"source value 8 is obsolete and will be removed in a future release"}],"severity":"WARNING","problemDetails":[{"text":"warning: [options] source value 8 is obsolete and will be removed in a future release"}],"contextualLabel":"source value 8 is obsolete and will be removed in a future release","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.warn.option.obsolete.source","displayName":"source value 8 is obsolete and will be removed in a future release"}]},{"locations":[{"taskPath":":app:compileDebugJavaWithJavac"}],"problem":[{"text":"target value 8 is obsolete and will be removed in a future release"}],"severity":"WARNING","problemDetails":[{"text":"warning: [options] target value 8 is obsolete and will be removed in a future release"}],"contextualLabel":"target value 8 is obsolete and will be removed in a future release","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.warn.option.obsolete.target","displayName":"target value 8 is obsolete and will be removed in a future release"}]},{"locations":[{"taskPath":":app:compileDebugJavaWithJavac"}],"problem":[{"text":"To suppress warnings about obsolete options, use -Xlint:-options."}],"severity":"WARNING","problemDetails":[{"text":"warning: [options] To suppress warnings about obsolete options, use -Xlint:-options."}],"contextualLabel":"To suppress warnings about obsolete options, use -Xlint:-options.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.warn.option.obsolete.suppression","displayName":"To suppress warnings about obsolete options, use -Xlint:-options."}]}],"problemsReport":{"totalProblemCount":5,"buildName":"Cuida","requestedTasks":"app:assembleDebug","documentationLink":"https://docs.gradle.org/9.2.1/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
|
||||||
// end-report-data
|
// end-report-data
|
||||||
);}
|
);}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user