From f346265122933a45946778413b94798c0d29ca4a Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Thu, 14 Sep 2023 16:33:07 +0200 Subject: [PATCH] Remove Flexiapi usage for login. Display more login feedback. --- linphone-app/assets/languages/cs.ts | 44 +++++++ linphone-app/assets/languages/da.ts | 44 +++++++ linphone-app/assets/languages/de.ts | 44 +++++++ linphone-app/assets/languages/en.ts | 44 +++++++ linphone-app/assets/languages/es.ts | 44 +++++++ linphone-app/assets/languages/fr_FR.ts | 44 +++++++ linphone-app/assets/languages/hu.ts | 44 +++++++ linphone-app/assets/languages/it.ts | 44 +++++++ linphone-app/assets/languages/ja.ts | 44 +++++++ linphone-app/assets/languages/lt.ts | 44 +++++++ linphone-app/assets/languages/pt_BR.ts | 44 +++++++ linphone-app/assets/languages/ru.ts | 44 +++++++ linphone-app/assets/languages/sv.ts | 44 +++++++ linphone-app/assets/languages/tr.ts | 44 +++++++ linphone-app/assets/languages/uk.ts | 44 +++++++ linphone-app/assets/languages/zh_CN.ts | 44 +++++++ .../components/assistant/AssistantModel.cpp | 122 ++++++++++++------ .../components/assistant/AssistantModel.hpp | 8 +- .../settings/AccountSettingsModel.cpp | 2 - .../settings/AccountSettingsModel.hpp | 4 +- 20 files changed, 789 insertions(+), 51 deletions(-) diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index e80456ebd..6b0db5d0a 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -259,6 +259,46 @@ unableToAddAccount Tento účet nelze přidat. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2648,6 +2688,10 @@ Klikněte zde: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Automaticky + + loginWithUsernameFailed + Přihlášení se nezdařilo. Zkontrolujte prosím uživatelské jméno/heslo. + Recordings diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index c99422cbf..24301a149 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -259,6 +259,46 @@ unableToAddAccount Umuligt at oprette kontoen. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Klik her: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. + + loginWithUsernameFailed + Fejl ved log ind. Tjek dit brugernavn eller kodeord. + Recordings diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index c41d5cf1b..210c15e89 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -259,6 +259,46 @@ unableToAddAccount Dieses Konto kann nicht hinzugefügt werden. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Klicken Sie hier: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Automatisch + + loginWithUsernameFailed + Login fehlgeschlagen. Bitte überprüfen Sie Ihren Benutzernamen und das Passwort. + Recordings diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index d22741f6a..5733aab65 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -259,6 +259,46 @@ unableToAddAccount Unable to add this account. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + Account doesn't exist + + + recoveringAccount + 'Recovering account' : User message for recovering step. + Recovering account + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + Cannot open validation URL for the account creation request token + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + Waiting for validation at %1 + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + The answer of account creation request token doesn't have token and validation_url fields + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + Cannot get request token for account creation (%1)' + + + requestingValidationUrl + 'Requesting validation URL' : Status message + Requesting validation URL + + + loginStep + 'Connecting' : Status message + Connecting + AuthenticationRequest @@ -2634,6 +2674,10 @@ Click here: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Auto + + loginWithUsernameFailed + Login failed. Please check your username/password. + Recordings diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 1d9aba342..1ad520d1b 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -259,6 +259,46 @@ unableToAddAccount Imposible añadir esta cuenta. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Haga clic aquí: <a href="%1">%1 </a> 'Auto' : One word for button action to set the auto tunnel mode. + + loginWithUsernameFailed + Autenticación fallida. Por favor chequee su usuario y contraseña. + Recordings diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 59f18e52d..9c57bd959 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -259,6 +259,46 @@ unableToAddAccount Impossible d'ajouter ce compte. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Cliquez ici : <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Auto + + loginWithUsernameFailed + La connexion a échoué. Merci de vérifier le nom d'utilisateur/mot de passe. + Recordings diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 50608ea6a..61f530149 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -259,6 +259,46 @@ unableToAddAccount Nem sikerült hozzáadni ezt a fiókot. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2619,6 +2659,10 @@ Kattintson ide: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Önműködő + + loginWithUsernameFailed + Bejelentkezés sikertelen. Kérjük, ellenőrizze felhasználónevét/jelszavát. + Recordings diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 849bb5427..27dfec799 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -259,6 +259,46 @@ unableToAddAccount Impossibile aggiungere questo account. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Clicca: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Automatico + + loginWithUsernameFailed + Accesso fallito. Controlla l'utente e la password. + Recordings diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index f467207a0..235cd0fa8 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -259,6 +259,46 @@ unableToAddAccount このアカウントを追加出来ませんでした。 + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2619,6 +2659,10 @@ 'Auto' : One word for button action to set the auto tunnel mode. 自動 + + loginWithUsernameFailed + ログインに失敗しました。ユーザ名・パスワードを確認してください。 + Recordings diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index c4ed15ab0..a301e989d 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -259,6 +259,46 @@ unableToAddAccount Nepavyko pridėti šios paskyros. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2647,6 +2687,10 @@ Spustelėkite čia: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. + + loginWithUsernameFailed + Prisijungimas nepavyko. Patikrinkite savo naudotojo vardą/slaptažodį. + Recordings diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 1c85f7049..29291f267 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -259,6 +259,46 @@ unableToAddAccount Não foi possível adicionar esta conta. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Clique aqui: <a href="%1">%1 </a> 'Auto' : One word for button action to set the auto tunnel mode. Auto + + loginWithUsernameFailed + Falha no login. Verifique seu nome de usuário/senha. + Recordings diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index 6c4b75e2b..e10331049 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -259,6 +259,46 @@ unableToAddAccount Не удалось добавить этот аккаунт. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2647,6 +2687,10 @@ 'Auto' : One word for button action to set the auto tunnel mode. Авто + + loginWithUsernameFailed + Не удалось войти. Пожалуйста, проверьте правильность ввода имени пользователя и пароля. + Recordings diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 6fb4f39e1..4982024dc 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -259,6 +259,46 @@ unableToAddAccount Det gick inte att lägga till det här kontot. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2633,6 +2673,10 @@ Klicka här: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. + + loginWithUsernameFailed + Inloggningen misslyckades. Kontrollera ditt användarnamn/lösenord. + Recordings diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 30e846e64..3a8b1d716 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -259,6 +259,46 @@ unableToAddAccount Bu hesap eklenemiyor. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2619,6 +2659,10 @@ Buraya tıklayın: <a href="%1">%1</a> 'Auto' : One word for button action to set the auto tunnel mode. Kendiliğinden + + loginWithUsernameFailed + Giriş başarısız. Lütfen kullanıcı adı/parolanızı denetleyin. + Recordings diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index b17c9a147..d3d4d9f8c 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -259,6 +259,46 @@ unableToAddAccount Не вдалося додати цю обліківку. + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2647,6 +2687,10 @@ 'Auto' : One word for button action to set the auto tunnel mode. + + loginWithUsernameFailed + Не вдалося увійти. Будь ласка, перевірте правильність уведення імени користувача та паролю. + Recordings diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 6eb096e8a..501579c33 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -259,6 +259,46 @@ unableToAddAccount 无法添加此账户。 + + noAccountExists + "Account doesn't exist" : Warning message when no account has been found + + + + recoveringAccount + 'Recovering account' : User message for recovering step. + + + + Cannot open validation url for the account creation request token + "Cannot open validation URL for the account creation request token" : Warning message. + + + + waitingValidation + 'Waiting for validation at %1' : User message for validation. %1 is an URL. + + + + wrongTokenRequest + 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + + + + tokenError + 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + + + + requestingValidationUrl + 'Requesting validation URL' : Status message + + + + loginStep + 'Connecting' : Status message + + AuthenticationRequest @@ -2619,6 +2659,10 @@ 'Auto' : One word for button action to set the auto tunnel mode. 自动 + + loginWithUsernameFailed + 登录失败,请检查你的用户名/密码 + Recordings diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 76b06a0d6..0feb3d939 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -73,7 +73,7 @@ private: const string & ) override { if (status == linphone::AccountCreator::Status::AccountCreated){ - emit mAssistant->createStatusChanged(QString("")); + emit mAssistant->createStatusChanged(""); createAccount(accountCreator); CoreManager::getInstance()->getSipAddressesModel()->reset(); }else { @@ -106,7 +106,8 @@ private: creator->isAliasUsed(); }else { mAssistant->mNextAction = Idle; - emit mAssistant->loginStatusChanged(QString("Account doesn't exist")); + //: "Account doesn't exist" : Warning message when no account has been found + emit mAssistant->loginStatusChanged(tr("noAccountExists")); mAssistant->setIsProcessing(false); } }else @@ -121,16 +122,17 @@ private: }else if(mAssistant->mNextAction == AccountLogin) { mAssistant->mNextAction = Idle; if (mAssistant->mUsePhoneNumber) { - emit mAssistant->createStatusChanged("Recovering account"); + //: 'Recovering account' : User message for recovering step. + emit mAssistant->createStatusChanged(tr("recoveringAccount")); creator->recoverAccount(); }else{ - emit mAssistant->loginStatusChanged(QString("")); + emit mAssistant->loginStatusChanged(""); createAccount(creator); CoreManager::getInstance()->getSipAddressesModel()->reset(); mAssistant->setIsProcessing(false); } }else { - emit mAssistant->loginStatusChanged(QString("")); + emit mAssistant->loginStatusChanged(""); mAssistant->setIsProcessing(false); } @@ -156,7 +158,7 @@ private: mAssistant->mNextAction = Idle; creator->createAccount(); }else{ - emit mAssistant->loginStatusChanged(QString("Account doesn't exist")); + emit mAssistant->loginStatusChanged(tr("noAccountExists")); mAssistant->setIsProcessing(false); } break; @@ -170,16 +172,16 @@ private: }else if(mAssistant->mNextAction == AccountLogin) { mAssistant->mNextAction = Idle; if (mAssistant->mUsePhoneNumber) { - emit mAssistant->createStatusChanged("Recovering account"); + emit mAssistant->createStatusChanged(tr("recoveringAccount")); creator->recoverAccount(); }else{ - emit mAssistant->loginStatusChanged(QString("")); + emit mAssistant->loginStatusChanged(""); createAccount(creator); CoreManager::getInstance()->getSipAddressesModel()->reset(); mAssistant->setIsProcessing(false); } }else { - emit mAssistant->loginStatusChanged(QString("")); + emit mAssistant->loginStatusChanged(""); mAssistant->setIsProcessing(false); } break; @@ -203,21 +205,25 @@ private: QString token = description.value("token").toString(); creator->setAccountCreationRequestToken(token.toStdString()); if(!QDesktopServices::openUrl(url)){ - qCritical() << "Cannot open validation url for the account creation request token"; - emit mAssistant->createStatusChanged("Cannot open validation url for the account creation request token"); + qCritical() << "Cannot open validation URL for the account creation request token"; + //: "Cannot open validation URL for the account creation request token" : Warning message. + emit mAssistant->createStatusChanged(tr("Cannot open validation url for the account creation request token")); mAssistant->setIsProcessing(false); }else { - emit mAssistant->createStatusChanged("Waiting for validation at " + url); + //: 'Waiting for validation at %1' : User message for validation. %1 is an URL. + emit mAssistant->createStatusChanged(tr("waitingValidation").arg(url)); creator->requestAccountCreationTokenUsingRequestToken(); } }else{ qCritical() << "The answer of account creation request token doesn't have token and validation_url fields"; - emit mAssistant->createStatusChanged("The answer of account creation request token doesn't have token and validation_url fields"); + //: 'The answer of account creation request token doesn't have token and validation_url fields' : Status message + emit mAssistant->createStatusChanged(tr("wrongTokenRequest")); mAssistant->setIsProcessing(false); } }else{ qCritical() << "Cannot get request token for account creation (" << (int)status << ")"; - emit mAssistant->createStatusChanged("Cannot get request token for account creation (" +QString::number((int)status) + ")"); + //: 'Cannot get request token for account creation (%1)' : Status messsage. %1 is a code number. + emit mAssistant->createStatusChanged(tr("tokenError").arg(QString::number((int)status))); mAssistant->setIsProcessing(false); } } @@ -230,16 +236,15 @@ private: creator->setToken(description.value("token").toString().toStdString()); // it will automatically use the account creation token. if (mAssistant->mUsePhoneNumber) { - emit mAssistant->createStatusChanged("Checking phone account status"); + //: 'Checking phone account status' : Status message + emit mAssistant->createStatusChanged("checkingPhoneStep"); mAssistant->mNextAction = AccountLogin; creator->isAccountExist(); - //emit mAssistant->createStatusChanged("Recovering account"); - //creator->recoverAccount(); }else{ - emit mAssistant->createStatusChanged("Checking account status"); + //: 'Checking account status' : Status message + emit mAssistant->createStatusChanged("checkingAccountStep"); mAssistant->mNextAction = AccountCreation; creator->isAccountExist(); - //creator->createAccount(); } }else QTimer::singleShot(2000, [creator](){ @@ -292,9 +297,7 @@ private: const string &response ) override { if (status == linphone::AccountCreator::Status::RequestOk) { - //createAccount(accountCreator); - //CoreManager::getInstance()->getSipAddressesModel()->reset(); - emit mAssistant->recoverStatusChanged(QString("")); + emit mAssistant->recoverStatusChanged(""); } else { if (status == linphone::AccountCreator::Status::RequestFailed) emit mAssistant->recoverStatusChanged(tr("requestFailed")); @@ -312,7 +315,7 @@ private: if( status == linphone::AccountCreator::Status::RequestOk){ createAccount(creator); CoreManager::getInstance()->getSipAddressesModel()->reset(); - emit mAssistant->activateStatusChanged(QString("")); + emit mAssistant->activateStatusChanged(""); } else { if (status == linphone::AccountCreator::Status::RequestFailed) emit mAssistant->activateStatusChanged(tr("requestFailed")); @@ -365,46 +368,80 @@ void AssistantModel::create () { mNextAction = AccountCreation; if(mAccountCreator->getUsername().empty()) mAccountCreator->setUsername(mAccountCreator->getPhoneNumber()); - emit createStatusChanged("Requesting validation url"); + emit createStatusChanged(tr("requestingValidationUrl")); mAccountCreator->requestAccountCreationRequestToken(); } +class LoginListener : public linphone::AccountListener{ +public: + LoginListener(AssistantModel * model) : mAssistant(model){} + virtual void onRegistrationStateChanged(const std::shared_ptr & account, linphone::RegistrationState state, const std::string & message) { + switch(state){ + case linphone::RegistrationState::Failed: + emit mAssistant->loginStatusChanged(QObject::tr("loginWithUsernameFailed")); + mAssistant->setIsProcessing(false); + CoreManager::getInstance()->getCore()->removeAccount(account); + account->removeListener(mSelf); + mSelf = nullptr; + break; + case linphone::RegistrationState::Ok: + CoreManager::getInstance()->getAccountSettingsModel()->setDefaultAccount(account); + emit mAssistant->loginStatusChanged(""); + mAssistant->setIsProcessing(false); + account->removeListener(mSelf); + mSelf = nullptr; + break; + default:{ + } + } + } + AssistantModel *mAssistant; + std::shared_ptr mSelf; +}; void AssistantModel::login () { setIsProcessing(true); if(mAccountCreator->getUsername().empty()) mAccountCreator->setUsername(mAccountCreator->getPhoneNumber()); if (mUsePhoneNumber) { - emit createStatusChanged("Requesting validation url"); + //: 'Requesting validation URL' : Status message + emit createStatusChanged(tr("requestingValidationUrl")); mNextAction = AccountLogin; mAccountCreator->requestAccountCreationRequestToken(); return; } - shared_ptr config(CoreManager::getInstance()->getCore()->getConfig()); - if (!config->getString("assistant", "xmlrpc_url", "").empty()) { - mNextAction = AccountLogin; - mAccountCreator->isAccountExist(); - return; - } - - // No verification if no xmlrpc url. + mAccountCreator->setAsDefault(false); auto account = mAccountCreator->createAccountInCore(); if(account){ + auto listener = std::make_shared(this); + listener->mSelf = listener; + account->addListener(listener); AccountSettingsModel *accountSettingsModel = CoreManager::getInstance()->getAccountSettingsModel(); if (accountSettingsModel->addOrUpdateAccount(account, account->getParams()->clone())) { - accountSettingsModel->setDefaultAccount(account); + //: 'Connecting' : Status message + emit loginStatusChanged(tr("loginStep")); + }else { + emit loginStatusChanged(tr("loginWithUsernameFailed")); + CoreManager::getInstance()->getCore()->removeAccount(account); + setIsProcessing(false); } - emit loginStatusChanged(""); return; } + shared_ptr config(CoreManager::getInstance()->getCore()->getConfig()); // Cannot create new account from account creator. Use addOtherSipAccount directly. QVariantMap map; map["sipDomain"] = Utils::coreStringToAppString(config->getString("assistant", "domain", "")); map["username"] = getUsername(); map["password"] = getPassword(); map["transport"] = LinphoneEnums::toString(LinphoneEnums::fromLinphone(mAccountCreator->getTransport())); - emit loginStatusChanged(addOtherSipAccount(map) ? QString("") : tr("unableToAddAccount")); + account = addOtherSipAccount(map); + if(account){ + emit loginStatusChanged(""); + CoreManager::getInstance()->getAccountSettingsModel()->setDefaultAccount(account); + }else{ + emit loginStatusChanged(tr("unableToAddAccount")); + } setIsProcessing(false); } @@ -420,7 +457,7 @@ void AssistantModel::reset () { // ----------------------------------------------------------------------------- -bool AssistantModel::addOtherSipAccount (const QVariantMap &map) { +std::shared_ptr AssistantModel::addOtherSipAccount (const QVariantMap &map) { CoreManager *coreManager = CoreManager::getInstance(); shared_ptr factory = linphone::Factory::get(); @@ -448,7 +485,7 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) { if(!address) { qWarning() << QStringLiteral("Unable to create address from domain `%1`.") .arg(domain); - return false; + return nullptr; } const QString &transport(map["transport"].toString()); if (!transport.isEmpty()) { @@ -459,7 +496,7 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) { if (accountParams->setServerAddress(address)) { qWarning() << QStringLiteral("Unable to add server address: `%1`.") .arg(QString::fromStdString(address->asString())); - return false; + return nullptr; } } @@ -467,7 +504,7 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) { shared_ptr address = factory->createAddress(Utils::appStringToCoreString(sipAddress)); if (!address) { qWarning() << QStringLiteral("Unable to create sip address object from: `%1`.").arg(sipAddress); - return false; + return nullptr; } address->setDisplayName(Utils::appStringToCoreString(map["displayName"].toString())); @@ -487,10 +524,9 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) { AccountSettingsModel *accountSettingsModel = coreManager->getAccountSettingsModel(); if (accountSettingsModel->addOrUpdateAccount(account, accountParams)) { - accountSettingsModel->setDefaultAccount(account); - return true; + return account; } - return false; + return account; } void AssistantModel::createTestAccount(){ } diff --git a/linphone-app/src/components/assistant/AssistantModel.hpp b/linphone-app/src/components/assistant/AssistantModel.hpp index 190f1aee9..80a8f7294 100644 --- a/linphone-app/src/components/assistant/AssistantModel.hpp +++ b/linphone-app/src/components/assistant/AssistantModel.hpp @@ -54,13 +54,16 @@ public: AssistantModel (QObject *parent = Q_NULLPTR); virtual ~AssistantModel(); + bool getIsProcessing() const; + void setIsProcessing(bool isProcessing); + Q_INVOKABLE void activate (); Q_INVOKABLE void create (); Q_INVOKABLE void login (); Q_INVOKABLE void reset (); - Q_INVOKABLE bool addOtherSipAccount (const QVariantMap &map); + Q_INVOKABLE std::shared_ptr addOtherSipAccount (const QVariantMap &map); Q_INVOKABLE void createTestAccount(); Q_INVOKABLE void generateQRCode(); @@ -155,9 +158,6 @@ private: bool getIsReadingQRCode() const; void setIsReadingQRCode(bool isReading); - bool getIsProcessing() const; - void setIsProcessing(bool isProcessing); - QString mapAccountCreatorUsernameStatusToString (linphone::AccountCreator::UsernameStatus status) const; diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index 11429b7cb..7afd971dd 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -147,9 +147,7 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptraddingAccount(account->getParams()); } - emit accountSettingsUpdated(); - return true; } diff --git a/linphone-app/src/components/settings/AccountSettingsModel.hpp b/linphone-app/src/components/settings/AccountSettingsModel.hpp index 847041541..e523b487c 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.hpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.hpp @@ -85,6 +85,8 @@ public: bool getUseInternationalPrefixForCallsAndChats() const; int getMissedCallsCount() const; int getUnreadMessagesCount() const; + QString getUsername () const; + void setUsername (const QString &username); Q_INVOKABLE void setDefaultAccount (const std::shared_ptr &account = nullptr); Q_INVOKABLE void setDefaultAccountFromSipAddress (const QString &sipAddress); @@ -129,8 +131,6 @@ signals: void unreadMessagesCountChanged(); private: - QString getUsername () const; - void setUsername (const QString &username); RegistrationState getRegistrationState () const;