From 150d254d75cd7890b91fa6891942cbac4475ece9 Mon Sep 17 00:00:00 2001
From: collinot4u <baptiste.collinot1@etu.univ-lorraine.fr>
Date: Mon, 11 Dec 2023 18:19:00 +0100
Subject: [PATCH] V3

---
 .../visualisation/PieceDetailsActivity.java   | 69 ++++++++++++++++++-
 .../res/layout/activity_piece_details.xml     |  8 +++
 2 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/com/example/visualisation/PieceDetailsActivity.java b/app/src/main/java/com/example/visualisation/PieceDetailsActivity.java
index 4aa0a6b..ffab39f 100644
--- a/app/src/main/java/com/example/visualisation/PieceDetailsActivity.java
+++ b/app/src/main/java/com/example/visualisation/PieceDetailsActivity.java
@@ -1,6 +1,7 @@
 package com.example.visualisation;
 
 import android.Manifest;
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.graphics.Bitmap;
@@ -13,6 +14,7 @@ import android.graphics.PorterDuff;
 import android.graphics.Rect;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.MotionEvent;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.View;
@@ -30,10 +32,12 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
 
     private static final int REQUEST_WRITE_EXTERNAL_STORAGE = 1;
     private TextView nomPiece;
+    private TextView orientation;
     private ImageView imageView;
     private Modele modele;
     private Piece piece;
     private int indicePhoto;
+    private Photo photo;
     private SurfaceView surfaceView;
     private SurfaceHolder surfaceHolder;
     private Paint paint;
@@ -46,6 +50,7 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
         setContentView(R.layout.activity_piece_details);
 
         nomPiece = findViewById(R.id.nomPiece);
+        orientation = findViewById(R.id.orientation);
         imageView = findViewById(R.id.imageView);
 
         indicePhoto = 0;
@@ -55,6 +60,7 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
             modele = (Modele) intent.getSerializableExtra("modele");
             piece = (Piece) intent.getSerializableExtra("piece");
             nomPiece.setText(piece.getNom());
+            photo = piece.getPhoto(indicePhoto);
         }
 
         surfaceView = findViewById(R.id.surfaceView);
@@ -70,6 +76,8 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
         paint.setStyle(Paint.Style.STROKE);
 
         afficherPhoto();
+
+
     }
 
     private void dessinerRect() {
@@ -79,7 +87,7 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
             if (canvas != null) {
                 try {
                     canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
-                    Photo photo = piece.getPhoto(indicePhoto);
+                    photo = piece.getPhoto(indicePhoto);
                     for (Acces acces : photo.getAcces()) {
                         Log.d("a", "" + acces.getPiece());
                         int[] coord = acces.getCoord();
@@ -138,6 +146,7 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
             }
         }
         dessinerRect();
+        setOrientation();
     }
 
     @Override
@@ -155,6 +164,44 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
     @Override
     public void surfaceCreated(@NonNull SurfaceHolder holder) {
         dessinerRect();
+        surfaceView.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                int action = event.getAction();
+                float touchX = event.getX();
+                float touchY = event.getY();
+
+                switch (action) {
+                    case MotionEvent.ACTION_DOWN:
+                        for (Acces acces : photo.getAcces()) {
+                            int[] coord = acces.getCoord();
+                            Rect accesRect = new Rect(coord[0], coord[1], coord[2], coord[3]);
+
+                            if (accesRect.contains((int) touchX, (int) touchY)) {
+                                String accesPiece = acces.getPiece();
+
+                                Piece nouvellePiece = null;
+                                for (Piece p : modele) {
+                                    if (p.getNom().equals(accesPiece)) {
+                                        nouvellePiece = p;
+                                        break;
+                                    }
+                                }
+                                if (nouvellePiece != null) {
+                                    piece = nouvellePiece;
+                                    nomPiece.setText(piece.getNom());
+                                    afficherPhoto();
+                                }
+
+                                break;
+                            }
+                        }
+                        break;
+                }
+
+                return true;
+            }
+        });
     }
 
     @Override
@@ -166,4 +213,24 @@ public class PieceDetailsActivity extends AppCompatActivity implements SurfaceHo
     public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
 
     }
+
+    private void setOrientation() {
+        switch (indicePhoto) {
+            case 0 :
+                orientation.setText("NORD");
+                break;
+            case 1 :
+                orientation.setText("EST");
+                break;
+            case 2 :
+                orientation.setText("SUD");
+                break;
+            case 3 :
+                orientation.setText("OUEST");
+                break;
+            default:
+                orientation.setText("ORIENTATION");
+                break;
+        }
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_piece_details.xml b/app/src/main/res/layout/activity_piece_details.xml
index 908157d..079017a 100644
--- a/app/src/main/res/layout/activity_piece_details.xml
+++ b/app/src/main/res/layout/activity_piece_details.xml
@@ -67,6 +67,14 @@
 
         </LinearLayout>
 
+        <TextView
+            android:id="@+id/orientation"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="Orientation"
+            android:textSize="24sp"
+            android:gravity="center_horizontal" />
+
     </LinearLayout>
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
-- 
GitLab