From 13f6113a54d569f7593b129f660749a224bbe5f0 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Thu, 31 May 2018 15:03:24 +0300 Subject: [PATCH] Use placeholders instead of hardcoded links for ToF and PP --- .../maps/auth/SocialAuthDialogFragment.java | 22 +++++++++++++------ .../maps/news/WelcomeDialogFragment.java | 6 ++++- .../AuthorizationViewController.swift | 4 ++-- .../Authorization/MWMAuthorizationViewModel.h | 2 ++ .../MWMAuthorizationViewModel.mm | 10 +++++++++ 5 files changed, 34 insertions(+), 10 deletions(-) diff --git a/android/src/com/mapswithme/maps/auth/SocialAuthDialogFragment.java b/android/src/com/mapswithme/maps/auth/SocialAuthDialogFragment.java index e0d4e7deb2..0ade153e19 100644 --- a/android/src/com/mapswithme/maps/auth/SocialAuthDialogFragment.java +++ b/android/src/com/mapswithme/maps/auth/SocialAuthDialogFragment.java @@ -4,10 +4,13 @@ import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; +import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; +import android.text.Html; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; @@ -142,7 +145,12 @@ public class SocialAuthDialogFragment extends BaseMwmDialogFragment R.id.google_button, R.id.facebook_button, R.id.phone_button); }); - linkifyPolicyViews(view, R.id.privacyPolicyLink, R.id.termOfUseLink); + linkifyPolicyView(view, R.id.privacyPolicyLink, R.string.sign_agree_pp_gdpr, + Framework.nativeGetPrivacyPolicyLink()); + + linkifyPolicyView(view, R.id.termOfUseLink, R.string.sign_agree_tof_gdpr, + Framework.nativeGetTermsOfUseLink()); + setButtonAvailability(view, false, R.id.google_button, R.id.facebook_button, R.id.phone_button); return view; @@ -155,13 +163,13 @@ public class SocialAuthDialogFragment extends BaseMwmDialogFragment button.setOnClickListener(clickListener); } - private static void linkifyPolicyViews(@NonNull View root, @IdRes int... ids) + private static void linkifyPolicyView(@NonNull View root, @IdRes int id, @StringRes int stringId, + @NonNull String link) { - for (int id : ids) - { - TextView policyView = root.findViewById(id); - policyView.setMovementMethod(LinkMovementMethod.getInstance()); - } + TextView policyView = root.findViewById(id); + Resources rs = policyView.getResources(); + policyView.setText(Html.fromHtml(rs.getString(stringId, link))); + policyView.setMovementMethod(LinkMovementMethod.getInstance()); } private static void setButtonAvailability(@NonNull View root, boolean available, @IdRes int... ids) diff --git a/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java b/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java index ba930082df..aabbd55734 100644 --- a/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java +++ b/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java @@ -2,6 +2,7 @@ package com.mapswithme.maps.news; import android.app.Activity; import android.app.Dialog; +import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -16,6 +17,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.mapswithme.maps.BuildConfig; +import com.mapswithme.maps.Framework; import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmDialogFragment; import com.mapswithme.maps.location.LocationHelper; @@ -116,7 +118,9 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View subtitle.setText(R.string.onboarding_welcome_first_subtitle); TextView terms = (TextView) content.findViewById(R.id.tv__subtitle2); UiUtils.show(terms); - terms.setText(R.string.onboarding_welcome_second_subtitle); + Resources rs = content.getResources(); + terms.setText(Html.fromHtml(rs.getString(R.string.onboarding_welcome_second_subtitle, + Framework.nativeGetTermsOfUseLink(), Framework.nativeGetPrivacyPolicyLink()))); terms.setMovementMethod(LinkMovementMethod.getInstance()); return res; diff --git a/iphone/Maps/UI/Authorization/AuthorizationViewController.swift b/iphone/Maps/UI/Authorization/AuthorizationViewController.swift index 0df279e78f..8983b55397 100644 --- a/iphone/Maps/UI/Authorization/AuthorizationViewController.swift +++ b/iphone/Maps/UI/Authorization/AuthorizationViewController.swift @@ -153,7 +153,7 @@ final class AuthorizationViewController: MWMViewController { @IBOutlet private weak var privacyPolicyTextView: UITextView! { didSet { - let htmlString = L("sign_agree_pp_gdpr") + let htmlString = String(coreFormat: L("sign_agree_pp_gdpr"), arguments: [ViewModel.privacyPolicyLink()]) let attributes: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: UIFont.regular16(), NSAttributedStringKey.foregroundColor: UIColor.blackPrimaryText()] privacyPolicyTextView.attributedText = NSAttributedString.string(withHtml: htmlString, @@ -164,7 +164,7 @@ final class AuthorizationViewController: MWMViewController { @IBOutlet private weak var termsOfUseTextView: UITextView! { didSet { - let htmlString = L("sign_agree_tof_gdpr") + let htmlString = String(coreFormat: L("sign_agree_tof_gdpr"), arguments: [ViewModel.termsOfUseLink()]) let attributes: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font: UIFont.regular16(), NSAttributedStringKey.foregroundColor: UIColor.blackPrimaryText()] termsOfUseTextView.attributedText = NSAttributedString.string(withHtml: htmlString, diff --git a/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.h b/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.h index b18be789d6..75f7b95aa0 100644 --- a/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.h +++ b/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.h @@ -27,5 +27,7 @@ typedef void (^MWMAuthorizationCompleteBlock)(BOOL); promoAccepted:(BOOL)promoAccepted source:(MWMAuthorizationSource)source onComplete:(MWMAuthorizationCompleteBlock _Nonnull)onComplete; ++ (NSString * _Nonnull)termsOfUseLink; ++ (NSString * _Nonnull)privacyPolicyLink; @end diff --git a/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.mm b/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.mm index 6c6ade1c7b..96eaa0594d 100644 --- a/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.mm +++ b/iphone/Maps/UI/Authorization/MWMAuthorizationViewModel.mm @@ -69,4 +69,14 @@ termsAccepted, promoAccepted); } ++ (NSString * _Nonnull)termsOfUseLink +{ + return @(User::GetTermsOfUseLink().c_str()); +} + ++ (NSString * _Nonnull)privacyPolicyLink +{ + return @(User::GetPrivacyPolicyLink().c_str()); +} + @end