From 61bde8181bc9129839c32ac0ef8b8e217df00649 Mon Sep 17 00:00:00 2001 From: Flava177 Date: Fri, 24 Jan 2025 16:46:08 +0000 Subject: [PATCH] Updated the toggle visibility of specify food sources and barcode at food sample testing. resolved a null pointer exception error with provide label at sixty day form --- .../app/backend/common/DatabaseHelper.java | 6 +++- .../sormas/app/backend/sixtyday/SixtyDay.java | 10 ++++++ .../backend/sixtyday/SixtyDayDtoHelper.java | 2 ++ .../caze/edit/CaseEditSixtyDayFragment.java | 31 +++++++++++++++++-- .../fragment_case_edit_sixtyday_layout.xml | 22 +++++++++++++ .../ui/sixtydayfollowup/SixtyDayForm.java | 16 +++++----- 6 files changed, 76 insertions(+), 11 deletions(-) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java index d488929a6f4..80275fce97b 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java @@ -233,7 +233,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { // public static final int DATABASE_VERSION = 307; //public static final int DATABASE_VERSION = 343; // public static final int DATABASE_VERSION = 410; - public static final int DATABASE_VERSION = 429; + public static final int DATABASE_VERSION = 431; private static DatabaseHelper instance = null; private final Context context; @@ -4513,6 +4513,10 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int + " UNIQUE (snapshot ASC, uuid ASC)" + ");" ); + + case 430: + currentVersion = 430; + getDao(Sample.class).executeRaw("ALTER TABLE sixtyday ADD barcode varchar(255)"); // ATTENTION: break should only be done after last version break; default: diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDay.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDay.java index 760e39329e3..c49e86354f5 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDay.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDay.java @@ -144,6 +144,8 @@ public class SixtyDay extends PseudonymizableAdo { private Date dateOfCompletionOfForm; @Column private String nameOfHealthFacility; + @Column + private String barcode; public String getPersonExamineCase() { return personExamineCase; @@ -490,6 +492,14 @@ public void setNameOfHealthFacility(String nameOfHealthFacility) { this.nameOfHealthFacility = nameOfHealthFacility; } + public String getBarcode() { + return barcode; + } + + public void setBarcode(String barcode) { + this.barcode = barcode; + } + @Transient public Set getParalysisWeaknessPresentSite() { if (paralysisWeaknessPresentSite == null) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDayDtoHelper.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDayDtoHelper.java index ec66f2a1e00..09b216488ee 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDayDtoHelper.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/sixtyday/SixtyDayDtoHelper.java @@ -93,6 +93,7 @@ public void fillInnerFromDto(SixtyDay target, SixtyDayDto source) { target.setFoodTel(source.getFoodTel()); target.setFoodAvailableTesting(source.getFoodAvailableTesting()); target.setLabTestConducted(source.getLabTestConducted()); + target.setBarcode(source.getBarcode()); } @Override @@ -134,6 +135,7 @@ public void fillInnerFromAdo(SixtyDayDto target, SixtyDay source) { target.setFoodTel(source.getFoodTel()); target.setFoodAvailableTesting(source.getFoodAvailableTesting()); target.setLabTestConducted(source.getLabTestConducted()); + target.setBarcode(source.getBarcode()); } @Override diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditSixtyDayFragment.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditSixtyDayFragment.java index 37c1e4b4eee..b2a5648e73c 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditSixtyDayFragment.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/edit/CaseEditSixtyDayFragment.java @@ -18,7 +18,13 @@ import static android.view.View.GONE; import static android.view.View.VISIBLE; +import android.content.Intent; import android.content.res.Resources; +import android.view.View; + +import androidx.annotation.Nullable; + +import com.google.android.gms.common.api.CommonStatusCodes; import java.util.List; @@ -37,6 +43,7 @@ import de.symeda.sormas.app.R; import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.sixtyday.SixtyDay; +import de.symeda.sormas.app.barcode.BarcodeActivity; import de.symeda.sormas.app.component.Item; import de.symeda.sormas.app.databinding.FragmentCaseEditSixtydayLayoutBinding; import de.symeda.sormas.app.util.DataUtils; @@ -107,6 +114,7 @@ public void onLayoutBinding(final FragmentCaseEditSixtydayLayoutBinding contentB contentBinding.sixtyDayDateOfManufacture.initializeDateField(getFragmentManager()); contentBinding.sixtyDayExpirationDate.initializeDateField(getFragmentManager()); contentBinding.sixtyDayPackagingType.initializeSpinner(packageTypeList); + contentBinding.sixtyDaySpecifySources.setVisibility(GONE); if (caze.getDisease() != null) { super.hideFieldsForDisease(caze.getDisease(), contentBinding.mainContent, FormType.SIXTY_DAY_FOLLOW_UP_EDIT); @@ -130,6 +138,9 @@ protected void onAfterLayoutBinding(FragmentCaseEditSixtydayLayoutBinding conten getContentBinding().sixtyDayPackagingTypeOther.setVisibility(VISIBLE); } + getContentBinding().buttonScanFieldSixtyDayId.setVisibility(GONE); + getContentBinding().sixtyDayHeadingProvide.setVisibility(GONE); + getContentBinding().sixtyDayFoodAvailableTesting.addValueChangedListener( field ->{ YesNoUnknown value = (YesNoUnknown) field.getValue(); if (value == YesNoUnknown.YES) { @@ -139,13 +150,29 @@ protected void onAfterLayoutBinding(FragmentCaseEditSixtydayLayoutBinding conten } }); - if (getContentBinding().sixtyDaySpecifySources.getValue() != null) { + /*if (getContentBinding().sixtyDaySpecifySources.getValue() != null) { getContentBinding().sixtyDaySpecifySources.setVisibility(VISIBLE); - } + }*/ + + contentBinding.buttonScanFieldSixtyDayId.setOnClickListener((View v) -> { + Intent intent = new Intent(getContext(), BarcodeActivity.class); + startActivityForResult(intent, BarcodeActivity.RC_BARCODE_CAPTURE); + }); } @Override public int getEditLayout() { return R.layout.fragment_case_edit_sixtyday_layout; } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + if (requestCode == BarcodeActivity.RC_BARCODE_CAPTURE) { + if (resultCode == CommonStatusCodes.SUCCESS && data != null) { + getContentBinding().sixtyDayBarcode.setValue(data.getStringExtra(BarcodeActivity.BARCODE_RESULT)); + } + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } } diff --git a/sormas-app/app/src/main/res/layout/fragment_case_edit_sixtyday_layout.xml b/sormas-app/app/src/main/res/layout/fragment_case_edit_sixtyday_layout.xml index 84d6ff2cfd8..cc4021d6798 100644 --- a/sormas-app/app/src/main/res/layout/fragment_case_edit_sixtyday_layout.xml +++ b/sormas-app/app/src/main/res/layout/fragment_case_edit_sixtyday_layout.xml @@ -289,6 +289,28 @@ + + + + + + + + { + Object rawValue = ((NullableOptionGroup)field.getProperty()).getNullableValue(); + YesNoUnknown value = (YesNoUnknown) rawValue; + + boolean provideTrue = value == YesNoUnknown.YES; + headingProvide.setVisible(provideTrue); + }); } FieldHelper.setVisibleWhen( @@ -214,14 +222,6 @@ protected void addFields() { packagingTypeOther.setVisible(isOther); }); - foodAvailable.addValueChangeListener(field -> { - Object rawValue = ((NullableOptionGroup)field.getProperty()).getNullableValue(); - YesNoUnknown value = (YesNoUnknown) rawValue; - - boolean provideTrue = value == YesNoUnknown.YES; - headingProvide.setVisible(provideTrue); - }); - } private Label createLabel(String text, String h4, String location) {