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"/> + +