diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6cd392f87db3f21a06ca95ff6b9fee2eda6d6854..63578875ac48030ccba7ae57da3df28fe4e148db 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 0000000000000000000000000000000000000000..b213f426dd5593809171f006fa789a896ec1822b --- /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 b6bc8d817977cf783147a6b5750aafaa6fa4b0b5..fb56c744069fa6e074cceacf564feaca08d73ec9 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 0000000000000000000000000000000000000000..48e806cbff52fd6687723df126792b5bd8744d88 --- /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 284d37b580ca16decf5c072973ae4919d87110d0..d3d9676275c9da24d9e3ab700b504f0158e46dc0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,4 +79,10 @@ <string name="personal_data">Traitement des données personnelles</string> <string name="download">Télécharger</string> <string name="mode_sombre">Mode sombre</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