Skip to content
Snippets Groups Projects
Commit 154fb972 authored by FurWaz's avatar FurWaz
Browse files

Cleaned code, switched to class popups

parent a451139d
No related branches found
No related tags found
No related merge requests found
...@@ -55,6 +55,7 @@ public class BuildingInfo implements Serializable { ...@@ -55,6 +55,7 @@ public class BuildingInfo implements Serializable {
public void setDate(Date date) { public void setDate(Date date) {
this.date = date; this.date = date;
BuildingManager.saveBuilding(this);
} }
public String getName() { public String getName() {
...@@ -62,7 +63,9 @@ public class BuildingInfo implements Serializable { ...@@ -62,7 +63,9 @@ public class BuildingInfo implements Serializable {
} }
public void setName(String name) { public void setName(String name) {
BuildingManager.removeBuilding(this);
this.name = name; this.name = name;
BuildingManager.saveBuilding(this);
} }
public int getNbRooms() { public int getNbRooms() {
... ...
......
...@@ -92,6 +92,7 @@ public class RoomInfo implements Serializable { ...@@ -92,6 +92,7 @@ public class RoomInfo implements Serializable {
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
if (this.building != null) this.building.save();
} }
public void setBuilding(BuildingInfo building) { this.building = building; } public void setBuilding(BuildingInfo building) { this.building = building; }
... ...
......
...@@ -4,6 +4,7 @@ import androidx.appcompat.app.AlertDialog; ...@@ -4,6 +4,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
...@@ -29,11 +30,12 @@ import java.util.List; ...@@ -29,11 +30,12 @@ import java.util.List;
import Common.BuildingManager; import Common.BuildingManager;
import Common.InfoBinding; import Common.InfoBinding;
import Popups.BuildingPopup;
import Structures.BuildingInfo; import Structures.BuildingInfo;
import Views.InfoAdapter; import Views.InfoAdapter;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
InfoAdapter building_adapter = null; InfoAdapter<BuildingInfo> building_adapter = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -45,7 +47,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -45,7 +47,7 @@ public class MainActivity extends AppCompatActivity {
ListView building_lv = findViewById(R.id.building_list); ListView building_lv = findViewById(R.id.building_list);
LinearLayout noDataLayout = findViewById(R.id.no_building_layout); LinearLayout noDataLayout = findViewById(R.id.no_building_layout);
building_adapter = new InfoAdapter(this, BuildingManager.getBuildings(), noDataLayout, R.layout.building_tile); building_adapter = new InfoAdapter<BuildingInfo>(this, BuildingManager.getBuildings(), noDataLayout, R.layout.building_tile);
building_lv.setAdapter(building_adapter); building_lv.setAdapter(building_adapter);
building_adapter.setOnRemoveListener(param -> { building_adapter.setOnRemoveListener(param -> {
...@@ -86,9 +88,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -86,9 +88,7 @@ public class MainActivity extends AppCompatActivity {
}); });
ImageButton add_btn = findViewById(R.id.add_building_btn); ImageButton add_btn = findViewById(R.id.add_building_btn);
add_btn.setOnClickListener(view -> { add_btn.setOnClickListener(this::showAddBuildingPopup);
showAddBuildingPopup(view);
});
} }
@Override @Override
...@@ -98,50 +98,24 @@ public class MainActivity extends AppCompatActivity { ...@@ -98,50 +98,24 @@ public class MainActivity extends AppCompatActivity {
} }
protected void showAddBuildingPopup(View v) { protected void showAddBuildingPopup(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); new BuildingPopup(
AlertDialog dialog = builder.create(); MainActivity.this,
LayoutInflater factory = LayoutInflater.from(MainActivity.this); param -> {
View popup = factory.inflate(R.layout.add_building_popup, null); ((BuildingPopup) param).getInput().setText("");
dialog.setView(popup); return null;
},
dialog.setOnShowListener(dialogInterface -> { param -> {
TextView b_err = popup.findViewById(R.id.building_input_error_msg); ((BuildingPopup) param).dismiss();
EditText b_name = popup.findViewById(R.id.input_building_name); return null;
Button validate_btn = popup.findViewById(R.id.btn_validate_building); },
Button cancel_btn = popup.findViewById(R.id.btn_cancel_building); param -> {
BuildingPopup popup = ((BuildingPopup) param);
validate_btn.setEnabled(false); BuildingManager.addBuilding(new BuildingInfo(popup.getInput().getText().toString(), new Date()));
b_err.setText("");
b_name.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
public void afterTextChanged(Editable editable) {
validate_btn.setEnabled(false);
b_err.setText("");
String input = editable.toString();
if (input.length() == 0) {
b_err.setText(getResources().getString(R.string.specify_building_name));
return;
}
if (BuildingManager.getBuilding(input) != null) {
b_err.setText(getResources().getString(R.string.building_exists));
return;
}
// everything is correct, display the button
validate_btn.setEnabled(true);
}
});
cancel_btn.setOnClickListener(view -> {
dialog.dismiss();
});
validate_btn.setOnClickListener(view -> {
BuildingManager.addBuilding(new BuildingInfo(b_name.getText().toString(), new Date()));
building_adapter.setData(BuildingManager.getBuildings()); building_adapter.setData(BuildingManager.getBuildings());
dialog.dismiss(); popup.dismiss();
}); return null;
}); },
dialog.show(); BuildingPopup.MODE_NEW
).show();
} }
} }
\ No newline at end of file
<vector android:height="40dp" android:tint="@color/blue_500"
android:viewportHeight="24" android:viewportWidth="24"
android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/building_name" android:id="@+id/building_name"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="bold" android:textStyle="bold"
android:text="" android:text=""
...@@ -28,7 +29,8 @@ ...@@ -28,7 +29,8 @@
android:textSize="20sp" android:textSize="20sp"
android:textColor="@color/blue_500" /> android:textColor="@color/blue_500" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_gravity="center" android:layout_gravity="center"
...@@ -38,7 +40,10 @@ ...@@ -38,7 +40,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="normal" android:textStyle="normal"
android:text="" android:text="XX / XX / XXXX"
android:maxLines="1"
android:ellipsize="none"
android:scrollHorizontally="false"
android:textSize="16sp" android:textSize="16sp"
android:textColor="@color/slate_500" /> android:textColor="@color/slate_500" />
</LinearLayout> </LinearLayout>
... ...
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/pathway_name" android:id="@+id/pathway_name"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="bold" android:textStyle="bold"
android:text="" android:text=""
...@@ -28,7 +29,8 @@ ...@@ -28,7 +29,8 @@
android:textSize="20sp" android:textSize="20sp"
android:textColor="@color/blue_500" /> android:textColor="@color/blue_500" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:gravity="end"> android:gravity="end">
... ...
......
...@@ -41,4 +41,7 @@ ...@@ -41,4 +41,7 @@
<string name="zone_exists">La zone existe déjà</string> <string name="zone_exists">La zone existe déjà</string>
<string name="specify_pathway_name">Spécifiez un nom de chemin</string> <string name="specify_pathway_name">Spécifiez un nom de chemin</string>
<string name="pathway_exists">le chemin existe déjà</string> <string name="pathway_exists">le chemin existe déjà</string>
<string name="edit_building">Modifier le bâtiment</string>
<string name="building_invalid">Nom de bâtiment invalide</string>
<string name="edit_room">Modifier la pièce</string>
</resources> </resources>
\ No newline at end of file
...@@ -41,4 +41,7 @@ ...@@ -41,4 +41,7 @@
<string name="zone_exists">Zone already exists</string> <string name="zone_exists">Zone already exists</string>
<string name="specify_pathway_name">Specify a pathway name</string> <string name="specify_pathway_name">Specify a pathway name</string>
<string name="pathway_exists">Pathway already exists</string> <string name="pathway_exists">Pathway already exists</string>
<string name="edit_building">Edit building</string>
<string name="building_invalid">Invalid building name</string>
<string name="edit_room">Edit room</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