// should really look at all these methods and see if we want to move them to the helper

        // i think this method is ok because it is called before any other thread should access the data
        public void LoadFilesAndUpdatePreferenceData()
        {
            DataHelper.PreferenceData = _saveLoadHandler.LoadPreferenceData(); // something is not right here

            if (DataHelper.PreferenceData == null)
            {
                DataHelper.PreferenceData = new PreferenceData();
                PreferenceValidator.AddDefaultKeybindsToDictionaries();
                DataHelper.PreferenceData.Volume     = PreferenceValidator.DefaultVolume;
                DataHelper.PreferenceData.Resolution = PreferenceValidator.DefaultResolution;
            }
            else
            {
                PreferenceValidator.ValidatePreferenceData();
            }

            _saveLoadHandler.LoadFiles();

            DataHelper.File0SaveData = _saveLoadHandler.File0Data != null?_saveLoadHandler.File0Data.Copy() : DataHelper.CreateStartingSaveData();

            DataHelper.File1SaveData = _saveLoadHandler.File1Data != null?_saveLoadHandler.File1Data.Copy() : DataHelper.CreateStartingSaveData();

            DataHelper.File2SaveData = _saveLoadHandler.File2Data != null?_saveLoadHandler.File2Data.Copy() : DataHelper.CreateStartingSaveData();

            DataHelper.PreferenceData.File0Info = DataHelper.File0SaveData.FileInfo;
            DataHelper.PreferenceData.File1Info = DataHelper.File1SaveData.FileInfo;
            DataHelper.PreferenceData.File2Info = DataHelper.File2SaveData.FileInfo;

            _saveLoadHandler.SavePreferenceData(DataHelper.PreferenceData.Copy());
        }
        public void ResetPreferenceData()
        {
            var prefData = new PreferenceData();

            PreferenceValidator.AddDefaultKeybindsToDictionaries();
            prefData.Volume     = PreferenceValidator.DefaultVolume;
            prefData.Resolution = PreferenceValidator.DefaultResolution;

            prefData.File0Info = DataHelper.PreferenceData.File0Info;
            prefData.File1Info = DataHelper.PreferenceData.File1Info;
            prefData.File2Info = DataHelper.PreferenceData.File2Info;

            DataHelper.PreferenceData = prefData;
            _backgroundThread.AddPreferenceRequest(DataHelper.PreferenceData.Copy());
        }
 public void ResetPreferenceKeybinds()
 {
     PreferenceValidator.AddDefaultKeybindsToDictionaries();
     _backgroundThread.AddPreferenceRequest(DataHelper.PreferenceData.Copy());
 }