Skip to content

Commit 5161b96

Browse files
committed
feat: adding persistence of settings across shared URLs
1 parent 214759f commit 5161b96

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

Assets/Scripts/TrajectoryPlanner/TrajectoryPlannerManager.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -866,11 +866,16 @@ private void OnApplicationQuit()
866866

867867
public void ShareLink()
868868
{
869+
// Probe data
869870
var data = GetActiveProbeJSONFlattened();
870-
871871
var plainTextBytes = Encoding.UTF8.GetBytes(data);
872872
string encodedStr = Convert.ToBase64String(plainTextBytes);
873-
string url = $"https://data.virtualbrainlab.org/Pinpoint/?Probes={encodedStr}";
873+
874+
// Settings data
875+
var settingsData = Settings.ToSaveString();
876+
string settingsStr = Convert.ToBase64String(Encoding.UTF8.GetBytes(settingsData));
877+
878+
string url = $"https://data.virtualbrainlab.org/Pinpoint/?Probes={encodedStr}&Settings={settingsStr}";
874879

875880
#if UNITY_EDITOR
876881
Debug.Log(url);
@@ -965,7 +970,6 @@ private bool LoadSavedProbesWebGL()
965970
if (query.Equals("Probes"))
966971
{
967972
string encodedStr = qscoll[query];
968-
Debug.Log(encodedStr);
969973

970974
var bytes = System.Convert.FromBase64String(encodedStr);
971975
string probeArrayStr = System.Text.Encoding.UTF8.GetString(bytes);
@@ -975,6 +979,16 @@ private bool LoadSavedProbesWebGL()
975979
LoadSavedProbesFromStringArray(savedProbes);
976980
Debug.Log("Found Probes in URL querystring, setting to: " + savedProbes);
977981
}
982+
if (query.Equals("Settings"))
983+
{
984+
string settingsStr = qscoll[query];
985+
Debug.Log(settingsStr);
986+
987+
var bytes = System.Convert.FromBase64String(encodedStr);
988+
string settingsStr = System.Text.Encoding.UTF8.GetString(bytes);
989+
990+
Settings.RecoverFromSaveString(settingsStr);
991+
}
978992
}
979993
}
980994

Assets/Scripts/TrajectoryPlanner/Utilities/Settings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,12 +621,12 @@ static void ResetPlayerPrefs()
621621

622622
#region Serialization
623623

624-
public static string Settings2String()
624+
public static string ToSaveString()
625625
{
626626
return JsonUtility.ToJson(data);
627627
}
628628

629-
public static void String2Settings(string settingsString)
629+
public static void RecoverFromSaveString(string settingsString)
630630
{
631631
data = JsonUtility.FromJson<InternalData>(settingsString);
632632
// Run the apply function to recover all settings properly

0 commit comments

Comments
 (0)