From 846a39eb78f49216b9b9c3b92669f59068620b40 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 27 Aug 2018 16:19:56 +0000 Subject: [PATCH] Refresh OAUTH tokens Refs #17 --- .../java/eu/faircode/email/DaoAccount.java | 3 +++ .../java/eu/faircode/email/DaoIdentity.java | 3 +++ .../eu/faircode/email/FragmentAccount.java | 15 +++++++---- .../eu/faircode/email/FragmentIdentity.java | 4 +++ .../main/java/eu/faircode/email/Helper.java | 26 +++++++++++++++++++ .../eu/faircode/email/SearchDataSource.java | 6 +++++ .../eu/faircode/email/ServiceSynchronize.java | 12 +++++++++ app/src/main/res/values-af/strings.xml | 3 ++- app/src/main/res/values-ar-rBH/strings.xml | 3 ++- app/src/main/res/values-ar-rEG/strings.xml | 3 ++- app/src/main/res/values-ar-rSA/strings.xml | 3 ++- app/src/main/res/values-ar-rYE/strings.xml | 3 ++- app/src/main/res/values-ar/strings.xml | 3 ++- app/src/main/res/values-ca/strings.xml | 3 ++- app/src/main/res/values-cs/strings.xml | 3 ++- app/src/main/res/values-da/strings.xml | 3 ++- app/src/main/res/values-de/strings.xml | 3 ++- app/src/main/res/values-el/strings.xml | 3 ++- app/src/main/res/values-en/strings.xml | 3 ++- app/src/main/res/values-es-rES/strings.xml | 3 ++- app/src/main/res/values-fi/strings.xml | 3 ++- app/src/main/res/values-fr/strings.xml | 11 ++++---- app/src/main/res/values-he/strings.xml | 3 ++- app/src/main/res/values-hu/strings.xml | 3 ++- app/src/main/res/values-it/strings.xml | 3 ++- app/src/main/res/values-iw/strings.xml | 3 ++- app/src/main/res/values-ja/strings.xml | 3 ++- app/src/main/res/values-ko/strings.xml | 3 ++- app/src/main/res/values-nb/strings.xml | 3 ++- app/src/main/res/values-nl/strings.xml | 3 ++- app/src/main/res/values-no/strings.xml | 3 ++- app/src/main/res/values-pl/strings.xml | 3 ++- app/src/main/res/values-pt-rBR/strings.xml | 3 ++- app/src/main/res/values-pt-rPT/strings.xml | 3 ++- app/src/main/res/values-ro/strings.xml | 3 ++- app/src/main/res/values-ru/strings.xml | 3 ++- app/src/main/res/values-sr/strings.xml | 3 ++- app/src/main/res/values-sv-rSE/strings.xml | 3 ++- app/src/main/res/values-tr/strings.xml | 3 ++- app/src/main/res/values-uk/strings.xml | 3 ++- app/src/main/res/values-vi/strings.xml | 3 ++- app/src/main/res/values-zh-rCN/strings.xml | 3 ++- app/src/main/res/values-zh-rTW/strings.xml | 3 ++- 43 files changed, 140 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoAccount.java b/app/src/main/java/eu/faircode/email/DaoAccount.java index 1557404f44..5add514759 100644 --- a/app/src/main/java/eu/faircode/email/DaoAccount.java +++ b/app/src/main/java/eu/faircode/email/DaoAccount.java @@ -75,6 +75,9 @@ public interface DaoAccount { @Query("UPDATE account SET state = :state WHERE id = :id") int setAccountState(long id, String state); + @Query("UPDATE account SET password = :password WHERE id = :id") + int setAccountPassword(long id, String password); + @Query("UPDATE account SET error = :error WHERE id = :id") int setAccountError(long id, String error); diff --git a/app/src/main/java/eu/faircode/email/DaoIdentity.java b/app/src/main/java/eu/faircode/email/DaoIdentity.java index a1f9cbe9c0..e89d902c1b 100644 --- a/app/src/main/java/eu/faircode/email/DaoIdentity.java +++ b/app/src/main/java/eu/faircode/email/DaoIdentity.java @@ -57,6 +57,9 @@ public interface DaoIdentity { @Query("UPDATE identity SET state = :state WHERE id = :id") int setIdentityState(long id, String state); + @Query("UPDATE identity SET password = :password WHERE id = :id") + int setIdentityPassword(long id, String password); + @Query("UPDATE identity SET error = :error WHERE id = :id") int setIdentityError(long id, String error); diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 2ce513fdf4..89cad0b181 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -251,6 +251,12 @@ public class FragmentAccount extends FragmentEx { if (TextUtils.isEmpty(password)) throw new Throwable(getContext().getString(R.string.title_no_password)); + // Refresh token + if (id >= 0 && auth_type == Helper.AUTH_TYPE_GMAIL) { + password = Helper.refreshToken(getContext(), "com.google", user, password); + args.putString("password", password); + } + // Check IMAP server / get folders List folders = new ArrayList<>(); Properties props = MessageHelper.getSessionProperties(auth_type); @@ -327,6 +333,9 @@ public class FragmentAccount extends FragmentEx { btnCheck.setEnabled(true); pbCheck.setVisibility(View.GONE); + // Refreshed token + tilPassword.getEditText().setText(args.getString("password")); + tvIdle.setVisibility(args.getBoolean("idle") ? View.GONE : View.VISIBLE); final Collator collator = Collator.getInstance(Locale.getDefault()); @@ -762,10 +771,6 @@ public class FragmentAccount extends FragmentEx { String name = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); String type = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); - String authTokenType = null; - if ("com.google".equals(type)) - authTokenType = "oauth2:https://mail.google.com/"; - AccountManager am = AccountManager.get(getContext()); Account[] accounts = am.getAccountsByType(type); Log.i(Helper.TAG, "Accounts=" + accounts.length); @@ -773,7 +778,7 @@ public class FragmentAccount extends FragmentEx { if (name.equals(account.name)) { am.getAuthToken( account, - authTokenType, + Helper.getAuthTokenType(type), new Bundle(), getActivity(), new AccountManagerCallback() { diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index ae219e7b28..1f625e0fac 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -267,6 +267,10 @@ public class FragmentIdentity extends FragmentEx { if (TextUtils.isEmpty(replyto)) replyto = null; + // Refresh token + if (id >= 0 && auth_type == Helper.AUTH_TYPE_GMAIL) + password = Helper.refreshToken(getContext(), "com.google", user, password); + // Check SMTP server if (synchronize) { Properties props = MessageHelper.getSessionProperties(auth_type); diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 3792df3c0d..f5124d8f27 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -19,6 +19,8 @@ package eu.faircode.email; Copyright 2018 by Marcel Bokhorst (M66B) */ +import android.accounts.Account; +import android.accounts.AccountManager; import android.content.Context; import android.content.res.TypedArray; import android.text.TextUtils; @@ -170,6 +172,30 @@ public class Helper { } } + static String refreshToken(Context context, String type, String name, String current) { + try { + AccountManager am = AccountManager.get(context); + Account[] accounts = am.getAccountsByType(type); + for (Account account : accounts) + if (name.equals(account.name)) { + Log.i(Helper.TAG, "Refreshing token"); + am.invalidateAuthToken(type, current); + String refreshed = am.blockingGetAuthToken(account, getAuthTokenType(type), true); + Log.i(Helper.TAG, "Refreshed token"); + return refreshed; + } + } catch (Throwable ex) { + Log.w(TAG, ex + "\n" + Log.getStackTraceString(ex)); + } + return current; + } + + static String getAuthTokenType(String type) { + if ("com.google".equals(type)) + return "oauth2:https://mail.google.com/"; + return null; + } + static boolean isPlayStoreInstall(Context context) { if (false && BuildConfig.DEBUG) return true; diff --git a/app/src/main/java/eu/faircode/email/SearchDataSource.java b/app/src/main/java/eu/faircode/email/SearchDataSource.java index 9c3f82e5ad..f2cc10a551 100644 --- a/app/src/main/java/eu/faircode/email/SearchDataSource.java +++ b/app/src/main/java/eu/faircode/email/SearchDataSource.java @@ -117,6 +117,12 @@ public class SearchDataSource extends PositionalDataSource imple folder = db.folder().getFolder(fid); account = db.account().getAccount(folder.account); + // Refresh token + if (account.auth_type == Helper.AUTH_TYPE_GMAIL) { + account.password = Helper.refreshToken(context, "com.google", account.user, account.password); + db.account().setAccountPassword(account.id, account.password); + } + Properties props = MessageHelper.getSessionProperties(account.auth_type); Session isession = Session.getInstance(props, null); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 7d4dde4d09..1ae10932be 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -391,6 +391,12 @@ public class ServiceSynchronize extends LifecycleService { if (debug) System.setProperty("mail.socket.debug", "true"); + // Refresh token + if (account.auth_type == Helper.AUTH_TYPE_GMAIL) { + account.password = Helper.refreshToken(this, "com.google", account.user, account.password); + db.account().setAccountPassword(account.id, account.password); + } + Properties props = MessageHelper.getSessionProperties(account.auth_type); final Session isession = Session.getInstance(props, null); isession.setDebug(debug); @@ -971,6 +977,12 @@ public class ServiceSynchronize extends LifecycleService { return; } + // Refresh token + if (ident.auth_type == Helper.AUTH_TYPE_GMAIL) { + ident.password = Helper.refreshToken(this, "com.google", ident.user, ident.password); + db.identity().setIdentityPassword(ident.id, ident.password); + } + // Create session Properties props = MessageHelper.getSessionProperties(ident.auth_type); final Session isession = Session.getInstance(props, null); diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ar-rBH/strings.xml b/app/src/main/res/values-ar-rBH/strings.xml index d890e03d2e..72cfe49d72 100644 --- a/app/src/main/res/values-ar-rBH/strings.xml +++ b/app/src/main/res/values-ar-rBH/strings.xml @@ -70,6 +70,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -86,7 +87,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ar-rEG/strings.xml b/app/src/main/res/values-ar-rEG/strings.xml index d890e03d2e..72cfe49d72 100644 --- a/app/src/main/res/values-ar-rEG/strings.xml +++ b/app/src/main/res/values-ar-rEG/strings.xml @@ -70,6 +70,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -86,7 +87,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index d890e03d2e..72cfe49d72 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -70,6 +70,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -86,7 +87,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ar-rYE/strings.xml b/app/src/main/res/values-ar-rYE/strings.xml index d890e03d2e..72cfe49d72 100644 --- a/app/src/main/res/values-ar-rYE/strings.xml +++ b/app/src/main/res/values-ar-rYE/strings.xml @@ -70,6 +70,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -86,7 +87,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index d890e03d2e..72cfe49d72 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -70,6 +70,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -86,7 +87,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 0419420266..ae3498df53 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -62,6 +62,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -78,7 +79,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 9959fde442..e83f54b8ba 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -54,6 +54,7 @@ Brug webvisning I stedet for Chrome tilpasset faner Debug + Select … Dit navn Din email adresse Svar til adresse @@ -70,7 +71,7 @@ Portnummer Brugernavn Adgangskode - Authorize + Select account Vejledning Gem sendte beskeder (aktivér kun hvis nødvendigt) Afstem/hold i live interval (minutter) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 90691b38c4..ccb116fd0e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port-Nummer Benutzername Passwort - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 987ceda477..fec9f9f748 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -23,7 +23,7 @@ \'%1$s\' a échoué Configuration - Answers + Réponses Opérations Légende FAQ @@ -54,6 +54,7 @@ Utiliser WebView Au lieu des onglets personnalisés Chrome Débogage + Select … Votre nom Votre adresse e-mail Répondre à l\'adresse @@ -70,7 +71,7 @@ Numéro de port Nom d’utilisateur Mot de passe - Authorize + Select account Instructions Stocker les messages envoyés (à activer si nécessaire) Intervalle de consultation/requête (minutes) @@ -148,9 +149,9 @@ Rechercher Rechercher sur le serveur Recherche de \'%1$s\' - Standard answer - Answer name - Answer text + Réponse standard + Nom de la réponse + Texte de la réponse Cc/Cci Pièce jointe Synchroniser diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index fa11311e0c..667a59a6f0 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -62,6 +62,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -78,7 +79,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3611b95442..c1ea78c2ec 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -54,6 +54,7 @@ Usa WebView Al posto di Chrome Custom Tabs Debug + Select … Il tuo nome Il tuo indirizzo email Rispondi all\'indirizzo @@ -70,7 +71,7 @@ Numero porta Nome utente Password - Authorize + Select account Instructions Conserva i messaggi inviati (abilita solo se necessario) Intervallo di poll/keep-alive (minuti) diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index fa11311e0c..667a59a6f0 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -62,6 +62,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -78,7 +79,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index d67d87d7e7..fcbc047e2e 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -50,6 +50,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -66,7 +67,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d67d87d7e7..fcbc047e2e 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -50,6 +50,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -66,7 +67,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 926c5d5dbf..188be369f0 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -62,6 +62,7 @@ Użyj WebView Instead of Chrome Custom Tabs Debug + Select … Your name Twój adres e-mail Reply to address @@ -78,7 +79,7 @@ Numer portu Nazwa użytkownika Hasło - Authorize + Select account Instrukcje Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b8825330ad..fa0f5cfe20 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Número da porta Nome de usuário Senha - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 97ca432995..dd90996822 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -58,6 +58,7 @@ Folosește WebView în loc de tab Chrome personalizat Depanare + Select … Numele dumneavoastră Adresa dvs. de e-mail Răspuns la adresa @@ -74,7 +75,7 @@ Număr port Nume utilizator Parolă - Authorize + Select account Instructions Stochează mesajele trimise (activați doar la nevoie) Interval sincronizare (minute) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0419420266..ae3498df53 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -62,6 +62,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -78,7 +79,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 8f77997937..46f98611de 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -58,6 +58,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -74,7 +75,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 913b6eda86..9000516bfb 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -54,6 +54,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -70,7 +71,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 0419420266..ae3498df53 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -62,6 +62,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -78,7 +79,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index d67d87d7e7..fcbc047e2e 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -50,6 +50,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -66,7 +67,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d67d87d7e7..fcbc047e2e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -50,6 +50,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -66,7 +67,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d67d87d7e7..fcbc047e2e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -50,6 +50,7 @@ Use WebView Instead of Chrome Custom Tabs Debug + Select … Your name Your email address Reply to address @@ -66,7 +67,7 @@ Port number User name Password - Authorize + Select account Instructions Store sent messages (enable if needed only) Poll/keep-alive interval (minutes)