mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-09 00:37:59 -06:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 534207ebb1 | |||
| d458ad7669 | |||
| 3e045bfcb7 | |||
| c78fa58754 | |||
| 18748301cd | |||
| a15deda539 | |||
| 0846f5a3b3 | |||
| 554cad2abd | |||
| 7d41a5e5a9 | |||
| 4cb20f4769 | |||
| 6b4b919e5f |
@@ -25,7 +25,6 @@
|
|||||||
- A page that lets scouters more easily make reports to the drive team before a match starts (Report)
|
- A page that lets scouters more easily make reports to the drive team before a match starts (Report)
|
||||||
|
|
||||||
#### Things that may or may not be implemented:
|
#### Things that may or may not be implemented:
|
||||||
- Practice mode
|
|
||||||
- Statbotics intgration
|
- Statbotics intgration
|
||||||
- Scout error estimation using OPR-like calculation
|
- Scout error estimation using OPR-like calculation
|
||||||
- - Would most likely require Statbotics
|
- - Would most likely require Statbotics
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ android {
|
|||||||
applicationId = "com.ridgebotics.ridgescout"
|
applicationId = "com.ridgebotics.ridgescout"
|
||||||
minSdk = 24
|
minSdk = 24
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 7 // **IMPORTANT** Increment this before releasing on github
|
versionCode = 11 // **IMPORTANT** Increment this before releasing on github
|
||||||
versionName = "1.0"// **IMPORTANT** Change this before releasing on github (<Year num since 2024>.<Update Version>)
|
versionName = "1.4"// **IMPORTANT** Change this before releasing on github (<Year num since 2024>.<Update Version>)
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,18 +89,16 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
||||||
NavigationUI.setupWithNavController(navView, navController);
|
NavigationUI.setupWithNavController(navView, navController);
|
||||||
|
|
||||||
navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
|
navView.setOnItemSelectedListener(item -> {
|
||||||
@Override
|
backPressed = null;
|
||||||
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
clearBackStack();
|
||||||
clearBackStack();
|
navController.navigate(item.getItemId(), savedInstanceState, new NavOptions.Builder()
|
||||||
navController.navigate(item.getItemId(), savedInstanceState, new NavOptions.Builder()
|
.setEnterAnim(R.anim.enter_anim)
|
||||||
.setEnterAnim(R.anim.enter_anim)
|
.setExitAnim(R.anim.exit_anim)
|
||||||
.setExitAnim(R.anim.exit_anim)
|
.setPopEnterAnim(R.anim.pop_enter_anim)
|
||||||
.setPopEnterAnim(R.anim.pop_enter_anim)
|
.setPopExitAnim(R.anim.pop_exit_anim).build()
|
||||||
.setPopExitAnim(R.anim.pop_exit_anim).build()
|
);
|
||||||
);
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -116,11 +114,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public interface activityResultRelay {
|
public interface activityResultRelay {
|
||||||
void onActivityResult(int requestCode, int resultCode, Intent data);
|
void onActivityResult(int requestCode, int resultCode, Intent data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static activityResultRelay resultRelay = null;
|
public static activityResultRelay resultRelay = null;
|
||||||
public static void setResultRelay(activityResultRelay tmpresultRelay){
|
public static void setResultRelay(activityResultRelay tmpresultRelay){
|
||||||
resultRelay = tmpresultRelay;
|
resultRelay = tmpresultRelay;
|
||||||
@@ -135,4 +131,25 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface onBackPressed {
|
||||||
|
boolean onBackPressed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public onBackPressed backPressed = null;
|
||||||
|
public void setOnBackPressed(onBackPressed onBackPressed){
|
||||||
|
this.backPressed = onBackPressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBackPressed() {
|
||||||
|
if(backPressed != null) {
|
||||||
|
if (backPressed.onBackPressed()) {
|
||||||
|
super.onBackPressed();
|
||||||
|
}
|
||||||
|
} else {super.onBackPressed();}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -24,23 +24,34 @@ public class fields {
|
|||||||
public static final inputType[][] default_match_fields = new inputType[][] {
|
public static final inputType[][] default_match_fields = new inputType[][] {
|
||||||
{
|
{
|
||||||
new fieldposType("Auto start pos", "Where does the robot start its auto?", new int[]{0,0}),
|
new fieldposType("Auto start pos", "Where does the robot start its auto?", new int[]{0,0}),
|
||||||
new tallyType("Auto Coral", "How many coral did this robot score in auto?", 0),
|
|
||||||
new tallyType("Auto Algae", "How many algae did this robot score in auto?", 0),
|
new tallyType("Auto L4 Coral", "How many coral did this robot score in L4 during auto?", 0),
|
||||||
new sliderType("Auto Performance", "How well did you think this robot did in auto?", 5, 0, 10),
|
new tallyType("Auto L3 Coral", "How many coral did this robot score in L3 during auto?", 0),
|
||||||
|
new tallyType("Auto L2 Coral", "How many coral did this robot score in L2 during auto?", 0),
|
||||||
|
new tallyType("Auto L1/Trough Coral", "How many coral did this robot score in L1 during auto?", 0),
|
||||||
|
new tallyType("Auto Processor Algae", "How many algae did this robot score in the Barge during auto?", 0),
|
||||||
|
new tallyType("Auto Barge Algae", "How many algae did this robot score in the Barge during auto?", 0),
|
||||||
|
|
||||||
|
new dropdownType("Auto Quality", "How did the robot drive during auto?", new String[]{"Smooth", "Jittery"}, 0),
|
||||||
new textType("Auto Comments", "Anything interesting about auto", ""),
|
new textType("Auto Comments", "Anything interesting about auto", ""),
|
||||||
new tallyType("Teleop Coral", "How many coral did this robot score in teleop?", 0),
|
|
||||||
new tallyType("Teleop Algae", "How many algae did this robot score in teleop?", 0),
|
new tallyType("Teleop L4 Coral", "How many coral did this robot score in L4 during auto?", 0),
|
||||||
new checkboxType("Coral Removal", "Did the robot remove coral?", 0),
|
new tallyType("Teleop L3 Coral", "How many coral did this robot score in L3 during auto?", 0),
|
||||||
new checkboxType("L4 Scoring", "Did the robot score in Layer 4?", 0),
|
new tallyType("Teleop L2 Coral", "How many coral did this robot score in L2 during auto?", 0),
|
||||||
new checkboxType("L3 Scoring", "Did the robot score in Layer 3?", 0),
|
new tallyType("Teleop L1 Coral", "How many coral did this robot score in L1 during auto?", 0),
|
||||||
new checkboxType("L2 Scoring", "Did the robot score in Layer 3?", 0),
|
new tallyType("Teleop Processor Algae", "How many algae did this robot score in the Barge during auto?", 0),
|
||||||
new checkboxType("L1 Scoring", "Did the robot score in Layer 1?", 0),
|
new tallyType("Teleop Barge Algae", "How many algae did this robot score in the Barge during auto?", 0),
|
||||||
new checkboxType("Processor Scoring", "Did the robot score in the processor?", 0),
|
|
||||||
new checkboxType("Net Scoring", "Did the robot score in the net?", 0),
|
new checkboxType("Upper Algae Removal", "Did the robot remove upper Algae?", 0),
|
||||||
new sliderType("Teleop Performance", "How well did the robot drive around?", 5, 0, 10),
|
new checkboxType("Lower Algae Removal", "Did the robot remove lower Algae?", 0),
|
||||||
new textType("Teleop Notes", "Anything intresting about Teleop", ""),
|
|
||||||
new dropdownType("End Condition", "What was the final condition of the robot?", new String[]{"Nothing", "Park", "Attempted Shallow", "Shallow", "Attempted Deep", "Deep"}, 0),
|
new dropdownType("Teleop Quality", "How did the robot drive during Teleop?", new String[]{"Smooth", "Jittery"}, 0),
|
||||||
new dropdownType("Robot Condition", "Was anything broken?", new String[]{"Everything was working", "Something was maybe broken", "Something was broken", "Robot was disabled for part of the match", "Missing robot (Joe Johnson)"}, 0),
|
new textType("Teleop Comments", "Anything interesting about Teleop", ""),
|
||||||
|
|
||||||
|
new dropdownType("Climb State", "What was the final condition of the robot?", new String[]{"Nothing", "Continued Cycling", "Park", "Attempted Shallow", "Shallow", "Attempted Deep", "Deep"}, 0),
|
||||||
|
|
||||||
|
new dropdownType("Robot Condition", "Was anything broken?", new String[]{"Everything was working", "Something was maybe broken", "Something was broken", "Robot was disabled for part of the match", "Missing robot"}, 0),
|
||||||
|
|
||||||
new textType("Other Comments", "Any other comments you have", "")
|
new textType("Other Comments", "Any other comments you have", "")
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -48,16 +59,27 @@ public class fields {
|
|||||||
public static final inputType[][] default_pit_fields = new inputType[][] {
|
public static final inputType[][] default_pit_fields = new inputType[][] {
|
||||||
{
|
{
|
||||||
new dropdownType("Drivetrain type", "What type of drivetrain does this team have?", new String[]{"Swerve Drive", "Tank Drive (Differential)", "Other, Info in comments"}, 0),
|
new dropdownType("Drivetrain type", "What type of drivetrain does this team have?", new String[]{"Swerve Drive", "Tank Drive (Differential)", "Other, Info in comments"}, 0),
|
||||||
|
new dropdownType("Intake type", "What type of intake does this team have?", new String[]{"Ground only", "Player Station only", "Both", "Other, Info in comments"}, 0),
|
||||||
|
new dropdownType("Intake Consistency", "How consistent is the robot at intakeing?", new String[]{"Does not work", "Worked a few times during testing", "Works most of the time", "Fails sometimes", "Never fails"}, 0),
|
||||||
|
|
||||||
|
new dropdownType("Score Area", "What does this robot score?", new String[]{"Only Algae", "Mostly Algae", "Both", "Mostly Coral", "Only Coral"}, 0),
|
||||||
|
|
||||||
new checkboxType("L4 Scoring", "Will the robot score in Layer 4?", 0),
|
new checkboxType("L4 Scoring", "Will the robot score in Layer 4?", 0),
|
||||||
new checkboxType("L3 Scoring", "Will the robot score in Layer 3?", 0),
|
new checkboxType("L3 Scoring", "Will the robot score in Layer 3?", 0),
|
||||||
new checkboxType("L2 Scoring", "Will the robot score in Layer 3?", 0),
|
new checkboxType("L2 Scoring", "Will the robot score in Layer 3?", 0),
|
||||||
new checkboxType("L1/Trough Scoring", "Will the robot score in Layer 1?", 0),
|
new checkboxType("L1/Trough Scoring", "Will the robot score in Layer 1?", 0),
|
||||||
new checkboxType("Processor Scoring", "Will the robot score in the processor?", 0),
|
new checkboxType("Processor Scoring", "Will the robot score in the Processor?", 0),
|
||||||
new checkboxType("Net Scoring", "Will the robot score algae in the net?", 0),
|
new checkboxType("Barge Scoring", "Will the robot score algae in the Barge?", 0),
|
||||||
new sliderType("Specialization", "How specified is the robot to it's scoring area?", 5, 0, 10),
|
new dropdownType("Scoring Consistency", "How consistent is the robot at Scoring?", new String[]{"Does not work", "Worked a few times during testing", "Works most of the time", "Fails sometimes", "Never fails"}, 0),
|
||||||
new sliderType("Scoring Consistency", "How consistent is the robot at scoring?", 5, 0, 10),
|
|
||||||
new dropdownType("Auto type", "What autos does this team have?", new String[]{"No auto", "Simple Coral", "Simple Algae", "Complex Coral", "Complex Algae", "Other, Info in comments"}, 0),
|
new textType("Auto Capability", "What autos does this team have?", ""),
|
||||||
new sliderType("Auto Consistency", "How reliable is this auto;?", 5, 0, 10),
|
new dropdownType("Auto Consistency", "How consistent is the robot at Auto?", new String[]{"Does not work", "Worked a few times during testing", "Works most of the time", "Fails sometimes", "Never fails"}, 0),
|
||||||
|
|
||||||
|
new dropdownType("Climb type", "What does the robot do to climb?", new String[]{"No Climb", "Only Shallow", "Only Deep", "Both Shallow and Deep"}, 0),
|
||||||
|
new dropdownType("Climb Consistency", "How consistent is the robot at climbing?", new String[]{"Does not work", "Worked a few times during testing", "Works most of the time", "Fails sometimes", "Never fails"}, 0),
|
||||||
|
|
||||||
|
new textType("Cool Comments", "Is there anything cool about the robot?", ""),
|
||||||
|
|
||||||
new textType("Comments", "Things go here", "Day 1:\n\nDay 2:\n\nDay 3:\n")
|
new textType("Comments", "Things go here", "Day 1:\n\nDay 2:\n\nDay 3:\n")
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package com.ridgebotics.ridgescout.types.data;
|
package com.ridgebotics.ridgescout.types.data;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public abstract class dataType {
|
public abstract class dataType {
|
||||||
public enum valueTypes {
|
public enum valueTypes {
|
||||||
NUM,
|
NUM,
|
||||||
|
|||||||
@@ -219,5 +219,9 @@ public class checkboxType extends inputType {
|
|||||||
chart.invalidate();
|
chart.invalidate();
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return (int) data.get() == 1 ? "true" : "false";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -245,5 +245,9 @@ public class dropdownType extends inputType {
|
|||||||
chart.invalidate();
|
chart.invalidate();
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return text_options[(int) data.get()];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -232,5 +232,10 @@ public class fieldposType extends inputType {
|
|||||||
|
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
int[] intarr = (int[]) data.get();
|
||||||
|
return "[" + intarr[0] + "," + intarr[1] + "]";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -107,4 +107,7 @@ public abstract class inputType {
|
|||||||
|
|
||||||
|
|
||||||
public abstract void add_history_view(LinearLayout parent, dataType[] data);
|
public abstract void add_history_view(LinearLayout parent, dataType[] data);
|
||||||
|
|
||||||
|
|
||||||
|
public abstract String toString(dataType data);
|
||||||
}
|
}
|
||||||
@@ -318,5 +318,9 @@ public class numberType extends inputType {
|
|||||||
|
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return String.valueOf((int) data.get());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -305,4 +305,8 @@ public class sliderType extends inputType {
|
|||||||
|
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return String.valueOf((int) data.get());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -298,5 +298,9 @@ public class tallyType extends inputType {
|
|||||||
|
|
||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return String.valueOf((int) data.get());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -230,5 +230,9 @@ public class textType extends inputType {
|
|||||||
parent.addView(chart);
|
parent.addView(chart);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(dataType data){
|
||||||
|
return String.valueOf(data.get());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public class CustomSpinnerView extends LinearLayout {
|
|||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||||
|
|
||||||
ScrollView sv = new ScrollView(getContext());
|
ScrollView sv = new ScrollView(getContext());
|
||||||
sv.setLayoutDirection(ScrollView.SCROLL_AXIS_VERTICAL);
|
// sv.setLayoutDirection(ScrollView.SCROLL_AXIS_VERTICAL);
|
||||||
|
|
||||||
LinearLayout ll = new LinearLayout(getContext());
|
LinearLayout ll = new LinearLayout(getContext());
|
||||||
ll.setOrientation(LinearLayout.VERTICAL);
|
ll.setOrientation(LinearLayout.VERTICAL);
|
||||||
@@ -94,7 +94,7 @@ public class CustomSpinnerView extends LinearLayout {
|
|||||||
|
|
||||||
ll.addView(popup);
|
ll.addView(popup);
|
||||||
|
|
||||||
popup.setLayoutDirection(0);
|
// popup.setLayoutDirection(0);
|
||||||
builder.setView(sv);
|
builder.setView(sv);
|
||||||
AlertDialog dialog = builder.create();
|
AlertDialog dialog = builder.create();
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ridgebotics.ridgescout.ui.data;
|
package com.ridgebotics.ridgescout.ui.data;
|
||||||
|
|
||||||
|
|
||||||
|
import static android.view.View.VISIBLE;
|
||||||
import static androidx.navigation.fragment.FragmentKt.findNavController;
|
import static androidx.navigation.fragment.FragmentKt.findNavController;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -14,6 +15,7 @@ import androidx.annotation.Nullable;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.ridgebotics.ridgescout.R;
|
import com.ridgebotics.ridgescout.R;
|
||||||
|
import com.ridgebotics.ridgescout.scoutingData.fields;
|
||||||
import com.ridgebotics.ridgescout.utility.settingsManager;
|
import com.ridgebotics.ridgescout.utility.settingsManager;
|
||||||
import com.ridgebotics.ridgescout.databinding.FragmentDataBinding;
|
import com.ridgebotics.ridgescout.databinding.FragmentDataBinding;
|
||||||
import com.ridgebotics.ridgescout.types.frcTeam;
|
import com.ridgebotics.ridgescout.types.frcTeam;
|
||||||
@@ -36,15 +38,26 @@ public class DataFragment extends Fragment {
|
|||||||
String evcode = settingsManager.getEVCode();
|
String evcode = settingsManager.getEVCode();
|
||||||
|
|
||||||
binding.fieldsButton.setOnClickListener(v -> {
|
binding.fieldsButton.setOnClickListener(v -> {
|
||||||
findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_fields_chooser);
|
binding.fieldsButton.setEnabled(false);
|
||||||
|
binding.fieldsButtons.setVisibility(VISIBLE);
|
||||||
|
});
|
||||||
|
|
||||||
|
binding.fieldsMatchesButton.setOnClickListener(v -> {
|
||||||
|
FieldsFragment.set_filename(fields.matchFieldsFilename);
|
||||||
|
findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_fields);
|
||||||
|
});
|
||||||
|
|
||||||
|
binding.fieldsPitsButton.setOnClickListener(v -> {
|
||||||
|
FieldsFragment.set_filename(fields.pitsFieldsFilename);
|
||||||
|
findNavController(this).navigate(R.id.action_navigation_data_to_navigation_data_fields);
|
||||||
});
|
});
|
||||||
|
|
||||||
if(evcode.equals("unset")){
|
if(evcode.equals("unset")){
|
||||||
binding.noEventError.setVisibility(View.VISIBLE);
|
binding.noEventError.setVisibility(VISIBLE);
|
||||||
|
|
||||||
binding.buttons.setVisibility(View.VISIBLE);
|
binding.buttons.setVisibility(VISIBLE);
|
||||||
binding.teamsButton.setEnabled(false);
|
binding.teamsButton.setEnabled(false);
|
||||||
binding.fieldsButton.setVisibility(View.VISIBLE);
|
binding.fieldsButton.setVisibility(VISIBLE);
|
||||||
|
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.ridgebotics.ridgescout.ui.data;
|
|
||||||
|
|
||||||
import static androidx.navigation.fragment.FragmentKt.findNavController;
|
|
||||||
|
|
||||||
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.ridgebotics.ridgescout.R;
|
|
||||||
import com.ridgebotics.ridgescout.databinding.FragmentDataFieldsChooserBinding;
|
|
||||||
import com.ridgebotics.ridgescout.scoutingData.fields;
|
|
||||||
|
|
||||||
public class FieldsChooserFragment extends Fragment {
|
|
||||||
|
|
||||||
FragmentDataFieldsChooserBinding binding;
|
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
|
||||||
@Nullable Bundle savedInstanceState) {
|
|
||||||
|
|
||||||
binding = FragmentDataFieldsChooserBinding.inflate(inflater, container, false);
|
|
||||||
|
|
||||||
binding.matchScoutingButton.setOnClickListener(v -> {
|
|
||||||
FieldsFragment.set_filename(fields.matchFieldsFilename);
|
|
||||||
findNavController(this).navigate(R.id.action_navigation_data_fields_chooser_to_navigation_data_fields);
|
|
||||||
});
|
|
||||||
|
|
||||||
binding.pitScoutingButton.setOnClickListener(v -> {
|
|
||||||
FieldsFragment.set_filename(fields.pitsFieldsFilename);
|
|
||||||
findNavController(this).navigate(R.id.action_navigation_data_fields_chooser_to_navigation_data_fields);
|
|
||||||
});
|
|
||||||
|
|
||||||
return binding.getRoot();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,6 +21,7 @@ import androidx.annotation.Nullable;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.navigation.Navigation;
|
import androidx.navigation.Navigation;
|
||||||
|
|
||||||
|
import com.ridgebotics.ridgescout.MainActivity;
|
||||||
import com.ridgebotics.ridgescout.R;
|
import com.ridgebotics.ridgescout.R;
|
||||||
import com.ridgebotics.ridgescout.databinding.FragmentDataFieldsBinding;
|
import com.ridgebotics.ridgescout.databinding.FragmentDataFieldsBinding;
|
||||||
import com.ridgebotics.ridgescout.scoutingData.fields;
|
import com.ridgebotics.ridgescout.scoutingData.fields;
|
||||||
@@ -66,6 +67,25 @@ public class FieldsFragment extends Fragment {
|
|||||||
|
|
||||||
load_field_menu();
|
load_field_menu();
|
||||||
|
|
||||||
|
((MainActivity) getActivity()).setOnBackPressed(() -> {
|
||||||
|
if(binding.saveButton.getVisibility() == View.GONE) return true;
|
||||||
|
|
||||||
|
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
|
||||||
|
alert.setTitle("Warning!");
|
||||||
|
alert.setMessage("You have not saved your progress!");
|
||||||
|
alert.setPositiveButton("Return", null);
|
||||||
|
alert.setNeutralButton("Quit without saving", (dialogInterface, i) -> {
|
||||||
|
binding.saveButton.setVisibility(View.GONE);
|
||||||
|
if(getActivity() != null)
|
||||||
|
getActivity().onBackPressed();
|
||||||
|
});
|
||||||
|
alert.setCancelable(true);
|
||||||
|
|
||||||
|
alert.create().show();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,7 +243,7 @@ public class FieldsFragment extends Fragment {
|
|||||||
if(fields.save(filename, newValues))
|
if(fields.save(filename, newValues))
|
||||||
AlertManager.toast("Saved");
|
AlertManager.toast("Saved");
|
||||||
|
|
||||||
Navigation.findNavController((Activity) getContext(), R.id.nav_host_fragment_activity_main).navigate(R.id.action_navigation_data_fields_to_navigation_data_fields_chooser);
|
Navigation.findNavController((Activity) getContext(), R.id.nav_host_fragment_activity_main).navigate(R.id.action_navigation_data_fields_to_navigation_data);
|
||||||
});
|
});
|
||||||
alert.setNegativeButton("Cancel", null);
|
alert.setNegativeButton("Cancel", null);
|
||||||
alert.setCancelable(true);
|
alert.setCancelable(true);
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
// tv.setTextSize(16);
|
// tv.setTextSize(16);
|
||||||
// ll.addView(tv);
|
// ll.addView(tv);
|
||||||
|
|
||||||
add_pit_data(team);
|
try {add_pit_data(team);}catch(Exception e){AlertManager.error(e);}
|
||||||
add_match_data(team, mode);
|
try {add_match_data(team, mode);}catch(Exception e){AlertManager.error(e);}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add_pit_data(frcTeam team){
|
public void add_pit_data(frcTeam team){
|
||||||
@@ -273,7 +273,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
binding.matchArea.addView(tv);
|
binding.matchArea.addView(tv);
|
||||||
|
|
||||||
|
|
||||||
match_latest_values[i].add_individual_view(binding.matchArea, psda.data.array[i]);
|
if(psda.data.array[i] != null)
|
||||||
|
match_latest_values[i].add_individual_view(binding.matchArea, psda.data.array[i]);
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -293,7 +294,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
try {
|
try {
|
||||||
ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues);
|
ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues);
|
||||||
for (int a = 0; a < data.length; a++) {
|
for (int a = 0; a < data.length; a++) {
|
||||||
data[a][i] = psda.data.array[a];
|
if(psda.data.array[a] != null && psda.data.array[a].get() != null)
|
||||||
|
data[a][i] = psda.data.array[a];
|
||||||
}
|
}
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -313,7 +315,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
tv.setTextSize(30);
|
tv.setTextSize(30);
|
||||||
binding.matchArea.addView(tv);
|
binding.matchArea.addView(tv);
|
||||||
|
|
||||||
match_latest_values[i].add_compiled_view(binding.matchArea, data[i]);
|
if(data[i] != null)
|
||||||
|
match_latest_values[i].add_compiled_view(binding.matchArea, data[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,7 +330,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
try {
|
try {
|
||||||
ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues);
|
ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues);
|
||||||
for (int a = 0; a < data.length; a++) {
|
for (int a = 0; a < data.length; a++) {
|
||||||
data[a][i] = psda.data.array[a];
|
if(psda.data.array[a] != null && psda.data.array[a].get() != null)
|
||||||
|
data[a][i] = psda.data.array[a];
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -347,7 +351,8 @@ public class TeamsFragment extends Fragment {
|
|||||||
tv.setTextSize(30);
|
tv.setTextSize(30);
|
||||||
binding.matchArea.addView(tv);
|
binding.matchArea.addView(tv);
|
||||||
|
|
||||||
match_latest_values[i].add_history_view(binding.matchArea, data[i]);
|
if(data[i] != null)
|
||||||
|
match_latest_values[i].add_history_view(binding.matchArea, data[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ public class EventFragment extends Fragment {
|
|||||||
teamNums.add(String.valueOf(event.teams.get(i).teamNumber));
|
teamNums.add(String.valueOf(event.teams.get(i).teamNumber));
|
||||||
|
|
||||||
ScrollView sv = new ScrollView(getContext());
|
ScrollView sv = new ScrollView(getContext());
|
||||||
sv.setLayoutDirection(ScrollView.SCROLL_AXIS_VERTICAL);
|
// sv.setLayoutDirection(ScrollView.SCROLL_AXIS_VERTICAL);
|
||||||
|
|
||||||
LinearLayout ll = new LinearLayout(getContext());
|
LinearLayout ll = new LinearLayout(getContext());
|
||||||
ll.setOrientation(LinearLayout.VERTICAL);
|
ll.setOrientation(LinearLayout.VERTICAL);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.ridgebotics.ridgescout.scoutingData.ScoutingDataWriter;
|
|||||||
import com.ridgebotics.ridgescout.types.data.dataType;
|
import com.ridgebotics.ridgescout.types.data.dataType;
|
||||||
import com.ridgebotics.ridgescout.types.frcMatch;
|
import com.ridgebotics.ridgescout.types.frcMatch;
|
||||||
import com.ridgebotics.ridgescout.types.frcTeam;
|
import com.ridgebotics.ridgescout.types.frcTeam;
|
||||||
|
import com.ridgebotics.ridgescout.types.input.inputType;
|
||||||
import com.ridgebotics.ridgescout.utility.DataManager;
|
import com.ridgebotics.ridgescout.utility.DataManager;
|
||||||
import com.ridgebotics.ridgescout.utility.fileEditor;
|
import com.ridgebotics.ridgescout.utility.fileEditor;
|
||||||
|
|
||||||
@@ -59,14 +60,17 @@ public class CSVExport {
|
|||||||
data += ("null,".repeat(match_latest_values.length));
|
data += ("null,".repeat(match_latest_values.length));
|
||||||
}else{
|
}else{
|
||||||
try {
|
try {
|
||||||
|
String tempData = "";
|
||||||
ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.match_values, DataManager.match_transferValues);
|
ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.match_values, DataManager.match_transferValues);
|
||||||
dataType[] types = psdr.data.array;
|
dataType[] matchData = psdr.data.array;
|
||||||
|
inputType[] types = psdr.data.values[psdr.data.values.length-1];
|
||||||
for (int i = 0; i < types.length; i++) {
|
for (int i = 0; i < types.length; i++) {
|
||||||
data += (safeCSV(types[i].get().toString()) + ",");
|
tempData += (safeCSV(types[i].toString(matchData[i])) + ",");
|
||||||
}
|
}
|
||||||
|
data += tempData;
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
data += ("null,".repeat(pit_latest_values.length));
|
data += ("null,".repeat(match_latest_values.length));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -108,11 +112,14 @@ public class CSVExport {
|
|||||||
data += ("null,".repeat(pit_latest_values.length));
|
data += ("null,".repeat(pit_latest_values.length));
|
||||||
}else{
|
}else{
|
||||||
try {
|
try {
|
||||||
|
String tempData = "";
|
||||||
ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.pit_values, DataManager.pit_transferValues);
|
ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.pit_values, DataManager.pit_transferValues);
|
||||||
dataType[] types = psdr.data.array;
|
dataType[] teamData = psdr.data.array;
|
||||||
|
inputType[] types = psdr.data.values[psdr.data.values.length-1];
|
||||||
for (int i = 0; i < types.length; i++) {
|
for (int i = 0; i < types.length; i++) {
|
||||||
data += (safeCSV(types[i].get().toString()) + ",");
|
tempData += (safeCSV(types[i].toString(teamData[i])) + ",");
|
||||||
}
|
}
|
||||||
|
data += tempData;
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
data += ("null,".repeat(pit_latest_values.length));
|
data += ("null,".repeat(pit_latest_values.length));
|
||||||
|
|||||||
@@ -57,18 +57,7 @@ public class TransferFragment extends Fragment {
|
|||||||
});
|
});
|
||||||
|
|
||||||
binding.TBAButton.setOnClickListener(v -> {
|
binding.TBAButton.setOnClickListener(v -> {
|
||||||
binding.noEventError.setVisibility(View.GONE);
|
findNavController(this).navigate(R.id.action_navigation_transfer_to_navigation_tba);
|
||||||
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
|
|
||||||
alert.setTitle("Warning");
|
|
||||||
alert.setMessage("This action requires internet.");
|
|
||||||
alert.setCancelable(true);
|
|
||||||
|
|
||||||
alert.setPositiveButton("Ok", (dialog, which) -> {
|
|
||||||
findNavController(this).navigate(R.id.action_navigation_transfer_to_navigation_tba);
|
|
||||||
});
|
|
||||||
|
|
||||||
alert.setNegativeButton("Cancel", null);
|
|
||||||
alert.create().show();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB |
@@ -49,5 +49,35 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/fieldsButton" />
|
app:layout_constraintTop_toBottomOf="@id/fieldsButton" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/fieldsButtons"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="1dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/fieldsButton"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/fieldsPitsButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:text="Pits"
|
||||||
|
android:textSize="34sp" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/fieldsMatchesButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:text="Matches"
|
||||||
|
android:textSize="34sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
android:id="@+id/minus_button"
|
android:id="@+id/minus_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
android:text="-" />
|
android:text="-" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -22,6 +23,7 @@
|
|||||||
android:id="@+id/plus_button"
|
android:id="@+id/plus_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
|
||||||
android:text="+" />
|
android:text="+" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -2,4 +2,5 @@
|
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
<background android:drawable="@color/ic_launcher_background"/>
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
@@ -2,4 +2,5 @@
|
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
<background android:drawable="@color/ic_launcher_background"/>
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
<monochrome android:drawable="@drawable/ic_robologo" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
@@ -15,21 +15,21 @@
|
|||||||
app:destination="@id/navigation_match_scouting"
|
app:destination="@id/navigation_match_scouting"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim"/>
|
app:popExitAnim="@anim/pop_exit_anim"/>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_scouting_to_navigation_team_selector"
|
android:id="@+id/action_navigation_scouting_to_navigation_team_selector"
|
||||||
app:destination="@id/navigation_team_selector"
|
app:destination="@id/navigation_team_selector"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_scouting_to_navigation_scouting_event"
|
android:id="@+id/action_navigation_scouting_to_navigation_scouting_event"
|
||||||
app:destination="@id/navigation_scouting_status"
|
app:destination="@id/navigation_scouting_status"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim"/>
|
app:popExitAnim="@anim/pop_exit_anim"/>
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -48,14 +48,14 @@
|
|||||||
app:destination="@id/navigation_pit_scouting"
|
app:destination="@id/navigation_pit_scouting"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_team_selector_to_navigation_data_teams"
|
android:id="@+id/action_navigation_team_selector_to_navigation_data_teams"
|
||||||
app:destination="@id/navigation_data_teams"
|
app:destination="@id/navigation_data_teams"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -79,14 +79,14 @@
|
|||||||
app:destination="@id/navigation_team_selector"
|
app:destination="@id/navigation_team_selector"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_data_to_navigation_data_fields_chooser"
|
android:id="@+id/action_navigation_data_to_navigation_data_fields"
|
||||||
app:destination="@id/navigation_data_fields_chooser"
|
app:destination="@id/navigation_data_fields"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -102,29 +102,16 @@
|
|||||||
tools:layout="@layout/fragment_data_teams">
|
tools:layout="@layout/fragment_data_teams">
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_data_fields_chooser"
|
|
||||||
android:name="com.ridgebotics.ridgescout.ui.data.FieldsChooserFragment"
|
|
||||||
tools:layout="@layout/fragment_data_fields_chooser">
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_data_fields_chooser_to_navigation_data_fields"
|
|
||||||
app:destination="@id/navigation_data_fields"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
|
||||||
</fragment>
|
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_data_fields"
|
android:id="@+id/navigation_data_fields"
|
||||||
android:name="com.ridgebotics.ridgescout.ui.data.FieldsFragment"
|
android:name="com.ridgebotics.ridgescout.ui.data.FieldsFragment"
|
||||||
tools:layout="@layout/fragment_data_fields">
|
tools:layout="@layout/fragment_data_fields">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_data_fields_to_navigation_data_fields_chooser"
|
android:id="@+id/action_navigation_data_fields_to_navigation_data"
|
||||||
app:destination="@id/navigation_data_fields_chooser"
|
app:destination="@id/navigation_data"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -142,21 +129,21 @@
|
|||||||
app:destination="@id/navigation_tba"
|
app:destination="@id/navigation_tba"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_transfer_to_navigation_file_selector"
|
android:id="@+id/action_navigation_transfer_to_navigation_file_selector"
|
||||||
app:destination="@id/navigation_file_selector"
|
app:destination="@id/navigation_file_selector"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_transfer_to_navigation_transfer_selector"
|
android:id="@+id/action_navigation_transfer_to_navigation_transfer_selector"
|
||||||
app:destination="@id/navigation_transfer_selector"
|
app:destination="@id/navigation_transfer_selector"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -169,7 +156,7 @@
|
|||||||
app:destination="@id/navigation_transfer_selector"
|
app:destination="@id/navigation_transfer_selector"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
@@ -182,28 +169,28 @@
|
|||||||
app:destination="@id/navigation_code_generator"
|
app:destination="@id/navigation_code_generator"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_transfer_selector_to_navigation_bluetooth_sender"
|
android:id="@+id/action_navigation_transfer_selector_to_navigation_bluetooth_sender"
|
||||||
app:destination="@id/navigation_bluetooth_sender"
|
app:destination="@id/navigation_bluetooth_sender"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_transfer_selector_to_navigation_code_scanner"
|
android:id="@+id/action_navigation_transfer_selector_to_navigation_code_scanner"
|
||||||
app:destination="@id/navigation_code_scanner"
|
app:destination="@id/navigation_code_scanner"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_transfer_selector_to_navigation_bluetooth_receiver"
|
android:id="@+id/action_navigation_transfer_selector_to_navigation_bluetooth_receiver"
|
||||||
app:destination="@id/navigation_bluetooth_receiver"
|
app:destination="@id/navigation_bluetooth_receiver"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/pop_enter_anim"
|
||||||
app:popExitAnim="@anim/pop_exit_anim" />
|
app:popExitAnim="@anim/pop_exit_anim" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="main_200">#FFBBFC86</color>
|
<color name="main_200">#FFA0E044</color>
|
||||||
<color name="main_500">#FF62EE00</color>
|
<color name="main_500">#FF62EE00</color>
|
||||||
<color name="main_700">#FF37B300</color>
|
<color name="main_700">#FF37B300</color>
|
||||||
<color name="teal_200">#FF03DAC5</color>
|
<color name="teal_200">#FF03DAC5</color>
|
||||||
|
|||||||
Reference in New Issue
Block a user