mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-09 00:37:59 -06:00
Add field deletion
This commit is contained in:
@@ -8,7 +8,6 @@ import android.os.Bundle;
|
|||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@@ -31,7 +30,6 @@ import com.astatin3.scoutingapp2025.types.input.sliderType;
|
|||||||
import com.astatin3.scoutingapp2025.types.input.tallyType;
|
import com.astatin3.scoutingapp2025.types.input.tallyType;
|
||||||
import com.astatin3.scoutingapp2025.types.input.textType;
|
import com.astatin3.scoutingapp2025.types.input.textType;
|
||||||
import com.astatin3.scoutingapp2025.utility.AlertManager;
|
import com.astatin3.scoutingapp2025.utility.AlertManager;
|
||||||
import com.astatin3.scoutingapp2025.utility.DataManager;
|
|
||||||
import com.skydoves.powerspinner.IconSpinnerAdapter;
|
import com.skydoves.powerspinner.IconSpinnerAdapter;
|
||||||
import com.skydoves.powerspinner.IconSpinnerItem;
|
import com.skydoves.powerspinner.IconSpinnerItem;
|
||||||
import com.skydoves.powerspinner.PowerSpinnerView;
|
import com.skydoves.powerspinner.PowerSpinnerView;
|
||||||
@@ -64,6 +62,7 @@ public class FieldsFragment extends Fragment {
|
|||||||
binding.upButton.setVisibility(View.GONE);
|
binding.upButton.setVisibility(View.GONE);
|
||||||
binding.addButton.setVisibility(View.GONE);
|
binding.addButton.setVisibility(View.GONE);
|
||||||
binding.downButton.setVisibility(View.GONE);
|
binding.downButton.setVisibility(View.GONE);
|
||||||
|
binding.deleteButton.setVisibility(View.GONE);
|
||||||
|
|
||||||
binding.valueEditContainer.setVisibility(View.GONE);
|
binding.valueEditContainer.setVisibility(View.GONE);
|
||||||
|
|
||||||
@@ -250,38 +249,95 @@ public class FieldsFragment extends Fragment {
|
|||||||
binding.saveButton.setVisibility(View.VISIBLE);
|
binding.saveButton.setVisibility(View.VISIBLE);
|
||||||
binding.saveButton.setOnClickListener(a -> {
|
binding.saveButton.setOnClickListener(a -> {
|
||||||
System.out.println(fe.save());
|
System.out.println(fe.save());
|
||||||
binding.editButton.setVisibility(View.VISIBLE);
|
defaultVisibility();
|
||||||
binding.addButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.upButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.downButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.ValueEditTable.removeAllViews();
|
|
||||||
binding.valueEditContainer.setVisibility(View.GONE);
|
|
||||||
binding.cancelEditButton.setVisibility(View.GONE);
|
|
||||||
binding.saveButton.setOnClickListener(this::buttonfunc);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.cancelEditButton.setVisibility(View.VISIBLE);
|
binding.cancelEditButton.setVisibility(View.VISIBLE);
|
||||||
binding.cancelEditButton.setOnClickListener(a -> {
|
binding.cancelEditButton.setOnClickListener(a -> {
|
||||||
binding.editButton.setVisibility(View.VISIBLE);
|
defaultVisibility();
|
||||||
binding.addButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.upButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.downButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.ValueEditTable.removeAllViews();
|
|
||||||
binding.valueEditContainer.setVisibility(View.GONE);
|
|
||||||
binding.cancelEditButton.setVisibility(View.GONE);
|
|
||||||
binding.saveButton.setOnClickListener(this::buttonfunc);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
binding.deleteButton.setVisibility(View.VISIBLE);
|
||||||
|
binding.deleteButton.setOnClickListener(a -> {
|
||||||
|
deleteField(field);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void deleteField(inputType field){
|
||||||
|
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
|
||||||
|
alert.setTitle("Warning!");
|
||||||
|
alert.setMessage("Removing a value will result in data being deleted in subsequent field versions!");
|
||||||
|
alert.setNegativeButton("Cancel", null);
|
||||||
|
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
defaultVisibility();
|
||||||
|
|
||||||
|
int oldindex = -1;
|
||||||
|
for(int i = 0; i < values[values.length - 1].length; i++){
|
||||||
|
if(values[values.length - 1][i].equals(field)){
|
||||||
|
oldindex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(oldindex != -1) {
|
||||||
|
System.out.println(Arrays.toString(values[values.length - 1]));
|
||||||
|
binding.fieldsArea.removeViewAt(selindex);
|
||||||
|
binding.fieldsArea.removeElement(oldindex);
|
||||||
|
values[values.length - 1] = removeElement(values[values.length - 1], oldindex);
|
||||||
|
selindex = -1;
|
||||||
|
AlertManager.toast("Removed!");
|
||||||
|
binding.editButton.setVisibility(View.GONE);
|
||||||
|
System.out.println(Arrays.toString(values[values.length - 1]));
|
||||||
|
//System.out.println(values[values.length-1].length);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
alert.setCancelable(true);
|
||||||
|
alert.create().show();
|
||||||
|
}
|
||||||
|
|
||||||
|
public inputType[] removeElement(inputType[] src, int i) {
|
||||||
|
inputType[] newArray = new inputType[src.length - 1];
|
||||||
|
if (i > 0){
|
||||||
|
System.arraycopy(src, 0, newArray, 0, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newArray.length > i){
|
||||||
|
System.arraycopy(src, i + 1, newArray, i, newArray.length - i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return newArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void defaultVisibility() {
|
||||||
|
binding.editButton.setVisibility(View.VISIBLE);
|
||||||
|
binding.addButton.setVisibility(View.VISIBLE);
|
||||||
|
binding.upButton.setVisibility(View.VISIBLE);
|
||||||
|
binding.downButton.setVisibility(View.VISIBLE);
|
||||||
|
binding.ValueEditTable.removeAllViews();
|
||||||
|
binding.valueEditContainer.setVisibility(View.GONE);
|
||||||
|
binding.cancelEditButton.setVisibility(View.GONE);
|
||||||
|
binding.deleteButton.setVisibility(View.GONE);
|
||||||
|
binding.saveButton.setOnClickListener(this::buttonfunc);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void addField(View v) {
|
private void addField(View v) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||||
builder.setTitle("Title");
|
builder.setTitle("Title");
|
||||||
@@ -430,26 +486,12 @@ public class FieldsFragment extends Fragment {
|
|||||||
addRow(field);
|
addRow(field);
|
||||||
|
|
||||||
System.out.println(fe.save());
|
System.out.println(fe.save());
|
||||||
binding.editButton.setVisibility(View.VISIBLE);
|
defaultVisibility();
|
||||||
binding.addButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.upButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.downButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.ValueEditTable.removeAllViews();
|
|
||||||
binding.valueEditContainer.setVisibility(View.GONE);
|
|
||||||
binding.cancelEditButton.setVisibility(View.GONE);
|
|
||||||
binding.saveButton.setOnClickListener(this::buttonfunc);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.cancelEditButton.setVisibility(View.VISIBLE);
|
binding.cancelEditButton.setVisibility(View.VISIBLE);
|
||||||
binding.cancelEditButton.setOnClickListener(a -> {
|
binding.cancelEditButton.setOnClickListener(a -> {
|
||||||
binding.editButton.setVisibility(View.VISIBLE);
|
defaultVisibility();
|
||||||
binding.addButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.upButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.downButton.setVisibility(View.VISIBLE);
|
|
||||||
binding.ValueEditTable.removeAllViews();
|
|
||||||
binding.valueEditContainer.setVisibility(View.GONE);
|
|
||||||
binding.cancelEditButton.setVisibility(View.GONE);
|
|
||||||
binding.saveButton.setOnClickListener(this::buttonfunc);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.util.AttributeSet;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -141,4 +142,17 @@ public class ReorderableTableLayout extends TableLayout {
|
|||||||
public List<Integer> getReorderedIndexes() {
|
public List<Integer> getReorderedIndexes() {
|
||||||
return reorderedIndices;
|
return reorderedIndices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeElement(int unshuffledindex){
|
||||||
|
System.out.println(Arrays.toString(new List[]{reorderedIndices}));
|
||||||
|
|
||||||
|
reorderedIndices.remove(unshuffledindex);
|
||||||
|
|
||||||
|
for (int i = 0; i < reorderedIndices.size(); i++) {
|
||||||
|
if(reorderedIndices.get(i) > unshuffledindex)
|
||||||
|
reorderedIndices.set(i, reorderedIndices.get(i) - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(Arrays.toString(new List[]{reorderedIndices}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -59,9 +59,22 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Cancel"
|
android:text="Cancel"
|
||||||
android:textSize="20sp"
|
android:textSize="20sp"
|
||||||
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent" />
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
tools:visibility="gone" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/delete_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Delete"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
tools:visibility="gone" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/revert_version_button"
|
android:id="@+id/revert_version_button"
|
||||||
@@ -85,13 +98,13 @@
|
|||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:paddingBottom="60dp">
|
||||||
|
|
||||||
<com.astatin3.scoutingapp2025.utility.ReorderableTableLayout
|
<com.astatin3.scoutingapp2025.utility.ReorderableTableLayout
|
||||||
android:id="@+id/fieldsArea"
|
android:id="@+id/fieldsArea"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:layout_marginBottom="60dp">
|
|
||||||
|
|
||||||
</com.astatin3.scoutingapp2025.utility.ReorderableTableLayout>
|
</com.astatin3.scoutingapp2025.utility.ReorderableTableLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|||||||
Reference in New Issue
Block a user