Add options for team number and quick alliance swap

This commit is contained in:
Michael Mikovsky
2025-03-25 12:06:03 -06:00
parent fbdd2206c0
commit d2c075da9c
3 changed files with 93 additions and 73 deletions
@@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.divider.MaterialDivider; import com.google.android.material.divider.MaterialDivider;
import com.ridgebotics.ridgescout.ui.ToggleTitleView; import com.ridgebotics.ridgescout.ui.ToggleTitleView;
import com.ridgebotics.ridgescout.ui.settings.settingsFragment;
import com.ridgebotics.ridgescout.utility.settingsManager; import com.ridgebotics.ridgescout.utility.settingsManager;
import com.ridgebotics.ridgescout.databinding.FragmentScoutingMatchBinding; import com.ridgebotics.ridgescout.databinding.FragmentScoutingMatchBinding;
import com.ridgebotics.ridgescout.scoutingData.ScoutingDataWriter; import com.ridgebotics.ridgescout.scoutingData.ScoutingDataWriter;
@@ -68,21 +69,20 @@ public class MatchScoutingFragment extends Fragment {
update_scouting_data(); 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; alliance_position = incrementMatchPos(alliance_position);
binding.fileIndicator.setOnClickListener(v -> { settingsManager.setAllyPos(alliance_position);
// if(e.getAction() != MotionEvent.ACTION_MOVE) return true; binding.alliancePosText.setText(alliance_position);
// System.out.println(e.getAxisValue(0));
if(edited) save();
alliance_position = incrementMatchPos(alliance_position); update_match_num();
settingsManager.setAllyPos(alliance_position); update_scouting_data();
binding.alliancePosText.setText(alliance_position); // return true;
});
update_match_num();
update_scouting_data();
// return true;
});
binding.backButton.setOnClickListener(v -> { binding.backButton.setOnClickListener(v -> {
if(edited) save(); if(edited) save();
@@ -4,8 +4,10 @@ import static android.view.View.VISIBLE;
import static androidx.navigation.fragment.FragmentKt.findNavController; import static androidx.navigation.fragment.FragmentKt.findNavController;
import static com.ridgebotics.ridgescout.utility.settingsManager.AllyPosKey; import static com.ridgebotics.ridgescout.utility.settingsManager.AllyPosKey;
import static com.ridgebotics.ridgescout.utility.settingsManager.CustomEventsKey; 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.MatchNumKey;
import static com.ridgebotics.ridgescout.utility.settingsManager.SelEVCodeKey; 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.UnameKey;
import static com.ridgebotics.ridgescout.utility.settingsManager.WifiModeKey; import static com.ridgebotics.ridgescout.utility.settingsManager.WifiModeKey;
import static com.ridgebotics.ridgescout.utility.settingsManager.YearNumKey; import static com.ridgebotics.ridgescout.utility.settingsManager.YearNumKey;
@@ -27,6 +29,7 @@ import android.widget.TableLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.google.android.material.card.MaterialCardView; import com.google.android.material.card.MaterialCardView;
@@ -96,9 +99,8 @@ public class settingsFragment extends Fragment {
manager.addItem(FTPEnabled); manager.addItem(FTPEnabled);
manager.addItem(new CheckboxSettingsItem(WifiModeKey, "Wifi Mode", 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 NumberSettingsItem(YearNumKey, "Year", 0, 9999));
manager.addItem(new DropdownSettingsItem(AllyPosKey, "Alliance Pos", alliance_pos_list)); manager.addItem(new DropdownSettingsItem(AllyPosKey, "Alliance Pos", alliance_pos_list));
int max = 0; int max = 0;
@@ -119,6 +121,7 @@ public class settingsFragment extends Fragment {
manager.addItem(eventCode); manager.addItem(eventCode);
manager.addItem(new StringSettingsItem(UnameKey, "Username")); manager.addItem(new StringSettingsItem(UnameKey, "Username"));
manager.addItem(new NumberSettingsItem(TeamNumKey, "Team Number", 0, 99999));
binding.SettingsTable.removeAllViews(); binding.SettingsTable.removeAllViews();
manager.getView(binding.SettingsTable); manager.getView(binding.SettingsTable);
@@ -389,9 +392,9 @@ public class settingsFragment extends Fragment {
public class CheckboxSettingsItem extends SettingsItem<Boolean> { public class CheckboxSettingsItem extends SettingsItem<Boolean> {
private List<SettingsItem<?>> controlledItems; private List<SettingsItem<?>> 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))); 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; MaterialCheckBox checkBox;
@@ -11,102 +11,119 @@ public class settingsManager {
public static SharedPreferences prefs; public static SharedPreferences prefs;
public static SharedPreferences.Editor editor; 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 SelEVCodeKey = "selected_event_code";
public static final String YearNumKey = "year_num"; 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 MatchNumKey = "match_num";
public static final String AllyPosKey = "alliance_pos"; 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 WifiModeKey = "wifi_mode";
public static final String FTPEnabled = "ftp_enabled"; public static final String DataModeKey = "data_view_mode";
public static final String FTPServer = "ftp_server"; public static final String BtUUIDKey = "bt_uuid";
public static final String FTPSendMetaFiles = "ftp_send_meta_files"; 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 final String CustomEventsKey = "enable_custom_event";
public static Map defaults = getDefaults(); public static Map defaults = getDefaults();
private static Map getDefaults(){ private static Map getDefaults(){
Map<String, Object> hm = new HashMap<>(); Map<String, Object> hm = new HashMap<>();
hm.put(UnameKey, "Username"); hm.put(TeamNumKey, 4388);
hm.put(UnameKey, "Username");
hm.put(SelEVCodeKey, "unset"); hm.put(SelEVCodeKey, "unset");
hm.put(WifiModeKey, false); hm.put(WifiModeKey, false);
hm.put(YearNumKey, 2025); hm.put(YearNumKey, 2025);
hm.put(MatchNumKey, 0); hm.put(MatchNumKey, 0);
hm.put(AllyPosKey, "red-1"); hm.put(AllyPosKey, "red-1");
hm.put(DataModeKey, 0); hm.put(DataModeKey, 0);
hm.put(BtUUIDKey, UUID.randomUUID().toString()); hm.put(BtUUIDKey, UUID.randomUUID().toString());
hm.put(FTPEnabled, false); hm.put(FTPEnabled, false);
hm.put(FTPServer, "0.0.0.0"); hm.put(FTPServer, "0.0.0.0");
hm.put(FTPSendMetaFiles, false); hm.put(FTPSendMetaFiles, false);
hm.put(EnableQuickAllianceChangeKey, false);
hm.put(CustomEventsKey, false); hm.put(CustomEventsKey, false);
return hm; return hm;
} }
public static SharedPreferences.Editor getEditor(){ public static SharedPreferences.Editor getEditor(){
if(editor == null) editor = prefs.edit(); if(editor == null) editor = prefs.edit();
return editor; return editor;
} }
public static void resetSettings(){ public static void resetSettings(){
getEditor() .putString(UnameKey, (String) defaults.get( UnameKey )).apply(); getEditor() .putInt(TeamNumKey, (int) defaults.get( TeamNumKey )).apply();
getEditor() .putString(SelEVCodeKey,(String) defaults.get( SelEVCodeKey)).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().putBoolean(WifiModeKey, (boolean) defaults.get( WifiModeKey )).apply();
getEditor() .putInt(YearNumKey, (int) defaults.get( YearNumKey )).apply(); getEditor() .putInt(YearNumKey, (int) defaults.get( YearNumKey )).apply();
getEditor() .putInt(MatchNumKey, (int) defaults.get( MatchNumKey )).apply(); getEditor() .putInt(MatchNumKey, (int) defaults.get( MatchNumKey )).apply();
getEditor() .putString(AllyPosKey, (String) defaults.get( AllyPosKey )).apply(); getEditor() .putString(AllyPosKey, (String) defaults.get( AllyPosKey )).apply();
getEditor() .putInt(DataModeKey, (int) defaults.get( DataModeKey )).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().putBoolean(FTPEnabled, (boolean) defaults.get( FTPEnabled )).apply();
getEditor() .putString(FTPServer, (String) defaults.get( FTPServer )).apply(); getEditor() .putString(FTPServer, (String) defaults.get( FTPServer )).apply();
getEditor().putBoolean(FTPSendMetaFiles, (boolean) defaults.get( FTPSendMetaFiles )).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. // 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 int getTeamNum(){return prefs.getInt( TeamNumKey, (int) defaults.get(TeamNumKey));}
public static void setEVCode(String str){ getEditor().putString( SelEVCodeKey,str).apply();} 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 String getUsername(){return prefs.getString( UnameKey, (String) defaults.get(UnameKey));}
public static void setWifiMode(boolean bool){getEditor().putBoolean( WifiModeKey,bool).apply();} 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 String getEVCode(){return prefs.getString( SelEVCodeKey, (String) defaults.get(SelEVCodeKey));}
public static void setYearNum(int num){ getEditor().putInt( YearNumKey,num).apply();} 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 boolean getWifiMode(){return prefs.getBoolean( WifiModeKey, (boolean) defaults.get(WifiModeKey));}
public static void setMatchNum(int num){ getEditor().putInt( MatchNumKey,num).apply();} 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 int getYearNum(){return prefs.getInt( YearNumKey, (int) defaults.get(YearNumKey));}
public static void setAllyPos(String str){ getEditor().putString( AllyPosKey,str).apply();} 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 int getMatchNum(){return prefs.getInt( MatchNumKey, (int) defaults.get(MatchNumKey));}
public static void setDataMode(int num){ getEditor().putInt( DataModeKey,num).apply();} 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 String getAllyPos(){return prefs.getString( AllyPosKey, (String) defaults.get(AllyPosKey));}
public static void setBtUUID(String str){ getEditor().putString( BtUUIDKey,str).apply();} 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 boolean getFTPEnabled(){return prefs.getBoolean( FTPEnabled, (boolean) defaults.get(FTPEnabled));}
public static void setFTPEnabled(boolean bool){getEditor().putBoolean( FTPEnabled,bool).apply();} 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 String getFTPServer(){return prefs.getString( FTPServer, (String) defaults.get(FTPServer));}
public static void setFTPServer(String str){ getEditor().putString( FTPServer,str).apply();} 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 boolean getFTPSendMetaFiles(){return prefs.getBoolean(FTPSendMetaFiles, (boolean) defaults.get(FTPSendMetaFiles));}
public static void setFTPSendMetaFiles(boolean bool){getEditor().putBoolean(FTPSendMetaFiles,bool).apply();} 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 boolean getCustomEvents(){return prefs.getBoolean(CustomEventsKey, (boolean) defaults.get(FTPSendMetaFiles));}
public static void setCustomEvents(boolean bool){getEditor().putBoolean(CustomEventsKey,bool).apply();} public static void setCustomEvents(boolean bool){getEditor().putBoolean(CustomEventsKey,bool).apply();}