public async void ShowActiveStreamers(TwitchActiveStreamer[] streamers, TwitchLiveStreamersLongPressAction longPressAction)
        {
            Logger.Instance.LogMessage(TracingLevel.INFO, $"ShowActiveStreamers called");
            StopFlashAndReset();

            await SwitchToFullScreen();

            // Wait until the UI Action keys have subscribed to get events
            int retries = 0;

            while (!IsReady && retries < 60)
            {
                Thread.Sleep(100);
                retries++;
            }
            if (!IsReady)
            {
                Logger.Instance.LogMessage(TracingLevel.WARN, "Could not get full screen ready!");
                await connection.SwitchProfileAsync(null);

                return;
            }
            StopFlashAndReset();
            streamersEventArgs = new ActiveStreamersEventArgs(streamers, longPressAction, numberOfKeys, 0);

            ActiveStreamersChanged?.Invoke(this, streamersEventArgs);
        }
 public void MoveToNextStreamersPage()
 {
     if (streamersEventArgs == null)
     {
         return;
     }
     StopFlash();
     streamersEventArgs.CurrentPage++;
     ActiveStreamersChanged?.Invoke(this, streamersEventArgs);
 }
        public void MoveToPrevStreamersPage()
        {
            if (streamersEventArgs == null)
            {
                return;
            }

            if (streamersEventArgs.CurrentPage == 0) // Already on first page
            {
                return;
            }

            StopFlashAndReset();
            streamersEventArgs.CurrentPage--;
            ActiveStreamersChanged?.Invoke(this, streamersEventArgs);
        }
        public async void ShowActiveStreamers(TwitchActiveStreamer[] streamers, TwitchLiveStreamersLongPressAction longPressAction)
        {
            Logger.Instance.LogMessage(TracingLevel.INFO, $"ShowActiveStreamers called");
            StopFlashAndReset();

            switch (connection.DeviceInfo().Type)
            {
            case StreamDeckDeviceType.StreamDeckClassic:
                await connection.SwitchProfileAsync("FullScreenAlert");

                break;

            case StreamDeckDeviceType.StreamDeckMini:
                await connection.SwitchProfileAsync("FullScreenAlertMini");

                break;

            case StreamDeckDeviceType.StreamDeckXL:
                await connection.SwitchProfileAsync("FullScreenAlertXL");

                break;

            default:
                Logger.Instance.LogMessage(TracingLevel.WARN, $"SwitchProfileAsync: Unsupported device type: {connection.DeviceInfo().Type}");
                break;
            }

            // Wait until the UI Action keys have subscribed to get events
            int retries = 0;

            while (!IsReady && retries < 60)
            {
                Thread.Sleep(100);
                retries++;
            }
            if (!IsReady)
            {
                Logger.Instance.LogMessage(TracingLevel.WARN, "Could not get full screen ready!");
                await connection.SwitchProfileAsync(null);

                return;
            }
            StopFlashAndReset();
            streamersEventArgs = new ActiveStreamersEventArgs(streamers, longPressAction, numberOfKeys, 0);

            ActiveStreamersChanged?.Invoke(this, streamersEventArgs);
        }