diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cf30795..7da3a10 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,27 +9,20 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.StormWaterUtilityAndroid">
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java b/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java
index 5603a34..095ca20 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java
@@ -22,6 +22,8 @@
import com.google.firebase.firestore.FirebaseFirestore;
import com.sf.stormwaterutilityandroid.WaterWay.WaterWayNav;
+import java.util.Map;
+
public class Login extends AppCompatActivity {
private EditText inputEmail, inputPassword;
@@ -37,13 +39,18 @@ protected void onCreate(Bundle savedInstanceState) {
//Get Firebase auth instance
auth = FirebaseAuth.getInstance();
+ if (auth.getCurrentUser() != null && auth.getCurrentUser().isEmailVerified()) {
+ fetchAgencyID();
+ startActivity(new Intent(Login.this, MainMenu.class));
+ finish();
+ }
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() != null && auth.getCurrentUser().isEmailVerified()) {
// fetchAgencyID();
- startActivity(new Intent(Login.this, WaterWayNav.class));
+ startActivity(new Intent(Login.this, MainMenu.class));
finish();
}
if (firebaseAuth.getCurrentUser() == null) {
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java b/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java
index 36c5d59..f442bbb 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java
@@ -1,5 +1,6 @@
package com.sf.stormwaterutilityandroid;
+import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -7,6 +8,7 @@
import androidx.recyclerview.widget.RecyclerView;
+import com.sf.stormwaterutilityandroid.WaterWay.WaterWay;
import com.sf.stormwaterutilityandroid.WaterWay.WaterWayReport;
import java.util.List;
@@ -34,6 +36,14 @@ public void onBindViewHolder(ReportAdapter.MyHolder holder, final int position)
holder.inspectorName.setText(data.getH_inspector_name());
holder.site.setText(data.getH_site_name());
holder.date.setText(data.getH_date());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(v.getContext(), WaterwayReportDetail.class);
+ intent.putExtra("report",data);
+ v.getContext().startActivity(int);
+ }
+ });
}
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java
index 69bd48c..2ac254b 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java
@@ -6,6 +6,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
@@ -14,10 +15,22 @@
import com.addisonelliott.segmentedbutton.SegmentedButton;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.Timestamp;
+import com.google.firebase.firestore.DocumentReference;
+import com.google.firebase.firestore.FieldValue;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.GeoPoint;
+import com.google.firebase.firestore.model.ServerTimestamps;
import com.sf.stormwaterutilityandroid.R;
import com.sf.stormwaterutilityandroid.SampleFordm;
+import com.sf.stormwaterutilityandroid.User;
+import java.sql.Time;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -253,6 +266,16 @@ public void onClick(View v) {
WaterWayStringFields.put("CS_comments", "");
WaterWayStringFields.put("CT_other_1", "");
WaterWayStringFields.put("CT_other_2", "");
+
+ WaterWayReport wp = new WaterWayReport(dateRow,nameOfInspector,nameOfSite, null,new GeoPoint(1.23,17.),WaterWayBoolFields,WaterWayDoubleFields,WaterWayStringFields);
+ FirebaseFirestore.getInstance().collection("Forms").document(User.agid).collection("Waterway").add(wp).addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ Toast.makeText(getContext(),"Successfully Uploaded",Toast.LENGTH_LONG).show();
+ }
+ }
+ });
}
@@ -327,7 +350,7 @@ private double calculatePTI() {
private double calculateWQI() {
double WQIScore = tempVal * 0.11 + turbidityVal * 0.09 + phVal * 0.12 + nitrateVal * 0.1 +
phosphateVal * 0.11 + oxygenVal * 0.18;
-
+ System.out.println("WQI"+WQIScore);
return WQIScore;
}
private void setupFormGen() {
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java
index 67cf70a..a6f01e4 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java
@@ -1,16 +1,21 @@
package com.sf.stormwaterutilityandroid.WaterWay;
import com.google.firebase.Timestamp;
+import com.google.firebase.firestore.FieldValue;
import com.google.firebase.firestore.GeoPoint;
+import com.google.firebase.firestore.ServerTimestamp;
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
-public class WaterWayReport {
+public class WaterWayReport implements Serializable {
String H_date;
String H_inspector_name;
String H_site_name;
- Timestamp SortTimeStamp;
+ @ServerTimestamp Date timeStamp;
GeoPoint location;
Map boolFields = new HashMap<>();
Map doubleFields = new HashMap<>();
@@ -18,22 +23,27 @@ public class WaterWayReport {
public WaterWayReport() {
}
-
- public WaterWayReport(String h_date, String h_inspector_name, String h_site_name, Timestamp sortTimeStamp, GeoPoint location, Map boolFields, Map doubleFields, Map stringFields) {
+ public WaterWayReport(String h_date, String h_inspector_name, String h_site_name, Date sortTimeStamp, GeoPoint location, Map boolFields, Map doubleFields, Map stringFields) {
H_date = h_date;
H_inspector_name = h_inspector_name;
H_site_name = h_site_name;
- SortTimeStamp = sortTimeStamp;
+ timeStamp = sortTimeStamp;
this.location = location;
this.boolFields = boolFields;
this.doubleFields = doubleFields;
this.stringFields = stringFields;
}
- public Timestamp getSortTimeStamp() {
- return SortTimeStamp;
+ public Date getTimeStamp() {
+ return timeStamp;
+ }
+
+ public void setTimeStamp(Date timeStamp) {
+ this.timeStamp = timeStamp;
}
+
+
public String getH_date() {
return H_date;
}
@@ -45,4 +55,48 @@ public String getH_inspector_name() {
public String getH_site_name() {
return H_site_name;
}
+
+ public void setH_date(String h_date) {
+ H_date = h_date;
+ }
+
+ public void setH_inspector_name(String h_inspector_name) {
+ H_inspector_name = h_inspector_name;
+ }
+
+ public void setH_site_name(String h_site_name) {
+ H_site_name = h_site_name;
+ }
+
+ public GeoPoint getLocation() {
+ return location;
+ }
+
+ public void setLocation(GeoPoint location) {
+ this.location = location;
+ }
+
+ public Map getBoolFields() {
+ return boolFields;
+ }
+
+ public void setBoolFields(Map boolFields) {
+ this.boolFields = boolFields;
+ }
+
+ public Map getDoubleFields() {
+ return doubleFields;
+ }
+
+ public void setDoubleFields(Map doubleFields) {
+ this.doubleFields = doubleFields;
+ }
+
+ public Map getStringFields() {
+ return stringFields;
+ }
+
+ public void setStringFields(Map stringFields) {
+ this.stringFields = stringFields;
+ }
}
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java
index 90cfad8..ed14a2b 100644
--- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java
@@ -76,7 +76,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
searchBar = view.findViewById(R.id.searchView);
recyclerView = view.findViewById(R.id.recyclerView);
- fetchData();
+ fetchData();
searchBar.addTextChangedListener(new TextWatcher() {
diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterwayReportDetail.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterwayReportDetail.java
new file mode 100644
index 0000000..1d6ce22
--- /dev/null
+++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterwayReportDetail.java
@@ -0,0 +1,124 @@
+package com.sf.stormwaterutilityandroid;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.firebase.firestore.DocumentSnapshot;
+import com.google.firebase.firestore.EventListener;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.FirebaseFirestoreException;
+import com.google.firebase.firestore.Query;
+import com.google.firebase.firestore.QuerySnapshot;
+import com.sf.stormwaterutilityandroid.WaterWay.WaterWayReport;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class WaterwayReportDetail extends AppCompatActivity {
+WaterWayReport wp;
+ArrayList s = new ArrayList<>();
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_waterway_report_detail);
+ wp = (WaterWayReport) getIntent().getSerializableExtra("report");
+ String[] labels =
+ {"Chemical (WQI): ",
+ "Biological (PTI): ",
+ "Habitat (QHEI): ",
+ "Name of Inspector: ",
+ "Name of Site: ",
+ "Date: ",
+ "Outfall #: ",
+ "Longitude: ",
+ "Latitude: ",
+ "Invert Elevation: ",
+ "Type: ",
+ "Pipe Size: ",
+ "Channel Bottom Width: ",
+ "Receiving Water: ",
+ "Presence Of Flow: ",
+ "Unusual Odor: ",
+ "Unusual Color: ",
+ "Polutants (nearby): ",
+ "Obstruction: ",
+ "Needs Mainenance: ",
+ "Screened Ok: ",
+ "Routine Evaluation: ",
+ "Complaint Investigation: ",
+ "Illicit Discharge Detected: ",
+ "No Illicit Discharge Detected: ",
+ "Further Action Needed: ",
+ "Temperature (C) Change: ",
+ "Turbidity (NTU): ",
+ "pH: ",
+ "Nitrate (mg/L): ",
+ "Total Phosphate (mg/L): ",
+ "Dissolved Oxygen (mg/L): ",
+ "E coli (Col/100ml): ",
+ "Other 1: ",
+ "Other 2: ",
+ "Intolerant: ",
+ "Moderately Tolerant: ",
+ "Fairly Tolerant: ",
+ "Very Tolerant: ",
+ "Substrate Size: ",
+ "Smothering: ",
+ "Silting: ",
+ "Rootwads: ",
+ "Overhanging Veg.: ",
+ "Oxbows/Black Water: ",
+ "Downed Trees/Logs: ",
+ "Shallows (in slow water): ",
+ "Water Plants: ",
+ "Deep Pools: ",
+ "Logs/Woody Debris: ",
+ "Boulders: ",
+ "Undercut Banks: ",
+ "Sinuosity: ",
+ "Natural: ",
+ "Riparian Width: ",
+ "Land Use: ",
+ "Bank Erosion: ",
+ "Stream Shading: ",
+ "Deepest Pool: ",
+ "Velocity: ",
+ "Riffle/Run Depth: ",
+ "Riffle/Run Substrate: ",
+ "Comments: "};
+ s.add( labels[0]+wp.getDoubleFields().get("WQI"));
+ s.add( labels[1]+wp.getDoubleFields().get("PTI"));
+ s.add( labels[2]+wp.getDoubleFields().get("QHEI"));
+ s.add( labels[3]+wp.getH_inspector_name());
+ s.add( labels[4]+wp.getH_site_name());
+ s.add( labels[5]+wp.getH_date());
+ s.add( labels[6]+wp.getDoubleFields().get("GOD_longitude"));
+ s.add(labels[7]+wp.getDoubleFields().get("GOD_latitude"));
+ s.add(labels[8]+wp.getDoubleFields().get("GOD_invert_elevation"));
+ s.add(labels[9] + wp.getDoubleFields().get("GOD_type"));
+ s.add(labels[10] + wp.getDoubleFields().get("GOD_pipe_size"));
+ s.add(labels[11] + wp.getDoubleFields().get("GOD_channel_bottom_width"));
+ s.add(labels[12] + wp.getDoubleFields().get("GOD_receiving_water"));
+ s.add(labels[13] + wp.getBoolFields().get("DWS_presence_of_flow"));
+ s.add(labels[14] + wp.getBoolFields().get("DWS_unusual_odor"));
+ s.add(labels[15] + wp.getBoolFields().get("DWS_unusual_color"));
+ s.add(labels[16] + wp.getBoolFields().get("DWS_polutants"));
+ s.add(labels[17] + wp.getBoolFields().get("DWS_polutants"));
+ s.add(labels[18] + wp.getBoolFields().get("DWS_obstruction"));
+ s.add(labels[19] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[20] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[21] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[22] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[23] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[24] + wp.getBoolFields().get("DWS_needs_maintenance"));
+ s.add(labels[25] + wp.getBoolFields().get("DWS_needs_maintenance"));
+
+
+
+ }
+}
diff --git a/app/src/main/res/layout/activity_waterway_report_detail.xml b/app/src/main/res/layout/activity_waterway_report_detail.xml
new file mode 100644
index 0000000..d20ceaa
--- /dev/null
+++ b/app/src/main/res/layout/activity_waterway_report_detail.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file