Skip to content
Snippets Groups Projects
Unverified Commit 833b7a80 authored by harambasicluka's avatar harambasicluka Committed by GitHub
Browse files

added clickable links to DialogHelper.kt (#646)


Co-authored-by: default avatarmarcmuschko <marc.muschko@sap.com>
parent 30fb65ec
No related branches found
No related tags found
No related merge requests found
package de.rki.coronawarnapp.util package de.rki.coronawarnapp.util
import android.app.Activity import android.app.Activity
import android.app.Activity.RESULT_OK
import android.text.SpannableString
import android.text.method.LinkMovementMethod
import android.text.util.Linkify
import android.widget.TextView
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import de.rki.coronawarnapp.R
object DialogHelper { object DialogHelper {
...@@ -59,11 +65,12 @@ object DialogHelper { ...@@ -59,11 +65,12 @@ object DialogHelper {
fun showDialog( fun showDialog(
dialogInstance: DialogInstance dialogInstance: DialogInstance
): AlertDialog { ): AlertDialog {
val message = getMessage(dialogInstance.activity, dialogInstance.message)
val alertDialog: AlertDialog = dialogInstance.activity.let { val alertDialog: AlertDialog = dialogInstance.activity.let {
val builder = AlertDialog.Builder(it) val builder = AlertDialog.Builder(it)
builder.apply { builder.apply {
setTitle(dialogInstance.title) setTitle(dialogInstance.title)
setMessage(dialogInstance.message) setView(message)
setCancelable(dialogInstance.cancelable ?: true) setCancelable(dialogInstance.cancelable ?: true)
setPositiveButton( setPositiveButton(
dialogInstance.positiveButton dialogInstance.positiveButton
...@@ -83,4 +90,22 @@ object DialogHelper { ...@@ -83,4 +90,22 @@ object DialogHelper {
alertDialog.show() alertDialog.show()
return alertDialog return alertDialog
} }
private fun getMessage(activity: Activity, message: String?): TextView {
// create spannable and add links
val spannable = SpannableString(message)
Linkify.addLinks(spannable, Linkify.WEB_URLS)
// get padding for all sides
val paddingStartEnd = activity.resources.getDimension(R.dimen.spacing_normal).toInt()
val paddingLeftRight = activity.resources.getDimension(R.dimen.spacing_small).toInt()
// create a textview with clickable links from the spannable
val textView = TextView(activity)
textView.text = spannable
textView.autoLinkMask = RESULT_OK
textView.movementMethod = LinkMovementMethod.getInstance()
textView.setPadding(paddingStartEnd, paddingLeftRight, paddingStartEnd, paddingLeftRight)
textView.setTextAppearance(R.style.body1)
textView.setLinkTextColor(activity.getColorStateList(R.color.button_primary))
return textView
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment