From d2c075da9cfa0e40ce54253ac5a018bcb4978dc8 Mon Sep 17 00:00:00 2001 From: Michael Mikovsky <77305074+Astatin3@users.noreply.github.com> Date: Tue, 25 Mar 2025 12:06:03 -0600 Subject: [PATCH] Add options for team number and quick alliance swap --- .../ui/scouting/MatchScoutingFragment.java | 26 ++-- .../ui/settings/settingsFragment.java | 11 +- .../ridgescout/utility/settingsManager.java | 129 ++++++++++-------- 3 files changed, 93 insertions(+), 73 deletions(-) diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java index d4d26a0..40f214a 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/scouting/MatchScoutingFragment.java @@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment; import com.google.android.material.divider.MaterialDivider; import com.ridgebotics.ridgescout.ui.ToggleTitleView; +import com.ridgebotics.ridgescout.ui.settings.settingsFragment; import com.ridgebotics.ridgescout.utility.settingsManager; import com.ridgebotics.ridgescout.databinding.FragmentScoutingMatchBinding; import com.ridgebotics.ridgescout.scoutingData.ScoutingDataWriter; @@ -68,21 +69,20 @@ public class MatchScoutingFragment extends Fragment { update_scouting_data(); }); + if(settingsManager.getEnableQuickAlliancePosChange()) + binding.fileIndicator.setOnClickListener(v -> { + // if(e.getAction() != MotionEvent.ACTION_MOVE) return true; + // System.out.println(e.getAxisValue(0)); + if(edited) save(); - boolean fileIndicatorTapped = false; - binding.fileIndicator.setOnClickListener(v -> { -// if(e.getAction() != MotionEvent.ACTION_MOVE) return true; -// System.out.println(e.getAxisValue(0)); - if(edited) save(); + alliance_position = incrementMatchPos(alliance_position); + settingsManager.setAllyPos(alliance_position); + binding.alliancePosText.setText(alliance_position); - alliance_position = incrementMatchPos(alliance_position); - settingsManager.setAllyPos(alliance_position); - binding.alliancePosText.setText(alliance_position); - - update_match_num(); - update_scouting_data(); -// return true; - }); + update_match_num(); + update_scouting_data(); + // return true; + }); binding.backButton.setOnClickListener(v -> { if(edited) save(); diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/settingsFragment.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/settingsFragment.java index 3b6f028..0588015 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/settingsFragment.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/settings/settingsFragment.java @@ -4,8 +4,10 @@ import static android.view.View.VISIBLE; import static androidx.navigation.fragment.FragmentKt.findNavController; import static com.ridgebotics.ridgescout.utility.settingsManager.AllyPosKey; import static com.ridgebotics.ridgescout.utility.settingsManager.CustomEventsKey; +import static com.ridgebotics.ridgescout.utility.settingsManager.EnableQuickAllianceChangeKey; import static com.ridgebotics.ridgescout.utility.settingsManager.MatchNumKey; import static com.ridgebotics.ridgescout.utility.settingsManager.SelEVCodeKey; +import static com.ridgebotics.ridgescout.utility.settingsManager.TeamNumKey; import static com.ridgebotics.ridgescout.utility.settingsManager.UnameKey; import static com.ridgebotics.ridgescout.utility.settingsManager.WifiModeKey; import static com.ridgebotics.ridgescout.utility.settingsManager.YearNumKey; @@ -27,6 +29,7 @@ import android.widget.TableLayout; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.google.android.material.card.MaterialCardView; @@ -96,9 +99,8 @@ public class settingsFragment extends Fragment { manager.addItem(FTPEnabled); manager.addItem(new CheckboxSettingsItem(WifiModeKey, "Wifi Mode", FTPEnabled)); - + manager.addItem(new CheckboxSettingsItem(EnableQuickAllianceChangeKey, "Enable quick alliance swap", null)); manager.addItem(new NumberSettingsItem(YearNumKey, "Year", 0, 9999)); - manager.addItem(new DropdownSettingsItem(AllyPosKey, "Alliance Pos", alliance_pos_list)); int max = 0; @@ -119,6 +121,7 @@ public class settingsFragment extends Fragment { manager.addItem(eventCode); manager.addItem(new StringSettingsItem(UnameKey, "Username")); + manager.addItem(new NumberSettingsItem(TeamNumKey, "Team Number", 0, 99999)); binding.SettingsTable.removeAllViews(); manager.getView(binding.SettingsTable); @@ -389,9 +392,9 @@ public class settingsFragment extends Fragment { public class CheckboxSettingsItem extends SettingsItem { private List> controlledItems; - public CheckboxSettingsItem(String key, String title, SettingsItem... controlledItems) { + public CheckboxSettingsItem(String key, String title, @Nullable SettingsItem... controlledItems) { super(key, title, prefs.getBoolean(key, (Boolean) defaults.get(key))); - this.controlledItems = Arrays.asList(controlledItems); + this.controlledItems = (controlledItems != null) ? Arrays.asList(controlledItems) : new ArrayList<>(); } MaterialCheckBox checkBox; diff --git a/app/src/main/java/com/ridgebotics/ridgescout/utility/settingsManager.java b/app/src/main/java/com/ridgebotics/ridgescout/utility/settingsManager.java index 21eaacc..193df9f 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/utility/settingsManager.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/utility/settingsManager.java @@ -11,102 +11,119 @@ public class settingsManager { public static SharedPreferences prefs; public static SharedPreferences.Editor editor; - public static final String UnameKey = "username"; + public static final String TeamNumKey = "team_num"; + public static final String UnameKey = "username"; + public static final String SelEVCodeKey = "selected_event_code"; - public static final String YearNumKey = "year_num"; - public static final String WifiModeKey = "wifi_mode"; - public static final String MatchNumKey = "match_num"; - public static final String AllyPosKey = "alliance_pos"; - public static final String DataModeKey = "data_view_mode"; - public static final String BtUUIDKey = "bt_uuid"; - public static final String FTPEnabled = "ftp_enabled"; - public static final String FTPServer = "ftp_server"; - public static final String FTPSendMetaFiles = "ftp_send_meta_files"; + public static final String YearNumKey = "year_num"; + + public static final String MatchNumKey = "match_num"; + public static final String AllyPosKey = "alliance_pos"; + + public static final String WifiModeKey = "wifi_mode"; + public static final String DataModeKey = "data_view_mode"; + public static final String BtUUIDKey = "bt_uuid"; + public static final String FTPEnabled = "ftp_enabled"; + public static final String FTPServer = "ftp_server"; + public static final String FTPSendMetaFiles = "ftp_send_meta_files"; + + public static final String EnableQuickAllianceChangeKey = "enable_quick_alliance_change"; public static final String CustomEventsKey = "enable_custom_event"; public static Map defaults = getDefaults(); private static Map getDefaults(){ Map hm = new HashMap<>(); - hm.put(UnameKey, "Username"); + hm.put(TeamNumKey, 4388); + hm.put(UnameKey, "Username"); hm.put(SelEVCodeKey, "unset"); - hm.put(WifiModeKey, false); - hm.put(YearNumKey, 2025); - hm.put(MatchNumKey, 0); - hm.put(AllyPosKey, "red-1"); - hm.put(DataModeKey, 0); - hm.put(BtUUIDKey, UUID.randomUUID().toString()); - hm.put(FTPEnabled, false); - hm.put(FTPServer, "0.0.0.0"); + hm.put(WifiModeKey, false); + hm.put(YearNumKey, 2025); + hm.put(MatchNumKey, 0); + hm.put(AllyPosKey, "red-1"); + hm.put(DataModeKey, 0); + hm.put(BtUUIDKey, UUID.randomUUID().toString()); + hm.put(FTPEnabled, false); + hm.put(FTPServer, "0.0.0.0"); hm.put(FTPSendMetaFiles, false); + hm.put(EnableQuickAllianceChangeKey, false); hm.put(CustomEventsKey, false); return hm; } public static SharedPreferences.Editor getEditor(){ - if(editor == null) editor = prefs.edit(); - return editor; + if(editor == null) editor = prefs.edit(); + return editor; } public static void resetSettings(){ - getEditor() .putString(UnameKey, (String) defaults.get( UnameKey )).apply(); - getEditor() .putString(SelEVCodeKey,(String) defaults.get( SelEVCodeKey)).apply(); + getEditor() .putInt(TeamNumKey, (int) defaults.get( TeamNumKey )).apply(); + getEditor() .putString(UnameKey, (String) defaults.get( UnameKey )).apply(); + getEditor() .putString(SelEVCodeKey,(String) defaults.get( SelEVCodeKey)).apply(); getEditor().putBoolean(WifiModeKey, (boolean) defaults.get( WifiModeKey )).apply(); - getEditor() .putInt(YearNumKey, (int) defaults.get( YearNumKey )).apply(); - getEditor() .putInt(MatchNumKey, (int) defaults.get( MatchNumKey )).apply(); - getEditor() .putString(AllyPosKey, (String) defaults.get( AllyPosKey )).apply(); - getEditor() .putInt(DataModeKey, (int) defaults.get( DataModeKey )).apply(); + getEditor() .putInt(YearNumKey, (int) defaults.get( YearNumKey )).apply(); + getEditor() .putInt(MatchNumKey, (int) defaults.get( MatchNumKey )).apply(); + getEditor() .putString(AllyPosKey, (String) defaults.get( AllyPosKey )).apply(); + getEditor() .putInt(DataModeKey, (int) defaults.get( DataModeKey )).apply(); - getEditor() .putString(BtUUIDKey, (String) defaults.get( BtUUIDKey )).apply(); + getEditor() .putString(BtUUIDKey, (String) defaults.get( BtUUIDKey )).apply(); - getEditor().putBoolean(FTPEnabled, (boolean) defaults.get( FTPEnabled )).apply(); - getEditor() .putString(FTPServer, (String) defaults.get( FTPServer )).apply(); - getEditor().putBoolean(FTPSendMetaFiles, (boolean) defaults.get( FTPSendMetaFiles )).apply(); + getEditor().putBoolean(FTPEnabled, (boolean) defaults.get( FTPEnabled )).apply(); + getEditor() .putString(FTPServer, (String) defaults.get( FTPServer )).apply(); + getEditor().putBoolean(FTPSendMetaFiles, (boolean) defaults.get( FTPSendMetaFiles )).apply(); - getEditor().putBoolean(CustomEventsKey, (boolean) defaults.get( CustomEventsKey )).apply(); + getEditor().putBoolean(EnableQuickAllianceChangeKey, (boolean) defaults.get( EnableQuickAllianceChangeKey )).apply(); + getEditor().putBoolean(CustomEventsKey, (boolean) defaults.get( CustomEventsKey )).apply(); } // IDK why I decided to format these functions like this. It looks cool though. - public static String getUsername(){return prefs.getString( UnameKey, (String) defaults.get(UnameKey));} - public static void setUsername(String str){ getEditor().putString( UnameKey,str).apply();} - public static String getEVCode(){return prefs.getString( SelEVCodeKey, (String) defaults.get(SelEVCodeKey));} - public static void setEVCode(String str){ getEditor().putString( SelEVCodeKey,str).apply();} + public static int getTeamNum(){return prefs.getInt( TeamNumKey, (int) defaults.get(TeamNumKey));} + public static void setTeamNum(int num){ getEditor().putInt( TeamNumKey,num).apply();} - public static boolean getWifiMode(){return prefs.getBoolean( WifiModeKey, (boolean) defaults.get(WifiModeKey));} - public static void setWifiMode(boolean bool){getEditor().putBoolean( WifiModeKey,bool).apply();} + public static String getUsername(){return prefs.getString( UnameKey, (String) defaults.get(UnameKey));} + public static void setUsername(String str){ getEditor().putString( UnameKey,str).apply();} - public static int getYearNum(){return prefs.getInt( YearNumKey, (int) defaults.get(YearNumKey));} - public static void setYearNum(int num){ getEditor().putInt( YearNumKey,num).apply();} + public static String getEVCode(){return prefs.getString( SelEVCodeKey, (String) defaults.get(SelEVCodeKey));} + public static void setEVCode(String str){ getEditor().putString( SelEVCodeKey,str).apply();} - public static int getMatchNum(){return prefs.getInt( MatchNumKey, (int) defaults.get(MatchNumKey));} - public static void setMatchNum(int num){ getEditor().putInt( MatchNumKey,num).apply();} + public static boolean getWifiMode(){return prefs.getBoolean( WifiModeKey, (boolean) defaults.get(WifiModeKey));} + public static void setWifiMode(boolean bool){getEditor().putBoolean( WifiModeKey,bool).apply();} - public static String getAllyPos(){return prefs.getString( AllyPosKey, (String) defaults.get(AllyPosKey));} - public static void setAllyPos(String str){ getEditor().putString( AllyPosKey,str).apply();} + public static int getYearNum(){return prefs.getInt( YearNumKey, (int) defaults.get(YearNumKey));} + public static void setYearNum(int num){ getEditor().putInt( YearNumKey,num).apply();} - public static int getDataMode(){return prefs.getInt( DataModeKey, (int) defaults.get(DataModeKey));} - public static void setDataMode(int num){ getEditor().putInt( DataModeKey,num).apply();} + public static int getMatchNum(){return prefs.getInt( MatchNumKey, (int) defaults.get(MatchNumKey));} + public static void setMatchNum(int num){ getEditor().putInt( MatchNumKey,num).apply();} - public static String getBtUUID(){return prefs.getString( BtUUIDKey, (String) defaults.get(BtUUIDKey));} - public static void setBtUUID(String str){ getEditor().putString( BtUUIDKey,str).apply();} + public static String getAllyPos(){return prefs.getString( AllyPosKey, (String) defaults.get(AllyPosKey));} + public static void setAllyPos(String str){ getEditor().putString( AllyPosKey,str).apply();} + + public static int getDataMode(){return prefs.getInt( DataModeKey, (int) defaults.get(DataModeKey));} + public static void setDataMode(int num){ getEditor().putInt( DataModeKey,num).apply();} + + public static String getBtUUID(){return prefs.getString( BtUUIDKey, (String) defaults.get(BtUUIDKey));} + public static void setBtUUID(String str){ getEditor().putString( BtUUIDKey,str).apply();} - public static boolean getFTPEnabled(){return prefs.getBoolean( FTPEnabled, (boolean) defaults.get(FTPEnabled));} - public static void setFTPEnabled(boolean bool){getEditor().putBoolean( FTPEnabled,bool).apply();} + public static boolean getFTPEnabled(){return prefs.getBoolean( FTPEnabled, (boolean) defaults.get(FTPEnabled));} + public static void setFTPEnabled(boolean bool){getEditor().putBoolean( FTPEnabled,bool).apply();} - public static String getFTPServer(){return prefs.getString( FTPServer, (String) defaults.get(FTPServer));} - public static void setFTPServer(String str){ getEditor().putString( FTPServer,str).apply();} + public static String getFTPServer(){return prefs.getString( FTPServer, (String) defaults.get(FTPServer));} + public static void setFTPServer(String str){ getEditor().putString( FTPServer,str).apply();} - public static boolean getFTPSendMetaFiles(){return prefs.getBoolean(FTPSendMetaFiles, (boolean) defaults.get(FTPSendMetaFiles));} - public static void setFTPSendMetaFiles(boolean bool){getEditor().putBoolean(FTPSendMetaFiles,bool).apply();} + public static boolean getFTPSendMetaFiles(){return prefs.getBoolean(FTPSendMetaFiles, (boolean) defaults.get(FTPSendMetaFiles));} + public static void setFTPSendMetaFiles(boolean bool){getEditor().putBoolean(FTPSendMetaFiles,bool).apply();} + + public static boolean getEnableQuickAlliancePosChange(){return prefs.getBoolean(EnableQuickAllianceChangeKey, (boolean) defaults.get(EnableQuickAllianceChangeKey));} + public static void setEnableQuickAlliancePosChange(boolean bool){getEditor().putBoolean(EnableQuickAllianceChangeKey,bool).apply();} - public static boolean getCustomEvents(){return prefs.getBoolean(CustomEventsKey, (boolean) defaults.get(FTPSendMetaFiles));} - public static void setCustomEvents(boolean bool){getEditor().putBoolean(CustomEventsKey,bool).apply();} + public static boolean getCustomEvents(){return prefs.getBoolean(CustomEventsKey, (boolean) defaults.get(FTPSendMetaFiles));} + public static void setCustomEvents(boolean bool){getEditor().putBoolean(CustomEventsKey,bool).apply();}