From 0dfddb7f89c1393aa3024b6a318776778c555402 Mon Sep 17 00:00:00 2001
From: Astatin3 <77305074+Astatin3@users.noreply.github.com>
Date: Sat, 6 Jul 2024 22:35:00 -0600
Subject: [PATCH] Start work on fields editor
---
README.md | 4 +-
.../scoutingapp2025/ui/data/dataFragment.java | 25 ++++-
.../scoutingapp2025/ui/data/fieldsView.java | 89 ++++++++++++++++++
app/src/main/res/layout/fragment_data.xml | 94 ++++++++++++++++++-
4 files changed, 207 insertions(+), 5 deletions(-)
create mode 100644 app/src/main/java/com/astatin3/scoutingapp2025/ui/data/fieldsView.java
diff --git a/README.md b/README.md
index 621e29b..b3490a1 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@ TODO:
- Make a word cloud for the compiled mode of notes input type
- Make pit and match data field builder UIs. I don't want to have to keep editing a variable
- Add "history" view type to the teams view menu.
+- Add CSV exporting
- Make the "Compile" menu
- The compile menu should be a shortcut to view all the team's stats from the upcoming match, from the teams view
@@ -17,4 +18,5 @@ TODO:
- Make practice mode
- AI overview of scouting data for a team???
- Bluetooth data sync
-- Test the scouting app
\ No newline at end of file
+- Statbotics intigration
+- Test the scouting app
diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/dataFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/dataFragment.java
index f757366..23d3740 100644
--- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/dataFragment.java
+++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/dataFragment.java
@@ -37,7 +37,14 @@ public class dataFragment extends Fragment {
if(evcode.equals("unset")){
binding.noEventError.setVisibility(View.VISIBLE);
- binding.buttons.setVisibility(View.GONE);
+
+ binding.buttons.setVisibility(View.VISIBLE);
+ binding.statusButton.setVisibility(View.GONE);
+ binding.teamsButton.setVisibility(View.GONE);
+ binding.compileButton.setVisibility(View.GONE);
+ binding.fieldsButton.setVisibility(View.VISIBLE);
+
+
binding.matchTable.setVisibility(View.GONE);
return root;
}
@@ -58,6 +65,22 @@ public class dataFragment extends Fragment {
submenu = true;
});
+
+
+ binding.compileButton.setOnClickListener(v -> {
+// binding.buttons.setVisibility(View.GONE);
+// binding.teamsView.setVisibility(View.VISIBLE);
+// binding.teamsView.init(binding, event);
+// submenu = true;
+ });
+
+ binding.fieldsButton.setOnClickListener(v -> {
+ binding.buttons.setVisibility(View.GONE);
+ binding.fieldsView.setVisibility(View.VISIBLE);
+ binding.fieldsView.init(binding);
+ submenu = true;
+ });
+
show_ui();
return root;
diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/fieldsView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/fieldsView.java
new file mode 100644
index 0000000..4423b59
--- /dev/null
+++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/fieldsView.java
@@ -0,0 +1,89 @@
+package com.astatin3.scoutingapp2025.ui.data;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.FrameLayout;
+import android.widget.ScrollView;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
+import com.astatin3.scoutingapp2025.databinding.FragmentDataBinding;
+import com.astatin3.scoutingapp2025.scoutingData.fields;
+import com.astatin3.scoutingapp2025.scoutingData.transfer.transferType;
+import com.astatin3.scoutingapp2025.types.frcEvent;
+import com.astatin3.scoutingapp2025.types.frcTeam;
+import com.astatin3.scoutingapp2025.types.input.inputType;
+
+public class fieldsView extends ConstraintLayout {
+ public fieldsView(@NonNull Context context) {
+ super(context);
+ }
+ public fieldsView(Context context, AttributeSet attributeSet){
+ super(context, attributeSet);
+ }
+ FragmentDataBinding binding;
+ String filename;
+
+ inputType[][] values;
+
+ public void init(FragmentDataBinding binding) {
+ this.binding = binding;
+
+ binding.fieldsSelectButtons.setVisibility(VISIBLE);
+ binding.fieldsSelectButtons.bringToFront();
+
+ binding.fieldsArea.setStretchAllColumns(true);
+
+ binding.matchScoutingButton.setOnClickListener(v -> {
+ binding.fieldsSelectButtons.setVisibility(GONE);
+ filename = fields.matchFieldsFilename;
+ load_fields();
+ });
+
+ binding.pitScoutingButton.setOnClickListener(v -> {
+ binding.fieldsSelectButtons.setVisibility(GONE);
+ filename = fields.pitsFieldsFilename;
+ load_fields();
+ });
+ }
+
+ private void load_fields() {
+ values = fields.load(filename);
+
+ for(int i = 0; i < values.length; i++){
+
+ TableRow tr = new TableRow(getContext());
+ TableLayout.LayoutParams rowParams = new TableLayout.LayoutParams(
+ FrameLayout.LayoutParams.WRAP_CONTENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT
+ );
+
+ rowParams.setMargins(20,20,20,20);
+ tr.setLayoutParams(rowParams);
+ tr.setPadding(20,20,20,20);
+ binding.fieldsArea.addView(tr);
+
+ tr.setBackgroundColor(0x1000ff00);
+
+ TextView tv = new TextView(getContext());
+ tv.setText("v" + i);
+ tv.setTextSize(20);
+ tr.addView(tv);
+
+ tv = new TextView(getContext());
+ tv.setText(values[i].length + " Fields");
+ tv.setTextSize(16);
+ tr.addView(tv);
+
+// frcTeam finalTeam = team;
+ tr.setOnClickListener(v -> {
+// loadTeam(finalTeam, latestSettings.settings.get_compiled_mode());
+ });
+ }
+ }
+}
diff --git a/app/src/main/res/layout/fragment_data.xml b/app/src/main/res/layout/fragment_data.xml
index 88383b7..d2db874 100644
--- a/app/src/main/res/layout/fragment_data.xml
+++ b/app/src/main/res/layout/fragment_data.xml
@@ -34,10 +34,10 @@
android:layout_height="wrap_content"
android:text="teams"
android:textSize="34sp"
- app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toBottomOf="@id/status_button"
+ app:layout_constraintBottom_toTopOf="@id/compileButton" />
+
+
@@ -126,4 +137,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file