Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import com.android.build.api.dsl.Packaging

plugins {
alias(libs.plugins.android.application)
}
Expand Down Expand Up @@ -51,3 +53,4 @@ dependencies {
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core)
}

24 changes: 19 additions & 5 deletions app/src/main/java/com/example/myapplication/Autonomous.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ public View onCreateView(
){
binding = AutonomousBinding.inflate(inflater, container, false);
v = container;
binding.btnNone.setButtonDrawable(null);
binding.btnFail.setButtonDrawable(null);
binding.btnL1.setButtonDrawable(null);

return binding.getRoot();
}

Expand All @@ -43,7 +41,6 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
//initialization
binding.fuelScored.setText(data.getAutoHub() + "");
binding.fuelMissed.setText(data.getAutoHubMissed() + "");
((RadioButton) binding.toggleGroupClimbLevel.getChildAt(data.getAutoClimb())).setChecked(true);
binding.title.setText("Autonomous Team " + data.getTeamNumber());

binding.fuelScoredPlus.setOnClickListener(v -> {
Expand All @@ -64,7 +61,23 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
binding.fuelMissed.setText(Integer.toString(data.getAutoHubMissed()));
});

binding.toggleGroupClimbLevel.setOnCheckedChangeListener((r, i) -> data.setAutoClimb(binding.toggleGroupClimbLevel.indexOfChild(binding.toggleGroupClimbLevel.findViewById(i))));
binding.toggleGroupClimbLevel.setOnCheckedChangeListener((r, i) -> {
int climb = binding.toggleGroupClimbLevel.indexOfChild(binding.toggleGroupClimbLevel.findViewById(i));
data.setAutoClimb(climb);
if (climb > 0){
binding.climbImage.setVisibility(View.VISIBLE);
binding.toggleGroupClimbLocation.setVisibility(View.VISIBLE);
} else {
binding.climbImage.setVisibility(View.GONE);
binding.toggleGroupClimbLocation.setVisibility(View.GONE);
}
});

((RadioButton) binding.toggleGroupClimbLevel.getChildAt(data.getAutoClimb())).setChecked(true); //Triggers listener

binding.toggleGroupClimbLocation.setOnCheckedChangeListener((r, i) -> data.setAutoClimbLocation(binding.toggleGroupClimbLocation.indexOfChild(binding.toggleGroupClimbLocation.findViewById(i)) + 1));

((RadioButton) binding.toggleGroupClimbLocation.getChildAt(data.getAutoClimbLocation() - 1)).setChecked(true);

binding.cont.setOnClickListener(view12 -> NavHostFragment.findNavController(Autonomous.this)
.navigate(R.id.action_ThirdFragment_to_SecondFragment));
Expand All @@ -78,6 +91,7 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
binding.fuelScored.setText(data.getAutoHub() + "");
binding.fuelMissed.setText(data.getAutoHubMissed() + "");
((RadioButton) binding.toggleGroupClimbLevel.getChildAt(0)).setChecked(true);
((RadioButton) binding.toggleGroupClimbLocation.getChildAt(0)).setChecked(true);
}, () ->{}, getContext()));
}
@Override
Expand Down
25 changes: 17 additions & 8 deletions app/src/main/java/com/example/myapplication/EndGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

import com.example.myapplication.databinding.EndGameBinding;

import java.util.Objects;

public class EndGame extends Fragment {

private EndGameBinding binding;
Expand All @@ -46,12 +48,6 @@ public View onCreateView(
binding.star5
};

binding.rbNone.setButtonDrawable(null);
binding.rbFail.setButtonDrawable(null);
binding.rbL1.setButtonDrawable(null);
binding.rbL2.setButtonDrawable(null);
binding.rbL3.setButtonDrawable(null);

return binding.getRoot();
}

Expand Down Expand Up @@ -97,6 +93,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {}
@SuppressLint("SetTextI18n")
@Override
public void afterTextChanged(Editable s) {
binding.characterLimit.setText("CHARACTER LIMIT: " + Objects.requireNonNull(binding.etMatchNotes.getText()).length() + "/150");
data.setNotes(s.toString());
}
});
Expand All @@ -117,12 +114,23 @@ public void afterTextChanged(Editable s) {
private void setupClimbLevelButtons() {
MatchData data = UserModel.getMatchData();

((RadioButton) binding.radioGroupClimbLevel.getChildAt(data.getTeleOpClimb())).setChecked(true);

binding.radioGroupClimbLevel.setOnCheckedChangeListener((r, i) -> {
int selectedIndex = binding.radioGroupClimbLevel.indexOfChild(binding.radioGroupClimbLevel.findViewById(i));
data.setTeleOpClimb(selectedIndex);
if (selectedIndex > 0){
binding.climbImage.setVisibility(View.VISIBLE);
binding.toggleGroupClimbLocation.setVisibility(View.VISIBLE);
} else {
binding.climbImage.setVisibility(View.GONE);
binding.toggleGroupClimbLocation.setVisibility(View.GONE);
}
});

((RadioButton) binding.radioGroupClimbLevel.getChildAt(data.getTeleOpClimb())).setChecked(true);

binding.toggleGroupClimbLocation.setOnCheckedChangeListener((r, i) -> data.setTeleOpClimbLocation(binding.toggleGroupClimbLocation.indexOfChild(binding.toggleGroupClimbLocation.findViewById(i)) + 1));

((RadioButton) binding.toggleGroupClimbLocation.getChildAt(data.getTeleOpClimbLocation() - 1)).setChecked(true);
}


Expand Down Expand Up @@ -204,6 +212,7 @@ private void resetAllFields() {
MatchData data = UserModel.getMatchData();

((RadioButton) binding.radioGroupClimbLevel.getChildAt(0)).setChecked(true);
((RadioButton) binding.toggleGroupClimbLocation.getChildAt(0)).setChecked(true);
data.setTeleOpClimb(0);

binding.sliderDefense.setValue(0);
Expand Down
59 changes: 19 additions & 40 deletions app/src/main/java/com/example/myapplication/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package com.example.myapplication;

import android.annotation.SuppressLint;



import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;

Expand All @@ -12,16 +16,10 @@
import androidx.navigation.ui.NavigationUI;
import com.example.myapplication.databinding.ActivityMainBinding;

import android.util.Log;

import android.view.Menu;
import android.view.MenuItem;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Objects;
import java.util.Scanner;
Expand All @@ -34,9 +32,11 @@ public class MainActivity extends AppCompatActivity {

public static ArrayList<String> names = new ArrayList<>();

public static int scoutLocation = readInt("ScoutLocation");
public static int scoutLocation = 0;//readInt("ScoutLocation");
@Override
protected void onCreate(Bundle savedInstanceState) {
scoutLocation = readInt("ScoutLocation");

super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Expand All @@ -54,8 +54,9 @@ protected void onCreate(Bundle savedInstanceState) {
if (names.isEmpty()) {
updateNames(getResources());
}
writeInt("ScoutLocation", scoutLocation);


writeInt("ScoutLocation", scoutLocation);
OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
@Override
public void handleOnBackPressed() {
Expand Down Expand Up @@ -124,38 +125,16 @@ public static void updateNames(Resources r){
}
}

public static void writeInt(String fileName, int num){
@SuppressLint("SdCardPath") File file = new File("/sdcard/Documents/" + fileName + ".txt");
boolean deleted = file.delete();
if (!deleted) {
// Log the failure or take appropriate action
Log.w("FileDeletion", "Failed to delete file");
}
try {
boolean created = file.createNewFile();
if (!created) {
// Log the failure or take appropriate action
Log.w("FileCreation", "Failed to create file");
}
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file));
writer.write(num);
writer.close();
} catch (IOException ignored) {

}
public void writeInt(String fileName, int num){

SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(fileName, num);
editor.apply();
}
public static int readInt(String fileName) {
@SuppressLint("SdCardPath") File file = new File("/sdcard/Documents/" + fileName + ".txt");
try {
InputStreamReader reader = new InputStreamReader(new FileInputStream(file));
int res = reader.read();
reader.close();
return res;
} catch (IOException ignored) {

}
return 0;
public int readInt(String fileName) {
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
return sharedPref.getInt(fileName, 0);
}

}
Expand Down
19 changes: 19 additions & 0 deletions app/src/main/java/com/example/myapplication/MatchData.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@ public class MatchData {
private String matchNumber = "";

//For climb, 0 = none, 1 = fail, 2 = L1, 3 = L2, and 4 = L3
//For climb location, refer to climb.png

private int autoHub, autoHubMissed, autoClimb = 0;
private int autoClimbLocation = 1;

private int teleOpHub, teleOpHubMissed, teleOpPassed, teleOpClimb = 0;
private int teleOpClimbLocation = 1;

private int defEffectiveness = 0;

Expand Down Expand Up @@ -118,6 +121,14 @@ public void setAutoClimb(int autoClimb) {
this.autoClimb = autoClimb;
}

public int getAutoClimbLocation() {
return autoClimbLocation;
}

public void setAutoClimbLocation(int autoClimbLocation) {
this.autoClimbLocation = autoClimbLocation;
}

public int getTeleOpHub() {
return teleOpHub;
}
Expand Down Expand Up @@ -149,5 +160,13 @@ public int getTeleOpClimb() {
public void setTeleOpClimb(int teleOpClimb) {
this.teleOpClimb = teleOpClimb;
}

public int getTeleOpClimbLocation() {
return teleOpClimbLocation;
}

public void setTeleOpClimbLocation(int teleOpClimbLocation) {
this.teleOpClimbLocation = teleOpClimbLocation;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public void onNothingSelected(AdapterView<?> parent) {}
binding.back.setOnClickListener(v -> UIHelpers.makeConfirmationAlert("Cancel Pit Data", "Do you want to cancel your pit data?", () -> NavHostFragment.findNavController(PitScouting.this)
.navigate(R.id.action_HomePage_to_FirstFragment), () -> {}, getContext()));

binding.reset.setOnClickListener(v -> UIHelpers.makeConfirmationAlert("Reset Data", "Do you want to reset all Autonomous fields?", () -> {
binding.reset.setOnClickListener(v -> UIHelpers.makeConfirmationAlert("Reset Data", "Do you want to reset all Pit Scouting fields?", () -> {
binding.driveTrain.setSelection(0);
binding.intake.setSelection(0);
binding.terrain.setSelection(0);
Expand Down
56 changes: 32 additions & 24 deletions app/src/main/java/com/example/myapplication/TeamSelection.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand All @@ -27,41 +28,33 @@
import com.google.android.material.snackbar.Snackbar;


import java.util.Objects;
import java.util.Random;

public class TeamSelection extends Fragment {
private TeamSelectionBinding binding;

private ViewGroup v;

@Override
public View onCreateView(
@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState
) {
binding = TeamSelectionBinding.inflate(inflater, container, false);

String currentMatchNumber = UserModel.getMatchData().getMatchNumber();
binding.matchInputContainer.setText(currentMatchNumber);
String scouterName = UserModel.getMatchData().getScouterName();
binding.scouterNameInput.setText(scouterName);
try {
String currentTeamNumber = MainActivity.teams.get(Integer.parseInt(currentMatchNumber) - 1)[MainActivity.scoutLocation];
binding.teamNumberInput.setText(currentTeamNumber);
} catch (Exception ignored){

}

ViewModelProvider viewModelProvider = new ViewModelProvider(requireActivity());
UserModel userModel = viewModelProvider.get(UserModel.class);
MatchData matchData = new MatchData();
userModel.setMatchData(matchData);
UserModel.setPitData(new PitData());
v = container;

return binding.getRoot();
}

public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

binding.subtitleText.setText(MainActivity.getLocationText());

binding.logoImage.setOnClickListener(view1 -> UIHelpers.darkModeToggle(v, binding.logoImage, this.getContext()));

binding.startScoutingButton.setOnClickListener(v -> {
String teamNumber = String.valueOf(binding.teamNumberInput.getText());
String matchNumber = String.valueOf(binding.matchInputContainer.getText());
Expand Down Expand Up @@ -144,13 +137,10 @@ public void afterTextChanged(Editable s) {
try {
int num = Integer.parseInt(matchNumber) - 1;
if (num >= 0 && num < MainActivity.teams.size()) {
LinearLayout[] matchBoxes = {binding.Match1, binding.Match2, binding.Match3};
TextView[] matchBoxNums = {binding.matchBox1Num, binding.matchBox2Num, binding.matchBox3Num};

MainActivity.teams.size();

binding.teamNumberInput.setText(MainActivity.teams.get(num)[MainActivity.scoutLocation]);

LinearLayout[] matchBoxes = {binding.Match1, binding.Match2, binding.Match3};
TextView[] matchBoxNums = {binding.matchBox1Num, binding.matchBox2Num, binding.matchBox3Num};
for(int i = 0; i < 3; i++){
int currentMatchIndex = num + i;

Expand Down Expand Up @@ -187,12 +177,30 @@ public void afterTextChanged(Editable s) {
binding.teamNumberInput.setText("");
}
}
} catch (Exception e){
Snackbar.make(view, "Please Enter a Value", 600).show();
} catch (Exception ignored){

}
}
}
});

String currentMatchNumber = UserModel.getMatchData().getMatchNumber();
binding.matchInputContainer.setText(currentMatchNumber);
String scouterName = UserModel.getMatchData().getScouterName();
binding.scouterNameInput.setText(scouterName);
try {
String currentTeamNumber = MainActivity.teams.get(Integer.parseInt(currentMatchNumber) - 1)[MainActivity.scoutLocation];
binding.teamNumberInput.setText(currentTeamNumber);
} catch (Exception ignored){

}

ViewModelProvider viewModelProvider = new ViewModelProvider(requireActivity());
UserModel userModel = viewModelProvider.get(UserModel.class);
MatchData matchData = new MatchData();
userModel.setMatchData(matchData);
UserModel.setPitData(new PitData());

ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(), android.R.layout.simple_dropdown_item_1line, MainActivity.names);
binding.scouterNameInput.setAdapter(adapter);

Expand All @@ -208,7 +216,7 @@ public void afterTextChanged(Editable s) {
builder.setNeutralButton("Cancel", (d, w) -> d.cancel());
builder.setItems(new CharSequence[]{"Red 1", "Red 2", "Red 3", "Blue 1", "Blue 2", "Blue 3"}, (d, w) -> {
MainActivity.scoutLocation = w;
MainActivity.writeInt("ScoutLocation", w);
((MainActivity) requireActivity()).writeInt("ScoutLocation", w);
});
builder.create().show();
return false;
Expand Down
Loading