Ejemplo n.º 1
0
 private void mUpgradeBluestacksStatus_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     if (this.mUpgradeBluestacksStatusTextBlock.Text.ToString((IFormatProvider)CultureInfo.InvariantCulture).Equals(LocaleStrings.GetLocalizedString("STRING_DOWNLOAD_UPDATE", ""), StringComparison.OrdinalIgnoreCase))
     {
         ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.SettingsGearDwnld, "");
         UpdatePrompt updatePrompt1 = new UpdatePrompt(BlueStacksUpdater.sBstUpdateData);
         updatePrompt1.Height = 215.0;
         updatePrompt1.Width  = 400.0;
         UpdatePrompt    updatePrompt2   = updatePrompt1;
         ContainerWindow containerWindow = new ContainerWindow(this.ParentWindow, (UserControl)updatePrompt2, (double)(int)updatePrompt2.Width, (double)(int)updatePrompt2.Height, false, true, false, -1.0, (Brush)null);
     }
     else if (this.mUpgradeBluestacksStatusTextBlock.Text.ToString((IFormatProvider)CultureInfo.InvariantCulture).Equals(LocaleStrings.GetLocalizedString("STRING_DOWNLOADING_UPDATE", ""), StringComparison.OrdinalIgnoreCase))
     {
         this.ParentWindow.mTopBar.mSettingsMenuPopup.IsOpen = false;
         BlueStacksUpdater.ShowDownloadProgress();
     }
     else
     {
         if (!this.mUpgradeBluestacksStatusTextBlock.Text.ToString((IFormatProvider)CultureInfo.InvariantCulture).Equals(LocaleStrings.GetLocalizedString("STRING_INSTALL_UPDATE", ""), StringComparison.OrdinalIgnoreCase))
         {
             return;
         }
         this.ParentWindow.ShowInstallPopup();
     }
 }
 internal static void DownloadNow(BlueStacksUpdateData bstUpdateData, bool hiddenMode)
 {
     new Thread((ThreadStart)(() =>
     {
         BlueStacksUpdater.IsDownloadingInHiddenMode = hiddenMode;
         BlueStacksUpdater.SUpdateState = BlueStacksUpdater.UpdateState.DOWNLOADING;
         if (System.IO.File.Exists(bstUpdateData.UpdateDownloadLocation))
         {
             BlueStacksUpdater.DownloadComplete();
         }
         else
         {
             BlueStacksUpdater.ParentWindow.Dispatcher.Invoke((Delegate)(() =>
             {
                 BlueStacksUIBinding.Bind(BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpgradeBluestacksStatusTextBlock, "STRING_DOWNLOADING_UPDATE", "");
                 BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpdateDownloadProgressPercentage.Visibility = Visibility.Visible;
                 BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpdateDownloadProgressPercentage.Content = (object)"0%";
                 BlueStacksUpdater.sUpdateDownloadProgress = new UpdateDownloadProgress();
                 BlueStacksUpdater.sUpdateDownloadProgress.mUpdateDownloadProgressPercentage.Content = (object)"0%";
                 BlueStacksUpdater.sUpdateDownloadProgress.Owner = (Window)BlueStacksUpdater.ParentWindow;
                 if (hiddenMode)
                 {
                     return;
                 }
                 BlueStacksUpdater.sUpdateDownloadProgress.Show();
             }));
             BlueStacksUpdater.DownloadUpdate(bstUpdateData);
         }
     }))
     {
         IsBackground = true
     }.Start();
 }
 private void DownloadNowButton_Click(object sender, RoutedEventArgs e)
 {
     Logger.Info("Clicked Download_Now button");
     ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.UpgradePopupDwnld, "");
     BlueStacksUpdater.DownloadNow(this.mBstUpdateData, false);
     BlueStacksUIUtils.CloseContainerWindow((FrameworkElement)this);
 }
 private void mCheckUpdateBtn_Click(object sender, RoutedEventArgs e)
 {
     if (string.Equals(this.mCheckUpdateBtn.Content.ToString(), LocaleStrings.GetLocalizedString("STRING_DOWNLOAD_UPDATE", ""), StringComparison.InvariantCulture))
     {
         BlueStacksUpdater.DownloadNow(BlueStacksUpdater.sBstUpdateData, false);
         ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.SettingDownloadUpdate, "");
     }
     else if (string.Equals(this.mCheckUpdateBtn.Content.ToString(), LocaleStrings.GetLocalizedString("STRING_INSTALL_UPDATE", ""), StringComparison.InvariantCulture))
     {
         this.ParentWindow.ShowInstallPopup();
         ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.SettingInstallUpdate, "");
     }
     else
     {
         if (!string.Equals(this.mCheckUpdateBtn.Content.ToString(), LocaleStrings.GetLocalizedString("STRING_CHECK_UPDATES", ""), StringComparison.InvariantCulture) && !string.Equals(this.mCheckUpdateBtn.Content.ToString(), LocaleStrings.GetLocalizedString("STRING_RETRY_CONNECTION_ISSUE_TEXT1", ""), StringComparison.InvariantCulture))
         {
             return;
         }
         this.ShowCheckingForUpdateGrid();
         BlueStacksUpdater.sCheckUpdateBackgroundWorker.RunWorkerCompleted -= new RunWorkerCompletedEventHandler(this.HandleCheckForUpdateResult);
         BlueStacksUpdater.sCheckUpdateBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(this.HandleCheckForUpdateResult);
         BlueStacksUpdater.SetupBlueStacksUpdater(this.ParentWindow, false);
         ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.SettingCheckUpdate, "");
     }
 }
 internal static void HandleUpgrade(string downloadedFilePath)
 {
     if (BlueStacksUpdater.CheckIfUpdateIsFullOrClientOnly(downloadedFilePath) == BlueStacksUpdater.UpdateType.ClientOnly)
     {
         BlueStacksUpdater.HandleClientOnlyUpgrade(downloadedFilePath);
     }
     else
     {
         BlueStacksUpdater.HandleFullUpgrade(downloadedFilePath);
     }
     RegistryManager.Instance.UpdaterFileDeletePath = RegistryManager.Instance.DownloadedUpdateFile;
     RegistryManager.Instance.DownloadedUpdateFile  = "";
 }
        private static void CheckUpdateBackgroundWorker_RunWorkerCompleted(
            object sender,
            RunWorkerCompletedEventArgs e)
        {
            BlueStacks.Common.Tuple <BlueStacksUpdateData, bool> result = (BlueStacks.Common.Tuple <BlueStacksUpdateData, bool>)e.Result;
            BlueStacksUpdateData bstUpdateData = result.Item1;
            bool flag = result.Item2;

            if (bstUpdateData.IsUpdateAvailble)
            {
                BlueStacksUpdater.ParentWindow.mTopBar.mConfigButton.ImageName = "cfgmenu_update";
                BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpgradeBluestacksStatus.Visibility = Visibility.Visible;
                BlueStacksUIBinding.Bind(BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpgradeBluestacksStatusTextBlock, "STRING_DOWNLOAD_UPDATE", "");
                BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpdateDownloadProgressPercentage.Visibility = Visibility.Collapsed;
                if (bstUpdateData.IsFullInstaller)
                {
                    if (!flag)
                    {
                        return;
                    }
                    if (bstUpdateData.UpdateType.Equals("hard", StringComparison.InvariantCultureIgnoreCase))
                    {
                        Logger.Info("Forced full installer update, starting download.");
                        BlueStacksUpdater.DownloadNow(bstUpdateData, true);
                    }
                    else
                    {
                        if (!bstUpdateData.UpdateType.Equals("soft", StringComparison.InvariantCultureIgnoreCase) || string.Compare(bstUpdateData.EngineVersion.Trim(), RegistryManager.Instance.LastUpdateSkippedVersion.Trim(), StringComparison.OrdinalIgnoreCase) == 0)
                        {
                            return;
                        }
                        ClientStats.SendBluestacksUpdaterUIStatsAsync(ClientStatsEvent.UpgradePopup, "");
                        UpdatePrompt updatePrompt1 = new UpdatePrompt(bstUpdateData);
                        updatePrompt1.Height = 215.0;
                        updatePrompt1.Width  = 400.0;
                        UpdatePrompt    updatePrompt2   = updatePrompt1;
                        ContainerWindow containerWindow = new ContainerWindow(BlueStacksUpdater.ParentWindow, (UserControl)updatePrompt2, (double)(int)updatePrompt2.Width, (double)(int)updatePrompt2.Height, false, true, false, -1.0, (Brush)null);
                    }
                }
                else
                {
                    Logger.Info("Only client installer update, starting download.");
                    BlueStacksUpdater.DownloadNow(bstUpdateData, true);
                }
            }
            else
            {
                BlueStacksUpdater.SUpdateState = BlueStacksUpdater.UpdateState.NO_UPDATE;
            }
        }
 private static void DownloadComplete()
 {
     Logger.Info("Installer download completed");
     BlueStacksUpdater.SUpdateState = BlueStacksUpdater.UpdateState.DOWNLOADED;
     BlueStacksUpdater.ParentWindow.Dispatcher.Invoke((Delegate)(() =>
     {
         BlueStacksUIBinding.Bind(BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpgradeBluestacksStatusTextBlock, "STRING_INSTALL_UPDATE", "");
         BlueStacksUpdater.ParentWindow.mTopBar.mPreferenceDropDownControl.mUpdateDownloadProgressPercentage.Visibility = Visibility.Collapsed;
         if (BlueStacksUpdater.sUpdateDownloadProgress == null)
         {
             return;
         }
         BlueStacksUpdater.sUpdateDownloadProgress.Close();
     }));
     BlueStacksUpdater.DownloadCompleted(new BlueStacks.Common.Tuple <BlueStacksUpdateData, bool>(BlueStacksUpdater.sBstUpdateData, BlueStacksUpdater.IsDownloadingInHiddenMode));
 }
 private static void HandleClientOnlyUpgrade(string downloadedFilePath)
 {
     Logger.Info("In HandleClientOnlyUpgrade");
     try
     {
         int num = BlueStacksUpdater.ExtractingClientInstaller(downloadedFilePath);
         if (num == 0)
         {
             BluestacksProcessHelper.RunUpdateInstaller(Path.Combine(Path.Combine(RegistryManager.Instance.SetupFolder, Path.GetFileNameWithoutExtension(downloadedFilePath)), "Bootstrapper.exe"), "", false);
         }
         else
         {
             Logger.Warning("Update extraction failed, ExitCode: {0}", (object)num);
             System.IO.File.Delete(downloadedFilePath);
         }
     }
     catch (Exception ex)
     {
         Logger.Error("Some Error in Client Upgrade err: ", (object)ex.ToString());
     }
 }
 public static void SetupBlueStacksUpdater(MainWindow window, bool isStartup)
 {
     BlueStacksUpdater.ParentWindow = window;
     if (BlueStacksUpdater.sCheckUpdateBackgroundWorker == null)
     {
         BlueStacksUpdater.sCheckUpdateBackgroundWorker         = new BackgroundWorker();
         BlueStacksUpdater.sCheckUpdateBackgroundWorker.DoWork += (DoWorkEventHandler)((sender, e) =>
         {
             bool flag = (bool)e.Argument;
             BlueStacksUpdateData stacksUpdateData = BlueStacksUpdater.CheckForUpdate(!flag);
             BlueStacksUpdater.sBstUpdateData = stacksUpdateData;
             e.Result = (object)new BlueStacks.Common.Tuple <BlueStacksUpdateData, bool>(stacksUpdateData, flag);
         });
         BlueStacksUpdater.sCheckUpdateBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BlueStacksUpdater.CheckUpdateBackgroundWorker_RunWorkerCompleted);
     }
     if (!BlueStacksUpdater.sCheckUpdateBackgroundWorker.IsBusy)
     {
         BlueStacksUpdater.sCheckUpdateBackgroundWorker.RunWorkerAsync((object)isStartup);
     }
     else
     {
         Logger.Info("Not launching update checking thread, since already running");
     }
 }
 internal static void CheckDownloadedUpdateFileAndUpdate()
 {
     using (BackgroundWorker backgroundWorker = new BackgroundWorker())
     {
         backgroundWorker.DoWork             += (DoWorkEventHandler)((sender, args) => BlueStacksUpdater.HandleUpgrade(RegistryManager.Instance.DownloadedUpdateFile));
         backgroundWorker.RunWorkerCompleted += (RunWorkerCompletedEventHandler)((sender, args2) => App.ExitApplication());
         backgroundWorker.RunWorkerAsync();
     }
 }
 private static void Downloader_DownloadFileCompleted(object sender, EventArgs args)
 {
     Logger.Info("File downloaded successfully at {0}", (object)BlueStacksUpdater.sBstUpdateData?.UpdateDownloadLocation);
     BlueStacksUpdater.DownloadComplete();
 }
Ejemplo n.º 12
0
        public static void Main(string[] args)
        {
            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
            App.InitExceptionAndLogging();
            ProcessUtils.LogParentProcessDetails();
            if (args != null)
            {
                App.ParseWebMagnetArgs(ref args);
                Opt.Instance.Parse(args);
            }
            string path = Path.Combine(Path.Combine(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory.Trim('\\')).FullName, "Engine"), "Oem.cfg");

            Oem.CurrentOemFilePath = System.IO.File.Exists(path) ? path : Path.Combine(RegistryManager.Instance.EngineDataDir, "Oem.cfg");
            PortableInstaller.CheckAndRunPortableInstaller();
            if (!RegistryManager.Instance.Guest.ContainsKey(Opt.Instance.vmname))
            {
                Opt.Instance.vmname = "Android";
            }
            BlueStacks.Common.Strings.CurrentDefaultVmName = Opt.Instance.vmname;
            if (Opt.Instance.mergeCfg)
            {
                KMManager.MergeConfig(Opt.Instance.newPDPath);
                Environment.Exit(0);
            }
            string mBSTProcessIdentifier = "Bluestacks/" + RegistryManager.Instance.ClientVersion;

            if (!string.Join(string.Empty, args).Contains(mBSTProcessIdentifier))
            {
                Logger.Info("BOOT_STAGE: Client starting");
                if (Oem.IsOEMDmm)
                {
                    Logger.Info("checking DMMGamePlayer process");
                    if (!ProcessUtils.FindProcessByName("DMMGamePlayer") && !ProcessUtils.FindProcessByName("dmmemulatorsandboxlauncher"))
                    {
                        Logger.Info("DMM game player not running, so exiting");
                        Environment.Exit(0);
                    }
                }
                RegistryManager.ClientThemeName = RegistryManager.Instance.GetClientThemeNameFromRegistry();
                if (Oem.IsOEMDmm || !BlueStacksUpdater.CheckIfDownloadedFileExist())
                {
                    App app = new App();
                    app.Startup     += new StartupEventHandler(App.Application_Startup);
                    app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
                    app.InitializeComponent();
                    App.CheckIfAlreadyRunning();
                    RegistryManager.Instance.ClientLaunchParams = Opt.Instance.Json;
                    App.defaultResolution = new Fraction((long)RegistryManager.Instance.Guest[BlueStacks.Common.Strings.CurrentDefaultVmName].GuestWidth, (long)RegistryManager.Instance.Guest[BlueStacks.Common.Strings.CurrentDefaultVmName].GuestHeight);
                    SystemEvents.DisplaySettingsChanged += new EventHandler(App.HandleDisplaySettingsChanged);
                    BGPHelper.InitHttpServerAsync();
                    BlueStacksUIUtils.RunInstance(BlueStacks.Common.Strings.CurrentDefaultVmName, Opt.Instance.h, Opt.Instance.Json);
                    AppUsageTimer.SessionEventHandler();
                    if (!Oem.IsOEMDmm)
                    {
                        PromotionManager.ReloadPromotionsAsync();
                        GrmManager.UpdateGrmAsync((IEnumerable <string>)null);
                        GuidanceCloudInfoManager.Instance.AppsGuidanceCloudInfoRefresh();
                    }
                    if (!FeatureManager.Instance.IsHtmlHome)
                    {
                        BlueStacksUIUtils.DictWindows[BlueStacks.Common.Strings.CurrentDefaultVmName].CreateFirebaseBrowserControl();
                    }
                    MemoryManager.TrimMemory(true);
                    app.Run();
                }
                else
                {
                    BlueStacksUpdater.HandleUpgrade(RegistryManager.Instance.DownloadedUpdateFile);
                }
            }
            else
            {
                CefHelper.InitCef(args, mBSTProcessIdentifier);
            }
            AppUsageTimer.DetachSessionEventHandler();
            CefRuntime.Shutdown();
            App.ExitApplication();
        }