public bool Login(string userName, string pwd, string domainAddress) { if (CurrentLoginStatus != LoginStatus.NotLogin) { return(false); } if (string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(domainAddress)) { return(false); } EVSdkManager.Instance.EnableSecure(EnableSecure); _serverDomainAddress = domainAddress; LoginPassword = pwd; CurrentLoginStatus = LoginStatus.LoggingIn; Task.Run(() => { // When click button login in login dialog, the LoginWithLocation may block the UI thread and ProgressDialogLogin can not be displayed. // So exec LoginWithLocation in another thread. EVSdkManager.Instance.LoginWithLocation(domainAddress, ServerPort, userName, pwd); }); Application.Current.Dispatcher.InvokeAsync(() => { log.Info("Show ProgressDialogLogin"); DisplayUtil.SetWindowCenterAndOwner(ProgressDialogLogin.Instance, (IMasterDisplayWindow)LoginWindow); ProgressDialogLogin.Instance.ShowDialog(); }); return(true); }
public void ShowPromptTip(string prompt, string extraInfo) { IMasterDisplayWindow masterWindow = GetCurrentMainDisplayWindow(); if (null == masterWindow) { log.Info("Can not show error message for master window is null"); return; } CloseMessageBoxTip(); _messageBoxTip = new MessageBoxTip(); _messageTipExtraInfo = extraInfo; Window tipOwner = null; if ( null != (masterWindow as VideoPeopleWindow) && LayoutBackgroundWindow.Instance.IsLoaded && LayoutBackgroundWindow.Instance.LayoutOperationbarWindow.IsLoaded ) { tipOwner = LayoutBackgroundWindow.Instance.LayoutOperationbarWindow; } log.InfoFormat("ShowPromptTip(MessageBoxTip), hash: {0}, tipOwner is null:{1}, ", _messageBoxTip.GetHashCode(), null == tipOwner); DisplayUtil.SetWindowCenterAndOwner(_messageBoxTip, masterWindow, tipOwner); _messageBoxTip.SetTitleAndMsg(LanguageUtil.Instance.GetValueByKey("PROMPT"), prompt, LanguageUtil.Instance.GetValueByKey("CONFIRM")); _messageBoxTip.ShowDialog(); _messageBoxTip = null; _messageTipExtraInfo = ""; }
public void RefreshSoftwareUpdateWindow() { if ( Visibility.Visible == SoftwareUpdateWindow.Instance.Visibility && Visibility.Visible == Application.Current.MainWindow.Visibility ) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; DisplayUtil.SetWindowCenterAndOwner(SoftwareUpdateWindow.Instance, mainWindow); } }
public bool Login(string userName, string pwd, string domainAddress, bool isPasswdEncrypted = false) { log.InfoFormat("Login, domainAddress: {0}, username: {1}, password: {2}: isPasswordEncrypted: {3}", domainAddress, userName, pwd, isPasswdEncrypted); if (CurrentLoginStatus != LoginStatus.NotLogin) { log.InfoFormat("Can not login for login status is: {0}", CurrentLoginStatus); return(false); } if (string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(domainAddress)) { log.Info("Can not login for login status is not invalid login parameters"); return(false); } IsUrlLoginMode = isPasswdEncrypted; EVSdkManager.Instance.EnableSecure(EnableSecure); _serverDomainAddress = domainAddress; LoginPassword = pwd; CurrentLoginStatus = LoginStatus.LoggingIn; Task.Run(() => { // When click button login in login dialog, the LoginWithLocation may block the UI thread and ProgressDialogLogin can not be displayed. // So exec LoginWithLocation in another thread. if (isPasswdEncrypted) { EVSdkManager.Instance.LoginWithLocationByEncPasswd(domainAddress, ServerPort, userName, pwd); } else { EVSdkManager.Instance.LoginWithLocation(domainAddress, ServerPort, userName, pwd); } }); Application.Current.Dispatcher.InvokeAsync(() => { log.Info("Show ProgressDialogLogin"); DisplayUtil.SetWindowCenterAndOwner(ProgressDialogLogin.Instance, (IMasterDisplayWindow)LoginWindow); ProgressDialogLogin.Instance.ShowDialog(); }); return(true); }
public void CheckSoftwareUpdate(bool showPrompt) { StringBuilder sb = new StringBuilder(); sb.Append(Properties.Settings.Default.SoftwareUpdateAddress) .Append("/") .Append(Properties.Settings.Default.SoftwareUpdateFlag) .Append("/") .Append(Properties.Settings.Default.SoftwareUpdateBundleId) .Append("/"); if (!string.IsNullOrEmpty(Properties.Settings.Default.SoftwareUpdateAppInfoPrefix)) { sb.Append(Properties.Settings.Default.SoftwareUpdateAppInfoPrefix).Append("."); } sb.Append(Properties.Settings.Default.SoftwareUpdateAppInfo); string swUpdateUrl = sb.ToString(); log.InfoFormat("Software update url:{0}", swUpdateUrl); WaitingWindow waitingWindow = null; if (showPrompt) { Application.Current.Dispatcher.InvokeAsync(() => { waitingWindow = new WaitingWindow(LanguageUtil.Instance.GetValueByKey("CHECKING_UPDATE")); IMasterDisplayWindow masterWindow = ((MainWindow)Application.Current.MainWindow).GetCurrentMainDisplayWindow(); if (null != masterWindow) { waitingWindow.Owner = masterWindow.GetWindow(); } waitingWindow.ShowDialog(); }); } Task.Run(() => { RestClient restClient = new RestClient(); RestResponse response = null; try { response = restClient.GetObject(swUpdateUrl); if (response.StatusCode >= HttpStatusCode.BadRequest) { log.InfoFormat("Failed to get app info for software update, status code: {0}", response.StatusCode); if (showPrompt) { Application.Current.Dispatcher.InvokeAsync(() => { if (null != waitingWindow) { waitingWindow.Close(); } ShowNotFoundNewVersion(); }); } return; } Rest.SoftwareUpdateRest.AppInfoRest appInfo = JsonConvert.DeserializeObject <Rest.SoftwareUpdateRest.AppInfoRest>(response.Content); log.InfoFormat("Software update info, version:{0}, url:{1}", appInfo.VERSION, appInfo.DOWNLOAD_URL); string currentVersion = Utils.GetEdition(); log.InfoFormat("Current app version: {0}", currentVersion); string[] arrAppInfo = appInfo.VERSION.Split('.'); string[] arrCurrentVersion = currentVersion.Split('.'); int len = arrAppInfo.Length > arrCurrentVersion.Length ? arrAppInfo.Length : arrCurrentVersion.Length; bool newVersionFound = false; for (int i = 0; i < len; ++i) { int newItem = int.Parse(arrAppInfo[i]); int currentItem = int.Parse(arrCurrentVersion[i]); if (newItem > currentItem) { newVersionFound = true; break; } else if (newItem < currentItem) { break; } } if (!newVersionFound) { if (showPrompt) { Application.Current.Dispatcher.InvokeAsync(() => { if (null != waitingWindow) { waitingWindow.Close(); } ShowNotFoundNewVersion(); }); } return; } Application.Current.Dispatcher.InvokeAsync(() => { if (null != waitingWindow) { waitingWindow.Close(); } SoftwareUpdateWindow.Instance.Reset(appInfo.VERSION, appInfo.DOWNLOAD_URL); IMasterDisplayWindow masterWindow = ((MainWindow)Application.Current.MainWindow).GetCurrentMainDisplayWindow(); DisplayUtil.SetWindowCenterAndOwner(SoftwareUpdateWindow.Instance, masterWindow); if (null != masterWindow) { log.InfoFormat("Set soft update window owner to window:{0}", masterWindow.GetHashCode()); } SoftwareUpdateWindow.Instance.Show(); if (null != SoftwareUpdateWindow.Instance.Owner) { // set the owner active or the owner will hide when cancel the software update window. SoftwareUpdateWindow.Instance.Owner.Activate(); } }); } catch (Exception ex) { log.ErrorFormat("Failed to get app info for software update, exception:{0}", ex); if (showPrompt) { Application.Current.Dispatcher.InvokeAsync(() => { if (null != waitingWindow) { waitingWindow.Close(); } ShowNotFoundNewVersion(); }); } } }); }
private void UpdateWindowVisibility() { LoginStatus loginStatus = LoginManager.Instance.CurrentLoginStatus; CallStatus callStatus = CallController.Instance.CurrentCallStatus; log.InfoFormat("Update window visibility, login status: {0}, call status: {1}", loginStatus, callStatus); bool isInCall = CallStatus.Dialing == callStatus || CallStatus.ConfIncoming == callStatus || CallStatus.P2pIncoming == callStatus || CallStatus.P2pOutgoing == callStatus || CallStatus.Connected == callStatus; bool isLoginWindowVisible = LoginStatus.NotLogin == loginStatus || LoginStatus.LoggingIn == loginStatus || LoginStatus.LoginFailed == loginStatus || LoginStatus.AnonymousLoggingIn == loginStatus || (LoginStatus.AnonymousLoggedIn == loginStatus && !isInCall); bool isMainWindowVisible = (LoginStatus.LoggedIn == loginStatus) && !isInCall; bool isVideoPeopleWindowVisible = isInCall; Application.Current.Dispatcher.InvokeAsync(() => { if (null != LoginManager.Instance.LoginWindow) { log.InfoFormat("Login window visible:{0}", isLoginWindowVisible); Visibility visibility = isLoginWindowVisible ? Visibility.Visible : Visibility.Collapsed; if (visibility != LoginManager.Instance.LoginWindow.Visibility) { LoginManager.Instance.LoginWindow.Visibility = visibility; if ( Visibility.Visible == SoftwareUpdateWindow.Instance.Visibility && Visibility.Visible == LoginManager.Instance.LoginWindow.Visibility ) { LoginWindow loginWindow = LoginManager.Instance.LoginWindow as LoginWindow; DisplayUtil.SetWindowCenterAndOwner(SoftwareUpdateWindow.Instance, loginWindow); log.Info("Set soft update window owner to login window"); } } else { log.InfoFormat("Login window has been visibility: {0}", visibility); } } if (null != Application.Current.MainWindow) { log.InfoFormat("Main window visible:{0}", isMainWindowVisible); Visibility visibility = isMainWindowVisible ? Visibility.Visible : Visibility.Collapsed; if (visibility != Application.Current.MainWindow.Visibility) { Application.Current.MainWindow.Visibility = visibility; if ( Visibility.Visible == SoftwareUpdateWindow.Instance.Visibility && Visibility.Visible == Application.Current.MainWindow.Visibility && Application.Current.MainWindow.IsLoaded ) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; DisplayUtil.SetWindowCenterAndOwner(SoftwareUpdateWindow.Instance, mainWindow); log.Info("Set soft update window owner to main window"); } } else { log.InfoFormat("Main window has been visibility: {0}", visibility); } } if (null != VideoPeopleWindow.Instance) { log.InfoFormat("Video people window visible:{0}", isVideoPeopleWindowVisible); Visibility visibility = isVideoPeopleWindowVisible ? Visibility.Visible : Visibility.Collapsed; if (visibility != VideoPeopleWindow.Instance.Visibility) { log.InfoFormat( "Update VideoPeopleWindow visible, FirstShow:{0}, ActualWidth:{1}, ActualHeight:{2}, WindowState: {3}" , VideoPeopleWindow.Instance.FirstShow , VideoPeopleWindow.Instance.ActualWidth , VideoPeopleWindow.Instance.ActualHeight , VideoPeopleWindow.Instance.WindowState ); Visibility currentStatus = VideoPeopleWindow.Instance.Visibility; if (Visibility.Visible == currentStatus && !isVideoPeopleWindowVisible && WindowState.Minimized == VideoPeopleWindow.Instance.WindowState) { // in the case: sending content and the window is minimized, then disconnect it in remote. it should be resume to preseting state and then hidden. VideoPeopleWindow.Instance.Set2PresettingState(); } VideoPeopleWindow.Instance.Visibility = isVideoPeopleWindowVisible ? Visibility.Visible : Visibility.Collapsed; if (isVideoPeopleWindowVisible && (VideoPeopleWindow.Instance.FirstShow || 0 == VideoPeopleWindow.Instance.ActualWidth || 0 == VideoPeopleWindow.Instance.ActualHeight) ) { log.Info("Reset initial size for VideoPeopleWindow"); // resume window size and center the screen on first show VideoPeopleWindow.Instance.FirstShow = false; VideoPeopleWindow.Instance.ResetInitialSize(); DisplayUtil.CenterWindowOnMasterWindowScreen(View.VideoPeopleWindow.Instance, LoginManager.Instance.LoginWindow as LoginWindow); } //VideoPeopleWindow.Instance.Visibility = isVideoPeopleWindowVisible ? Visibility.Visible : Visibility.Collapsed; if (Visibility.Visible == VideoPeopleWindow.Instance.Visibility && currentStatus != Visibility.Visible) { VideoPeopleWindow.Instance.AdjustWindowSize(); } log.InfoFormat("VideoPeopleWindow, left: {0}, top: {1}", VideoPeopleWindow.Instance.Left, VideoPeopleWindow.Instance.Top); if ( Visibility.Visible == SoftwareUpdateWindow.Instance.Visibility && Visibility.Visible == VideoPeopleWindow.Instance.Visibility ) { DisplayUtil.SetWindowCenterAndOwner(SoftwareUpdateWindow.Instance, VideoPeopleWindow.Instance); log.Info("Set soft update window owner to video people window"); } } else { log.InfoFormat("Video people window has been visibility: {0}", visibility); } } }); }