From bcd9bcc4f2943d68a217cbcc23eba92a94bfc30c Mon Sep 17 00:00:00 2001
From: 230415 <230415@epvc.pt>
Date: Mon, 4 May 2026 14:23:43 +0100
Subject: [PATCH] design
---
app/src/main/AndroidManifest.xml | 10 ++++++
.../example/lifegrid/DefinicoesActivity.java | 33 +++++++++++++++++--
app/src/main/res/xml/file_paths.xml | 5 +++
3 files changed, 46 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/res/xml/file_paths.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f09a15c..1d05aab 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,6 +34,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/lifegrid/DefinicoesActivity.java b/app/src/main/java/com/example/lifegrid/DefinicoesActivity.java
index 7a77fa9..2860e2b 100644
--- a/app/src/main/java/com/example/lifegrid/DefinicoesActivity.java
+++ b/app/src/main/java/com/example/lifegrid/DefinicoesActivity.java
@@ -10,6 +10,10 @@ import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.appcompat.app.AlertDialog;
+import androidx.core.content.FileProvider;
+import java.io.File;
+
import androidx.activity.EdgeToEdge;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
@@ -39,6 +43,8 @@ public class DefinicoesActivity extends AppCompatActivity {
private Uri selectedImageUri;
private ActivityResultLauncher pickImageLauncher;
+ private ActivityResultLauncher takePictureLauncher;
+ private Uri photoUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -69,8 +75,16 @@ public class DefinicoesActivity extends AppCompatActivity {
}
});
- tvChangePhoto.setOnClickListener(v -> pickImageLauncher.launch("image/*"));
- ivProfilePicture.setOnClickListener(v -> pickImageLauncher.launch("image/*"));
+ takePictureLauncher = registerForActivityResult(new ActivityResultContracts.TakePicture(),
+ success -> {
+ if (success) {
+ selectedImageUri = photoUri;
+ ivProfilePicture.setImageURI(selectedImageUri);
+ }
+ });
+
+ tvChangePhoto.setOnClickListener(v -> showPhotoOptionsDialog());
+ ivProfilePicture.setOnClickListener(v -> showPhotoOptionsDialog());
SharedPreferences prefs = getSharedPreferences("LifeGridPrefs", Context.MODE_PRIVATE);
String savedName = prefs.getString("username", "");
@@ -123,4 +137,19 @@ public class DefinicoesActivity extends AppCompatActivity {
finish();
});
}
+ private void showPhotoOptionsDialog() {
+ String[] options = {"Tirar fotografia", "Escolher da galeria de fotos"};
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Alterar fotografia de perfil");
+ builder.setItems(options, (dialog, which) -> {
+ if (which == 0) {
+ File photoFile = new File(getCacheDir(), "profile_photo.jpg");
+ photoUri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", photoFile);
+ takePictureLauncher.launch(photoUri);
+ } else if (which == 1) {
+ pickImageLauncher.launch("image/*");
+ }
+ });
+ builder.show();
+ }
}
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..1338e6c
--- /dev/null
+++ b/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,5 @@
+
+
+
+
+