mirror of
https://github.com/ev-map/EVMap.git
synced 2025-12-23 23:27:46 -05:00
OnboardingFragment: use CustomTabs for privacy policy
This commit is contained in:
@@ -6,6 +6,9 @@ import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.graphics.drawable.AnimatedVectorDrawable
|
||||
import android.os.Bundle
|
||||
import android.text.SpannableString
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.style.URLSpan
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -13,6 +16,7 @@ import android.view.animation.DecelerateInterpolator
|
||||
import android.widget.ImageView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.getSpans
|
||||
import androidx.core.text.method.LinkMovementMethodCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
@@ -27,6 +31,8 @@ import net.vonforst.evmap.databinding.FragmentOnboardingWelcomeBinding
|
||||
import net.vonforst.evmap.model.FILTERS_DISABLED
|
||||
import net.vonforst.evmap.navigation.safeNavigate
|
||||
import net.vonforst.evmap.storage.PreferenceDataSource
|
||||
import net.vonforst.evmap.ui.CustomUrlSpan
|
||||
import net.vonforst.evmap.ui.replaceUrlSpansWithCustom
|
||||
import net.vonforst.evmap.waitForLayout
|
||||
|
||||
class OnboardingFragment : Fragment() {
|
||||
@@ -237,13 +243,14 @@ class DataSourceSelectFragment : OnboardingPageFragment() {
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
binding.cbAcceptPrivacy.text =
|
||||
val text =
|
||||
HtmlCompat.fromHtml(
|
||||
getString(
|
||||
R.string.accept_privacy,
|
||||
getString(R.string.privacy_link)
|
||||
), HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
).replaceUrlSpansWithCustom()
|
||||
binding.cbAcceptPrivacy.text = text
|
||||
binding.cbAcceptPrivacy.linksClickable = true
|
||||
binding.cbAcceptPrivacy.movementMethod = LinkMovementMethodCompat.getInstance()
|
||||
binding.btnGetStarted.visibility = View.INVISIBLE
|
||||
|
||||
27
app/src/main/java/net/vonforst/evmap/ui/CustomUrlSpan.kt
Normal file
27
app/src/main/java/net/vonforst/evmap/ui/CustomUrlSpan.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
package net.vonforst.evmap.ui
|
||||
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import android.text.style.URLSpan
|
||||
import android.view.View
|
||||
import androidx.core.text.getSpans
|
||||
import net.vonforst.evmap.MapsActivity
|
||||
|
||||
class CustomUrlSpan(url: String): URLSpan(url) {
|
||||
override fun onClick(widget: View) {
|
||||
(widget.context as? MapsActivity)?.let {
|
||||
it.openUrl(url, widget.rootView)
|
||||
} ?: {
|
||||
super.onClick(widget)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Spanned.replaceUrlSpansWithCustom(): Spanned {
|
||||
val builder = SpannableStringBuilder(this)
|
||||
builder.getSpans<URLSpan>().forEach {
|
||||
builder.setSpan(CustomUrlSpan(it.url), builder.getSpanStart(it), builder.getSpanEnd(it), builder.getSpanFlags(it))
|
||||
builder.removeSpan(it)
|
||||
}
|
||||
return builder
|
||||
}
|
||||
Reference in New Issue
Block a user