From 795fa4e85a234567ee6e973a831beb3720b2d093 Mon Sep 17 00:00:00 2001 From: Astatin3 <77305074+Astatin3@users.noreply.github.com> Date: Sat, 12 Oct 2024 20:37:18 -0600 Subject: [PATCH] KCMT Hotfix --- .../ridgescout/ui/data/TeamsFragment.java | 80 +++++++++++-------- .../ridgescout/ui/transfer/CSVExport.java | 31 ++++--- .../ridgescout/utility/fileEditor.java | 15 ++-- 3 files changed, 77 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/data/TeamsFragment.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/data/TeamsFragment.java index 9de3051..0998ed7 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/data/TeamsFragment.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/data/TeamsFragment.java @@ -22,6 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import com.ridgebotics.ridgescout.utility.AlertManager; import com.ridgebotics.ridgescout.utility.settingsManager; import com.ridgebotics.ridgescout.databinding.FragmentDataTeamsBinding; import com.ridgebotics.ridgescout.scoutingData.ScoutingDataWriter; @@ -282,41 +283,46 @@ public class TeamsFragment extends Fragment { public void add_individual_views(LinearLayout ll, String[] files) { for (int i = 0; i < files.length; i++) { - String[] split = files[i].split("-"); - int match_num = Integer.parseInt(split[1]); + try { + String[] split = files[i].split("-"); + int match_num = Integer.parseInt(split[1]); - ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); + ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); - TextView tv = new TextView(getContext()); - tv.setLayoutParams(new FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT - )); - tv.setPadding(0, 40, 0, 5); - tv.setGravity(Gravity.CENTER_HORIZONTAL); - tv.setText("M" + (match_num) + " " + split[2] + "-" + split[3] + " by " + psda.username); - tv.setTextSize(30); - ll.addView(tv); - - for (int a = 0; a < psda.data.array.length; a++) { - tv = new TextView(getContext()); + TextView tv = new TextView(getContext()); tv.setLayoutParams(new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT )); + tv.setPadding(0, 40, 0, 5); tv.setGravity(Gravity.CENTER_HORIZONTAL); - tv.setText(psda.data.array[a].getName()); - tv.setTextSize(25); - - if (psda.data.array[a].isNull()) { - tv.setBackgroundColor(0xffff0000); - tv.setTextColor(0xff000000); - } - + tv.setText("M" + (match_num) + " " + split[2] + "-" + split[3] + " by " + psda.username); + tv.setTextSize(30); ll.addView(tv); + for (int a = 0; a < psda.data.array.length; a++) { + tv = new TextView(getContext()); + tv.setLayoutParams(new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + )); + tv.setGravity(Gravity.CENTER_HORIZONTAL); + tv.setText(psda.data.array[a].getName()); + tv.setTextSize(25); - match_latest_values[a].add_individual_view(ll, psda.data.array[a]); + if (psda.data.array[a].isNull()) { + tv.setBackgroundColor(0xffff0000); + tv.setTextColor(0xff000000); + } + + ll.addView(tv); + + + match_latest_values[a].add_individual_view(ll, psda.data.array[a]); + } + }catch (Exception e){ + e.printStackTrace(); + AlertManager.alert("Warning!", "Failure to load file " + files[i]); } } } @@ -329,10 +335,14 @@ public class TeamsFragment extends Fragment { public void add_compiled_views(LinearLayout ll, String[] files){ dataType[][] data = new dataType[match_latest_values.length][files.length]; for (int i = 0; i < files.length; i++) { - - ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); - for (int a = 0; a < data.length; a++) { - data[a][i] = psda.data.array[a]; + try { + ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); + for (int a = 0; a < data.length; a++) { + data[a][i] = psda.data.array[a]; + } + } catch (Exception e){ + e.printStackTrace(); + AlertManager.alert("Warning!", "Failure to load file " + files[i]); } } @@ -359,10 +369,14 @@ public class TeamsFragment extends Fragment { public void add_history_views(LinearLayout ll, String[] files){ dataType[][] data = new dataType[match_latest_values.length][files.length]; for (int i = 0; i < files.length; i++) { - - ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); - for (int a = 0; a < data.length; a++) { - data[a][i] = psda.data.array[a]; + try { + ScoutingDataWriter.ParsedScoutingDataResult psda = ScoutingDataWriter.load(files[i], match_values, match_transferValues); + for (int a = 0; a < data.length; a++) { + data[a][i] = psda.data.array[a]; + } + }catch (Exception e){ + e.printStackTrace(); + AlertManager.alert("Warning!", "Failure to load file " + files[i]); } } diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/CSVExport.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/CSVExport.java index 36307e4..e38a329 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/CSVExport.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/CSVExport.java @@ -18,6 +18,9 @@ import com.ridgebotics.ridgescout.utility.fileEditor; public class CSVExport { private static String[] alliances = {"red", "blue"}; + private static String safeCSV(String input){ + return input.replace("\n", "").replace(",", ".").replace(";", "."); + } public static void exportMatches(Context c){ DataManager.reload_event(); @@ -55,10 +58,15 @@ public class CSVExport { if(!fileEditor.fileExist(filename)){ data += ("null,".repeat(match_latest_values.length)); }else{ - ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.match_values, DataManager.match_transferValues); - dataType[] types = psdr.data.array; - for(int i = 0; i < types.length; i++) { - data += (types[i].get() + ","); + try { + ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.match_values, DataManager.match_transferValues); + dataType[] types = psdr.data.array; + for (int i = 0; i < types.length; i++) { + data += (safeCSV(types[i].get().toString()) + ","); + } + } catch (Exception e){ + e.printStackTrace(); + data += ("null,".repeat(pit_latest_values.length)); } } @@ -77,7 +85,7 @@ public class CSVExport { String data = ""; - data += ("teamnum,teamname,city,teamnum,stateOrProv,school,country,startingYear,"); + data += ("teamnum,teamname,city,stateOrProv,school,country,startingYear,"); for(int i = 0; i < pit_latest_values.length; i++){ data += (pit_latest_values[i].name + ","); } @@ -99,10 +107,15 @@ public class CSVExport { if(!fileEditor.fileExist(filename)){ data += ("null,".repeat(pit_latest_values.length)); }else{ - ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.pit_values, DataManager.pit_transferValues); - dataType[] types = psdr.data.array; - for(int i = 0; i < types.length; i++) { - data += (types[i].get() + ","); + try { + ScoutingDataWriter.ParsedScoutingDataResult psdr = ScoutingDataWriter.load(filename, DataManager.pit_values, DataManager.pit_transferValues); + dataType[] types = psdr.data.array; + for (int i = 0; i < types.length; i++) { + data += (safeCSV(types[i].get().toString()) + ","); + } + } catch (Exception e){ + e.printStackTrace(); + data += ("null,".repeat(pit_latest_values.length)); } } diff --git a/app/src/main/java/com/ridgebotics/ridgescout/utility/fileEditor.java b/app/src/main/java/com/ridgebotics/ridgescout/utility/fileEditor.java index 61f867d..cf5c109 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/utility/fileEditor.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/utility/fileEditor.java @@ -365,18 +365,19 @@ public final class fileEditor { String[] filenames = outFiles.toArray(new String[0]); - Arrays.sort(filenames, new Comparator() { - @Override - public int compare(String o1, String o2) { + try { + Arrays.sort(filenames, (o1, o2) -> { try { - if(!o1.contains("-") || !o2.contains("-")) + if (!o1.contains("-") || !o2.contains("-")) return 0; return Integer.valueOf(o1.split("-")[1]).compareTo(Integer.valueOf(o2.split("-")[1])); - } catch (Exception e){ + } catch (Exception e) { return 0; } - } - }); + }); + } catch (Exception e){ + e.printStackTrace(); + } return filenames;