diff --git a/buildSrc/src/main/java/TinkLinkVersion.kt b/buildSrc/src/main/java/TinkLinkVersion.kt index c4c29c76b..d04f267f9 100644 --- a/buildSrc/src/main/java/TinkLinkVersion.kt +++ b/buildSrc/src/main/java/TinkLinkVersion.kt @@ -2,7 +2,7 @@ object TinkLinkVersion { private const val major = 0 private const val minor = 14 - private const val patch = 2 + private const val patch = 3 const val name = "$major.$minor.$patch" diff --git a/link-ui/src/main/java/com/tink/link/ui/credentials/ConsentViewModel.kt b/link-ui/src/main/java/com/tink/link/ui/credentials/ConsentViewModel.kt index d9ced3d04..43df545fb 100644 --- a/link-ui/src/main/java/com/tink/link/ui/credentials/ConsentViewModel.kt +++ b/link-ui/src/main/java/com/tink/link/ui/credentials/ConsentViewModel.kt @@ -20,6 +20,7 @@ internal class ConsentViewModel() : ViewModel() { val privacyPolicyUrl = consentContext.privacyPolicy() private val _clientDescription = MutableLiveData() + val clientDescription: LiveData = _clientDescription val scopeDescriptions: MutableList = mutableListOf() @@ -40,14 +41,9 @@ internal class ConsentViewModel() : ViewModel() { val isUnverified: LiveData = Transformations.map(_clientDescription) { it?.verified == false } - val showConsentInformation: LiveData = - Transformations.map(_clientDescription) { it?.aggregator == false } - - val clientName: LiveData = Transformations.map(_clientDescription) { it?.clientName } - val showTinkLogo: LiveData = Transformations.map(_clientDescription) { it?.aggregator == false } - val showTermsAndConditions: LiveData = - Transformations.map(_clientDescription) { it?.aggregator == false } + fun showTermsAndConsent(clientDescription: OAuthClientDescription) = + !clientDescription.aggregator } diff --git a/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsField.kt b/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsField.kt index 51a191770..525163adc 100644 --- a/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsField.kt +++ b/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsField.kt @@ -69,7 +69,27 @@ internal class MutableCredentialsField : LinearLayout, CredentialsField { getFilledField().validate() .also { textInputLayout.error = - if (it is Field.ValidationResult.ValidationError) it.errorMessage else null + if (it is Field.ValidationResult.ValidationError) { + when (it) { + is Field.ValidationResult.ValidationError.Invalid -> { + it.errorMessage + } + + is Field.ValidationResult.ValidationError.MaxLengthLimit -> { + context.getString( + R.string.tink_credentials_field_validation_error_maxLengthLimit, + field.validationRules.maxLength + ) + } + + is Field.ValidationResult.ValidationError.MinLengthLimit -> { + context.getString( + R.string.tink_credentials_field_validation_error_minLengthLimit, + field.validationRules.minLength + ) + } + } + } else null } .let { it == Field.ValidationResult.Valid } diff --git a/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsFragment.kt b/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsFragment.kt index 29f0befb3..d3c6439ca 100644 --- a/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsFragment.kt +++ b/link-ui/src/main/java/com/tink/link/ui/credentials/CredentialsFragment.kt @@ -24,9 +24,9 @@ import com.tink.link.authentication.AuthenticationTask.ThirdPartyAuthentication. import com.tink.link.ui.R import com.tink.link.ui.TinkLinkUiActivity import com.tink.link.ui.extensions.LinkInfo -import com.tink.link.ui.extensions.convertCallToActionText import com.tink.link.ui.extensions.hideKeyboard import com.tink.link.ui.extensions.setTextWithLinks +import com.tink.link.ui.extensions.setTextWithUrlMarkdown import com.tink.link.ui.extensions.toArrayList import com.tink.link.ui.extensions.toView import com.tink.model.credentials.Credentials @@ -34,9 +34,9 @@ import com.tink.model.provider.Provider import kotlinx.android.parcel.Parcelize import kotlinx.android.synthetic.main.tink_fragment_credentials.* import kotlinx.android.synthetic.main.tink_fragment_credentials.authenticateCredentialsLayout -import kotlinx.android.synthetic.main.tink_layout_consent.* import kotlinx.android.synthetic.main.tink_layout_credentials_authenticate.* -import kotlinx.android.synthetic.main.tink_layout_toolbar.toolbar +import kotlinx.android.synthetic.main.tink_layout_toolbar_with_logo.* +import kotlinx.android.synthetic.main.tink_layout_toolbar_with_logo.view.* private const val BANK_ID_ACTION_SAME_DEVICE = 1 private const val BANK_ID_ACTION_OTHER_DEVICE = 2 @@ -66,13 +66,17 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - toolbar.title = getString(R.string.tink_credentials_authentication_title) - toolbar.setNavigationOnClickListener { + toolbarWithLogo.toolbarTitleView.text = provider.displayName + toolbarWithLogo.setNavigationOnClickListener { (activity as? TinkLinkUiActivity)?.closeTinkLinkUi( TinkLinkUiActivity.RESULT_CANCELLED ) } + provider.images?.icon?.let { + Picasso.get().load(it).into(toolbarWithLogo.logoView) + } + when (credentialsOperationArgs) { is CredentialsOperationArgs.Create, is CredentialsOperationArgs.Update -> { showFullCredentialsFlow() } @@ -143,20 +147,13 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials authenticateCredentialsLayout.visibility = View.GONE addCredentialsLayout.visibility = View.VISIBLE consentViewModel.apply { - showConsentInformation.observe(viewLifecycleOwner) { - userGroup.visibility = if (it == true) View.VISIBLE else View.GONE - } - clientName.observe(viewLifecycleOwner) { - setConsentInformation(it) - } - showTermsAndConditions.observe(viewLifecycleOwner) { - termsAndConditionsText.visibility = - if (it == true) { - setTermsAndConditions(termsAndConditionsUrl, privacyPolicyUrl) - View.VISIBLE - } else { - View.GONE - } + clientDescription.observe(viewLifecycleOwner) { + if (showTermsAndConsent(it)) { + termsAndConsentText.visibility = View.VISIBLE + setTermsAndConsentText(termsAndConditionsUrl, privacyPolicyUrl, it.clientName) + } else { + termsAndConsentText.visibility = View.GONE + } } isUnverified.observe(viewLifecycleOwner) { unverifiedWarning.visibility = @@ -167,12 +164,13 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials } } - provider.images?.icon?.let { - Picasso.get().load(it).into(logo) + if (provider.fields.isEmpty()) { + showEmptyFieldsFlow() + } else { + emptyFieldsGroup.isVisible = false + credentialsFieldsHelpTextGroup.isVisible = true } - bankName.text = provider.displayName - val fields = provider.fields.map { field -> credentialsOperationArgs .takeIf { it is CredentialsOperationArgs.Update } @@ -209,6 +207,14 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials submitFilledFields() } + if (provider.helpText.isNotBlank()) { + providerHelpText.visibility = View.VISIBLE + providerHelpText.setTextWithUrlMarkdown(provider.helpText) + providerHelpText.movementMethod = LinkMovementMethod.getInstance() + } else { + providerHelpText.visibility = View.GONE + } + createCredentialsBtn.setOnClickListener { submitFilledFields() } footer.post { @@ -218,6 +224,16 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials } } + private fun showEmptyFieldsFlow() { + credentialsFieldsHelpTextGroup.isVisible = false + emptyFieldsGroup.isVisible = true + provider.images?.icon?.let { + Picasso.get().load(it).into(emptyFieldsBankLogo) + } + emptyFieldsLoginText.text = + getString(R.string.tink_credentials_empty_fields_login, provider.displayName) + } + private fun showAuthenticateFlow() { addCredentialsLayout.visibility = View.GONE authenticateCredentialsLayout.visibility = View.VISIBLE @@ -258,41 +274,49 @@ internal class CredentialsFragment : Fragment(R.layout.tink_fragment_credentials } } - private fun setConsentInformation(clientName: String) { + private fun setTermsAndConsentText( + termsAndConditionsUrl: Uri, + privacyPolicyUrl: Uri, + clientName: String? + ) { + val links = mutableListOf( + LinkInfo.Url( + getString(R.string.tink_credentials_terms_and_conditions), + termsAndConditionsUrl.toString() + ), + LinkInfo.Url( + getString(R.string.tink_credentials_privacy_policy), + privacyPolicyUrl.toString(), + ) + ) val readMoreText = getString(R.string.tink_credentials_consent_information_read_more) - consentInformation.text = - getString( + var consentText = "" + // Add consent text if client name is not null + if (clientName != null) { + consentText = getString( R.string.tink_credentials_consent_information_text, clientName, - readMoreText - ).convertCallToActionText( - ctaText = readMoreText, - action = { showConsentInformation() }, - context = requireContext() + getString(R.string.tink_credentials_consent_information_read_more) ) - consentInformation.movementMethod = LinkMovementMethod.getInstance() - } - - private fun setTermsAndConditions(termsAndConditionsUrl: Uri, privacyPolicyUrl: Uri) { + // Add CTA text to list of links to be shown in the final text + links.add( + LinkInfo.CallToAction( + displayText = readMoreText, + action = { showConsentInformation() } + ) + ) + } val termsText = getString( R.string.tink_credentials_terms_text, getString(R.string.tink_credentials_terms_and_conditions), - getString(R.string.tink_credentials_privacy_policy) + getString(R.string.tink_credentials_privacy_policy), + consentText ) - termsAndConditionsText.setTextWithLinks( + termsAndConsentText.setTextWithLinks( fullText = termsText, - links = listOf( - LinkInfo( - termsAndConditionsUrl.toString(), - getString(R.string.tink_credentials_terms_and_conditions) - ), - LinkInfo( - privacyPolicyUrl.toString(), - getString(R.string.tink_credentials_privacy_policy) - ) - ) + links = links ) - termsAndConditionsText.movementMethod = LinkMovementMethod.getInstance() + termsAndConsentText.movementMethod = LinkMovementMethod.getInstance() } private fun showConsentInformation() { diff --git a/link-ui/src/main/java/com/tink/link/ui/extensions/StringExtensions.kt b/link-ui/src/main/java/com/tink/link/ui/extensions/StringExtensions.kt index 050cff665..50ba43a32 100644 --- a/link-ui/src/main/java/com/tink/link/ui/extensions/StringExtensions.kt +++ b/link-ui/src/main/java/com/tink/link/ui/extensions/StringExtensions.kt @@ -16,35 +16,30 @@ import androidx.core.content.res.ResourcesCompat import com.tink.link.ui.R import java.util.regex.Pattern -internal fun String.convertCallToActionText( - ctaText: String, - action: () -> Unit, - context: Context -): CharSequence { - val startIndex = indexOf(ctaText) - val spannableString = SpannableString.valueOf(this) - .apply { - setSpan( - TinkCallToActionSpan(context, action), - startIndex, - startIndex + ctaText.length, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE - ) - } - return SpannedString(spannableString) -} - internal fun TextView.setTextWithLinks(fullText: String, links: List) { val spannableString = SpannableString.valueOf(fullText) .apply { for (link in links) { - val startIndex = indexOf(link.linkText) - setSpan( - TinkUrlSpan(link.url, context), - startIndex, - startIndex + link.linkText.length, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE - ) + val startIndex = indexOf(link.displayText) + when (link) { + is LinkInfo.Url -> { + setSpan( + TinkUrlSpan(link.url, context), + startIndex, + startIndex + link.displayText.length, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + } + + is LinkInfo.CallToAction -> { + setSpan( + TinkCallToActionSpan(context, link.action), + startIndex, + startIndex + link.displayText.length, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + } + } } } text = SpannedString(spannableString) @@ -61,13 +56,13 @@ internal fun String.convertUrlMarkdownToSpan(context: Context): SpannableString val url = matcher.toMatchResult().group(2) val startIndex = matcher.start(1) - 1 if (!url.isNullOrEmpty() && !linkText.isNullOrEmpty()) { - val linkInfo = LinkInfo(url, linkText) + val linkInfo = LinkInfo.Url(url, linkText) val fullText = matcher.replaceAll(linkText) return SpannableString.valueOf(fullText).apply { setSpan( TinkUrlSpan(linkInfo.url, context), startIndex, - startIndex + linkInfo.linkText.length, + startIndex + linkInfo.displayText.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE ) } @@ -112,4 +107,11 @@ internal class TinkUrlSpan(url: String, val context: Context) : URLSpan(url) { } } -internal data class LinkInfo(val url: String, val linkText: String) +internal sealed class LinkInfo { + + abstract val displayText: String + + data class Url(override val displayText: String, val url: String) : LinkInfo() + + data class CallToAction(override val displayText: String, val action: () -> Unit) : LinkInfo() +} diff --git a/link-ui/src/main/res/drawable/tink_logo.xml b/link-ui/src/main/res/drawable/tink_logo.xml index 6d15782ee..f3e2a0b8a 100644 --- a/link-ui/src/main/res/drawable/tink_logo.xml +++ b/link-ui/src/main/res/drawable/tink_logo.xml @@ -10,36 +10,36 @@ android:pathData="M4.2883,12.4665C3.2687,12.4665 2.9241,11.9752 2.9241,11.2595V8.0856H5.1583V6.6248H2.9241V4.0781H1.1997V6.6248H0V8.1004H1.0948V11.3037C1.0948,12.9275 2.159,14.0002 4.0181,14.0002C4.5428,14.0002 5.008,13.911 5.2625,13.8062L5.2021,12.3011C4.9179,12.4215 4.618,12.4665 4.2883,12.4665Z" android:strokeAlpha="0.2" android:fillColor="#262626" - android:fillAlpha="0.2"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> + android:fillAlpha="0.5"/> diff --git a/link-ui/src/main/res/layout/tink_fragment_credentials.xml b/link-ui/src/main/res/layout/tink_fragment_credentials.xml index 554d35622..bf3e177f9 100644 --- a/link-ui/src/main/res/layout/tink_fragment_credentials.xml +++ b/link-ui/src/main/res/layout/tink_fragment_credentials.xml @@ -9,14 +9,13 @@ android:orientation="vertical"> + layout="@layout/tink_layout_toolbar_with_logo" /> + android:layout_below="@id/toolbarWithLogo"> - + + app:layout_constraintTop_toBottomOf="@id/tinkLogo" /> + + + + + + + + + + @@ -95,7 +144,7 @@ android:paddingEnd="28dp" android:paddingBottom="12dp" android:text="@string/tink_credentials_continue_button" - app:layout_constraintBottom_toTopOf="@id/termsAndConditionsText" + app:layout_constraintBottom_toTopOf="@id/termsAndConsentText" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> @@ -130,7 +179,7 @@ app:lineHeight="@dimen/tink_deci_line_height" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintBottom_toTopOf="@id/termsAndConditionsText" + app:layout_constraintBottom_toTopOf="@id/termsAndConsentText" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> @@ -142,8 +191,8 @@ app:constraint_referenced_ids="bankIdButton" /> \ No newline at end of file diff --git a/link-ui/src/main/res/layout/tink_layout_consent.xml b/link-ui/src/main/res/layout/tink_layout_consent.xml deleted file mode 100644 index f7ab6e9dd..000000000 --- a/link-ui/src/main/res/layout/tink_layout_consent.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/link-ui/src/main/res/layout/tink_layout_toolbar_with_logo.xml b/link-ui/src/main/res/layout/tink_layout_toolbar_with_logo.xml new file mode 100644 index 000000000..55c6dd2e2 --- /dev/null +++ b/link-ui/src/main/res/layout/tink_layout_toolbar_with_logo.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/link-ui/src/main/res/values-da/strings.xml b/link-ui/src/main/res/values-da/strings.xml index 805cb1bb9..91070b610 100644 --- a/link-ui/src/main/res/values-da/strings.xml +++ b/link-ui/src/main/res/values-da/strings.xml @@ -22,13 +22,16 @@ Logonmetode Godkendelse %1$s får nogle af dine finansielle oplysninger. %2$s - Læs mere + Se detaljer Ubekræftet enne løsning er kun lavet til udviklingsformål. Indtast ikke dine bankoplysninger, medmindre du har tillid til udvikleren. - Fortsæt + Log ind på %s for at fortsætte + Log ind Åbn BankID - Ved at bruge denne tjeneste accepterer du Tinks %1$s and %2$s + Ved at bruge denne tjeneste accepterer du Tinks %1$s and %2$s. %3$s vilkår og betingelser fortrolighedspolitik + Dette felt kan ikke ære længere end %d + Dette felt skal indeholde mindst %d tegn Vi indsamler følgende data fra dig Ved at følge denne tjeneste indsamler vi finansielle data fra dig. Dette er de datapunkter, vi indsamler fra dig: Download diff --git a/link-ui/src/main/res/values-de/strings.xml b/link-ui/src/main/res/values-de/strings.xml index 59de8e712..79eeeaea6 100644 --- a/link-ui/src/main/res/values-de/strings.xml +++ b/link-ui/src/main/res/values-de/strings.xml @@ -22,13 +22,16 @@ anmeldemethode Authentifizierung %1$s wird einige Ihrer finanziellen Informationen einholen. %2$s - Mehr erfahren + Details anzeigen Unverifiziert - Diese Lösung ist nur für Entwicklungszwecke gedacht. Geben Sie Ihre Bankdaten nur dann ein, wenn Sie dem Entwickler vertrauen. - Weiter + Zum Fortfahren bei %s anmelden + Anmelden BankID öffnen - Mit der Nutzung dieses Services akzeptieren Sie die %1$s und %2$s von Tink + Mit der Nutzung dieses Services akzeptieren Sie die %1$s und %2$s von Tink. %3$s Nutzungsbedingungen Datenschutzrichtlinie + Dieses Feld darf nur max. %d Zeichen enthalten + Dieses Feld muss mindestens %d Zeichen enthalten Wir werden die folgenden Daten von Ihnen erfassen Wenn Sie diesen Service in Anspruch nehmen, sammeln wir Finanzdaten von Ihnen. Dies sind die Datenpunkte, die wir von Ihnen erfassen werden: Herunterladen diff --git a/link-ui/src/main/res/values-es/strings.xml b/link-ui/src/main/res/values-es/strings.xml index 32c80e2ab..3f1ea7467 100644 --- a/link-ui/src/main/res/values-es/strings.xml +++ b/link-ui/src/main/res/values-es/strings.xml @@ -22,13 +22,16 @@ Método de inicio de sesión Autentificación %1$s obtendrá parte de tu información financiera. %2$s - Más información + Consulta los detalles Sin verificar: Esta solución se ha creado solo con propósitos de desarrollo. No introduzcas tus credenciales del banco a menos que confíes en el desarrollador. - Continuar + Inicia sesión en %s para continuar + Iniciar sesión Abrir BankID - Al usar el servicio, aceptas los %1$s y la %2$s de Tink + Al usar el servicio, aceptas los %1$s y la %2$s de Tink. %3$s Términos y condiciones Política de privacidad + Este campo no puede contener más de %d caracteres + Este campo debe tener al menos %d caracteres Recopilaremos los siguientes datos tuyos Si sigues usando este servicio, recopilaremos datos financieros. Esta es la información que recopilaremos sobre ti: Descargar diff --git a/link-ui/src/main/res/values-fi/strings.xml b/link-ui/src/main/res/values-fi/strings.xml index 234e4eebb..ecc4760de 100644 --- a/link-ui/src/main/res/values-fi/strings.xml +++ b/link-ui/src/main/res/values-fi/strings.xml @@ -22,13 +22,16 @@ Kirjautumistapa Henkilöllisyyden todentaminen %1$s saa joitakin taloudellisia tietojasi. %2$s - Lue lisää + Näytä tiedot Varmistamaton - Tämä ratkaisu on tehty vain kehitystarkoituksiin. Älä anna tunnistetietoja pankkiisi, jos et luota kehittäjään. - Jatka + Kirjaudu sisään %s-palveluun, niin voit jatkaa + Kirjaudu sisään Avaa BankID - Palvelua käyttämällä hyväksyt Tinkin %1$s and %2$s + Palvelua käyttämällä hyväksyt Tinkin %1$s and %2$s. %3$s käyttöehdot tietosuojakäytännön + Tässä kentässä saa olla enintään %d merkkiä + Tässä kentässä on oltava vähintään %d merkkiä Keräämme seuraavat sinua koskevat tiedot Kun käytät tätä palvelua, keräämme sinua koskevia taloudellisia tietoja. Keräämme nämä sinua koskevat tiedot: Lataa diff --git a/link-ui/src/main/res/values-fr/strings.xml b/link-ui/src/main/res/values-fr/strings.xml index 13a633433..480928cf4 100644 --- a/link-ui/src/main/res/values-fr/strings.xml +++ b/link-ui/src/main/res/values-fr/strings.xml @@ -22,13 +22,16 @@ Moyen de connexion Authentification %1$s obtiendra certaines de vos informations financières. %2$s - Lire plus + Voir les détails Non vérifiée. Cette solution n\'est accessible qu\'à des fins de développement. Ne saisissez pas vos informations bancaires, sauf si vous faites totalement confiance au développeur. - Continuer + Connectez-vous à %s pour continuer + Connexion Ouvrir BankID - En utilisant ce service, vous acceptez les %1$s et la %2$s de Tink + En utilisant ce service, vous acceptez les %1$s et la %2$s de Tink. %3$s Conditions d\'utilisation Politique de confidentialité + Ce champ ne peut pas comporter plus de %d caractères + Ce champ doit comporter au moins %d caractères Nous recueillerons les données suivantes de votre part Si vous continuez à utiliser ce service, nous recueillerons des données financières de votre part. Voici les points de données que nous recueillerons : Télécharger diff --git a/link-ui/src/main/res/values-it/strings.xml b/link-ui/src/main/res/values-it/strings.xml index 6fa2522c2..98c22607c 100644 --- a/link-ui/src/main/res/values-it/strings.xml +++ b/link-ui/src/main/res/values-it/strings.xml @@ -22,13 +22,16 @@ Metodo di accesso Autenticazione %1$s acquisirà alcune delle tue informazioni finanziarie. %2$s - Altre informazioni + Guarda i dettagli Non verificato: questa soluzione è stata realizzata esclusivamente a scopo di sviluppo. Non inserire le tue credenziali bancarie a meno che non ti fidi dello sviluppatore. - Continua la modifica + Accedi a %s per continuare + Accedi Apri BankID - Utilizzando il servizio, accetti i Termini e condizioni di Tink e %1$s sulla %2$s + Utilizzando il servizio, accetti i Termini e condizioni di Tink e %1$s sulla %2$s. %3$s l\'Informativa privacy + Questo campo non può superare i %d caratteri + Questo campo deve contenere almeno %d caratteri Acquisiremo i seguenti dati Proseguendo nella fruizione di questo servizio, acquisiremo i tuoi dati finanziari. Questi sono i dati che acquisiremo: Download diff --git a/link-ui/src/main/res/values-nl/strings.xml b/link-ui/src/main/res/values-nl/strings.xml index 1ab9acaf9..64bf461c3 100644 --- a/link-ui/src/main/res/values-nl/strings.xml +++ b/link-ui/src/main/res/values-nl/strings.xml @@ -22,13 +22,16 @@ inlogmethode Authenticatie %1$s zal wat financiële gegevens over je verzamelen. %2$s - Meer lezen + Details bekijken Niet geverifieerd. Deze oplossing is alleen bedoeld voor ontwikkelingsdoeleinden. Voer geen bankgegevens in, tenzij je de ontwikkelaar vertrouwt. - Volgende + Log in bij %s om verder te gaan + Inloggen BankID openen - Door de dienst te gebruiken, ga je akkoord met de %1$s en het %2$s van Tink + Door de dienst te gebruiken, ga je akkoord met de %1$s en het %2$s van Tink. %3$s algemene voorwaarden privacybeleid + Dit veld mag niet langer zijn dan %d tekens + Dit veld moet minimaal %d tekens bevatten We verzamelen de volgende gegevens over je Door verder te gaan met deze dienst, zullen wij financiële gegevens over je verzamelen. Dit zijn de datapunten die we over je verzamelen: Downloaden diff --git a/link-ui/src/main/res/values-no/strings.xml b/link-ui/src/main/res/values-no/strings.xml index b4298c371..a75bbe04c 100644 --- a/link-ui/src/main/res/values-no/strings.xml +++ b/link-ui/src/main/res/values-no/strings.xml @@ -22,13 +22,16 @@ påloggingsmetode Godkjenning %1$s vil samle inn noen av dine finansielle opplysninger. %2$s - Les mer + Vis detaljer Ikke verifisert. Denne løsningen er bare til utviklingsformål. Ikke oppgi bankinformasjonen din med mindre du stoler på utvikleren. - Fortsett + Logg på %s for å fortsette + Logg på Åpne BankID - Ved at du bruker denne tjenesten, godtar du Tinks %1$s and %2$s + Ved at du bruker denne tjenesten, godtar du Tinks %1$s and %2$s. %3$s Vilkår Personvernerklæring + Dette feltet kan ikke være lengre enn %d + Dette feltet må inneholde minst %d tegn Vi vil samle inn følgende data fra deg Gjennom denne tjenesten samler vi inn finansielle data fra deg. Disse datapunktene vil vi samle inn fra deg: Last ned diff --git a/link-ui/src/main/res/values-pt/strings.xml b/link-ui/src/main/res/values-pt/strings.xml index ed3b37e1b..4ab8f92ec 100644 --- a/link-ui/src/main/res/values-pt/strings.xml +++ b/link-ui/src/main/res/values-pt/strings.xml @@ -22,13 +22,16 @@ método de início de sessão Autenticação %1$s vai receber alguma da sua informação financeira. %2$s - Leia mais + Ver detalhes Por verificar - esta solução apenas está construída para fins de desenvolvimento. Não introduza as credenciais do seu banco se não confiar no desenvolvedor. - Continuar + Inicie sessão em %s para continuar + Iniciar sessão Abrir BankID - Ao usar o serviço, concorda com os %1$s e %2$s + Ao usar o serviço, concorda com os %1$s e %2$s. %3$s Termos e condições Política de privacidade + Este campo não pode ter mais de %d caracteres + Este campo deve ter, pelo menos, %d caracteres Iremos recolher os seguintes dados seus Ao continuar através deste serviço, iremos recolher os seus dados financeiros. Estes são os seus dados que iremos recolher: Transferir diff --git a/link-ui/src/main/res/values-sv-rSE/strings.xml b/link-ui/src/main/res/values-sv-rSE/strings.xml index e88c39864..4b6bd5680 100644 --- a/link-ui/src/main/res/values-sv-rSE/strings.xml +++ b/link-ui/src/main/res/values-sv-rSE/strings.xml @@ -22,13 +22,16 @@ Inloggningsmetod Autentiseringen %1$s kommer att få dina ekonomiska uppgifter. %2$s - Läs mer + Visa detaljer Overifierad - Den här lösningen är endast gjord i utvecklingssyfte. Ange inte dina inloggningsuppgifter om du inte litar på utvecklaren. - Fortsätt + Logga in på %s för att fortsätta + Logga in Öppna BankID - Genom att använda tjänsten godkänner du Tinks %1$s and %2$s + Genom att använda tjänsten godkänner du Tinks %1$s and %2$s. %3$s Användarvillkor Integritetspolicy + Detta fält kan inte vara längre än %d tecken + Fältet måste vara minst %d tecken Vi samlar in följande uppgifter om dig Genom att använda denna tjänst samlar vi in finansuppgifter om dig. Vi samlar in följande datapunkter: Ladda ner diff --git a/link-ui/src/main/res/values/strings.xml b/link-ui/src/main/res/values/strings.xml index e646d8701..dac8e0089 100644 --- a/link-ui/src/main/res/values/strings.xml +++ b/link-ui/src/main/res/values/strings.xml @@ -22,13 +22,16 @@ Sign in method Authentication %1$s will obtain some of your financial information. %2$s - Read More + View details Unverified - This solution is only made for development purposes. Do not enter your bank credentials unless you trust the developer. - Continue + Log in to %s to continue + Log in Open BankID - By using the service, you agree to Tink’s %1$s and %2$s + By using the service, you agree to Tink’s %1$s and %2$s. %3$s Terms and Conditions Privacy Policy + This field cannot be longer than %d characters + This field must be at least %d characters We will collect the following data from you By following through this service, we will collect financial data from you. These are the data points we will collect from you: Download