From 365613be700e4edc181c2af70f08dcd5f1021d72 Mon Sep 17 00:00:00 2001
From: IbrahimSaeedPurdue
<54752803+IbrahimSaeedPurdue@users.noreply.github.com>
Date: Thu, 11 Feb 2021 00:51:01 -0500
Subject: [PATCH 01/15] feature/Basic inspection form UI
---
.idea/.name | 1 +
.idea/vcs.xml | 6 +
app/src/main/AndroidManifest.xml | 1 +
.../InspectionForm.java | 128 ++++++++++++++++++
.../home/HomeFragment.java | 10 ++
app/src/main/res/values/strings.xml | 2 +
6 files changed, 148 insertions(+)
create mode 100644 .idea/.name
create mode 100644 .idea/vcs.xml
create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..c6e7f40
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+StormWaterUtilityAndroid
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5d437cc..1f7f4e7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,7 @@
+
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
new file mode 100644
index 0000000..d39429e
--- /dev/null
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
@@ -0,0 +1,128 @@
+package com.sf.stormwaterutilityandroid;
+
+import android.os.Bundle;
+import android.widget.Button;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import me.riddhimanadib.formmaster.FormBuilder;
+import me.riddhimanadib.formmaster.model.BaseFormElement;
+import me.riddhimanadib.formmaster.model.FormElementPickerDate;
+import me.riddhimanadib.formmaster.model.FormElementPickerMulti;
+import me.riddhimanadib.formmaster.model.FormElementPickerSingle;
+import me.riddhimanadib.formmaster.model.FormElementSwitch;
+import me.riddhimanadib.formmaster.model.FormElementTextEmail;
+import me.riddhimanadib.formmaster.model.FormElementTextMultiLine;
+import me.riddhimanadib.formmaster.model.FormElementTextPhone;
+import me.riddhimanadib.formmaster.model.FormElementTextSingleLine;
+import me.riddhimanadib.formmaster.model.FormHeader;
+
+public class InspectionForm extends AppCompatActivity {
+ private FormBuilder formBuilder;
+ private RecyclerView recyclerView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_sample_fordm);
+ recyclerView = findViewById(R.id.recyclerView2);
+ setupForm();
+ }
+
+
+ private void setupForm() {
+ formBuilder = new FormBuilder(this, recyclerView);
+
+
+
+ FormElementTextSingleLine projectTextField = FormElementTextSingleLine.createInstance().setTitle("Project/Contact:").setHint("Enter text here");
+ FormElementTextSingleLine addressTextField = FormElementTextSingleLine.createInstance().setTitle("Address/Lot#(s):").setHint("Enter text here");
+ FormElementTextSingleLine inspectorTextField = FormElementTextSingleLine.createInstance().setTitle("Inspector:").setHint("Enter name here");
+ FormElementPickerDate dataInspectedDatePicker = FormElementPickerDate.createInstance().setTitle("Date Inspected:").setDateFormat("MMM dd, yyyy");
+
+
+ List typeOptions = new ArrayList<>(Arrays.asList(
+ "Routine Evaluation",
+ "Re-Inspection",
+ "Complaint Investigation",
+ "Entire Development",
+ "Individual Building Lot(s)"
+ ));
+ FormElementPickerSingle inspectionTypePickerSingle = FormElementPickerSingle.createInstance().setTitle("Inspection type:").setOptions(typeOptions).setPickerTitle("Pick inspection type");
+
+ FormElementSwitch projectRepPresentSwitch = FormElementSwitch.createInstance().setTitle("Project Representative Present?").setSwitchTexts("Yes", "No");
+
+ FormHeader stakeholdersHeader = FormHeader.createInstance("THE FOLLOWING INDIVIDUALS BECAME AWARE OF ANY ISSUES THOUGH DISCUSSION AND REVIEW OF FINDINGS ON THE DAY OF INSPECTION:");
+ FormElementTextSingleLine projectManagerTextField = FormElementTextSingleLine.createInstance().setTitle("Project Manager:").setHint("Enter name here");
+ FormElementTextSingleLine siteManagerTextField = FormElementTextSingleLine.createInstance().setTitle("Site Manager:").setHint("Enter name here");
+ FormElementTextSingleLine projectOwnerTextField = FormElementTextSingleLine.createInstance().setTitle("Project Owner").setHint("Enter name here");
+
+
+ FormHeader correctiveActionsHeader = FormHeader.createInstance("CORRECTIVE ACTIONS REQUIRED\n***REDER TO APPROVED STORM WATER POLLUTION PREVENTION PLAN (SWP3) FOR SPECIFICATIONS AND DETAILS ON ITEMS BELOW***");
+ List correctiveActionsOptions= new ArrayList<>(Arrays.asList(
+ "Post a laminated copy of completed 327IAC15-5 \"Rule 5\" NOI with permit number at a location visible to the public",
+ "Remove accumulated sediment from streets sidewalks and gutters (do not flush with water)",
+ "Install/maintain stable temporary construction entrances(s)", "Entire Development",
+ "Individual Building Lot(s)",
+ "Address silt fence issues which includes one or more of the following: Repair, install properly, Replace, Add (areas prone to sheet-flow erosion)",
+ "Install erosions and sediment control for individual building lot(s) as specified in the approved SWP3",
+ "Install check dam(s) according to specifications",
+ "Utilize appropriate construction sequence as specified in the approved SWP3",
+ "Remove sediment from one or more of the following: sediment traps, behind check dams, around storm drain inlets or/and other",
+ "Inform Contractors, subcontractors, material vendors, and others or erosion and sediment control requirements",
+ "Provide copy and self-monitoring inspection records to MS Coordinator within 48 hours",
+ "Acquire copy of Storm Water Pollution Prevention Plan and retain on project site for reference"
+ ));
+ FormElementPickerMulti correctiveActionsPickerMulti = FormElementPickerMulti.createInstance().setTitle("Corrective Actions").setOptions(correctiveActionsOptions).setPickerTitle("Pick corrective action");
+
+ FormElementTextMultiLine otherCorrectiveAction1TextField = FormElementTextMultiLine.createInstance().setTitle("Other 1:").setHint("Enter text here");
+ FormElementTextMultiLine otherCorrectiveAction2TextField = FormElementTextMultiLine.createInstance().setTitle("Other 2:").setHint("Enter text here");
+ FormElementTextMultiLine otherCorrectiveAction3TextField = FormElementTextMultiLine.createInstance().setTitle("Other 3:").setHint("Enter text here");
+
+
+ FormHeader enforcementActionHeader = FormHeader.createInstance("ENFORCEMENT ACTIONS");
+ List enforcementActionOptions = new ArrayList<>(Arrays.asList(
+ "Notice of Violation Issued",
+ "Stop Work Order Issued",
+ "Fine(s) Issued",
+ "Other"
+ ));
+ FormElementPickerSingle enforcementActionPickerSingle = FormElementPickerSingle.createInstance().setTitle("Inspection type:").setOptions(enforcementActionOptions).setPickerTitle("Pick inspection type");
+
+ FormElementTextMultiLine evidenceTextField = FormElementTextMultiLine.createInstance().setTitle("Evidence of off-site sediment/pollutants.\nHere is a description of type and location:").setHint("Enter text here");
+
+ List formItems = new ArrayList<>();
+
+ formItems.add(projectTextField);
+ formItems.add(addressTextField);
+ formItems.add(inspectorTextField);
+ formItems.add(dataInspectedDatePicker);
+
+ formItems.add(inspectionTypePickerSingle);
+ formItems.add(projectRepPresentSwitch);
+
+ formItems.add(stakeholdersHeader);
+ formItems.add(projectManagerTextField);
+ formItems.add(siteManagerTextField);
+ formItems.add(projectOwnerTextField);
+
+ formItems.add(correctiveActionsHeader);
+ formItems.add(correctiveActionsPickerMulti);
+ formItems.add(otherCorrectiveAction1TextField);
+ formItems.add(otherCorrectiveAction2TextField);
+ formItems.add(otherCorrectiveAction3TextField);
+
+ formItems.add(enforcementActionHeader);
+ formItems.add(enforcementActionPickerSingle);
+
+ formItems.add(evidenceTextField);
+
+ formBuilder.addFormElements(formItems);
+
+ }
+}
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/home/HomeFragment.java b/app/src/main/java/com/sf/stormwaterutilityandroid/home/HomeFragment.java
index 7809a22..75b11d9 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/home/HomeFragment.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/home/HomeFragment.java
@@ -10,6 +10,7 @@
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
+import com.sf.stormwaterutilityandroid.InspectionForm;
import com.sf.stormwaterutilityandroid.R;
import com.sf.stormwaterutilityandroid.SampleFordm;
@@ -31,6 +32,15 @@ public void onClick(View view) {
}
});
+ b1 = root.findViewById(R.id.button2);
+ b1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ startActivity(new Intent(getContext(), InspectionForm.class));
+ }
+ });
+
+
//CHeck To5a.03 project for dealing saved instance state
/*
if (savedInstanceState != null) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 85a4fdb..381a669 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -46,4 +46,6 @@
Registered Successfully! An email has been sent to verify your email; this must be done before logging in.
Sign in
+
+
\ No newline at end of file
From 4172104d7214222225be38b84eb11abfcb5feca7 Mon Sep 17 00:00:00 2001
From: IbrahimSaeedPurdue
<54752803+IbrahimSaeedPurdue@users.noreply.github.com>
Date: Thu, 11 Feb 2021 16:24:02 -0500
Subject: [PATCH 02/15] feature/added submit button listener
---
.../stormwaterutilityandroid/InspectionForm.java | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
index d39429e..0098a52 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
@@ -1,6 +1,7 @@
package com.sf.stormwaterutilityandroid;
import android.os.Bundle;
+import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
@@ -31,6 +32,7 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sample_fordm);
recyclerView = findViewById(R.id.recyclerView2);
+
setupForm();
}
@@ -38,8 +40,6 @@ protected void onCreate(Bundle savedInstanceState) {
private void setupForm() {
formBuilder = new FormBuilder(this, recyclerView);
-
-
FormElementTextSingleLine projectTextField = FormElementTextSingleLine.createInstance().setTitle("Project/Contact:").setHint("Enter text here");
FormElementTextSingleLine addressTextField = FormElementTextSingleLine.createInstance().setTitle("Address/Lot#(s):").setHint("Enter text here");
FormElementTextSingleLine inspectorTextField = FormElementTextSingleLine.createInstance().setTitle("Inspector:").setHint("Enter name here");
@@ -96,6 +96,15 @@ private void setupForm() {
FormElementTextMultiLine evidenceTextField = FormElementTextMultiLine.createInstance().setTitle("Evidence of off-site sediment/pollutants.\nHere is a description of type and location:").setHint("Enter text here");
+ Button submitButton = new Button(getApplicationContext());
+ submitButton.setText("Submit");
+ submitButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ }
+ });
+
List formItems = new ArrayList<>();
formItems.add(projectTextField);
@@ -122,7 +131,8 @@ private void setupForm() {
formItems.add(evidenceTextField);
- formBuilder.addFormElements(formItems);
+ formBuilder.addFormElements(formItems);
+ recyclerView.addView(submitButton);
}
}
From 042f8d49b2b873f8a2dad67a0930a996d8f2057c Mon Sep 17 00:00:00 2001
From: IbrahimSaeedPurdue
<54752803+IbrahimSaeedPurdue@users.noreply.github.com>
Date: Wed, 3 Mar 2021 15:59:14 -0500
Subject: [PATCH 03/15] feature/created constructionFormData class and
populated it in actionListener
---
.../InspectionForm.java | 160 +++++++++++++-----
1 file changed, 113 insertions(+), 47 deletions(-)
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
index d4b0d62..975ca71 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java
@@ -9,6 +9,7 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import me.riddhimanadib.formmaster.FormBuilder;
@@ -17,9 +18,7 @@
import me.riddhimanadib.formmaster.model.FormElementPickerMulti;
import me.riddhimanadib.formmaster.model.FormElementPickerSingle;
import me.riddhimanadib.formmaster.model.FormElementSwitch;
-import me.riddhimanadib.formmaster.model.FormElementTextEmail;
import me.riddhimanadib.formmaster.model.FormElementTextMultiLine;
-import me.riddhimanadib.formmaster.model.FormElementTextPhone;
import me.riddhimanadib.formmaster.model.FormElementTextSingleLine;
import me.riddhimanadib.formmaster.model.FormHeader;
@@ -105,49 +104,6 @@ private void setupForm() {
FormElementTextMultiLine evidenceTextField = FormElementTextMultiLine.createInstance().setTitle("Evidence of off-site sediment/pollutants.\nHere is a description of type and location:").setHint("Enter text here");
- submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- System.out.println("HELLO");
- String projectContact = projectTextField.getValue();
- String address = addressTextField.getValue();
- String inspector = inspectorTextField.getValue();
- String dateInspected = dateInspectedDatePicker.getValue();
-
- boolean projectRepPresent = getSwitchBool(projectRepPresentSwitch.getValue());
-
- String projectManager = projectManagerTextField.getValue();
- String siteManager = siteManagerTextField.getValue();
- String projectOwner = projectOwnerTextField.getValue();
-
- boolean correctiveAction1 = getSwitchBool(correctiveAction1Switch.getValue());
- boolean correctiveAction2 = getSwitchBool(correctiveAction2Switch.getValue());
- boolean correctiveAction3 = getSwitchBool(correctiveAction3Switch.getValue());
- boolean correctiveAction4 = getSwitchBool(correctiveAction4Switch.getValue());
-
- List correctiveAction5 = correctiveAction5Multi.getOptionsSelected();
-
- boolean correctiveAction6 = getSwitchBool(correctiveAction6Switch.getValue());
- boolean correctiveAction7 = getSwitchBool(correctiveAction6Switch.getValue());
- boolean correctiveAction8 = getSwitchBool(correctiveAction8Switch.getValue());
- boolean correctiveAction9 = getSwitchBool(correctiveAction9Switch.getValue());
-
- String correctiveAction10 = correctiveAction10Multi.getValue();
-
- String otherCorrectiveAction1 = otherCorrectiveAction1TextField.getValue();
- String otherCorrectiveAction2 = otherCorrectiveAction2TextField.getValue();
- String otherCorrectiveAction3 = otherCorrectiveAction3TextField.getValue();
-
- List enforcementAction = enforcementActionPickerSingle.getOptionsSelected();
-
- String evidence = evidenceTextField.getValue();
-
-
- }
- });
-
-
-
List formItems = new ArrayList<>();
formItems.add(projectTextField);
@@ -192,13 +148,123 @@ public void onClick(View view) {
formItems.add(evidenceTextField);
-
+ // populate formBuilder with items
formBuilder.addFormElements(formItems);
+ // onSubmit
+ submitButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String contact = projectTextField.getValue();
+ String location = addressTextField.getValue();
+ String inspector = inspectorTextField.getValue();
+ String date = dateInspectedDatePicker.getValue();
+
+ ArrayList answersList = new ArrayList<>(20);
+
+ boolean projectRepPresent = getSwitchBool(projectRepPresentSwitch.getValue());
+ answersList.add(projectRepPresent + "");
+
+ String projectManager = projectManagerTextField.getValue();
+ String siteManager = siteManagerTextField.getValue();
+ String projectOwner = projectOwnerTextField.getValue();
+ answersList.add(projectManager);
+ answersList.add(siteManager);
+ answersList.add(projectOwner);
+
+ boolean correctiveAction1 = getSwitchBool(correctiveAction1Switch.getValue());
+ boolean correctiveAction2 = getSwitchBool(correctiveAction2Switch.getValue());
+ boolean correctiveAction3 = getSwitchBool(correctiveAction3Switch.getValue());
+ boolean correctiveAction4 = getSwitchBool(correctiveAction4Switch.getValue());
+ answersList.add(correctiveAction1 + "");
+ answersList.add(correctiveAction2 + "");
+ answersList.add(correctiveAction3 + "");
+ answersList.add(correctiveAction4 + "");
+
+ List correctiveAction5 = correctiveAction5Multi.getOptionsSelected();
+ answersList.addAll(correctiveAction5);
+
+ boolean correctiveAction6 = getSwitchBool(correctiveAction6Switch.getValue());
+ boolean correctiveAction7 = getSwitchBool(correctiveAction6Switch.getValue());
+ boolean correctiveAction8 = getSwitchBool(correctiveAction8Switch.getValue());
+ boolean correctiveAction9 = getSwitchBool(correctiveAction9Switch.getValue());
+ answersList.add(correctiveAction6 + "");
+ answersList.add(correctiveAction7 + "");
+ answersList.add(correctiveAction8 + "");
+ answersList.add(correctiveAction9 + "");
+
+ String correctiveAction10 = correctiveAction10Multi.getValue();
+ answersList.add(correctiveAction10);
+
+ String otherCorrectiveAction1 = otherCorrectiveAction1TextField.getValue();
+ String otherCorrectiveAction2 = otherCorrectiveAction2TextField.getValue();
+ String otherCorrectiveAction3 = otherCorrectiveAction3TextField.getValue();
+ answersList.add(otherCorrectiveAction1);
+ answersList.add(otherCorrectiveAction2);
+ answersList.add(otherCorrectiveAction3);
+
+
+ List enforcementAction = enforcementActionPickerSingle.getOptionsSelected();
+ answersList.addAll(enforcementAction);
+
+ String[] imgLink = new String[]{evidenceTextField.getValue()};
+
+
+ String[] answers = answersList.toArray(new String[0]);
+ // System.out.println(Arrays.toString(answers));
+ ConstructionFormData constructionFormData = new ConstructionFormData(contact, date, inspector, location, answers, imgLink);
+ System.out.println(constructionFormData);
+ }
+ });
+
+
+
+
}
- public boolean getSwitchBool(String value) {
+ private boolean getSwitchBool(String value) {
if (value.equals("yes")) return true;
return false;
}
+
+ private class ConstructionFormData {
+ String contact = "";
+ String date = "";
+ String inspector = "";
+ String location = "";
+ String[] answers;
+
+ // SortTimeStamp set in constructor
+ Date SortTimeStamp;
+
+ String[] imgLink;
+
+ public ConstructionFormData(String contact, String date, String inspector,
+ String location, String[] answers, String[] imgLink) {
+ this.contact = contact;
+ this.date = date;
+ this.inspector = inspector;
+ this.location = location;
+ this.answers = answers;
+
+ this.SortTimeStamp = new Date(System.currentTimeMillis());
+
+ this.answers = answers;
+ }
+
+
+
+ @Override
+ public String toString() {
+ return "ConstructionFormData{" +
+ "contact=" + contact + '\n' +
+ ", date=" + date + '\n' +
+ ", inspector=" + inspector + '\n' +
+ ", location=" + location + '\n' +
+ ", answers=" + Arrays.toString(answers) + "\n" +
+ ", SortTimeStamp=" + SortTimeStamp + "\n" +
+ ", imgLink=" + Arrays.toString(imgLink) + "\n" +
+ '}';
+ }
+ }
}
From 65ccb2237692820f033a02cf40baf846590a214f Mon Sep 17 00:00:00 2001
From: evanwilliams
Date: Thu, 4 Mar 2021 11:05:54 -0500
Subject: [PATCH 04/15] new forms
---
.idea/gradle.xml | 1 +
.idea/vcs.xml | 2 +-
.../DryWeatherScreening.java | 84 ++++++++++++++
.../stormwaterutilityandroid/ReportPage.java | 103 ++++++++++++++++++
.../WaterWay/ChemicalTesting.java | 98 +++++++++++++++++
build.gradle | 2 +-
6 files changed, 288 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/DryWeatherScreening.java
create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/ReportPage.java
create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/ChemicalTesting.java
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index aafa78e..c58b012 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -5,6 +5,7 @@