Skip to content

Commit 7394d4b

Browse files
authored
Merge pull request #899 from DevSeg/reversal_branch
- Campaign Issue Mitigation Fixes / Code Revert to Safe point #898, #897 & #896
2 parents 24ae2e4 + 0fd732f commit 7394d4b

File tree

9 files changed

+5132
-2058
lines changed

9 files changed

+5132
-2058
lines changed

sormas-app/app/google-services.json

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
{
22
"project_info": {
3-
"project_number": "931972404324",
4-
"project_id": "sormasapp-7d2db",
5-
"storage_bucket": "sormasapp-7d2db.firebasestorage.app"
3+
"project_number": "537643474131",
4+
"project_id": "apmis-cinoteck",
5+
"storage_bucket": "apmis-cinoteck.appspot.com"
66
},
77
"client": [
88
{
99
"client_info": {
10-
"mobilesdk_app_id": "1:931972404324:android:8d9008a02f6399abff7b71",
10+
"mobilesdk_app_id": "1:537643474131:android:d93b03e19c6c822152c826",
1111
"android_client_info": {
1212
"package_name": "de.symeda.sormas.app.apmis.debug"
1313
}
1414
},
15-
"oauth_client": [],
15+
"oauth_client": [
16+
{
17+
"client_id": "537643474131-t4pqtp5r8o6cbn0fsufhrk5fdudnj8uf.apps.googleusercontent.com",
18+
"client_type": 3
19+
}
20+
],
1621
"api_key": [
1722
{
18-
"current_key": "AIzaSyC8KXpilIy7xwFxgaKmkR7Ue-4LTNbPpOo"
23+
"current_key": "AIzaSyC93wvgLwBmG7zpyPENmhVurN05uXnnaGM"
1924
}
2025
],
2126
"services": {
2227
"appinvite_service": {
23-
"other_platform_oauth_client": []
28+
"other_platform_oauth_client": [
29+
{
30+
"client_id": "537643474131-t4pqtp5r8o6cbn0fsufhrk5fdudnj8uf.apps.googleusercontent.com",
31+
"client_type": 3
32+
}
33+
]
2434
}
2535
}
2636
}

sormas-app/app/src/main/java/de/symeda/sormas/app/campaign/CampaignFormDataFragmentUtils.java

Lines changed: 901 additions & 528 deletions
Large diffs are not rendered by default.

sormas-app/app/src/main/java/de/symeda/sormas/app/campaign/edit/CampaignFormDataEditFragment.java

Lines changed: 48 additions & 36 deletions
Large diffs are not rendered by default.

sormas-app/app/src/main/java/de/symeda/sormas/app/campaign/edit/CampaignFormDataNewFragment.java

Lines changed: 3098 additions & 1221 deletions
Large diffs are not rendered by default.

sormas-app/app/src/main/java/de/symeda/sormas/app/campaign/read/CampaignFormDataReadFragment.java

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,10 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
250250
// if (type == CampaignFormElementType.YES_NO) {
251251
// ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
252252
// } else {
253-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
253+
if(expressionValue != null){
254+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
255+
}
256+
// ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
254257
// }
255258
} catch (SpelEvaluationException e) {
256259
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
@@ -347,7 +350,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
347350
if (type == CampaignFormElementType.YES_NO) {
348351
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
349352
} else {
350-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
353+
if(expressionValue != null){
354+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
355+
}
351356
}
352357
} catch (SpelEvaluationException e) {
353358
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
@@ -438,8 +443,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
438443
if (type == CampaignFormElementType.YES_NO) {
439444
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
440445
} else {
441-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
442-
}
446+
if(expressionValue != null){
447+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
448+
} }
443449
} catch (SpelEvaluationException e) {
444450
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
445451
}
@@ -529,8 +535,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
529535
if (type == CampaignFormElementType.YES_NO) {
530536
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
531537
} else {
532-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
533-
}
538+
if(expressionValue != null){
539+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
540+
} }
534541
} catch (SpelEvaluationException e) {
535542
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
536543
}
@@ -620,8 +627,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
620627
if (type == CampaignFormElementType.YES_NO) {
621628
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
622629
} else {
623-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
624-
}
630+
if(expressionValue != null){
631+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
632+
} }
625633
} catch (SpelEvaluationException e) {
626634
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
627635
}
@@ -711,8 +719,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
711719
if (type == CampaignFormElementType.YES_NO) {
712720
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
713721
} else {
714-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
715-
}
722+
if(expressionValue != null){
723+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
724+
} }
716725
} catch (SpelEvaluationException e) {
717726
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
718727
}
@@ -802,8 +811,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
802811
if (type == CampaignFormElementType.YES_NO) {
803812
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
804813
} else {
805-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
806-
}
814+
if(expressionValue != null){
815+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
816+
} }
807817
} catch (SpelEvaluationException e) {
808818
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
809819
}
@@ -893,8 +903,9 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
893903
if (type == CampaignFormElementType.YES_NO) {
894904
ControlTextReadField.setValue((ControlTextReadField) dynamicField, (Boolean) expressionValue, null, null);
895905
} else {
896-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
897-
}
906+
if(expressionValue != null){
907+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, expressionValue.toString(), null, null, null);
908+
} }
898909
} catch (SpelEvaluationException e) {
899910
Log.e("Error evaluating expression: " + expressionString, e.getMessage());
900911
}
@@ -981,8 +992,12 @@ else if (type == CampaignFormElementType.CHECKBOXBASIC) {
981992

982993
//optionsValues.get(value)
983994
}else if ( type == CampaignFormElementType.NUMBER){
984-
ControlTextReadField.setValue((ControlTextReadField) dynamicField, value, null, null, null, false);
985-
}else if (type == CampaignFormElementType.RANGE){
995+
if (campaignFormElement.getId().equalsIgnoreCase("villagecode")){
996+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, value+"", null, null, null, false);
997+
}else {
998+
ControlTextReadField.setValue((ControlTextReadField) dynamicField, value, null, null, null, false);
999+
}
1000+
}else if (type == CampaignFormElementType.RANGE){
9861001
ControlTextReadField.setValue((ControlTextReadField) dynamicField, value, null, null, null, true);
9871002
}else{
9881003
ControlTextReadField.setValue((ControlTextReadField) dynamicField, value, null, null, null);

sormas-app/app/src/main/java/de/symeda/sormas/app/component/controls/ControlPropertyEditField.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ private void initializePropertyEditField(Context context, AttributeSet attrs) {
9898
try {
9999
hint = a.getString(R.styleable.ControlPropertyEditField_hint);
100100
required = a.getBoolean(R.styleable.ControlPropertyEditField_required, false);
101-
softRequired = a.getBoolean(R.styleable.ControlPropertyEditField_softRequired, false);//ControlPropertyEditField_softRequired, false);
101+
softRequired = a.getBoolean(R.styleable.ControlPropertyEditField_required, false);
102+
//ControlPropertyEditField_softRequired, false);
102103
} finally {
103104
a.recycle();
104105
}
@@ -144,6 +145,32 @@ public void enableWarningState(int messageResourceId) {
144145
enableWarningState(message);
145146
}
146147

148+
public boolean setErrorIfValueNegative() {
149+
if (!required || !isEnabled()) {
150+
return false;
151+
}
152+
153+
// 1. Check for empty or null value
154+
if (getValue() == null ||
155+
(this instanceof ControlTextEditField && ((String) getValue()).trim().isEmpty())) {
156+
enableErrorState(R.string.validation_error_required);
157+
return true;
158+
}
159+
try {
160+
double number = Double.parseDouble(getValue().toString());
161+
// Check for negative number
162+
if (number < 0) {
163+
enableErrorState(R.string.validation_error_negative);
164+
return true;
165+
}
166+
} catch (NumberFormatException e) {
167+
// Value is not a valid number (e.g. symbols, letters, etc.)
168+
enableErrorState(R.string.validation_error_info_pre_text);
169+
return true;
170+
}
171+
return false;
172+
}
173+
147174
public void enableWarningState(String message) {
148175
// Error has priority over warning
149176
if (hasError) {

0 commit comments

Comments
 (0)