mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-09 00:37:59 -06:00
Add meta files
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
package com.ridgebotics.ridgescout.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.ridgebotics.ridgescout.databinding.FragmentDataCompareBinding;
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -44,8 +44,6 @@ public class DataFragment extends Fragment {
|
||||
|
||||
binding.buttons.setVisibility(View.VISIBLE);
|
||||
binding.teamsButton.setEnabled(false);
|
||||
binding.compareButton.setEnabled(false);
|
||||
binding.reportButton.setEnabled(false);
|
||||
binding.fieldsButton.setVisibility(View.VISIBLE);
|
||||
|
||||
|
||||
@@ -65,15 +63,6 @@ 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_report_selector);
|
||||
});
|
||||
|
||||
return root;
|
||||
}
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
package com.ridgebotics.ridgescout.ui.data;
|
||||
|
||||
import static com.ridgebotics.ridgescout.utility.DataManager.event;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.ridgebotics.ridgescout.databinding.FragmentDataReportBinding;
|
||||
import com.ridgebotics.ridgescout.types.frcMatch;
|
||||
import com.ridgebotics.ridgescout.utility.DataManager;
|
||||
import com.ridgebotics.ridgescout.utility.ollama.OllamaClient;
|
||||
import com.ridgebotics.ridgescout.utility.ollama.PromptCreator;
|
||||
import com.ridgebotics.ridgescout.utility.settingsManager;
|
||||
|
||||
public class ReportFragment extends Fragment {
|
||||
FragmentDataReportBinding binding;
|
||||
|
||||
private static frcMatch match;
|
||||
public static void setMatch(frcMatch m){
|
||||
match = m;
|
||||
}
|
||||
|
||||
private final int ourTeamNum = settingsManager.getTeamNum();
|
||||
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
binding = FragmentDataReportBinding.inflate(inflater, container, false);
|
||||
|
||||
binding.teamNumber.setText(String.valueOf(ourTeamNum));
|
||||
|
||||
binding.AyEyeBox.setVisibility(View.VISIBLE);
|
||||
binding.AyEyeButton.setVisibility(View.GONE);
|
||||
|
||||
DataManager.reload_event();
|
||||
DataManager.reload_pit_fields();
|
||||
DataManager.reload_match_fields();
|
||||
|
||||
binding.AyEyeBox.setText("TBD!\n This is meant to be a tool that lets scouters more easily write reports to the drive team before matches. There are some plans for LLM integration into this menu ");
|
||||
|
||||
// binding.AyEyeButton.setText("Create Prompt");
|
||||
// binding.AyEyeButton.setOnClickListener(a ->{
|
||||
// getPrompt();
|
||||
// binding.AyEyeButton.setText("Generate Overview");
|
||||
// binding.AyEyeButton.setOnClickListener(b ->{
|
||||
// AIDataOverview();
|
||||
// binding.AyEyeButton.setVisibility(View.GONE);
|
||||
// });
|
||||
// });
|
||||
|
||||
return binding.getRoot();
|
||||
}
|
||||
|
||||
private void getPrompt(){
|
||||
binding.AyEyeBox.setVisibility(View.VISIBLE);
|
||||
String prompt = PromptCreator.genMatchPrompt(0);
|
||||
binding.AyEyeBox.setText(prompt);
|
||||
}
|
||||
|
||||
private void AIDataOverview(){
|
||||
String prompt = binding.AyEyeBox.getText().toString();
|
||||
binding.AyEyeBox.setText("");
|
||||
OllamaClient.run(prompt, new OllamaClient.ollamaListener() {
|
||||
@Override
|
||||
public void onResponse(String response) {
|
||||
// System.out.println(response);
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
binding.AyEyeBox.setText(binding.AyEyeBox.getText()+response);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
System.out.println(binding.AyEyeBox.getText());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
package com.ridgebotics.ridgescout.ui.data;
|
||||
|
||||
import static androidx.navigation.fragment.FragmentKt.findNavController;
|
||||
import static com.ridgebotics.ridgescout.utility.DataManager.evcode;
|
||||
import static com.ridgebotics.ridgescout.utility.DataManager.event;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.ridgebotics.ridgescout.R;
|
||||
import com.ridgebotics.ridgescout.databinding.FragmentDataReportSelectorBinding;
|
||||
import com.ridgebotics.ridgescout.types.frcMatch;
|
||||
import com.ridgebotics.ridgescout.utility.AlertManager;
|
||||
import com.ridgebotics.ridgescout.utility.DataManager;
|
||||
import com.ridgebotics.ridgescout.utility.settingsManager;
|
||||
|
||||
public class ReportSelectorFragment extends Fragment {
|
||||
FragmentDataReportSelectorBinding binding;
|
||||
|
||||
private final int teamNum = settingsManager.getTeamNum();
|
||||
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
binding = FragmentDataReportSelectorBinding.inflate(inflater, container, false);
|
||||
binding.matchTable.setStretchAllColumns(true);
|
||||
|
||||
DataManager.reload_event();
|
||||
frcMatch[] teamMatches = event.getTeamMatches(teamNum);
|
||||
|
||||
if(teamMatches.length == 0){
|
||||
AlertManager.error("Team number " + teamNum + " could not be found in event " + evcode);
|
||||
findNavController(this).navigate(R.id.action_navigation_data_report_selector_to_navigation_data);
|
||||
}
|
||||
|
||||
for(int i = 0; i < teamMatches.length; i++){
|
||||
addTableRow(teamMatches[i]);
|
||||
}
|
||||
|
||||
|
||||
return binding.getRoot();
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private void addTableRow(frcMatch match){
|
||||
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);
|
||||
tr.setBackgroundColor(0x5000ff00);
|
||||
binding.matchTable.addView(tr);
|
||||
|
||||
TextView tv = new TextView(getContext());
|
||||
tv.setText("Match " + match.matchIndex);
|
||||
tv.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
|
||||
tr.addView(tv);
|
||||
|
||||
tv = new TextView(getContext());
|
||||
tv.setText("Pos " + match.getTeamAlliance(teamNum));
|
||||
tv.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
|
||||
tr.addView(tv);
|
||||
|
||||
tr.setOnClickListener(v -> {
|
||||
ReportFragment.setMatch(match);
|
||||
findNavController(this).navigate(R.id.action_navigation_data_report_selector_to_navigation_data_report);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.ridgebotics.ridgescout.ui.settings;
|
||||
import static android.text.InputType.TYPE_CLASS_NUMBER;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.AllyPosKey;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.FTPEnabled;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.FTPSendMetaFiles;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.FTPServer;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.SelEVCodeKey;
|
||||
import static com.ridgebotics.ridgescout.utility.settingsManager.TeamNumKey;
|
||||
@@ -238,7 +239,11 @@ public class settingsFragment extends Fragment {
|
||||
addViews(addDropdownByString("Alliance Position", alliance_pos_list, AllyPosKey));
|
||||
addViews(addNumberEdit("Team Number", TeamNumKey));
|
||||
|
||||
View[] FTPDependency = addStringEdit("FTP Server", FTPServer);
|
||||
View[] FTPDependency = concatArrays(
|
||||
addCheckbox("Send Meta Files", FTPSendMetaFiles, new View[]{}),
|
||||
addStringEdit("FTP Server", FTPServer)
|
||||
);
|
||||
|
||||
View[] WifiDependency = addCheckbox("FTP Enabled", FTPEnabled, FTPDependency);
|
||||
addViews(addCheckbox("Wifi Mode", WifiModeKey, concatArrays(FTPDependency, WifiDependency)));
|
||||
addViews(WifiDependency);
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.ridgebotics.ridgescout.ui.transfer;
|
||||
|
||||
//import static com.ridgebotics.ridgescout.utility.DataManager.evcode;
|
||||
import static com.ridgebotics.ridgescout.utility.DataManager.evcode;
|
||||
import static com.ridgebotics.ridgescout.utility.fileEditor.baseDir;
|
||||
|
||||
import com.ridgebotics.ridgescout.ui.data.FieldEditorHelper;
|
||||
import com.ridgebotics.ridgescout.utility.AlertManager;
|
||||
import com.ridgebotics.ridgescout.utility.BuiltByteParser;
|
||||
import com.ridgebotics.ridgescout.utility.ByteBuilder;
|
||||
@@ -21,6 +23,7 @@ import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -91,7 +94,17 @@ public class FTPSync extends Thread {
|
||||
|
||||
|
||||
public void run() {
|
||||
boolean sendMetaFiles = settingsManager.getFTPSendMetaFiles();
|
||||
|
||||
// Meta files
|
||||
String[] meta_string_array = new String[]{
|
||||
"matches.fields",
|
||||
"pits.fields",
|
||||
evcode+".eventdata"
|
||||
};
|
||||
|
||||
try {
|
||||
// Login to FTP
|
||||
ftpClient = new FTPClient();
|
||||
InetAddress address = InetAddress.getByName(settingsManager.getFTPServer());
|
||||
ftpClient.connect(address);
|
||||
@@ -103,10 +116,14 @@ public class FTPSync extends Thread {
|
||||
File[] localFiles = localDir.listFiles();
|
||||
Map<String, Date> remoteTimestamps = getTimestamps();
|
||||
|
||||
// Loop through local files and send all that are more recent
|
||||
if (localFiles != null) {
|
||||
for (File localFile : localFiles) {
|
||||
if(localFile.isDirectory()) continue;
|
||||
// Remove timestamts file
|
||||
if(localFile.getName().equals(timestampsFilename)) continue;
|
||||
// Remove meta files if the option is disabled
|
||||
if(!sendMetaFiles && Arrays.stream(meta_string_array).anyMatch(localFile.getName()::equals)) continue;
|
||||
|
||||
Date remoteTimestamp = remoteTimestamps.get(localFile.getName());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user