From 736545adef07c26e01e4ef5a64324e06dd8ea04f Mon Sep 17 00:00:00 2001 From: Chumva Date: Tue, 12 Feb 2019 17:04:16 +0200 Subject: [PATCH] Add privacy policy screen --- OsmAnd-telegram/res/layout/login_dialog.xml | 119 ++++++++++++++++ OsmAnd-telegram/res/values-ru/strings.xml | 3 + OsmAnd-telegram/res/values/colors.xml | 2 + OsmAnd-telegram/res/values/strings.xml | 8 ++ .../osmand/telegram/ui/LoginDialogFragment.kt | 129 ++++++++++++++---- 5 files changed, 238 insertions(+), 23 deletions(-) diff --git a/OsmAnd-telegram/res/layout/login_dialog.xml b/OsmAnd-telegram/res/layout/login_dialog.xml index c1d34e8b57..c102c53312 100644 --- a/OsmAnd-telegram/res/layout/login_dialog.xml +++ b/OsmAnd-telegram/res/layout/login_dialog.xml @@ -352,6 +352,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Мы используем Telegram (messaging app), чтобы соединять людей и чтобы вам было проще общаться с ними. + Telegram открытая платформа и OsmAnd Tracker является одним из клиентов. Ваши контакты могут использовать любой другой Telegram client. + Нажимая продолжить, вы соглашаетесь с Telegram Privacy Policy и OsmAnd Privacy Policy. Включите мониторинг, для сбора данных о перемещении в фоновом режиме. Последнее обновление в Telegram Имя устройства diff --git a/OsmAnd-telegram/res/values/colors.xml b/OsmAnd-telegram/res/values/colors.xml index a7ecf7ec06..b4752ded07 100644 --- a/OsmAnd-telegram/res/values/colors.xml +++ b/OsmAnd-telegram/res/values/colors.xml @@ -41,4 +41,6 @@ #ee5622 #78cc5c + #5959FF + diff --git a/OsmAnd-telegram/res/values/strings.xml b/OsmAnd-telegram/res/values/strings.xml index f5c0e0de4d..e55a47fba0 100644 --- a/OsmAnd-telegram/res/values/strings.xml +++ b/OsmAnd-telegram/res/values/strings.xml @@ -1,4 +1,12 @@ + Telegram + We use a Telegram (messaging app) to connect people and make it easier for you to communicate with them. + Telegram open platform and OsmAnd Tracker is one of the customers. Your contacts can use any other Telegram client. + By clicking continue you agree to the Telegram Privacy Policy and the OsmAnd Privacy Policy. + Accept + Telegram Privacy Policy + OsmAnd Privacy Policy + How it works Received GPX points: %1$s Appearance Show GPS points diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/LoginDialogFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/LoginDialogFragment.kt index d60b0a1cfa..72ef7bc5af 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/LoginDialogFragment.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/LoginDialogFragment.kt @@ -2,17 +2,18 @@ package net.osmand.telegram.ui import android.app.Dialog import android.content.DialogInterface +import android.content.Intent import android.graphics.Rect +import android.net.Uri import android.os.Build import android.os.Bundle import android.support.annotation.StringRes import android.support.v4.app.FragmentManager import android.support.v4.content.ContextCompat import android.support.v7.widget.AppCompatImageView -import android.text.Editable -import android.text.Html -import android.text.TextUtils -import android.text.TextWatcher +import android.text.* +import android.text.style.ForegroundColorSpan +import android.text.style.StyleSpan import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -39,7 +40,10 @@ class LoginDialogFragment : BaseDialogFragment() { private const val LOGIN_DIALOG_TYPE_PARAM_KEY = "login_dialog_type_param" private const val SHOW_PROGRESS_PARAM_KEY = "show_progress_param" private const val SHOW_WELCOME_DIALOG_PARAM_KEY = "show_welcome_dialog_param" + private const val PRIVACY_POLICY_AGREED_PARAM_KEY = "privacy_policy_agreed_param" private const val TELEGRAM_PACKAGE = "org.telegram.messenger" + private const val TELEGRAM_PRIVACY_POLICY = "https://telegram.org/privacy" + private const val OSMAND_PRIVACY_POLICY = "https://osmand.net/help-online/privacy-policy" private const val SOFT_KEYBOARD_MIN_DETECTION_SIZE = 0.15 var welcomeDialogShown = false @@ -52,7 +56,7 @@ class LoginDialogFragment : BaseDialogFragment() { showDialog(fragmentManager, welcomeDialog = true) } - fun showDialog(fragmentManager: FragmentManager, loginDialogType: LoginDialogType? = null, welcomeDialog: Boolean = false) { + fun showDialog(fragmentManager: FragmentManager, loginDialogType: LoginDialogType? = null, welcomeDialog: Boolean = false, privacyPolicyAgreed: Boolean = false) { try { /* @@ -70,6 +74,7 @@ class LoginDialogFragment : BaseDialogFragment() { args.putString(LOGIN_DIALOG_TYPE_PARAM_KEY, loginDialogType.name) } args.putBoolean(SHOW_WELCOME_DIALOG_PARAM_KEY, welcomeDialog) + args.putBoolean(PRIVACY_POLICY_AGREED_PARAM_KEY, privacyPolicyAgreed) fragment.arguments = args fragment.show(fragmentManager, TAG) } else { @@ -98,6 +103,7 @@ class LoginDialogFragment : BaseDialogFragment() { private var loginDialogActiveType: LoginDialogType? = null private var showWelcomeDialog = false + private var privacyPolicyAgreed = false private var showProgress = false private var dismissedManually = false private lateinit var continueButton: Button @@ -112,7 +118,8 @@ class LoginDialogFragment : BaseDialogFragment() { ENTER_PASSWORD(R.id.enter_password_layout, R.id.password_edit_text, R.string.enter_password, R.string.password_descr, R.string.enter_password), GET_TELEGRAM(R.id.get_telegram_layout, 0, - R.string.get_telegram_title, R.string.get_telegram_account_first, 0); + R.string.get_telegram_title, R.string.get_telegram_account_first, 0), + PRIVACY_POLICY(R.id.privacy_policy_layout, 0, R.string.how_it_works, R.string.privacy_policy_use_telegram, 0); } override fun onCreate(savedInstanceState: Bundle?) { @@ -129,6 +136,7 @@ class LoginDialogFragment : BaseDialogFragment() { } showProgress = args.getBoolean(SHOW_PROGRESS_PARAM_KEY, false) showWelcomeDialog = args.getBoolean(SHOW_WELCOME_DIALOG_PARAM_KEY, false) + privacyPolicyAgreed = args.getBoolean(PRIVACY_POLICY_AGREED_PARAM_KEY, false) } val view = inflater.inflate(R.layout.login_dialog, container) continueButton = view.findViewById(R.id.continue_button) @@ -151,12 +159,13 @@ class LoginDialogFragment : BaseDialogFragment() { return view } - private fun transformContinueButton(expanded: Boolean) { + private fun transformContinueButton(expanded: Boolean, acceptMode: Boolean = false) { val params = continueButton.layoutParams as ViewGroup.MarginLayoutParams - val margin = if (expanded) 16f else 40f + val bottomMargin = if (expanded || acceptMode) 16f else 40f val width = if (expanded) ViewGroup.LayoutParams.MATCH_PARENT else ViewGroup.LayoutParams.WRAP_CONTENT params.apply { - setMargins(leftMargin, topMargin, rightMargin, AndroidUtils.dpToPx(context!!, margin)) + val horizontalMargin = app.resources.getDimensionPixelSize(if (acceptMode) R.dimen.dialog_welcome_padding_horizontal else R.dimen.content_padding_half) + setMargins(horizontalMargin, topMargin, horizontalMargin, AndroidUtils.dpToPx(context!!, bottomMargin)) this.width = width } continueButton.requestLayout() @@ -197,7 +206,10 @@ class LoginDialogFragment : BaseDialogFragment() { val continueButton = view?.findViewById