From dcbfcb2373cd30a2b477b3b29489fc632b9cb156 Mon Sep 17 00:00:00 2001 From: FurWaz <fur.waz06@gmail.com> Date: Fri, 25 Nov 2022 14:27:27 +0100 Subject: [PATCH] Added smart room's zone movements --- .../src/main/java/Structures/RoomInfo.java | 23 +++++++++++++++++++ .../java/com/furwaz/roomview/ZoneView.java | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Sources/app/src/main/java/Structures/RoomInfo.java b/Sources/app/src/main/java/Structures/RoomInfo.java index aec0cde..df25246 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 d3e69bf..45df174 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; -- GitLab