void ChangeEgsDeviceCursorSpeedAndPrecisionMode(CursorSpeedAndPrecisionModeButtonModel launchingElement)
        {
            var hr = refToAppModel.RefToHostApp.Device.Settings.CursorSpeedAndPrecisionMode.OptionalValue.SelectSingleItemByPredicate(e => e.Description == launchingElement.ModeDescription);

            if (hr == false)
            {
                Debugger.Break();
                hr = refToAppModel.RefToHostApp.Device.Settings.CursorSpeedAndPrecisionMode.OptionalValue.SelectSingleItemByPredicate(e => e.Description == "Standard");
                Debug.Assert(hr);
            }
        }
        public LauncherPageModel()
        {
            PageTitle = $"{ApplicationCommonSettings.HostApplicationName} by {ApplicationCommonSettings.SellerShortName}:  Apps Launcher on BlueStacks (beta version)";

            IsExtractedAdvancedMode    = false;
            IsToShowBlueStacksAppIcons = true;

            BeginnerModeButtonModel = new CursorSpeedAndPrecisionModeButtonModel()
            {
                ButtonContentText     = "Beginner",
                ButtonDescriptionText = "First try this mode to get accustomed to " + ApplicationCommonSettings.HostApplicationName,
                ModeDescription       = "Beginner",
            };
            StandardModeButtonModel = new CursorSpeedAndPrecisionModeButtonModel()
            {
                ButtonContentText     = "Standard",
                ButtonDescriptionText = "Use this mode once you get accustomed to " + ApplicationCommonSettings.HostApplicationName,
                ModeDescription       = "Standard",
            };
            HighSpeedModeButtonModel = new CursorSpeedAndPrecisionModeButtonModel()
            {
                ButtonContentText     = "High\r\nSpeed",
                ButtonDescriptionText = "World's fastest feature mode.",
                ModeDescription       = "High Speed",
            };
            HighPrecisionModeButtonModel = new CursorSpeedAndPrecisionModeButtonModel()
            {
                ButtonContentText     = "High\r\nPrecision",
                ButtonDescriptionText = "Smooth and accurate gesture mode.",
                ModeDescription       = "High Precision",
            };

            AdvancedButtonModel = new TextButtonModel()
            {
                ButtonContentText     = "Advanced",
                ButtonDescriptionText = "Click to show advanced gesture modes.",
            };
            TutorialAppButtonModel = new TextButtonModel()
            {
                ButtonContentText     = "Tutorial\r\nApp",
                ButtonDescriptionText = "Tutorial application for " + ApplicationCommonSettings.HostApplicationName,
            };
            TutorialVideoButtonModel = new LaunchingOtherApplicationButtonModel()
            {
                ButtonContentText                = "Tutorial\r\nVideo",
                ButtonDescriptionText            = "View the tutorial video.",
                ProcessStartInfoFileName         = @"https://ksr-video.imgix.net/assets/005/058/642/1cf5269fd1908abc74ff3b7a83e5fe27_h264_high.mp4",
                ProcessStartInfoWorkingDirectory = "",
                ProcessStartInfoArguments        = "",
            };
            ExitButtonModel = new TextButtonModel()
            {
                ButtonContentText     = "Exit",
                ButtonDescriptionText = "Exit this application.",
            };

            BeginnerModeDetail = new LauncherCursorSpeedAndPrecisionModeAndRecommendedAppsViewModel()
            {
                ModeButtonModel           = BeginnerModeButtonModel,
                ModeDescriptionText       = "Beginner",
                RecommendedAppsToPlayText = "Recommended apps to play in Beginner mode",
                RecommendedAppLeft        = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Candy Crush",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.king.candycrushsaga com.king.candycrushsaga.CandyCrushSagaActivity"
                    },
                    AppIconImageSourceFileName = "app_candycrush.png"
                },
                RecommendedAppRight = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Cut The Rope",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.zeptolab.ctr.paid com.zeptolab.ctr.CtrApp"
                    },
                    AppIconImageSourceFileName = "app_cuttherope.png"
                }
            };
            StandardModeDetail = new LauncherCursorSpeedAndPrecisionModeAndRecommendedAppsViewModel()
            {
                ModeButtonModel           = StandardModeButtonModel,
                ModeDescriptionText       = "Standard",
                RecommendedAppsToPlayText = "Recommended apps to play in Standard mode",
                RecommendedAppLeft        = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Fruit Ninja",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.halfbrick.fruitninja com.halfbrick.mortar.MortarGameActivity"
                    },
                    AppIconImageSourceFileName = "app_fruitninja.png"
                },
                RecommendedAppRight = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Smash Hit",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.mediocre.smashhit com.mediocre.smashhit.Main"
                    },
                    AppIconImageSourceFileName = "app_smashhit.png"
                }
            };
            HighSpeedModeDetail = new LauncherCursorSpeedAndPrecisionModeAndRecommendedAppsViewModel()
            {
                ModeButtonModel           = HighSpeedModeButtonModel,
                ModeDescriptionText       = "High Speed",
                RecommendedAppsToPlayText = "Recommended apps to play in High Speed mode",
                RecommendedAppLeft        = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Fruit Ninja",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.halfbrick.fruitninja com.halfbrick.mortar.MortarGameActivity"
                    },
                    AppIconImageSourceFileName = "app_fruitninja.png"
                },
                RecommendedAppRight = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Smash Hit",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.mediocre.smashhit com.mediocre.smashhit.Main"
                    },
                    AppIconImageSourceFileName = "pp_smashhit.png"
                }
            };
            HighPrecisionModeDetail = new LauncherCursorSpeedAndPrecisionModeAndRecommendedAppsViewModel()
            {
                ModeButtonModel           = HighPrecisionModeButtonModel,
                ModeDescriptionText       = "High Precision",
                RecommendedAppsToPlayText = "Recommended apps to play in High Precision mode",
                RecommendedAppLeft        = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Paperless",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android air.com.jeremieklemke.drawing air.com.jeremieklemke.drawing.AppEntry"
                    },
                    AppIconImageSourceFileName = "app_paperless.png"
                },
                RecommendedAppRight = new LauncherRecommendedAppViewModel()
                {
                    AppTitle = "Flow Free",
                    LaunchingOtherApplicationButtonModel = new LaunchingOtherApplicationButtonModel()
                    {
                        ButtonContentText                = "",
                        ButtonDescriptionText            = "",
                        ProcessStartInfoFileName         = "C:\\Program Files (x86)\\BlueStacks\\HD-RunApp.exe",
                        ProcessStartInfoWorkingDirectory = "",
                        ProcessStartInfoArguments        = "Android com.bigduckgames.flow com.bigduckgames.flow.flow"
                    },
                    AppIconImageSourceFileName = "app_flowfree.png"
                }
            };

            _CursorOveringLauncherButtonSummary            = StandardModeButtonModel;
            _CursorSpeedAndPrecisionModeAndRecommendedApps = StandardModeDetail;


            if (IsToShowBlueStacksAppIcons == false)
            {
                BeginnerModeDetail.RecommendedAppLeft.AppIconImageSourceFileName       = "";
                BeginnerModeDetail.RecommendedAppRight.AppIconImageSourceFileName      = "";
                StandardModeDetail.RecommendedAppLeft.AppIconImageSourceFileName       = "";
                StandardModeDetail.RecommendedAppRight.AppIconImageSourceFileName      = "";
                HighSpeedModeDetail.RecommendedAppLeft.AppIconImageSourceFileName      = "";
                HighSpeedModeDetail.RecommendedAppRight.AppIconImageSourceFileName     = "";
                HighPrecisionModeDetail.RecommendedAppLeft.AppIconImageSourceFileName  = "";
                HighPrecisionModeDetail.RecommendedAppRight.AppIconImageSourceFileName = "";
            }
        }