From a84130d44da4ce0ac16dd17e99e9b2ce75df8a1e Mon Sep 17 00:00:00 2001
From: JulietteSCHILLING <juliette.schilling2@etu.univ-lorraine.fr>
Date: Sun, 20 Nov 2022 09:21:55 +0100
Subject: [PATCH] pbm id resolu (enfin !)

---
 .../myhabitat/CreationOuvertureActivity.java  | 80 ++++++++++++-------
 app/src/main/java/habitat/Habitat.java        | 12 +++
 app/src/main/java/habitat/Mur.java            | 14 ++++
 app/src/main/java/habitat/Piece.java          | 13 +++
 4 files changed, 89 insertions(+), 30 deletions(-)

diff --git a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
index cafdad0..68522a5 100644
--- a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
+++ b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
@@ -168,44 +168,64 @@ public class CreationOuvertureActivity extends AppCompatActivity{
         imageViewDepart.setOnTouchListener(new View.OnTouchListener() {
             @Override
             public boolean onTouch(View v, MotionEvent event) {
-                if (event.getPointerCount() == 2) {
-                    float x1, x2, y1, y2;
-                    x1 = event.getX(0);
-                    y1 = event.getY(0);
-                    x2 = event.getX(1);
-                    y2 = event.getY(1);
-                    Log.i("SelectActivity", "################################################# Coords : " + x1 + " | " + y1 + "  &  " + x2 + " | " + y2);
-
-                    rectDepart = new Rect((int) x1, (int) y1, (int) x2, (int) y2);
-                    rectDepart.sort();
-
-                    try {
-                        canvasDepart = surfaceViewDepart.getHolder().lockCanvas();
-                        synchronized (surfaceViewDepart.getHolder()) {
-                            canvasDepart.drawColor(0, PorterDuff.Mode.CLEAR);
-                            canvasDepart.drawRect(rectDepart, myPaint);
+                if (pieceEnCours != null) {
+                    if (event.getPointerCount() == 2) {
+                        float x1, x2, y1, y2;
+                        x1 = event.getX(0);
+                        y1 = event.getY(0);
+                        x2 = event.getX(1);
+                        y2 = event.getY(1);
+                        Log.i("SelectActivity", "################################################# Coords : " + x1 + " | " + y1 + "  &  " + x2 + " | " + y2);
+
+                        if (pieceEnCours.equals(pieceDepart)) {
+                            rectDepart = new Rect((int) x1, (int) y1, (int) x2, (int) y2);
+                            rectDepart.sort();
+
+                            try {
+                                canvasDepart = surfaceViewDepart.getHolder().lockCanvas();
+                                synchronized (surfaceViewDepart.getHolder()) {
+                                    canvasDepart.drawColor(0, PorterDuff.Mode.CLEAR);
+                                    canvasDepart.drawRect(rectDepart, myPaint);
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            } finally {
+                                if (canvasDepart != null) {
+                                    surfaceViewDepart.getHolder().unlockCanvasAndPost(canvasDepart);
+                                }
+                            }
+                        } else {
+                            rectArrivee = new Rect((int) x1, (int) y1, (int) x2, (int) y2);
+                            rectArrivee.sort();
+
+                            try {
+                                canvasDepart = surfaceViewDepart.getHolder().lockCanvas();
+                                synchronized (surfaceViewDepart.getHolder()) {
+                                    canvasDepart.drawColor(0, PorterDuff.Mode.CLEAR);
+                                    canvasDepart.drawRect(rectArrivee, myPaint);
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            } finally {
+                                if (canvasDepart != null) {
+                                    surfaceViewDepart.getHolder().unlockCanvasAndPost(canvasDepart);
+                                }
+                            }
                         }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    } finally {
-                        if (canvasDepart != null) {
-                            surfaceViewDepart.getHolder().unlockCanvasAndPost(canvasDepart);
-                        }
-                    }
 
 
-                    //Log.i("SelectActivity", "################################################# Coords Rect : " + rect.left + " | " + rect.top + "  &  " + rect.right + " | " + rect.bottom);
+                        //Log.i("SelectActivity", "################################################# Coords Rect : " + rect.left + " | " + rect.top + "  &  " + rect.right + " | " + rect.bottom);
 
-                }
-                if (event.getAction() == MotionEvent.ACTION_UP) {
-                    if (rectDepart != null) {
-                        Log.i("Touchup", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ je releve mon doigt");
+                    }
+                    if (event.getAction() == MotionEvent.ACTION_UP) {
+                        if (rectDepart != null) {
+                            Log.i("Touchup", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ je releve mon doigt");
 
-                        //showImage();
+                            //showImage();
 
+                        }
                     }
                 }
-
                 return true;
             }
         });
diff --git a/app/src/main/java/habitat/Habitat.java b/app/src/main/java/habitat/Habitat.java
index 462c628..941ed48 100644
--- a/app/src/main/java/habitat/Habitat.java
+++ b/app/src/main/java/habitat/Habitat.java
@@ -9,6 +9,7 @@ import outils.FabriqueId;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Objects;
 
 public class Habitat implements Parcelable {
 
@@ -109,4 +110,15 @@ public class Habitat implements Parcelable {
     public void reset(){
         pieces.clear();
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(pieces);
+    }
 }
diff --git a/app/src/main/java/habitat/Mur.java b/app/src/main/java/habitat/Mur.java
index c6efcfe..77b8269 100644
--- a/app/src/main/java/habitat/Mur.java
+++ b/app/src/main/java/habitat/Mur.java
@@ -8,6 +8,8 @@ import org.json.JSONException;
 import org.json.JSONObject;
 import outils.FabriqueId;
 
+import java.util.Objects;
+
 public class Mur implements Parcelable {
 
     private Habitat habitat;
@@ -135,4 +137,16 @@ public class Mur implements Parcelable {
         }
         return jsonObject;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        return id == ((Mur) o).getId() && Objects.equals(habitat, ((Mur) o).getHabitat()) && Objects.equals(piece, ((Mur) o).getPiece()) && orientation == ((Mur) o).getOrientation();
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(habitat, piece, orientation, id);
+    }
 }
diff --git a/app/src/main/java/habitat/Piece.java b/app/src/main/java/habitat/Piece.java
index f91c907..1bb6883 100644
--- a/app/src/main/java/habitat/Piece.java
+++ b/app/src/main/java/habitat/Piece.java
@@ -7,6 +7,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.util.ArrayList;
+import java.util.Objects;
 
 public class Piece implements Parcelable {
     private Habitat habitat;
@@ -142,4 +143,16 @@ public class Piece implements Parcelable {
         }
         return jsonObject;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        return Objects.equals(habitat, ((Piece) o).getHabitat()) && Objects.equals(nom, ((Piece) o).getNom()) && Objects.equals(murs, ((Piece) o).getMurs());
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(habitat, nom, murs);
+    }
 }
-- 
GitLab