diff --git a/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/DataSetInitialActivity.java b/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/DataSetInitialActivity.java index ad155a487a..4766576183 100644 --- a/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/DataSetInitialActivity.java +++ b/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/DataSetInitialActivity.java @@ -49,6 +49,7 @@ import kotlin.Unit; import kotlin.jvm.functions.Function1; +import kotlin.jvm.functions.Function2; public class DataSetInitialActivity extends ActivityGlobalAbstract implements DataSetInitialContract.View { @@ -150,11 +151,17 @@ private void checkPeriodIsValidForOrgUnit(OrganisationUnit selectedOrgUnit) { public void showPeriodSelector(PeriodType periodType, Integer openFuturePeriods) { DataSetPeriodDialog dialog = new DataSetPeriodDialog(getDataSetUid(), periodType, selectedPeriod, openFuturePeriods); - dialog.setOnDateSelectedListener(date -> { + dialog.setOnDateSelectedListener((date, periodName) -> { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); selectedPeriod = calendar.getTime(); - binding.dataSetPeriodEditText.setText(periodUtils.getPeriodUIString(periodType, date, Locale.getDefault())); + String periodLabel = ""; + if (periodType == PeriodType.Daily) { + periodLabel = periodUtils.getPeriodUIString(periodType, date, Locale.getDefault()); + } else { + periodLabel = periodName; + } + binding.dataSetPeriodEditText.setText(periodLabel); checkCatOptionsAreValidForOrgUnit(selectedPeriod); checkActionVisivbility(); return Unit.INSTANCE; diff --git a/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/periods/ui/DataSetPeriodDialog.kt b/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/periods/ui/DataSetPeriodDialog.kt index b81ed3f079..5021062950 100644 --- a/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/periods/ui/DataSetPeriodDialog.kt +++ b/app/src/main/java/org/dhis2/usescases/datasets/datasetInitial/periods/ui/DataSetPeriodDialog.kt @@ -34,7 +34,7 @@ class DataSetPeriodDialog( private val openFuturePeriods: Int, ) : BottomSheetDialogFragment() { - lateinit var onDateSelectedListener: (Date) -> Unit + lateinit var onDateSelectedListener: (Date, String) -> Unit val viewModel by viewModel() @@ -84,7 +84,7 @@ class DataSetPeriodDialog( onCancel = { dismiss() }, onConfirm = { date -> date.selectedDateMillis?.let { - onDateSelectedListener(Date(it)) + onDateSelectedListener(Date(it), "") } dismiss() }, @@ -111,8 +111,8 @@ class DataSetPeriodDialog( PeriodSelectorContent( periods = periods, scrollState = scrollState, - ) { selectedDate -> - onDateSelectedListener(selectedDate) + ) { selectedDate, periodName -> + onDateSelectedListener(selectedDate, periodName) dismiss() } }, diff --git a/app/src/main/java/org/dhis2/usescases/events/ScheduledEventActivity.kt b/app/src/main/java/org/dhis2/usescases/events/ScheduledEventActivity.kt index fc6d4fab7b..fb0fa1a547 100644 --- a/app/src/main/java/org/dhis2/usescases/events/ScheduledEventActivity.kt +++ b/app/src/main/java/org/dhis2/usescases/events/ScheduledEventActivity.kt @@ -211,7 +211,7 @@ class ScheduledEventActivity : ActivityGlobalAbstract(), ScheduledEventContract. PeriodSelectorContent( periods = periods, scrollState = scrollState, - ) { selectedPeriod -> + ) { selectedPeriod, _ -> presenter.setDueDate(selectedPeriod) bottomSheetDialog.dismiss() } diff --git a/app/src/main/java/org/dhis2/usescases/eventsWithoutRegistration/eventDetails/ui/EventDetailsFragment.kt b/app/src/main/java/org/dhis2/usescases/eventsWithoutRegistration/eventDetails/ui/EventDetailsFragment.kt index a8eeca4b75..6ec5834c6e 100644 --- a/app/src/main/java/org/dhis2/usescases/eventsWithoutRegistration/eventDetails/ui/EventDetailsFragment.kt +++ b/app/src/main/java/org/dhis2/usescases/eventsWithoutRegistration/eventDetails/ui/EventDetailsFragment.kt @@ -336,7 +336,7 @@ class EventDetailsFragment : FragmentGlobalAbstract() { PeriodSelectorContent( periods = periods, scrollState = scrollState, - ) { selectedDate -> + ) { selectedDate, _ -> viewModel.setUpEventReportDate(selectedDate) bottomSheetDialog.dismiss() } diff --git a/app/src/main/java/org/dhis2/usescases/teiDashboard/dialogs/scheduling/SchedulingDialog.kt b/app/src/main/java/org/dhis2/usescases/teiDashboard/dialogs/scheduling/SchedulingDialog.kt index 1f99d40e99..f2de861836 100644 --- a/app/src/main/java/org/dhis2/usescases/teiDashboard/dialogs/scheduling/SchedulingDialog.kt +++ b/app/src/main/java/org/dhis2/usescases/teiDashboard/dialogs/scheduling/SchedulingDialog.kt @@ -203,7 +203,7 @@ class SchedulingDialog : BottomSheetDialogFragment() { PeriodSelectorContent( periods = periods, scrollState = scrollState, - ) { selectedDate -> + ) { selectedDate, _ -> viewModel.setUpEventReportDate(selectedDate) bottomSheetDialog.dismiss() } diff --git a/commons/src/main/java/org/dhis2/commons/periods/ui/PeriodSelector.kt b/commons/src/main/java/org/dhis2/commons/periods/ui/PeriodSelector.kt index 71b64a3c79..197aa1bd31 100644 --- a/commons/src/main/java/org/dhis2/commons/periods/ui/PeriodSelector.kt +++ b/commons/src/main/java/org/dhis2/commons/periods/ui/PeriodSelector.kt @@ -33,7 +33,7 @@ import java.util.Date fun PeriodSelectorContent( periods: LazyPagingItems, scrollState: LazyListState, - onPeriodSelected: (Date) -> Unit, + onPeriodSelected: (Date, String) -> Unit, ) { LazyColumn( modifier = Modifier.fillMaxWidth(), @@ -64,7 +64,9 @@ fun PeriodSelectorContent( selected = period?.selected == true, enabled = period?.enabled == true, ) { - period?.startDate?.let(onPeriodSelected) + period?.startDate?.let { + onPeriodSelected(it, period.name) + } } } } diff --git a/form/src/main/java/org/dhis2/form/ui/FormView.kt b/form/src/main/java/org/dhis2/form/ui/FormView.kt index 0d757492e7..3b9ba52cc5 100644 --- a/form/src/main/java/org/dhis2/form/ui/FormView.kt +++ b/form/src/main/java/org/dhis2/form/ui/FormView.kt @@ -472,7 +472,7 @@ class FormView : Fragment() { PeriodSelectorContent( periods = periods, scrollState = scrollState, - ) { selectedDate -> + ) { selectedDate, _ -> val dateString = DateUtils.oldUiDateFormat().format(selectedDate) intentHandler( FormIntent.OnSave(