From 1f54ffe84a0f99f00bf4e071a0eaee94d9d44a05 Mon Sep 17 00:00:00 2001
From: ShirosakiMio <852468399@qq.com>
Date: Tue, 20 Feb 2024 18:03:12 +0800
Subject: [PATCH] enable direction style edit
---
.../fcl/control/AddDirectionStyleDialog.java | 14 +++++++++++---
.../fcl/control/DirectionStyleDialog.java | 17 ++++++++++++++++-
.../layout/dialog_manage_direction_style.xml | 9 +++++++++
3 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/FCL/src/main/java/com/tungsten/fcl/control/AddDirectionStyleDialog.java b/FCL/src/main/java/com/tungsten/fcl/control/AddDirectionStyleDialog.java
index 4289573e..01d7e5d2 100644
--- a/FCL/src/main/java/com/tungsten/fcl/control/AddDirectionStyleDialog.java
+++ b/FCL/src/main/java/com/tungsten/fcl/control/AddDirectionStyleDialog.java
@@ -42,19 +42,22 @@ public class AddDirectionStyleDialog extends FCLDialog implements View.OnClickLi
private FCLLinearLayout buttonStyleLayout;
private FCLLinearLayout rockerStyleLayout;
- private ControlDirectionStyle style = new ControlDirectionStyle("");
+ private ControlDirectionStyle style;
private ControlButtonStyle buttonStyle;
+ private boolean isEdit;
public interface Callback {
void onStyleAdd(ControlDirectionStyle style);
}
- public AddDirectionStyleDialog(@NonNull Context context, Callback callback) {
+ public AddDirectionStyleDialog(@NonNull Context context,ControlDirectionStyle beforeStyle, boolean isEdit, Callback callback) {
super(context);
setContentView(R.layout.dialog_add_direction_style);
setCancelable(false);
this.callback = callback;
+ this.style = beforeStyle == null ? new ControlDirectionStyle("") : beforeStyle;
+ this.isEdit = isEdit;
positive = findViewById(R.id.positive);
negative = findViewById(R.id.negative);
@@ -79,6 +82,7 @@ public class AddDirectionStyleDialog extends FCLDialog implements View.OnClickLi
buttonStyleLayout = (FCLLinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.view_direction_style_button, null);
rockerStyleLayout = (FCLLinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.view_direction_style_rocker, null);
+ editName.setText(style.getName());
style.nameProperty().bind(editName.stringProperty());
{
@@ -289,6 +293,10 @@ public class AddDirectionStyleDialog extends FCLDialog implements View.OnClickLi
container.addView(rockerStyleLayout);
}
});
+ if (style.getStyleType() == ControlDirectionStyle.Type.ROCKER) {
+ container.removeAllViewsInLayout();
+ container.addView(rockerStyleLayout);
+ }
}
private String getHex(int color) {
@@ -298,7 +306,7 @@ public class AddDirectionStyleDialog extends FCLDialog implements View.OnClickLi
@Override
public void onClick(View v) {
if (v == positive) {
- if (DirectionStyles.getStyles().stream().anyMatch(it -> it.getName().equals(style.getName()))) {
+ if (!isEdit && DirectionStyles.getStyles().stream().anyMatch(it -> it.getName().equals(style.getName()))) {
Toast.makeText(getContext(), getContext().getString(R.string.style_warning_exist), Toast.LENGTH_SHORT).show();
} else if (StringUtils.isBlank(style.getName())) {
Toast.makeText(getContext(), getContext().getString(R.string.style_warning_name), Toast.LENGTH_SHORT).show();
diff --git a/FCL/src/main/java/com/tungsten/fcl/control/DirectionStyleDialog.java b/FCL/src/main/java/com/tungsten/fcl/control/DirectionStyleDialog.java
index bf266342..a4c4f5d0 100644
--- a/FCL/src/main/java/com/tungsten/fcl/control/DirectionStyleDialog.java
+++ b/FCL/src/main/java/com/tungsten/fcl/control/DirectionStyleDialog.java
@@ -20,6 +20,7 @@ public class DirectionStyleDialog extends FCLDialog implements View.OnClickListe
private final Callback callback;
private FCLButton addStyle;
+ private FCLButton editStyle;
private FCLButton positive;
private HorizontalListView listView;
@@ -37,12 +38,18 @@ public class DirectionStyleDialog extends FCLDialog implements View.OnClickListe
setCancelable(false);
addStyle = findViewById(R.id.add_style);
+ editStyle = findViewById(R.id.edit_style);
positive = findViewById(R.id.positive);
addStyle.setOnClickListener(this);
+ editStyle.setOnClickListener(this);
positive.setOnClickListener(this);
listView = findViewById(R.id.list);
refreshList();
+
+ if (!select) {
+ editStyle.setVisibility(View.GONE);
+ }
}
private DirectionStyleAdapter adapter;
@@ -55,7 +62,15 @@ public class DirectionStyleDialog extends FCLDialog implements View.OnClickListe
@Override
public void onClick(View v) {
if (v == addStyle) {
- AddDirectionStyleDialog dialog = new AddDirectionStyleDialog(getContext(), style -> {
+ AddDirectionStyleDialog dialog = new AddDirectionStyleDialog(getContext(), null, false, style -> {
+ DirectionStyles.addStyle(style);
+ refreshList();
+ });
+ dialog.show();
+ }
+ if (v == editStyle) {
+ AddDirectionStyleDialog dialog = new AddDirectionStyleDialog(getContext(), adapter.getSelectedStyle(), true, style -> {
+ DirectionStyles.removeStyles(adapter.getSelectedStyle());
DirectionStyles.addStyle(style);
refreshList();
});
diff --git a/FCL/src/main/res/layout/dialog_manage_direction_style.xml b/FCL/src/main/res/layout/dialog_manage_direction_style.xml
index 221686d7..9306a53c 100644
--- a/FCL/src/main/res/layout/dialog_manage_direction_style.xml
+++ b/FCL/src/main/res/layout/dialog_manage_direction_style.xml
@@ -35,6 +35,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
+
+