Skip to content
Snippets Groups Projects
Commit 25782dff authored by FurWaz's avatar FurWaz
Browse files

Added remove validation popup

parent a29a1078
No related branches found
No related tags found
No related merge requests found
package Popups; package Popups;
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import com.furwaz.roomview.R;
import Common.Callback;
import Structures.BuildingInfo;
public class RemovePopup { public class RemovePopup {
public static final int MODE_NEW = 1;
public static final int MODE_EDIT = 2;
Context context = null;
AlertDialog dialog = null;
TextView remove_title = null;
TextView remove_msg = null;
Button validate_btn = null;
Button cancel_btn = null;
public RemovePopup(Context context, Callback onCreate, Callback onCancel, Callback onValidate) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
dialog = builder.create();
LayoutInflater factory = LayoutInflater.from(context);
View popup = factory.inflate(R.layout.remove_popup, null);
dialog.setView(popup);
this.context = context;
dialog.setOnShowListener(dialogInterface -> {
remove_title = popup.findViewById(R.id.remove_title);
remove_msg = popup.findViewById(R.id.remove_msg);
validate_btn = popup.findViewById(R.id.btn_validate_room);
cancel_btn = popup.findViewById(R.id.btn_cancel_room);
onCreate.call(this);
cancel_btn.setOnClickListener(view -> onCancel.call(this));
validate_btn.setOnClickListener(view -> onValidate.call(this));
});
dialog.show();
}
public void dismiss() {
dialog.dismiss();
}
public void setTitleValue(String value) {
remove_title.setText(
context.getResources().getString(R.string.remove_title).replace("{{value}}", value)
);
}
public void setMessageValue(String value) {
remove_msg.setText(
context.getResources().getString(R.string.remove_msg).replace("{{value}}", value)
);
}
public void show() {
dialog.show();
}
} }
...@@ -25,6 +25,7 @@ import java.util.Date; ...@@ -25,6 +25,7 @@ import java.util.Date;
import Common.BuildingManager; import Common.BuildingManager;
import Common.InfoBinding; import Common.InfoBinding;
import Popups.BuildingPopup; import Popups.BuildingPopup;
import Popups.RemovePopup;
import Popups.RoomPopup; import Popups.RoomPopup;
import Structures.BuildingInfo; import Structures.BuildingInfo;
import Structures.RoomInfo; import Structures.RoomInfo;
...@@ -53,7 +54,26 @@ public class BuildingActivity extends AppCompatActivity { ...@@ -53,7 +54,26 @@ public class BuildingActivity extends AppCompatActivity {
room_lv.setAdapter(room_adapter); room_lv.setAdapter(room_adapter);
room_adapter.setOnRemoveListener(param -> { room_adapter.setOnRemoveListener(param -> {
new RemovePopup(
this,
param2 -> {
RemovePopup popup = (RemovePopup) param2;
String value = ((RoomInfo) param).getName();
popup.setTitleValue(value);
popup.setMessageValue(value);
return null;
},
param2 -> {
((RemovePopup) param2).dismiss();
return null;
},
param2 -> {
building.removeRoom((RoomInfo) param); building.removeRoom((RoomInfo) param);
room_adapter.setData(building.getRooms());
((RemovePopup) param2).dismiss();
return null;
}
).show();
return null; return null;
}); });
... ...
......
...@@ -32,7 +32,9 @@ import Common.BuildingManager; ...@@ -32,7 +32,9 @@ import Common.BuildingManager;
import Common.ImageManager; import Common.ImageManager;
import Common.InfoBinding; import Common.InfoBinding;
import Popups.BuildingPopup; import Popups.BuildingPopup;
import Popups.RemovePopup;
import Structures.BuildingInfo; import Structures.BuildingInfo;
import Structures.RoomInfo;
import Views.InfoAdapter; import Views.InfoAdapter;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
...@@ -53,7 +55,26 @@ public class MainActivity extends AppCompatActivity { ...@@ -53,7 +55,26 @@ public class MainActivity extends AppCompatActivity {
building_lv.setAdapter(building_adapter); building_lv.setAdapter(building_adapter);
building_adapter.setOnRemoveListener(param -> { building_adapter.setOnRemoveListener(param -> {
new RemovePopup(
this,
param2 -> {
RemovePopup popup = (RemovePopup) param2;
String value = ((BuildingInfo) param).getName();
popup.setTitleValue(value);
popup.setMessageValue(value);
return null;
},
param2 -> {
((RemovePopup) param2).dismiss();
return null;
},
param2 -> {
BuildingManager.removeBuilding((BuildingInfo) param); BuildingManager.removeBuilding((BuildingInfo) param);
building_adapter.setData(BuildingManager.getBuildings());
((RemovePopup) param2).dismiss();
return null;
}
).show();
return null; return null;
}); });
... ...
......
...@@ -30,6 +30,7 @@ import java.util.Locale; ...@@ -30,6 +30,7 @@ import java.util.Locale;
import Common.BuildingManager; import Common.BuildingManager;
import Common.InfoBinding; import Common.InfoBinding;
import Popups.PathwayPopup; import Popups.PathwayPopup;
import Popups.RemovePopup;
import Popups.RoomPopup; import Popups.RoomPopup;
import Popups.ZonePopup; import Popups.ZonePopup;
import Structures.BuildingInfo; import Structures.BuildingInfo;
...@@ -80,7 +81,29 @@ public class RoomActivity extends AppCompatActivity { ...@@ -80,7 +81,29 @@ public class RoomActivity extends AppCompatActivity {
zone_adapter = new InfoAdapter<ZoneInfo>(this, room.getZones(), noDataLayout, R.layout.zone_tile); zone_adapter = new InfoAdapter<ZoneInfo>(this, room.getZones(), noDataLayout, R.layout.zone_tile);
room_lv.setAdapter(zone_adapter); room_lv.setAdapter(zone_adapter);
zone_adapter.setOnRemoveListener(param -> { room.removeZone((ZoneInfo) param); return null; }); zone_adapter.setOnRemoveListener(param -> {
new RemovePopup(
this,
param2 -> {
RemovePopup popup = (RemovePopup) param2;
String value = ((ZoneInfo) param).getName();
popup.setTitleValue(value);
popup.setMessageValue(value);
return null;
},
param2 -> {
((RemovePopup) param2).dismiss();
return null;
},
param2 -> {
room.removeZone((ZoneInfo) param);
zone_adapter.setData(room.getZones());
((RemovePopup) param2).dismiss();
return null;
}
).show();
return null;
});
zone_adapter.setOnEditListener(param -> { zone_adapter.setOnEditListener(param -> {
Intent intent = new Intent(this, ZoneActivity.class); Intent intent = new Intent(this, ZoneActivity.class);
intent.putExtra("building", BuildingManager.getBuildings().indexOf(building)); intent.putExtra("building", BuildingManager.getBuildings().indexOf(building));
...@@ -101,7 +124,29 @@ public class RoomActivity extends AppCompatActivity { ...@@ -101,7 +124,29 @@ public class RoomActivity extends AppCompatActivity {
pathways_adapter = new InfoAdapter<PathInfo>(this, room.getPaths(), noPathwaysLayout, R.layout.pathway_tile); pathways_adapter = new InfoAdapter<PathInfo>(this, room.getPaths(), noPathwaysLayout, R.layout.pathway_tile);
pathways_lv.setAdapter(pathways_adapter); pathways_lv.setAdapter(pathways_adapter);
pathways_adapter.setOnRemoveListener(param -> { room.removePath((PathInfo) param); return null; }); pathways_adapter.setOnRemoveListener(param -> {
new RemovePopup(
this,
param2 -> {
RemovePopup popup = (RemovePopup) param2;
String value = ((PathInfo) param).getName();
popup.setTitleValue(value);
popup.setMessageValue(value);
return null;
},
param2 -> {
((RemovePopup) param2).dismiss();
return null;
},
param2 -> {
room.removePath((PathInfo) param);
pathways_adapter.setData(room.getPaths());
((RemovePopup) param2).dismiss();
return null;
}
).show();
return null;
});
pathways_adapter.setOnEditListener(param -> { pathways_adapter.setOnEditListener(param -> {
Intent intent = new Intent(this, PathwayActivity.class); Intent intent = new Intent(this, PathwayActivity.class);
intent.putExtra("building", BuildingManager.getBuildings().indexOf(building)); intent.putExtra("building", BuildingManager.getBuildings().indexOf(building));
... ...
......
...@@ -15,9 +15,11 @@ import android.widget.Toast; ...@@ -15,9 +15,11 @@ import android.widget.Toast;
import Common.BuildingManager; import Common.BuildingManager;
import Common.InfoBinding; import Common.InfoBinding;
import Popups.PhotoPopup; import Popups.PhotoPopup;
import Popups.RemovePopup;
import Popups.ZonePopup; import Popups.ZonePopup;
import Structures.BuildingInfo; import Structures.BuildingInfo;
import Structures.Orientation; import Structures.Orientation;
import Structures.PathInfo;
import Structures.PhotoInfo; import Structures.PhotoInfo;
import Structures.RoomInfo; import Structures.RoomInfo;
import Structures.ZoneInfo; import Structures.ZoneInfo;
...@@ -51,8 +53,27 @@ public class ZoneActivity extends AppCompatActivity { ...@@ -51,8 +53,27 @@ public class ZoneActivity extends AppCompatActivity {
photo_lv.setAdapter(photo_adapter); photo_lv.setAdapter(photo_adapter);
photo_adapter.setOnRemoveListener(param -> { photo_adapter.setOnRemoveListener(param -> {
new RemovePopup(
this,
param2 -> {
RemovePopup popup = (RemovePopup) param2;
String value = stringifyOrientation(((PhotoInfo) param).getOrientation());
popup.setTitleValue(value);
popup.setMessageValue(value);
return null;
},
param2 -> {
((RemovePopup) param2).dismiss();
return null;
},
param2 -> {
zone.removePhoto((PhotoInfo) param); zone.removePhoto((PhotoInfo) param);
checkForAddButton(); checkForAddButton();
photo_adapter.setData(zone.getPhotos());
((RemovePopup) param2).dismiss();
return null;
}
).show();
return null; return null;
}); });
photo_adapter.setOnEditListener(param -> { photo_adapter.setOnEditListener(param -> {
... ...
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/slate_50">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@color/blue_500"
android:layout_marginBottom="20dp">
<TextView
android:id="@+id/remove_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/slate_200"
android:text="@string/remove_title"
android:textColor="@color/blue_500"
android:textSize="20sp"
android:layout_marginBottom="4dp"
android:textStyle="bold"
android:padding="10dp"
/>
</LinearLayout>
<TextView
android:id="@+id/remove_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/remove_msg"
android:textStyle="bold"
android:textColor="@color/slate_600"
android:textSize="16sp"
android:layout_marginStart="8sp"
android:layout_marginEnd="8sp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:padding="8dp">
<Button
android:id="@+id/btn_cancel_room"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/blue_500"
style="@style/Widget.AppCompat.Button.Borderless"
android:text="@string/cancel"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right">
<Button
android:id="@+id/btn_validate_room"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/red_500"
android:text="@string/remove"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
...@@ -81,4 +81,6 @@ ...@@ -81,4 +81,6 @@
<string name="walk_zone">Zone correspondante</string> <string name="walk_zone">Zone correspondante</string>
<string name="edit_walk">Modifier le déplacement</string> <string name="edit_walk">Modifier le déplacement</string>
<string name="no_zones_available">Aucune zone disponible</string> <string name="no_zones_available">Aucune zone disponible</string>
<string name="remove_title">Supprimer {{value}} ?</string>
<string name="remove_msg">"Voulez-vous supprimer {{value}} ?\nCet element sera supprimé pour toujours."</string>
</resources> </resources>
\ No newline at end of file
...@@ -81,4 +81,6 @@ ...@@ -81,4 +81,6 @@
<string name="walk_zone">Corresponding zone</string> <string name="walk_zone">Corresponding zone</string>
<string name="edit_walk">Edit movement</string> <string name="edit_walk">Edit movement</string>
<string name="no_zones_available">No zones available</string> <string name="no_zones_available">No zones available</string>
<string name="remove_title">Remove {{value}} ?</string>
<string name="remove_msg">Do you want to remove {{value}} ?\nIt will be deleted for ever.</string>
</resources> </resources>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment