public static void GuestBootCompletedEvent(object sender, EventArgs e) { if (AndroidBootUp.sHasNotifiedClientForGuestBooted) { return; } lock (AndroidBootUp.sSendBootCompleteLockObject) { if (AndroidBootUp.sHasNotifiedClientForGuestBooted) { return; } try { Logger.Info("BOOT_STAGE: Sending boot completed event"); AndroidBootUp.sHasNotifiedClientForGuestBooted = true; try { if (!Opt.Instance.sysPrep) { if (Oem.Instance.IsSendGameManagerRequest) { HTTPUtils.SendRequestToClientAsync("guestBootCompleted", (Dictionary <string, string>)null, MultiInstanceStrings.VmName, 0, (Dictionary <string, string>)null, false, 1, 0, "bgp"); } } } catch (Exception ex) { Logger.Error("An exception in sending boot completed request to client: {0}", (object)ex.ToString()); } if (LoadingScreen.mLoadingScreen != null) { LoadingScreen.RemoveLoadingScreen(); } AndroidBootUp.isAndroidBooted = true; StateMachine.mForceShutdownDueTime = 60000; Stats.SendFrontendStatusUpdate("frontend-ready", MultiInstanceStrings.VmName); AndroidBootUp.SendSecurityMessageToAndroidOnBootFinish(); if (AndroidBootUp.HideBootProgress()) { AndroidBootUp.ShowConnectedView(); AndroidBootUp.PerformDeferredSetup(); AndroidBootUp.CheckVtxAndShowPopup(); } UIHelper.RunOnUIThread((Control)VMWindow.Instance, (UIHelper.Action)(() => { --VMWindow.Instance.Width; ++VMWindow.Instance.Width; })); Utils.SyncAppJson(MultiInstanceStrings.VmName); } catch (Exception ex) { Logger.Error("Exception on GuestBootCompletedEvent. Err : " + ex.ToString()); } } }