mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-09 00:37:59 -06:00
Fix field updating issue
This commit is contained in:
@@ -28,15 +28,15 @@ public class ScoutingDataWriter {
|
||||
switch (data[i].getValueType()){
|
||||
case NUM:
|
||||
bb.addInt((int) data[i].forceGetValue());
|
||||
System.out.println("Saved INT: " + data[i].getName() + ", ("+ data[i].get() +")");
|
||||
System.out.println("Saved INT: " + data[i].getUUID() + ", ("+ data[i].get() +")");
|
||||
break;
|
||||
case STRING:
|
||||
bb.addString((String) data[i].forceGetValue());
|
||||
System.out.println("Saved STR: " + data[i].getName() + ", ("+ data[i].get() +")");
|
||||
System.out.println("Saved STR: " + data[i].getUUID() + ", ("+ data[i].get() +")");
|
||||
break;
|
||||
case NUMARR:
|
||||
bb.addIntArray((int[]) data[i].forceGetValue());
|
||||
System.out.println("Saved INT Array: " + data[i].getName() + ", ("+ Arrays.toString((int[]) data[i].get()) +")");
|
||||
System.out.println("Saved INT Array: " + data[i].getUUID() + ", ("+ Arrays.toString((int[]) data[i].get()) +")");
|
||||
}
|
||||
}
|
||||
byte[] bytes = bb.build();
|
||||
@@ -69,19 +69,19 @@ public class ScoutingDataWriter {
|
||||
for(int i = 0; i < values[version].length; i++){
|
||||
switch (objects.get(i+2).getType()){
|
||||
case 1: // Int
|
||||
dataTypes[i] = IntType.newNull(values[version][i].name);
|
||||
dataTypes[i] = IntType.newNull(values[version][i].UUID);
|
||||
dataTypes[i].forceSetValue(objects.get(i+2).get());
|
||||
System.out.println("Loaded INT: " + values[version][i].name + ", ("+ dataTypes[i].get() +")");
|
||||
System.out.println("Loaded INT: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ dataTypes[i].get() +")");
|
||||
break;
|
||||
case 2: // String
|
||||
dataTypes[i] = StringType.newNull(values[version][i].name);
|
||||
dataTypes[i] = StringType.newNull(values[version][i].UUID);
|
||||
dataTypes[i].forceSetValue(objects.get(i+2).get());
|
||||
System.out.println("Loaded STR: " + values[version][i].name + ", ("+ dataTypes[i].get() +")");
|
||||
System.out.println("Loaded STR: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ dataTypes[i].get() +")");
|
||||
break;
|
||||
case 3: // Int array
|
||||
dataTypes[i] = IntArrType.newNull(values[version][i].name);
|
||||
dataTypes[i] = IntArrType.newNull(values[version][i].UUID);
|
||||
dataTypes[i].forceSetValue(objects.get(i+2).get());
|
||||
System.out.println("Loaded intARR: " + values[version][i].name + ", ("+ Arrays.toString((int[])dataTypes[i].get()) +")");
|
||||
System.out.println("Loaded intARR: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ Arrays.toString((int[])dataTypes[i].get()) +")");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package com.ridgebotics.ridgescout.scoutingData.transfer;
|
||||
|
||||
public class CreateTransferType extends TransferType {
|
||||
public transferValue getType() {return transferValue.CREATE;}
|
||||
public CreateTransferType(String name){
|
||||
super(name);
|
||||
public CreateTransferType(String UUID){
|
||||
super(UUID);
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -2,7 +2,7 @@ package com.ridgebotics.ridgescout.scoutingData.transfer;
|
||||
|
||||
public class DirectTransferType extends TransferType {
|
||||
public transferValue getType() {return transferValue.DIRECT;}
|
||||
public DirectTransferType(String name){
|
||||
super(name);
|
||||
public DirectTransferType(String UUID){
|
||||
super(UUID);
|
||||
}
|
||||
}
|
||||
|
||||
+11
-9
@@ -7,15 +7,15 @@ public abstract class TransferType {
|
||||
DIRECT,
|
||||
CREATE
|
||||
}
|
||||
public String name;
|
||||
public String UUID;
|
||||
public abstract transferValue getType();
|
||||
public TransferType(String name){
|
||||
this.name = name;
|
||||
public TransferType(String UUID){
|
||||
this.UUID = UUID;
|
||||
}
|
||||
|
||||
private static FieldType get_input_type_by_name(FieldType[] values, String name){
|
||||
private static FieldType get_input_type_by_UUID(FieldType[] values, String UUID){
|
||||
for(FieldType it : values){
|
||||
if(it.name.equals(name)){
|
||||
if(it.UUID.equals(UUID)){
|
||||
return it;
|
||||
}
|
||||
}
|
||||
@@ -25,13 +25,15 @@ public abstract class TransferType {
|
||||
public static TransferType[][] get_transfer_values(FieldType[][] values) {
|
||||
TransferType[][] output = new TransferType[values.length][];
|
||||
for(int a = 1; a < values.length; a++){
|
||||
|
||||
TransferType[] v = new TransferType[values[a].length];
|
||||
|
||||
for(int b = 0; b < values[a].length; b++){
|
||||
String name = values[a][b].name;
|
||||
if(get_input_type_by_name(values[a-1], name) != null){
|
||||
v[b] = new DirectTransferType(name);
|
||||
String UUID = values[a][b].UUID;
|
||||
if(get_input_type_by_UUID(values[a-1], UUID) != null){
|
||||
v[b] = new DirectTransferType(UUID);
|
||||
}else{
|
||||
v[b] = new CreateTransferType(name);
|
||||
v[b] = new CreateTransferType(UUID);
|
||||
}
|
||||
}
|
||||
output[a-1] = v;
|
||||
|
||||
@@ -36,9 +36,6 @@ public class ScoutingArray {
|
||||
case DIRECT:
|
||||
new_values[i] = direct_transfer((DirectTransferType) tv);
|
||||
continue;
|
||||
// case RENAME:
|
||||
// new_values[i] = rename_transfer((renameTransferType) tv);
|
||||
// continue;
|
||||
case CREATE:
|
||||
new_values[i] = create_transfer((CreateTransferType) tv);
|
||||
continue;
|
||||
@@ -50,18 +47,18 @@ public class ScoutingArray {
|
||||
}
|
||||
}
|
||||
|
||||
private FieldType get_input_type_by_name(int version, String name){
|
||||
private FieldType get_input_type_by_UUID(int version, String UUID){
|
||||
for(FieldType it : values[version]){
|
||||
if(it.name.equals(name)){
|
||||
if(it.UUID.equals(UUID)){
|
||||
return it;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private DataType get_data_type_by_name(String name){
|
||||
private DataType get_data_type_by_UUID(String UUID){
|
||||
for(DataType dt : array){
|
||||
if(dt.getName().equals(name)){
|
||||
if(dt.getUUID().equals(UUID)){
|
||||
return dt;
|
||||
}
|
||||
}
|
||||
@@ -69,7 +66,7 @@ public class ScoutingArray {
|
||||
}
|
||||
|
||||
private DataType direct_transfer(DirectTransferType tv){
|
||||
return get_data_type_by_name(tv.name);
|
||||
return get_data_type_by_UUID(tv.UUID);
|
||||
}
|
||||
|
||||
// private dataType rename_transfer(renameTransferType tv){
|
||||
@@ -79,12 +76,12 @@ public class ScoutingArray {
|
||||
// }
|
||||
|
||||
private DataType create_transfer(CreateTransferType tv){
|
||||
FieldType it = get_input_type_by_name(version+1, tv.name);
|
||||
FieldType it = get_input_type_by_UUID(version+1, tv.UUID);
|
||||
switch (it.getValueType()){
|
||||
case NUM:
|
||||
return IntType.newNull(it.name);
|
||||
return IntType.newNull(it.UUID);
|
||||
case STRING:
|
||||
return StringType.newNull(it.name);
|
||||
return StringType.newNull(it.UUID);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ public abstract class DataType {
|
||||
}
|
||||
|
||||
private Object value;
|
||||
private final String name;
|
||||
private final String UUID;
|
||||
|
||||
public abstract valueTypes getValueType();
|
||||
|
||||
@@ -24,9 +24,9 @@ public abstract class DataType {
|
||||
public abstract boolean isNull();
|
||||
// public abstract boolean isUnselected();
|
||||
|
||||
public String getName() {return name;}
|
||||
public String getUUID() {return UUID;}
|
||||
|
||||
public DataType(String name){
|
||||
this.name = name;
|
||||
public DataType(String UUID){
|
||||
this.UUID = UUID;
|
||||
}
|
||||
}
|
||||
@@ -146,7 +146,7 @@ public class TeamsFragment extends Fragment {
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
));
|
||||
tv.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
tv.setText(psda.data.array[a].getName());
|
||||
tv.setText(pit_latest_values[a].name);
|
||||
tv.setTextSize(25);
|
||||
|
||||
if(psda.data.array[a].isNull()){
|
||||
@@ -251,7 +251,7 @@ public class TeamsFragment extends Fragment {
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
));
|
||||
tv.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
tv.setText(psda.data.array[i].getName());
|
||||
tv.setText(match_latest_values[i].name);
|
||||
tv.setTextSize(25);
|
||||
|
||||
if (psda.data.array[i].isNull()) {
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
package com.ridgebotics.ridgescout.ui.settings;
|
||||
|
||||
import static com.ridgebotics.ridgescout.utility.DataManager.match_values;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -151,6 +147,7 @@ public class FieldsFragment extends Fragment {
|
||||
binding.fieldsArea.addView(fd);
|
||||
}
|
||||
private void updateRowOrder(){
|
||||
enableSaving();
|
||||
binding.fieldsArea.removeAllViews();
|
||||
for(int i = 0; i < views.size(); i++){
|
||||
binding.fieldsArea.addView(views.get(i));
|
||||
@@ -158,7 +155,6 @@ public class FieldsFragment extends Fragment {
|
||||
|
||||
binding.upButton.setEnabled(index != -1 && index > 0);
|
||||
binding.downButton.setEnabled(index != -1 && index < views.size()-1);
|
||||
enableEditing();
|
||||
}
|
||||
|
||||
private void setFocus(FieldDisplay fd, boolean scroll){
|
||||
@@ -201,7 +197,7 @@ public class FieldsFragment extends Fragment {
|
||||
alert.setPositiveButton("Save", (dialogInterface, i) -> {
|
||||
f.save();
|
||||
fd.setInputType(field);
|
||||
enableEditing();
|
||||
enableSaving();
|
||||
});
|
||||
|
||||
AlertDialog dialog = alert.create();
|
||||
@@ -226,7 +222,7 @@ public class FieldsFragment extends Fragment {
|
||||
table.addView(deleteButton);
|
||||
}
|
||||
|
||||
private void enableEditing(){
|
||||
private void enableSaving(){
|
||||
edited = true;
|
||||
binding.saveButton.setEnabled(true);
|
||||
}
|
||||
@@ -237,6 +233,7 @@ public class FieldsFragment extends Fragment {
|
||||
values.add(field);
|
||||
createFieldDisplay(field);
|
||||
setFocus(views.get(views.size()-1), true);
|
||||
enableSaving();
|
||||
}
|
||||
|
||||
private void removeField(FieldType field){
|
||||
@@ -257,15 +254,16 @@ public class FieldsFragment extends Fragment {
|
||||
alert.setPositiveButton("OK", (dialog, which) -> {
|
||||
FieldType[][] currentValues = Fields.load(filename);
|
||||
assert currentValues != null;
|
||||
FieldType[][] newValues = new FieldType[currentValues.length][];
|
||||
newValues[newValues.length-1] = new FieldType[values.size()];
|
||||
FieldType[][] newValues = new FieldType[currentValues.length+1][];
|
||||
|
||||
for(int i = 0; i < currentValues.length; i++) {
|
||||
newValues[i] = currentValues[i];
|
||||
}
|
||||
System.arraycopy(currentValues, 0, newValues, 0, currentValues.length);
|
||||
|
||||
System.out.println("Length: " + values.size());
|
||||
|
||||
newValues[currentValues.length] = new FieldType[values.size()];
|
||||
for(int i = 0; i < values.size(); i++) {
|
||||
newValues[newValues.length - 1][i] = values.get(i);
|
||||
FieldType value = values.get(i);
|
||||
newValues[currentValues.length][i] = value;
|
||||
}
|
||||
|
||||
if(Fields.save(filename, newValues))
|
||||
|
||||
Reference in New Issue
Block a user