Fix crash with Fields

This commit is contained in:
Michael Mikovsky
2025-02-14 11:44:05 -07:00
parent b264a3bb73
commit f701397577
@@ -155,6 +155,8 @@ public class FieldsFragment extends Fragment {
binding.addButton.setVisibility(View.VISIBLE); binding.addButton.setVisibility(View.VISIBLE);
binding.downButton.setVisibility(View.VISIBLE); binding.downButton.setVisibility(View.VISIBLE);
updateUpDownAvailability();
binding.valueEditContainer.setVisibility(View.GONE); binding.valueEditContainer.setVisibility(View.GONE);
for(int i = 0; i < version_values.length; i++){ for(int i = 0; i < version_values.length; i++){
@@ -167,6 +169,12 @@ public class FieldsFragment extends Fragment {
binding.saveButton.setOnClickListener(this::buttonfunc); binding.saveButton.setOnClickListener(this::buttonfunc);
} }
// Make sure the user cannot move fields when they shouldn't
private void updateUpDownAvailability(){
binding.upButton.setEnabled(selindex != -1 && selindex != 0);
binding.downButton.setEnabled(selindex != -1 && selindex != values[values.length-1].length-1);
}
private void addRow(inputType field){ private void addRow(inputType field){
TableRow tr = getTableRow(field); TableRow tr = getTableRow(field);
@@ -175,6 +183,7 @@ public class FieldsFragment extends Fragment {
tr.setOnClickListener(v -> { tr.setOnClickListener(v -> {
binding.editButton.setVisibility(View.VISIBLE); binding.editButton.setVisibility(View.VISIBLE);
trOnClick(values[values.length-1], tr); trOnClick(values[values.length-1], tr);
updateUpDownAvailability();
}); });
binding.upButton.setOnClickListener(v -> { binding.upButton.setOnClickListener(v -> {
@@ -183,6 +192,7 @@ public class FieldsFragment extends Fragment {
binding.fieldsArea.updateRowOrder(selindex, selindex - 1); binding.fieldsArea.updateRowOrder(selindex, selindex - 1);
selindex -= 1; selindex -= 1;
} }
updateUpDownAvailability();
}); });
binding.downButton.setOnClickListener(v -> { binding.downButton.setOnClickListener(v -> {
@@ -191,6 +201,7 @@ public class FieldsFragment extends Fragment {
binding.fieldsArea.updateRowOrder(selindex, selindex + 1); binding.fieldsArea.updateRowOrder(selindex, selindex + 1);
selindex += 1; selindex += 1;
} }
updateUpDownAvailability();
}); });
} }