From 3c34b626abc789a203116fbc4afb3a2cc3d30594 Mon Sep 17 00:00:00 2001 From: Othm1ne <othmaneouhaddou91@gmail.com> Date: Wed, 11 Dec 2024 14:26:18 +0100 Subject: [PATCH] Ajout du formulaire --- app/src/main/AndroidManifest.xml | 3 +- .../OverlayDialogFragmentForm.java | 47 +++++++++ .../com/example/myapplication/PhotoPage.java | 16 +++- app/src/main/res/layout/fragment_form.xml | 96 +++++++++++++++++++ app/src/main/res/values/strings.xml | 6 ++ 5 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java create mode 100644 app/src/main/res/layout/fragment_form.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b5d83a4..3362729 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools"> + xmlns:tools="http://schemas.android.com/tools" + package="com.example.myapplication"> <uses-feature android:name="android.hardware.camera" diff --git a/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java b/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java new file mode 100644 index 0000000..b213f42 --- /dev/null +++ b/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java @@ -0,0 +1,47 @@ +package com.example.myapplication; + +import android.app.Activity; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.Spinner; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; + +public class OverlayDialogFragmentForm extends DialogFragment { + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + // Inflate the layout for this dialog fragment + View view = inflater.inflate(R.layout.fragment_form, container, false); + return inflater.inflate(R.layout.fragment_form, container, false); + } + + @Override + public void onStart() { + super.onStart(); + if (getDialog() != null && getDialog().getWindow() != null) { + getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent); // Transparent background + } + Button goBackButton=(Button) this.getView().findViewById(R.id.submit_form_button); + + View.OnClickListener listenerGoBackButton=new View.OnClickListener() { + @Override + public void onClick(View view) { + goBack(); + } + }; + + goBackButton.setOnClickListener(listenerGoBackButton); + } + + private void goBack() { + this.getDialog().dismiss(); + } +} diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java index b6bc8d8..fb56c74 100644 --- a/app/src/main/java/com/example/myapplication/PhotoPage.java +++ b/app/src/main/java/com/example/myapplication/PhotoPage.java @@ -8,6 +8,7 @@ import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import com.example.myapplication.R; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -21,7 +22,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.Spinner; import android.widget.TextView; import java.io.IOException; @@ -34,6 +37,8 @@ public class PhotoPage extends Fragment { Button cameraButton, folderButton; TextView textPredictionOutput, textProbabilityOutput; ImageView imageView; + FrameLayout formLayout; + int imageSize = 256; @@ -41,7 +46,6 @@ public class PhotoPage extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_photo_page, container, false); - // Initialize UI elements cameraButton = view.findViewById(R.id.camera_button); folderButton = view.findViewById(R.id.folder_button); @@ -50,6 +54,8 @@ public class PhotoPage extends Fragment { imageView = view.findViewById(R.id.main_image_display); Button seeTutoButton = view.findViewById(R.id.see_tuto); + + // Set up button click listeners cameraButton.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.M) @@ -69,6 +75,7 @@ public class PhotoPage extends Fragment { public void onClick(View v) { Intent folderIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(folderIntent, GALLERY_REQUEST_CODE); + } }); @@ -114,6 +121,7 @@ public class PhotoPage extends Fragment { ContentResolver resolver = getContext().getContentResolver(); Bitmap galleryImage = MediaStore.Images.Media.getBitmap(resolver, selectedImageUri); imageView.setImageBitmap(galleryImage); + processImage(galleryImage); // Pass the image for further processing } catch (IOException e) { e.printStackTrace(); @@ -122,6 +130,7 @@ public class PhotoPage extends Fragment { } break; } + showOverlayForm(); } private void processImage(Bitmap bitmap) { @@ -162,5 +171,10 @@ public class PhotoPage extends Fragment { textPredictionOutput.setText("Camera permission denied. Please allow it to use this feature."); } } + + } + public void showOverlayForm() { + OverlayDialogFragmentForm overlayDialogForm = new OverlayDialogFragmentForm(); + overlayDialogForm.show(getParentFragmentManager(), "overlayDialogForm"); } } diff --git a/app/src/main/res/layout/fragment_form.xml b/app/src/main/res/layout/fragment_form.xml new file mode 100644 index 0000000..48e806c --- /dev/null +++ b/app/src/main/res/layout/fragment_form.xml @@ -0,0 +1,96 @@ + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/form_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:background="@drawable/shape" + android:padding="20dp" + tools:context=".PhotoPage"> + + <!-- Title for the form --> + <TextView + android:id="@+id/form_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Saisissez les détails du localisation" + android:textSize="18sp" + android:textColor="#333333" + android:textStyle="bold" + android:layout_gravity="center_horizontal" + android:layout_marginTop="20dp" /> + + <!-- Location Input --> + <EditText + android:id="@+id/location_input" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:hint="Localisation (qu'est ce que vous voyez?)" + android:padding="20dp" + android:textColor="#000000" /> + + <TextView + android:id="@+id/form_zonage" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Saisissez la zone correspondante" + android:textSize="18sp" + android:textColor="#333333" + android:textStyle="bold" + android:layout_gravity="center_horizontal" + android:layout_marginTop="20dp" /> + + <EditText + android:id="@+id/zone_input" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:hint="Dans quelle zone vous situez" + android:padding="20dp" + android:textColor="#000000" /> + <Button + android:id="@+id/form_zoneInfo" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Plus d'info sur les zones" + android:textSize="12sp" + android:textColor="#4B0076" + android:layout_gravity="right" + android:backgroundTint="#FFFFFF" + android:layout_marginTop="5dp" /> + + <!-- Date Picker (Optional) --> + + <!-- Submit Button --> + <TextView + android:id="@+id/form_date" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Saisissez la date de la prise de la photo" + android:textSize="18sp" + android:textColor="#333333" + android:textStyle="bold" + android:layout_gravity="center_horizontal" + android:layout_marginTop="5dp" /> + + <DatePicker + android:id="@+id/date_picker" + android:layout_width="wrap_content" + android:layout_height="250dp" + android:layout_gravity="center_horizontal" + android:layout_marginTop="20dp" /> + + <Button + android:id="@+id/submit_form_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="30dp" + android:text="Envoyer" + android:textColor="#FFFFFF" + android:backgroundTint="#517293" + style="@style/ButtonAppearance" /> +</LinearLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 989067f..7f2584e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,4 +67,10 @@ <string name="galerie">Galerie</string> <string name="especes">Espèce(s) identifiée(s)</string> <string name="see_tuto">Revoir le tutoriel</string> + <string-array name="zone_array"> + <item>Zone 1</item> + <item>Zone 2</item> + <item>Zone 3</item> + <item>Zone 4</item> + </string-array> </resources> \ No newline at end of file -- GitLab