diff --git a/Sources/app/src/main/java/Popups/RemovePopup.java b/Sources/app/src/main/java/Popups/RemovePopup.java new file mode 100644 index 0000000000000000000000000000000000000000..f856b7ec429fbbdaf9324cfe18f9e7671ba3e3ba --- /dev/null +++ b/Sources/app/src/main/java/Popups/RemovePopup.java @@ -0,0 +1,4 @@ +package Popups; + +public class RemovePopup { +} diff --git a/Sources/app/src/main/java/Popups/WalkPopup.java b/Sources/app/src/main/java/Popups/WalkPopup.java index 59fbbb23a978fe89fa2e76a1d1309a6c991eba45..df98a1962e06a0e24e5bb0d361242bd4cf48f2f7 100644 --- a/Sources/app/src/main/java/Popups/WalkPopup.java +++ b/Sources/app/src/main/java/Popups/WalkPopup.java @@ -13,6 +13,9 @@ import androidx.appcompat.app.AlertDialog; import com.furwaz.roomview.R; +import java.util.ArrayList; +import java.util.List; + import Common.Callback; import Structures.PathDoor; import Structures.PathInfo; @@ -27,12 +30,15 @@ public class WalkPopup { Context context = null; RoomInfo room = null; + ZoneInfo zone = null; AlertDialog dialog = null; Spinner w_zone = null; Button validate_btn = null; Button cancel_btn = null; - public WalkPopup(Context context, RoomInfo room, Callback onCreate, Callback onCancel, Callback onValidate, int mode) { + List<ZoneInfo> available_zones = new ArrayList<>(); + + public WalkPopup(Context context, ZoneInfo zone, Callback onCreate, Callback onCancel, Callback onValidate, int mode) { AlertDialog.Builder builder = new AlertDialog.Builder(context); dialog = builder.create(); LayoutInflater factory = LayoutInflater.from(context); @@ -40,7 +46,8 @@ public class WalkPopup { dialog.setView(popup); this.context = context; - this.room = room; + this.zone = zone; + this.room = zone.getRoom(); w_zone = popup.findViewById(R.id.walk_zone); validate_btn = popup.findViewById(R.id.btn_validate_room); @@ -80,10 +87,12 @@ public class WalkPopup { dialog.dismiss(); } - public void setSelectedZone(ZoneInfo zone) { this.w_zone.setSelection(room.getZones().indexOf(zone)); } + public void setSelectedZone(ZoneInfo zone) { + this.w_zone.setSelection(room.getZones().indexOf(zone)); + } public ZoneInfo getSelectedZone() { - return room.getZone( w_zone.getSelectedItemPosition() ); + return available_zones.get( w_zone.getSelectedItemPosition() ); } public void show() { @@ -91,9 +100,17 @@ public class WalkPopup { } protected void updateZonesList() { - String[] str_zones = new String[room.getNbZones()]; - for (int i = 0; i < str_zones.length; i++) - str_zones[i] = room.getZone(i).getName(); + available_zones.clear(); + for (int i = 0; i < room.getNbZones(); i++) { + ZoneInfo z = room.getZone(i); + if (z != zone) available_zones.add(z); + } + + String[] str_zones = new String[available_zones.size()]; + for (int i = 0; i < available_zones.size(); i++) { + str_zones[i] = available_zones.get(i).getName(); + } + w_zone.setAdapter(new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, str_zones)); if (room.getNbZones() == 0) { validate_btn.setEnabled(false); diff --git a/Sources/app/src/main/java/com/furwaz/roomview/PhotoActivity.java b/Sources/app/src/main/java/com/furwaz/roomview/PhotoActivity.java index cf2415238e64e78da591ed9c956cc68586423579..3b96bc6545bf0661854083c7177a63ed69d64e96 100644 --- a/Sources/app/src/main/java/com/furwaz/roomview/PhotoActivity.java +++ b/Sources/app/src/main/java/com/furwaz/roomview/PhotoActivity.java @@ -205,7 +205,7 @@ public class PhotoActivity extends AppCompatActivity implements SensorEventListe protected void showAddWalkPopup() { new WalkPopup( this, - room, + zone, param -> null, param -> { ((WalkPopup) param).dismiss(); @@ -224,7 +224,7 @@ public class PhotoActivity extends AppCompatActivity implements SensorEventListe protected void showEditWalkPopup() { new WalkPopup( this, - room, + zone, param -> { ((WalkPopup) param).setSelectedZone(zone.getWalk(photo.getOrientation()).getDestination()); return null;