/// <summary>
        /// Verify operation.
        /// </summary>
        private void VerifyOperation()
        {
            switch (_activityData.DocumentProcessAction)
            {
            case GeniusBytesPullPrintAction.Delete:
            case GeniusBytesPullPrintAction.DeleteAll:
                _geniusBytesApp.PressConfirmonPopup();
                _geniusBytesApp.PressBackKey();
                break;

            case GeniusBytesPullPrintAction.PrintandDelete:
            case GeniusBytesPullPrintAction.Print:
                VerifyPrintingColorMode();
                VerifyStartPrinting();
                VerifyDeviceFinishedPrinting();
                _geniusBytesApp.PressBackKey();
                break;

            case GeniusBytesPullPrintAction.PrintAllandDelete:
                VerifyPrintingColorMode();
                VerifyStartPrinting();
                VerifyPrintAllFinishedPrinting();
                _geniusBytesApp.PressBackKey();
                break;

            case GeniusBytesPullPrintAction.PrintAll:
                VerifyStartPrinting();
                VerifyPrintAllFinishedPrinting();
                break;
            }
            _geniusBytesApp.WaitObjectForAvailable("Pull Printing(", TimeSpan.FromSeconds(5));
            SetFinalJobCount();
        }
        /// <summary>
        /// Navigate to home screen
        /// </summary>
        public override void NavigateHome()
        {
            bool   homeScreen = false;
            string screen     = GetTopmostScreen();

            TimeSpan waitingTime = TimeSpan.FromMilliseconds(1000);

            if ((homeScreen = AtHomeScreen()) == false)
            {
                RecordEvent(DeviceWorkflowMarker.NavigateHomeBegin);

                for (int i = 0; i < 10; i++)
                {
                    // Pressing the home button should get us back to the home screen,
                    if (_geniusBytesApp.WaitObjectForAvailable("Warning", waitingTime))
                    {
                        _geniusBytesApp.Confirm();
                    }
                    else if (_geniusBytesApp.WaitObjectForAvailable("OK", waitingTime))
                    {
                        _geniusBytesApp.PressOKKey();
                    }
                    else if (_geniusBytesApp.WaitObjectForAvailable("Close", waitingTime))
                    {
                        _geniusBytesApp.PressCloseKey();
                    }
                    else if (_geniusBytesApp.WaitObjectForAvailable("Cancel", waitingTime))
                    {
                        _geniusBytesApp.PressCancelKey();
                    }
                    else if (_geniusBytesApp.WaitObjectForAvailable("contextView-back", waitingTime))
                    {
                        _geniusBytesApp.PressBackKey();
                    }
                    else if (_geniusBytesApp.WaitObjectForAvailable("mainmenu-logout-normal", waitingTime))
                    {
                        _geniusBytesApp.SignOut();
                    }

                    Wait.ForChange(GetTopmostScreen, screen, TimeSpan.FromSeconds(3));
                    if (AtHomeScreen())
                    {
                        homeScreen = true;
                        RecordEvent(DeviceWorkflowMarker.NavigateHomeEnd);
                        break;
                    }
                }
            }

            if (!homeScreen)
            {
                // If we're not there after 10 tries, we're not going to make it.
                throw new DeviceWorkflowException($"Unable to navigate to home screen. Top most screen is '{screen}'.");
            }
            GetTopmostScreen();
        }