Skip to content

Commit f0f7260

Browse files
authored
Add ability to open a link (#2732)
* Add ability to open a link * Apply linking for hint * Apply linking for help text * Use kotlin .apply for question text * spotless
1 parent 5f7ce19 commit f0f7260

File tree

3 files changed

+29
-13
lines changed

3 files changed

+29
-13
lines changed

datacapture/src/main/java/com/google/android/fhir/datacapture/extensions/MoreHeaderViews.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package com.google.android.fhir.datacapture.extensions
1919
import android.content.Context
2020
import android.text.SpannableStringBuilder
2121
import android.text.Spanned
22+
import android.text.method.LinkMovementMethod
2223
import android.view.View.GONE
2324
import android.view.View.VISIBLE
2425
import android.widget.Button
@@ -82,7 +83,10 @@ fun initHelpViews(
8283
}
8384
}
8485
}
85-
helpTextView.updateTextAndVisibility(questionnaireItem.localizedHelpSpanned)
86+
helpTextView.apply {
87+
updateTextAndVisibility(questionnaireItem.localizedHelpSpanned)
88+
movementMethod = LinkMovementMethod.getInstance()
89+
}
8690
}
8791

8892
/**

datacapture/src/main/java/com/google/android/fhir/datacapture/views/GroupHeaderView.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.android.fhir.datacapture.views
1818

1919
import android.content.Context
20+
import android.text.method.LinkMovementMethod
2021
import android.util.AttributeSet
2122
import android.view.LayoutInflater
2223
import android.widget.LinearLayout
@@ -55,11 +56,17 @@ class GroupHeaderView(context: Context, attrs: AttributeSet?) : LinearLayout(con
5556
helpCardStateChangedCallback = questionnaireViewItem.helpCardStateChangedCallback,
5657
)
5758
prefix.updateTextAndVisibility(questionnaireViewItem.questionnaireItem.localizedPrefixSpanned)
58-
// CQF expression takes precedence over static question text
59-
question.updateTextAndVisibility(questionnaireViewItem.questionText)
60-
hint.updateTextAndVisibility(
61-
questionnaireViewItem.enabledDisplayItems.getLocalizedInstructionsSpanned(),
62-
)
59+
question.apply {
60+
// CQF expression takes precedence over static question text
61+
updateTextAndVisibility(questionnaireViewItem.questionText)
62+
movementMethod = LinkMovementMethod.getInstance()
63+
}
64+
hint.apply {
65+
updateTextAndVisibility(
66+
questionnaireViewItem.enabledDisplayItems.getLocalizedInstructionsSpanned(),
67+
)
68+
movementMethod = LinkMovementMethod.getInstance()
69+
}
6370
visibility = getHeaderViewVisibility(prefix, question, hint)
6471
applyCustomOrDefaultStyle(
6572
questionnaireViewItem.questionnaireItem,

datacapture/src/main/java/com/google/android/fhir/datacapture/views/HeaderView.kt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.android.fhir.datacapture.views
1818

1919
import android.content.Context
20+
import android.text.method.LinkMovementMethod
2021
import android.util.AttributeSet
2122
import android.view.LayoutInflater
2223
import android.widget.LinearLayout
@@ -55,13 +56,17 @@ class HeaderView(context: Context, attrs: AttributeSet?) : LinearLayout(context,
5556
helpCardStateChangedCallback = questionnaireViewItem.helpCardStateChangedCallback,
5657
)
5758
prefix.updateTextAndVisibility(questionnaireViewItem.questionnaireItem.localizedPrefixSpanned)
58-
// CQF expression takes precedence over static question text
59-
question.updateTextAndVisibility(
60-
appendAsteriskToQuestionText(question.context, questionnaireViewItem),
61-
)
62-
hint.updateTextAndVisibility(
63-
questionnaireViewItem.enabledDisplayItems.getLocalizedInstructionsSpanned(),
64-
)
59+
question.apply {
60+
// CQF expression takes precedence over static question text
61+
updateTextAndVisibility(appendAsteriskToQuestionText(question.context, questionnaireViewItem))
62+
movementMethod = LinkMovementMethod.getInstance()
63+
}
64+
hint.apply {
65+
updateTextAndVisibility(
66+
questionnaireViewItem.enabledDisplayItems.getLocalizedInstructionsSpanned(),
67+
)
68+
movementMethod = LinkMovementMethod.getInstance()
69+
}
6570
// Make the entire view GONE if there is nothing to show. This is to avoid an empty row in the
6671
// questionnaire.
6772
visibility = getHeaderViewVisibility(prefix, question, hint)

0 commit comments

Comments
 (0)