From 70f0eaeb74915cd36974ac854dd01753005f043a Mon Sep 17 00:00:00 2001
From: t22couch <thibaud.couchet@imt-atlantique.net>
Date: Tue, 25 Mar 2025 15:33:10 +0100
Subject: [PATCH] dskfjhdskfhbdfsdkjhfkdjhfjkshd

---
 .../myfirstapplication/EditUserFragment.java  | 31 +++++++++++++++++--
 .../myfirstapplication/MapsFragment.java      |  3 --
 2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/fr/imt_atlantique/myfirstapplication/EditUserFragment.java b/app/src/main/java/fr/imt_atlantique/myfirstapplication/EditUserFragment.java
index 15760fb..5a4447a 100644
--- a/app/src/main/java/fr/imt_atlantique/myfirstapplication/EditUserFragment.java
+++ b/app/src/main/java/fr/imt_atlantique/myfirstapplication/EditUserFragment.java
@@ -1,14 +1,19 @@
 package fr.imt_atlantique.myfirstapplication;
 
+import android.Manifest;
+import android.app.AlertDialog;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.widget.Toolbar;
 import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
 import androidx.fragment.app.Fragment;
 
 import android.text.Layout;
@@ -21,6 +26,8 @@ import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
+import android.widget.Toast;
+
 import com.google.android.material.snackbar.Snackbar;
 import java.util.ArrayList;
 import java.util.Date;
@@ -163,8 +170,16 @@ public class EditUserFragment extends Fragment {
                 resetAllFields();
                 return true;
             } else if (item.getItemId() == R.id.showMaps) {
-                callback.showMaps();
-                return true;
+                if (ContextCompat.checkSelfPermission(requireContext(),
+                        Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+                    grantPermissionAlertDialog();
+                    return true;
+                }else {
+                    callback.showMaps();
+                    return true;
+                }
+
+
             }
             return false;
         });
@@ -211,6 +226,18 @@ public class EditUserFragment extends Fragment {
         validateButton.setOnClickListener(v -> validateAction());
     }
 
+
+    private void grantPermissionAlertDialog() {
+        new AlertDialog.Builder(requireContext())
+                .setTitle(getString(R.string.position_permission_title))
+                .setMessage(getString(R.string.position_permission_message))
+                .setNegativeButton(getString(R.string.cancel), (dialog, which) -> Toast.makeText(requireContext(), getString(R.string.permission_denied), Toast.LENGTH_SHORT)
+                        .show())
+                .setPositiveButton("Ok", (dialog, which) -> ActivityCompat.requestPermissions(requireActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 3))
+                .create()
+                .show();
+    }
+
     private void shareAction() {
         Intent shareIntent = new Intent(Intent.ACTION_SEND);
         shareIntent.setType("text/plain");
diff --git a/app/src/main/java/fr/imt_atlantique/myfirstapplication/MapsFragment.java b/app/src/main/java/fr/imt_atlantique/myfirstapplication/MapsFragment.java
index f5c9ae9..57c67db 100644
--- a/app/src/main/java/fr/imt_atlantique/myfirstapplication/MapsFragment.java
+++ b/app/src/main/java/fr/imt_atlantique/myfirstapplication/MapsFragment.java
@@ -53,9 +53,6 @@ public class MapsFragment extends Fragment {
             if (ContextCompat.checkSelfPermission(requireContext(),
                     Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                 grantPermissionAlertDialog();
-                // if the permission is granted, we can restart the map
-                //restart the fragment
-                requireFragmentManager().beginTransaction().detach(MapsFragment.this).attach(MapsFragment.this).commit();
                 return;
             }
             try {
-- 
GitLab