Use placeholders instead of hardcoded links for ToF and PP

This commit is contained in:
r.kuznetsov 2018-05-31 15:03:24 +03:00 committed by yoksnod
parent 1d0683179a
commit 13f6113a54
5 changed files with 34 additions and 10 deletions

View file

@ -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)

View file

@ -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;

View file

@ -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,

View file

@ -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

View file

@ -69,4 +69,14 @@
termsAccepted, promoAccepted);
}
+ (NSString * _Nonnull)termsOfUseLink
{
return @(User::GetTermsOfUseLink().c_str());
}
+ (NSString * _Nonnull)privacyPolicyLink
{
return @(User::GetPrivacyPolicyLink().c_str());
}
@end