Example #1
0
        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);
        }
Example #5
0
        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);
        }