diff --git a/Sources/app/src/main/java/Structures/RoomInfo.java b/Sources/app/src/main/java/Structures/RoomInfo.java index aec0cde658df6eef209871a76668f327e5d17a5a..df252464588201c3cb5ab793fe8bda6e801bc39b 100644 --- a/Sources/app/src/main/java/Structures/RoomInfo.java +++ b/Sources/app/src/main/java/Structures/RoomInfo.java @@ -104,6 +104,29 @@ public class RoomInfo implements Serializable { this.askForSave(); } + public ZoneInfo getNearestZone(RoomInfo room) { + if (this.getNbZones() == 0) return null; + ZoneInfo selectedZone = this.getZone(0); + int zone_score = 0; + + for (ZoneInfo z: this.zones) { + int z_score = 0; + for (PhotoInfo ph: z.getPhotos()) { + for (PathView pv: ph.getPathViews()) { + PathInfo p = pv.getPath(); + if (p == null) continue; + if (p.getDestination().equals(room)) + z_score++; + } + } + if (z_score > zone_score) { + zone_score = z_score; + selectedZone = z; + } + } + return selectedZone; + } + public void setBuilding(BuildingInfo building) { this.building = building; } public BuildingInfo getBuilding() { diff --git a/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java b/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java index d3e69bf2a11221fd07f874714b41ef484b1a6872..45df174373f00807c2d83c8d1faa00ae55f57479 100644 --- a/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java +++ b/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java @@ -227,7 +227,7 @@ public class ZoneView extends AppCompatActivity { Toast.makeText(this, "Your can't go here.\nThis room doesn't have any zone or photos yet.", Toast.LENGTH_SHORT).show(); return; } - ZoneInfo new_zone = dest.getZone(0); + ZoneInfo new_zone = dest.getNearestZone(this.room); old_zone = this.zone; this.room = dest; this.zone = new_zone;