diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireFragment.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireFragment.kt index 517df0bc59..83841800c7 100644 --- a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireFragment.kt +++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireFragment.kt @@ -190,8 +190,8 @@ class QuestionnaireFragment : Fragment() { reviewModeEditButton.visibility = View.GONE if (displayMode.pagination.isPaginated) { - paginationPreviousButton.visibility = View.VISIBLE - paginationPreviousButton.isEnabled = displayMode.pagination.hasPreviousPage + paginationPreviousButton.visibility = + if (displayMode.pagination.hasPreviousPage) View.VISIBLE else View.GONE paginationNextButton.visibility = if (displayMode.pagination.hasNextPage) View.VISIBLE else View.GONE } else { diff --git a/datacapture/src/test/java/com/google/android/fhir/datacapture/QuestionnaireFragmentTest.kt b/datacapture/src/test/java/com/google/android/fhir/datacapture/QuestionnaireFragmentTest.kt index 532be81506..b699b29597 100644 --- a/datacapture/src/test/java/com/google/android/fhir/datacapture/QuestionnaireFragmentTest.kt +++ b/datacapture/src/test/java/com/google/android/fhir/datacapture/QuestionnaireFragmentTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2022-2023 Google LLC + * Copyright 2022-2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -139,6 +139,153 @@ class QuestionnaireFragmentTest { .isEqualTo(View.VISIBLE) } + @Test + fun `should hide next button on last page`() { + val questionnaireJson = + """{ + "resourceType": "Questionnaire", + "item": [ + { + "linkId": "1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "1.1", + "type": "display", + "text": "Item 1" + } + ] + }, + { + "linkId": "2", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "2.1", + "type": "display", + "text": "Item 2" + } + ] + } + ] +} +""" + val scenario = + launchFragmentInContainer( + bundleOf( + EXTRA_QUESTIONNAIRE_JSON_STRING to questionnaireJson, + ), + ) + scenario.moveToState(Lifecycle.State.RESUMED) + val view = scenario.withFragment { requireView() } + view.findViewById