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 {
public void setDate(Date date) {
this.date = date;
BuildingManager.saveBuilding(this);
}
public String getName() {
......@@ -62,7 +63,9 @@ public class BuildingInfo implements Serializable {
}
public void setName(String name) {
BuildingManager.removeBuilding(this);
this.name = name;
BuildingManager.saveBuilding(this);
}
public int getNbRooms() {
......
......@@ -92,6 +92,7 @@ public class RoomInfo implements Serializable {
public void setName(String name) {
this.name = name;
if (this.building != null) this.building.save();
}
public void setBuilding(BuildingInfo building) { this.building = building; }
......
......@@ -4,6 +4,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
......@@ -29,11 +30,12 @@ import java.util.List;
import Common.BuildingManager;
import Common.InfoBinding;
import Popups.BuildingPopup;
import Structures.BuildingInfo;
import Views.InfoAdapter;
public class MainActivity extends AppCompatActivity {
InfoAdapter building_adapter = null;
InfoAdapter<BuildingInfo> building_adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -45,7 +47,7 @@ public class MainActivity extends AppCompatActivity {
ListView building_lv = findViewById(R.id.building_list);
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_adapter.setOnRemoveListener(param -> {
......@@ -86,9 +88,7 @@ public class MainActivity extends AppCompatActivity {
});
ImageButton add_btn = findViewById(R.id.add_building_btn);
add_btn.setOnClickListener(view -> {
showAddBuildingPopup(view);
});
add_btn.setOnClickListener(this::showAddBuildingPopup);
}
@Override
......@@ -98,50 +98,24 @@ public class MainActivity extends AppCompatActivity {
}
protected void showAddBuildingPopup(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
AlertDialog dialog = builder.create();
LayoutInflater factory = LayoutInflater.from(MainActivity.this);
View popup = factory.inflate(R.layout.add_building_popup, null);
dialog.setView(popup);
dialog.setOnShowListener(dialogInterface -> {
TextView b_err = popup.findViewById(R.id.building_input_error_msg);
EditText b_name = popup.findViewById(R.id.input_building_name);
Button validate_btn = popup.findViewById(R.id.btn_validate_building);
Button cancel_btn = popup.findViewById(R.id.btn_cancel_building);
validate_btn.setEnabled(false);
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()));
new BuildingPopup(
MainActivity.this,
param -> {
((BuildingPopup) param).getInput().setText("");
return null;
},
param -> {
((BuildingPopup) param).dismiss();
return null;
},
param -> {
BuildingPopup popup = ((BuildingPopup) param);
BuildingManager.addBuilding(new BuildingInfo(popup.getInput().getText().toString(), new Date()));
building_adapter.setData(BuildingManager.getBuildings());
dialog.dismiss();
});
});
dialog.show();
popup.dismiss();
return null;
},
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 @@
android:orientation="horizontal">
<TextView
android:id="@+id/building_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text=""
......@@ -28,7 +29,8 @@
android:textSize="20sp"
android:textColor="@color/blue_500" />
<LinearLayout
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
......@@ -38,7 +40,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="normal"
android:text=""
android:text="XX / XX / XXXX"
android:maxLines="1"
android:ellipsize="none"
android:scrollHorizontally="false"
android:textSize="16sp"
android:textColor="@color/slate_500" />
</LinearLayout>
......
......@@ -18,7 +18,8 @@
android:orientation="horizontal">
<TextView
android:id="@+id/pathway_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text=""
......@@ -28,7 +29,8 @@
android:textSize="20sp"
android:textColor="@color/blue_500" />
<LinearLayout
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="end">
......
......@@ -41,4 +41,7 @@
<string name="zone_exists">La zone existe déjà</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="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>
\ No newline at end of file
......@@ -41,4 +41,7 @@
<string name="zone_exists">Zone already exists</string>
<string name="specify_pathway_name">Specify a pathway name</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>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment