Example #1
0
        private static async Task InitializeApplicationAsync()
        {
            Application.backgroundLoadingPriority = ThreadPriority.High; // high to load fast first assets.
            Application.targetFrameRate           = 15;

            #if UnityAddressables
            var resourceLocator = await AddressablesInitializeAsync();

            Debug.Log($"Resource Locator Id: '{(resourceLocator != null ? resourceLocator.LocatorId : "null")}'");
                        #endif

                        #if UnityLocalization
            await LocalizationInitializeAsync();
                        #endif

            ApplicationInitialized?.Invoke();

            Application.targetFrameRate           = 60;
            Application.backgroundLoadingPriority = ThreadPriority.Low;
        }
Example #2
0
        /// <summary>
        ///     Evento: ApplicationInitialized
        /// </summary>
        /// <param name="notification">Evento.</param>
        /// <param name="cancellationToken">Token de cancelamento.</param>
        /// <returns>Task</returns>
        public async Task Handle(ApplicationInitialized notification, CancellationToken cancellationToken)
        {
            const Window formType = Window.GroupWork;
            var          forms    = await _messageBus.Send <IDictionary <Window, Form> >(
                new WindowOpen(formType), cancellationToken);

            var form = forms[formType];

            ((IFormLayout)form).NotUseEscToClose   = true;
            ((IFormLayout)form).ShowButtonMinimize = true;

            var lockScreen = false;

            form.SizeChanged += (sender, args) =>
            {
                if (form.WindowState == FormWindowState.Minimized)
                {
                    foreach (var formLayout in Application
                             .OpenForms
                             .Cast <Form>()
                             .Where(a => a != form && a is IFormLayout)
                             .ToArray())
                    {
                        formLayout.Hide();
                    }

                    lockScreen = _lockScreen.IsLocked;
                    if (lockScreen)
                    {
                        _lockScreen.Unlock();
                    }
                }
                else if (lockScreen)
                {
                    _lockScreen.Lock();
                    lockScreen = false;
                }
            };
        }