From 4a37a4dc89c721be9ae4b822b2d468ad4a77699b Mon Sep 17 00:00:00 2001 From: FurWaz <fur.waz06@gmail.com> Date: Tue, 13 Dec 2022 13:26:47 +0100 Subject: [PATCH] Added image preloading to avoid lag --- .../java/com/furwaz/roomview/BuildingView.java | 18 ++++++++++++++++++ .../java/com/furwaz/roomview/ZoneView.java | 13 +++++++++++++ 2 files changed, 31 insertions(+) diff --git a/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java b/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java index 63da2cb..ba2e588 100644 --- a/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java +++ b/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java @@ -7,10 +7,16 @@ import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import Common.BuildingManager; import Popups.DirectionsPopup; import Popups.GotoPopup; import Structures.BuildingInfo; +import Structures.PhotoInfo; +import Structures.RoomInfo; +import Structures.ZoneInfo; public class BuildingView extends AppCompatActivity { BuildingInfo building = null; @@ -41,6 +47,18 @@ public class BuildingView extends AppCompatActivity { tile_directions.setOnClickListener(view -> { showDirectionsPopup(); }); + + // pre-load all the building's photos (to make the app faster) + ExecutorService executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> { + for (RoomInfo room: building.getRooms()) { + for (ZoneInfo zone : room.getZones()) { + for (PhotoInfo photo : zone.getPhotos()) { + photo.getBitmap(); + } + } + } + }); } protected void showGotoPopup() { 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 79c3177..afa9b9b 100644 --- a/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java +++ b/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java @@ -16,6 +16,9 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import Common.BuildingManager; import Common.Coord; import Popups.PhotoInfoPopup; @@ -100,6 +103,16 @@ public class ZoneView extends AppCompatActivity { zone = null; } + // pre-load all the zones's photos (to make the app faster) + ExecutorService executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> { + for (ZoneInfo zone : room.getZones()) { + for (PhotoInfo photo : zone.getPhotos()) { + photo.getBitmap(); + } + } + }); + // set the left-right buttons ImageButton btn_l = findViewById(R.id.btn_turn_l); ImageButton btn_r = findViewById(R.id.btn_turn_r); -- GitLab