diff --git a/README.md b/README.md index 2be6df7..d059b5d 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,21 @@ Ridgebotics 2025 scouting app in Android ## TODO: #### Scouting: -- Make the "Compare" menu, cross comparing team's stats. - Make the "Report" menu, A tool that lets users select data to display from the the teams and compare menus. - Make practice mode #### Data Analysis: -- Add CSV exporting of match scouting data. - Statbotics intigration - AI overview of scouting data for a team??? #### Functionality: -- Improve the code scanning progress indicator. It has a rounding error, I think. +- Make the system for blank and unselected fields better. - Add more types of data fields. - Make server software to allow for easy sync over wifi ## In Progress: #### Scouting: #### Data Analysis: +- Add CSV exporting of match scouting data. +- Make the "Compare" menu, cross comparing team's stats. #### Functionality: - Make pit and match data field builder UIs. I don't want to have to keep editing a variable - Test the scouting app @@ -30,6 +30,7 @@ Ridgebotics 2025 scouting app in Android - Add "history" view type to the teams view menu. - Sentiment analysis of text input type #### Functionality: +- Improve the code scanning progress indicator. It has a rounding error, I think. - Fix navigation crashes. - Make everything use Fragments instead of views that toggle visibility - Make the file browser UI diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompareFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompareFragment.java new file mode 100644 index 0000000..b412e96 --- /dev/null +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/data/CompareFragment.java @@ -0,0 +1,24 @@ +package com.astatin3.scoutingapp2025.ui.data; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.astatin3.scoutingapp2025.databinding.FragmentDataCompareBinding; +import com.astatin3.scoutingapp2025.databinding.FragmentDataReportBinding; + +public class CompareFragment extends Fragment { + FragmentDataCompareBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + + binding = FragmentDataCompareBinding.inflate(inflater, container, false); + return binding.getRoot(); + } +} 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 similarity index 91% rename from app/src/main/java/com/astatin3/scoutingapp2025/ui/data/dataFragment.java rename to app/src/main/java/com/astatin3/scoutingapp2025/ui/data/DataFragment.java index 1b2f5af..d913592 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 @@ -21,7 +21,7 @@ import com.astatin3.scoutingapp2025.ui.TeamSelectorFragment; import com.astatin3.scoutingapp2025.utility.fileEditor; import com.astatin3.scoutingapp2025.types.frcEvent; -public class dataFragment extends Fragment { +public class DataFragment extends Fragment { private FragmentDataBinding binding; @@ -64,8 +64,12 @@ public class dataFragment extends Fragment { findNavController(this).navigate(R.id.action_navigation_data_to_navigation_team_selector); }); + binding.compareButton.setOnClickListener(v -> { + findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_compare); + }); + binding.reportButton.setOnClickListener(v -> { - findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_compile); + findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_report); }); binding.fieldsButton.setOnClickListener(v -> { diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/ScoutingFragment.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/ScoutingFragment.java index 24e76ad..6429d36 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/ScoutingFragment.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/scouting/ScoutingFragment.java @@ -65,7 +65,7 @@ public class ScoutingFragment extends Fragment { }); binding.statusButton.setOnClickListener(v -> { - findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_status); + findNavController(this).navigate(R.id.action_navigation_scouting_to_navigation_scouting_status); }); return binding.getRoot(); diff --git a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codes/CodeOverlayView.java b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codes/CodeOverlayView.java index 8c1d66b..4d18e38 100644 --- a/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codes/CodeOverlayView.java +++ b/app/src/main/java/com/astatin3/scoutingapp2025/ui/transfer/codes/CodeOverlayView.java @@ -60,7 +60,7 @@ public class CodeOverlayView extends View { } } if(barColors != null){ - final int width = getWidth()/barColors.length; + final double width = getWidth()/barColors.length; final int top = 0; final int bottom = barHeight; @@ -81,8 +81,8 @@ public class CodeOverlayView extends View { p.setColor(c); canvas.drawRect(new Rect( - (i*width), top, - ((i+1)*width), bottom + (int)(i*width), top, + (int)((i+1)*width), bottom ), p); } } diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index f44f65e..d17ea9e 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -24,6 +24,9 @@ app:exitAnim="@anim/exit_anim" app:popEnterAnim="@anim/enter_anim" app:popExitAnim="@anim/pop_exit_anim" /> + + @@ -103,7 +113,13 @@ + + +