From 0e9292ed3200ecb9c87dd42be2127a40a262882b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Ckamon?= <“kamon.sourabie@imt-atlantique.net”>
Date: Sun, 15 Dec 2024 18:17:10 +0100
Subject: [PATCH] =?UTF-8?q?Gestion=20des=20esp=C3=A8ces=20non=20reconnues?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .idea/deploymentTargetSelector.xml            |  6 ++---
 .idea/gradle.xml                              |  1 -
 .../NoSpeciesRecognizedException.java         |  5 ++++
 .../com/example/myapplication/PhotoPage.java  |  2 ++
 .../myapplication/TestModeleTflite.java       | 24 ++++++++++---------
 5 files changed, 23 insertions(+), 15 deletions(-)
 create mode 100644 app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java

diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index c081683..5a8e5f9 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -2,12 +2,12 @@
 <project version="4">
   <component name="deploymentTargetSelector">
     <selectionStates>
-      <SelectionState runConfigName="MainActivity">
+      <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-12-05T10:04:46.998092100Z">
+        <DropdownSelection timestamp="2024-12-15T17:00:55.472861300Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\melvi\.android\avd\Pixel_9_Pro_XL_API_35.avd" />
+              <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\Prosp\.android\avd\Medium_Phone_API_35.avd" />
             </handle>
           </Target>
         </DropdownSelection>
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index ecd50f0..cb865f6 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,6 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
-        <option name="testRunner" value="CHOOSE_PER_TEST" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="gradleJvm" value="jbr-17" />
         <option name="modules">
diff --git a/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java
new file mode 100644
index 0000000..a23697c
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java
@@ -0,0 +1,5 @@
+package com.example.myapplication;
+
+public class NoSpeciesRecognizedException extends Exception{
+
+}
diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java
index b6bc8d8..e65fb29 100644
--- a/app/src/main/java/com/example/myapplication/PhotoPage.java
+++ b/app/src/main/java/com/example/myapplication/PhotoPage.java
@@ -145,6 +145,8 @@ public class PhotoPage extends Fragment {
 
         } catch (IOException e) {
             throw new RuntimeException(e);
+        } catch (NoSpeciesRecognizedException e) {
+            textPredictionOutput.setText("Cette espèce pas encore répertoriée");
         }
     }
 
diff --git a/app/src/main/java/com/example/myapplication/TestModeleTflite.java b/app/src/main/java/com/example/myapplication/TestModeleTflite.java
index 35cbd3b..0a1c267 100644
--- a/app/src/main/java/com/example/myapplication/TestModeleTflite.java
+++ b/app/src/main/java/com/example/myapplication/TestModeleTflite.java
@@ -246,22 +246,24 @@ public class TestModeleTflite {
         return annotateImage(inputImage, boxes);
     }
 
-    public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage){
+    public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage) throws NoSpeciesRecognizedException {
         //ArrayList<String> speciesNames = new ArrayList<>();
         Map<String, Integer> predictionResults = new HashMap<>();
         TensorBuffer outputBuffer = predict(inputImage);
         List<BoundingBox> boxes = processOutput(outputBuffer);
-        for(BoundingBox box:boxes){
-            if(predictionResults.containsKey(box.clsName)){
-                int previousNumber = predictionResults.get(box.clsName);
-                predictionResults.put(box.clsName, previousNumber + 1);
-            }else{
-                predictionResults.put(box.clsName, 1);
-            }
+        if(boxes != null){
+            for(BoundingBox box:boxes){
+                if(predictionResults.containsKey(box.clsName)){
+                    int previousNumber = predictionResults.get(box.clsName);
+                    predictionResults.put(box.clsName, previousNumber + 1);
+                }else{
+                    predictionResults.put(box.clsName, 1);
+                }
 
-        }
-        Bitmap annotatedImage =  annotateImage(inputImage, boxes);
-        return new OutputPredictedImage(annotatedImage, predictionResults);
+            }
+            Bitmap annotatedImage =  annotateImage(inputImage, boxes);
+            return new OutputPredictedImage(annotatedImage, predictionResults);
+        }else throw new NoSpeciesRecognizedException();
     }
 
 
-- 
GitLab