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 @@