public void Refresh() { m_Devices.Clear(); m_DeviceHandles.Clear(); var deviceDirectoryPaths = new[] { Path.Combine("Packages", "com.unity.device-simulator", ".DeviceDefinitions"), DeviceSimulatorUserSettingsProvider.LoadOrCreateSettings().DeviceDirectory }; foreach (var deviceDirectoryPath in deviceDirectoryPaths) { if (string.IsNullOrEmpty(deviceDirectoryPath) || !Directory.Exists(deviceDirectoryPath)) { continue; } var deviceDirectory = new DirectoryInfo(deviceDirectoryPath); var deviceDefinitions = deviceDirectory.GetFiles("*.device.json"); foreach (var deviceDefinition in deviceDefinitions) { DeviceInfo deviceInfo; using (StreamReader sr = deviceDefinition.OpenText()) { deviceInfo = JsonUtility.FromJson <DeviceInfo>(sr.ReadToEnd()); } m_Devices.Add(deviceInfo); m_DeviceHandles.Add(new DeviceHandle(m_Devices.Count - 1, deviceInfo.Meta.friendlyName, deviceDirectory.FullName)); } } m_DeviceHandles.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); }
public void Refresh() { m_Devices.Clear(); List <string> deviceDirectoryPaths = new List <string> { Path.GetFullPath(Path.Combine("Packages", "com.unity.device-simulator", ".DeviceDefinitions")), DeviceSimulatorUserSettingsProvider.LoadOrCreateSettings().DeviceDirectory }; // Remove empty or duplicated directories. deviceDirectoryPaths.RemoveAll(string.IsNullOrEmpty); var filteredDirectoryPaths = deviceDirectoryPaths.Distinct(new DirectoryComparer()).ToArray(); foreach (var deviceDirectoryPath in filteredDirectoryPaths) { if (!Directory.Exists(deviceDirectoryPath)) { continue; } var deviceDirectory = new DirectoryInfo(deviceDirectoryPath); var deviceDefinitions = deviceDirectory.GetFiles("*.device.json"); foreach (var deviceDefinition in deviceDefinitions) { string deviceFileText; using (StreamReader sr = deviceDefinition.OpenText()) { deviceFileText = sr.ReadToEnd(); } if (!DeviceInfoParse(deviceFileText, out var parseErrors, out var deviceInfo)) { Debug.LogWarningFormat("Device Simulator could not parse {0}. Errors found:\n{1}", deviceDefinition.FullName, parseErrors); }
public static SettingsProvider CreateDeviceSimulatorSettingsProvider() { var provider = new DeviceSimulatorUserSettingsProvider("Preferences/Device Simulator", SettingsScope.User); provider.activateHandler = (searchContext, rootElement) => { provider.InitUI(rootElement); }; return(provider); }
public SimulatorPreviewPanel(VisualElement rootElement, InputProvider inputProvider, DeviceInfo deviceInfo, SimulatorJsonSerialization states) { m_RootElement = rootElement; m_InputProvider = inputProvider; m_DeviceInfo = deviceInfo; var userSettings = DeviceSimulatorUserSettingsProvider.LoadOrCreateSettings(); m_HighlightSafeAreaColor = userSettings.SafeAreaHighlightColor; m_HighlightSafeAreaLineWidth = userSettings.SafeAreaHighlightLineWidth; Init(states); }
public static SettingsProvider CreateDeviceSimulatorSettingsProvider() { var provider = new DeviceSimulatorUserSettingsProvider("Preferences/Device Simulator", SettingsScope.User); provider.activateHandler = (searchContext, rootElement) => { var visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("packages/com.unity.device-simulator/Editor/uxmls/user_settings.uxml"); visualTree.CloneTree(rootElement); var textField = rootElement.Q <TextField>("customized-device-directory"); textField.isDelayed = true; textField.SetValueWithoutNotify(LoadOrCreateSettings().DeviceDirectory); textField.RegisterValueChangedCallback(SetCustomizedDeviceDirectory); provider.m_CustomizedDeviceDirectoryField = textField; var button = rootElement.Q <Button>("set-customized-device-directory"); button.clickable = new Clickable(SetCustomizedDeviceDirectory); }; s_Provider = provider; return(provider); }