diff --git a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java index cafdad0290c2d8a36fc7f34cd812577e34123c2d..68522a58304504de07a30ad9990a9ac258ed5cb8 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 462c628d051e9dc7943145810568c53238a504c7..941ed4872c00ed53abeb40ca750619ed01e074a8 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 c6efcfebdaff649c523f2ab8be752b60e74b1177..77b82692ed49d669d961053cb4bfab06aca80c0c 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 f91c90735dae5b280973cbd88d5ccce3c43b2bc1..1bb688380f8adf5189843ca14aaf2ae5cbbb830b 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); + } }