Files
RidgeScout/app/src/main/java/com/ridgebotics/ridgescout/utility/SettingsManager.java
T

155 lines
8.1 KiB
Java
Raw Normal View History

2024-09-20 15:59:35 -06:00
package com.ridgebotics.ridgescout.utility;
import android.content.SharedPreferences;
2025-04-08 12:45:33 -06:00
import java.lang.reflect.Field;
2024-09-20 15:59:35 -06:00
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
2025-04-21 12:06:37 -06:00
// Helper class for loading settings from android SharedPreferences
public class SettingsManager {
2024-09-20 15:59:35 -06:00
public static SharedPreferences prefs;
public static SharedPreferences.Editor editor;
public static final String TeamNumKey = "team_num";
public static final String UnameKey = "username";
2024-09-20 15:59:35 -06:00
public static final String SelEVCodeKey = "selected_event_code";
public static final String YearNumKey = "year_num";
2025-04-08 12:45:33 -06:00
public static final String FieldImageKey = "field_image";
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 TeamsDataModeKey = "teams_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";
2025-02-18 08:34:27 -07:00
public static final String CustomEventsKey = "enable_custom_event";
2024-09-20 15:59:35 -06:00
2025-04-12 14:22:27 -06:00
public static final String ScoutingReportKey = "scouting_report";
public static final String ScoutingReportIndexKey = "scouting_report_index";
2024-09-20 15:59:35 -06:00
public static Map defaults = getDefaults();
private static Map getDefaults(){
Map<String, Object> hm = new HashMap<>();
hm.put(TeamNumKey, 4388);
hm.put(UnameKey, "Username");
2024-09-20 15:59:35 -06:00
hm.put(SelEVCodeKey, "unset");
hm.put(WifiModeKey, false);
hm.put(YearNumKey, 2025);
2025-04-08 12:45:33 -06:00
hm.put(FieldImageKey, "2025");
hm.put(MatchNumKey, 0);
hm.put(AllyPosKey, "red-1");
hm.put(DataModeKey, 0);
hm.put(TeamsDataModeKey, 0);
hm.put(BtUUIDKey, UUID.randomUUID().toString());
hm.put(FTPEnabled, false);
hm.put(FTPServer, "0.0.0.0");
2025-01-23 11:58:45 -07:00
hm.put(FTPSendMetaFiles, false);
hm.put(EnableQuickAllianceChangeKey, false);
2025-02-18 08:34:27 -07:00
hm.put(CustomEventsKey, false);
2025-04-12 14:22:27 -06:00
hm.put(ScoutingReportKey, "");
hm.put(ScoutingReportIndexKey, 0);
2024-09-20 15:59:35 -06:00
return hm;
}
2024-10-05 18:47:36 -06:00
public static SharedPreferences.Editor getEditor(){
if(editor == null) editor = prefs.edit();
return editor;
2024-09-20 15:59:35 -06:00
}
2024-10-01 07:32:00 -06:00
public static void resetSettings(){
getEditor() .putInt(TeamNumKey, (int) defaults.get( TeamNumKey )).apply();
getEditor() .putString(UnameKey, (String) defaults.get( UnameKey )).apply();
getEditor() .putString(SelEVCodeKey,(String) defaults.get( SelEVCodeKey)).apply();
2024-10-01 07:32:00 -06:00
getEditor().putBoolean(WifiModeKey, (boolean) defaults.get( WifiModeKey )).apply();
2024-10-05 18:47:36 -06:00
getEditor() .putInt(YearNumKey, (int) defaults.get( YearNumKey )).apply();
2025-04-08 12:45:33 -06:00
getEditor() .putString(FieldImageKey, (String) defaults.get( FieldImageKey )).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(TeamsDataModeKey, (int) defaults.get( TeamsDataModeKey )).apply();
2024-10-05 18:47:36 -06:00
getEditor() .putString(BtUUIDKey, (String) defaults.get( BtUUIDKey )).apply();
2024-10-05 18:47:36 -06:00
getEditor().putBoolean(FTPEnabled, (boolean) defaults.get( FTPEnabled )).apply();
getEditor() .putString(FTPServer, (String) defaults.get( FTPServer )).apply();
getEditor().putBoolean(FTPSendMetaFiles, (boolean) defaults.get( FTPSendMetaFiles )).apply();
2025-02-18 08:34:27 -07:00
getEditor().putBoolean(EnableQuickAllianceChangeKey, (boolean) defaults.get( EnableQuickAllianceChangeKey )).apply();
getEditor().putBoolean(CustomEventsKey, (boolean) defaults.get( CustomEventsKey )).apply();
2024-10-01 07:32:00 -06:00
}
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 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 boolean getWifiMode(){return prefs.getBoolean( WifiModeKey, (boolean) defaults.get(WifiModeKey));}
public static void setWifiMode(boolean bool){getEditor().putBoolean( WifiModeKey,bool).apply();}
2024-09-20 15:59:35 -06:00
public static int getYearNum(){return prefs.getInt( YearNumKey, (int) defaults.get(YearNumKey));}
public static void setYearNum(int num){ getEditor().putInt( YearNumKey,num).apply();}
2024-09-20 15:59:35 -06:00
2025-04-08 12:45:33 -06:00
public static String getFieldImageIndex(){return prefs.getString( FieldImageKey, (String) defaults.get(FieldImageKey));}
public static void setFieldImageIndex(String str){ getEditor().putString( FieldImageKey,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();}
2024-09-20 15:59:35 -06:00
public static String getAllyPos(){return prefs.getString( AllyPosKey, (String) defaults.get(AllyPosKey));}
public static void setAllyPos(String str){ getEditor().putString( AllyPosKey,str).apply();}
2024-09-20 15:59:35 -06:00
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 getTeamsDataMode(){return prefs.getInt( TeamsDataModeKey, (int) defaults.get(TeamsDataModeKey));}
public static void setTeamsDataMode(int num){ getEditor().putInt( TeamsDataModeKey,num).apply();}
2024-09-20 15:59:35 -06:00
public static String getBtUUID(){return prefs.getString( BtUUIDKey, (String) defaults.get(BtUUIDKey));}
public static void setBtUUID(String str){ getEditor().putString( BtUUIDKey,str).apply();}
2024-09-20 15:59:35 -06:00
2024-10-05 18:47:36 -06:00
public static boolean getFTPEnabled(){return prefs.getBoolean( FTPEnabled, (boolean) defaults.get(FTPEnabled));}
public static void setFTPEnabled(boolean bool){getEditor().putBoolean( FTPEnabled,bool).apply();}
2024-10-05 18:47:36 -06:00
public static String getFTPServer(){return prefs.getString( FTPServer, (String) defaults.get(FTPServer));}
public static void setFTPServer(String str){ getEditor().putString( FTPServer,str).apply();}
2024-10-05 18:47:36 -06:00
public static boolean getFTPSendMetaFiles(){return prefs.getBoolean(FTPSendMetaFiles, (boolean) defaults.get(FTPSendMetaFiles));}
public static void setFTPSendMetaFiles(boolean bool){getEditor().putBoolean(FTPSendMetaFiles,bool).apply();}
2024-10-05 18:47:36 -06:00
public static boolean getEnableQuickAlliancePosChange(){return prefs.getBoolean(EnableQuickAllianceChangeKey, (boolean) defaults.get(EnableQuickAllianceChangeKey));}
public static void setEnableQuickAlliancePosChange(boolean bool){getEditor().putBoolean(EnableQuickAllianceChangeKey,bool).apply();}
2025-02-18 08:34:27 -07:00
public static boolean getCustomEvents(){return prefs.getBoolean(CustomEventsKey, (boolean) defaults.get(FTPSendMetaFiles));}
public static void setCustomEvents(boolean bool){getEditor().putBoolean(CustomEventsKey,bool).apply();}
2025-02-18 08:34:27 -07:00
2025-01-23 11:58:45 -07:00
2024-10-05 18:47:36 -06:00
2025-04-12 14:22:27 -06:00
public static String getScoutingReport(String eventCode, int matchNum){return prefs.getString(ScoutingReportKey+"_"+eventCode+"_"+matchNum, (String) defaults.get(ScoutingReportKey));}
public static void setScoutingReport(String eventCode, int matchNum, String data){getEditor().putString(ScoutingReportKey+"_"+eventCode+"_"+matchNum,data).apply();}
public static int getReportMatchIndex(String eveode){return prefs.getInt( ScoutingReportIndexKey+"_"+eveode, (int) defaults.get(ScoutingReportIndexKey));}
public static void setReportIndex(int num, String evcode){ getEditor().putInt( ScoutingReportIndexKey+"_"+evcode,num).apply();}
2024-10-05 18:47:36 -06:00
2024-09-20 15:59:35 -06:00
}