Skip to content
Snippets Groups Projects
Commit 0bf62496 authored by FurWaz's avatar FurWaz
Browse files

Added building and room name edit popup

parent 154fb972
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@ import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SearchView;
......@@ -23,12 +24,14 @@ import java.util.Date;
import Common.BuildingManager;
import Common.InfoBinding;
import Popups.BuildingPopup;
import Popups.RoomPopup;
import Structures.BuildingInfo;
import Structures.RoomInfo;
import Views.InfoAdapter;
public class BuildingActivity extends AppCompatActivity {
InfoAdapter room_adapter = null;
InfoAdapter<RoomInfo> room_adapter = null;
BuildingInfo building;
@Override
......@@ -46,7 +49,7 @@ public class BuildingActivity extends AppCompatActivity {
ListView room_lv = findViewById(R.id.room_list);
LinearLayout noDataLayout = findViewById(R.id.no_room_layout);
room_adapter = new InfoAdapter(this, building.getRooms(), noDataLayout, R.layout.room_tile);
room_adapter = new InfoAdapter<RoomInfo>(this, building.getRooms(), noDataLayout, R.layout.room_tile);
room_lv.setAdapter(room_adapter);
room_adapter.setOnRemoveListener(param -> {
......@@ -85,9 +88,10 @@ public class BuildingActivity extends AppCompatActivity {
});
ImageButton add_btn = findViewById(R.id.add_room_btn);
add_btn.setOnClickListener(view -> {
showAddRoomPopup(view);
});
add_btn.setOnClickListener(this::showAddRoomPopup);
ImageButton edit_btn = findViewById(R.id.edit_building_name);
edit_btn.setOnClickListener(view -> showEditPopup());
TextView building_tv_name = findViewById(R.id.building_name);
building_tv_name.setText(building.getName());
......@@ -99,51 +103,48 @@ public class BuildingActivity extends AppCompatActivity {
room_adapter.setData(building.getRooms());
}
protected void showEditPopup() {
new BuildingPopup(
BuildingActivity.this,
param -> {
((BuildingPopup) param).getInput().setText(building.getName());
return null;
},
param -> {
((BuildingPopup) param).dismiss();
return null;
},
param -> {
BuildingPopup popup = ((BuildingPopup) param);
building.setName(popup.getInput().getText().toString());
((TextView) findViewById(R.id.building_name)).setText(building.getName());
popup.dismiss();
return null;
},
BuildingPopup.MODE_EDIT
).show();
}
protected void showAddRoomPopup(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(BuildingActivity.this);
AlertDialog dialog = builder.create();
LayoutInflater factory = LayoutInflater.from(BuildingActivity.this);
View popup = factory.inflate(R.layout.add_room_popup, null);
dialog.setView(popup);
dialog.setOnShowListener(dialogInterface -> {
TextView r_err = popup.findViewById(R.id.room_input_error_msg);
EditText r_name = popup.findViewById(R.id.input_room_name);
Button validate_btn = popup.findViewById(R.id.btn_validate_room);
Button cancel_btn = popup.findViewById(R.id.btn_cancel_room);
validate_btn.setEnabled(false);
r_err.setText("");
r_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);
r_err.setText("");
String input = editable.toString();
if (input.length() == 0) {
r_err.setText(getResources().getString(R.string.specify_room_name));
return;
}
if (building.getRoom(input) != null) {
r_err.setText(getResources().getString(R.string.room_exists));
return;
}
// everything is correct, display the button
validate_btn.setEnabled(true);
}
});
cancel_btn.setOnClickListener(view -> {
dialog.dismiss();
});
validate_btn.setOnClickListener(view -> {
building.addRoom(new RoomInfo(r_name.getText().toString()));
room_adapter.setData(building.getRooms());
dialog.dismiss();
});
});
dialog.show();
new RoomPopup(
BuildingActivity.this,
building,
param -> {
((RoomPopup) param).getInput().setText("");
return null;
},
param -> {
((RoomPopup) param).dismiss();
return null;
},
param -> {
RoomPopup popup = ((RoomPopup) param);
building.addRoom(new RoomInfo(popup.getInput().getText().toString()));
room_adapter.setData(building.getRooms());
popup.dismiss();
return null;
},
RoomPopup.MODE_NEW
).show();
}
}
\ No newline at end of file
......@@ -28,6 +28,7 @@ import java.util.Locale;
import Common.BuildingManager;
import Common.InfoBinding;
import Popups.RoomPopup;
import Structures.BuildingInfo;
import Structures.PathDoor;
import Structures.PathInfo;
......@@ -142,6 +143,9 @@ public class RoomActivity extends AppCompatActivity {
else showAddZonePopup(view);
});
ImageButton edit_btn = findViewById(R.id.edit_room_name);
edit_btn.setOnClickListener(view -> showEditPopup());
TextView room_tv_name = findViewById(R.id.room_name);
room_tv_name.setText(room.getName());
}
......@@ -193,6 +197,30 @@ public class RoomActivity extends AppCompatActivity {
tv.setPadding(padding, padding, padding, padding);
}
protected void showEditPopup() {
new RoomPopup(
this,
building,
param -> {
((RoomPopup) param).getInput().setText(room.getName());
return null;
},
param -> {
((RoomPopup) param).dismiss();
return null;
},
param -> {
RoomPopup popup = ((RoomPopup) param);
String newName = popup.getInput().getText().toString();
((TextView) findViewById(R.id.room_name)).setText(newName);
room.setName(newName);
popup.dismiss();
return null;
},
RoomPopup.MODE_EDIT
).show();
}
protected void showAddZonePopup(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(RoomActivity.this);
AlertDialog dialog = builder.create();
......
......@@ -11,20 +11,33 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/slate_50">
<TextView
android:id="@+id/building_name"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="20dp"
android:paddingTop="20dp"
android:textSize="40sp"
android:text=""
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:textStyle="bold"
android:textColor="@color/blue_500"/>
android:layout_height="wrap_content">
<TextView
android:id="@+id/building_name"
android:layout_width="0dp"
android:layout_weight="6"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="20dp"
android:paddingTop="20dp"
android:textSize="40sp"
android:text=""
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:textStyle="bold"
android:textColor="@color/blue_500"/>
<ImageButton
android:id="@+id/edit_building_name"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="#00000000"
android:src="@drawable/ic_baseline_edit_24"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
......
......@@ -11,20 +11,34 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/slate_50">
<TextView
android:id="@+id/room_name"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="20dp"
android:paddingTop="20dp"
android:textSize="40sp"
android:text=""
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:textStyle="bold"
android:textColor="@color/blue_500"/>
android:orientation="horizontal">
<TextView
android:id="@+id/room_name"
android:layout_width="0dp"
android:layout_weight="6"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="20dp"
android:paddingTop="20dp"
android:textSize="40sp"
android:text=""
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true"
android:textStyle="bold"
android:textColor="@color/blue_500"/>
<ImageButton
android:id="@+id/edit_room_name"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="#00000000"
android:src="@drawable/ic_baseline_edit_24"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
......
......@@ -18,10 +18,11 @@
android:layout_marginBottom="20dp">
<TextView
android:id="@+id/building_popup_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/slate_200"
android:text="@string/new_building"
android:text=""
android:textColor="@color/blue_500"
android:textSize="20sp"
android:layout_marginBottom="4dp"
......
......@@ -18,6 +18,7 @@
android:layout_marginBottom="20dp">
<TextView
android:id="@+id/room_popup_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/slate_200"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment