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 da639e4..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,12 +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()) { - startActivity(new Intent(Login.this, WaterWayNav.class)); + // fetchAgencyID(); + startActivity(new Intent(Login.this, MainMenu.class)); finish(); } if (firebaseAuth.getCurrentUser() == null) { @@ -54,6 +62,7 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { }; + setContentView(R.layout.activity_login); inputEmail = findViewById(R.id.email); inputPassword = findViewById(R.id.password); @@ -61,7 +70,9 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { btnSignup = findViewById(R.id.btn_signup); btnLogin = findViewById(R.id.btn_login); btnReset = findViewById(R.id.btn_reset_password); - + if (auth.getCurrentUser() != null) { + fetchAgencyID(); + } //Get Firebase auth instance auth = FirebaseAuth.getInstance(); @@ -166,4 +177,16 @@ public void onClick(DialogInterface dialog, int id) { } + private void fetchAgencyID() { + System.out.println("Execute 171"); + FirebaseFirestore.getInstance().collection("Users").document(auth.getUid()).get().addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + System.out.println("Execute 174"); + User.agid = task.getResult().toObject(User.class).getAgencyID(); + System.out.println(User.agid); + } + }); + } + } \ No newline at end of file diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java b/app/src/main/java/com/sf/stormwaterutilityandroid/ReportAdapter.java index 00091c8..b0cd8db 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,8 +8,10 @@ import androidx.recyclerview.widget.RecyclerView; +import com.sf.stormwaterutilityandroid.WaterWay.WaterWay; import com.sf.stormwaterutilityandroid.WaterWay.WaterWayReport; +import java.io.Serializable; import java.util.List; public class ReportAdapter extends RecyclerView.Adapter{ @@ -30,17 +33,28 @@ public ReportAdapter.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) public void onBindViewHolder(ReportAdapter.MyHolder holder, final int position) { - // final Report data = listdata.get(position); - // holder.inspectorName.setText(data.getInspectorName()); - // holder.site.setText(data.getSite()); - // holder.date.setText((CharSequence) data.getDate()); + final WaterWayReport data = listdata.get(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",new WaterWayReport(data.getH_date(),data.getH_inspector_name(),data.getH_site_name(),data.getTimeStamp(),data.getBoolFields(),data.getDoubleFields(),data.getStringFields())); + v.getContext().startActivity(intent); + } + }); } @Override public int getItemCount() { - return 0; + if (listdata == null) { + return 0; + } + return listdata.size(); } // @Override diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/User.java b/app/src/main/java/com/sf/stormwaterutilityandroid/User.java index efeb955..d7b420e 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/User.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/User.java @@ -1,7 +1,11 @@ package com.sf.stormwaterutilityandroid; -class User { +public class User { String name, email, uid,agencyID; + public static String agid; + + public User() { + } public User(String name, String email, String uid, String agencyID) { this.name = name; 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..975cd2c 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; @@ -34,6 +47,7 @@ public class WaterWayFormFragment extends Fragment { + //Gen Form Variable Initialization String nameOfInspector = ""; String nameOfSite = ""; @@ -185,6 +199,7 @@ public void onClick(View v) { Map WaterWayStringFields = new HashMap(); //Water Quality Index Data + WaterWayDoubleFields.put("CT_E_coli",coliVal); WaterWayDoubleFields.put("CT_temperature_change",tempVal ); WaterWayDoubleFields.put("CT_turbidity", turbidityVal); WaterWayDoubleFields.put("CT_pH", phVal); @@ -253,6 +268,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 +352,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/WaterWayNav.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java index 894f4a2..2aa475b 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java @@ -32,7 +32,8 @@ public class WaterWayNav extends AppCompatActivity { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { - case R.id.navigation_home: + case R.id.waterWayHome: + System.out.println("Print"); // mTextMessage.setText(R.string.title_home); fm.beginTransaction().hide(active).show(fragment1).commit(); @@ -40,6 +41,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { fm.popBackStack(); return true; case R.id.waterWayReports: + System.out.println("Print"); // mTextMessage.setText(R.string.title_dashboard); fm.beginTransaction().hide(active).show(fragment2).commit(); active = fragment2; 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 8141c5c..5100e1b 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReport.java @@ -1,36 +1,59 @@ 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<>(); Map stringFields = new HashMap<>(); - 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() { + } + 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 WaterWayReport(String h_date, String h_inspector_name, String h_site_name, Date sortTimeStamp, Map boolFields, Map doubleFields, Map stringFields) { + H_date = h_date; + H_inspector_name = h_inspector_name; + H_site_name = h_site_name; + timeStamp = sortTimeStamp; + + this.boolFields = boolFields; + this.doubleFields = doubleFields; + this.stringFields = stringFields; + } + + public Date getTimeStamp() { + return timeStamp; + } - public Timestamp getSortTimeStamp() { - return SortTimeStamp; + public void setTimeStamp(Date timeStamp) { + this.timeStamp = timeStamp; } + + public String getH_date() { return H_date; } @@ -42,4 +65,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 f8e00a7..ca422c7 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayReportFragment.java @@ -1,6 +1,8 @@ package com.sf.stormwaterutilityandroid.WaterWay; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuItem; @@ -22,6 +24,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.firestore.DocumentSnapshot; @@ -29,21 +33,29 @@ import com.google.firebase.firestore.FirebaseFirestore; import com.google.firebase.firestore.FirebaseFirestoreException; import com.google.firebase.firestore.Query; +import com.google.firebase.firestore.QueryDocumentSnapshot; import com.google.firebase.firestore.QuerySnapshot; import com.sf.stormwaterutilityandroid.ConstructionReportAdapter; import com.sf.stormwaterutilityandroid.R; import com.sf.stormwaterutilityandroid.ReportAdapter; +import com.sf.stormwaterutilityandroid.User; + +import org.w3c.dom.Document; import java.util.ArrayList; import java.util.List; public class WaterWayReportFragment extends Fragment { + public WaterWayReportFragment() { + } - private SearchView searchBar;//TODO: Make a search bar later? + private EditText searchBar;//TODO: Make a search bar later? private RecyclerView recyclerView; private Button btnSiteName, btnDate, btnInspectorName; + List reportList; + ReportAdapter reportAdapter; //TODO: Need vars for formdata //TODO: Need a var for tvReports: UITableView! @@ -55,8 +67,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_reports, container, false); - recyclerView = view.findViewById(R.id.recyclerView); - + // recyclerView = view.findViewById(R.id.recyclerView); + reportList = new ArrayList<>(); + reportAdapter = new ReportAdapter(reportList); btnSiteName = view.findViewById(R.id.btn_site_name); @@ -65,12 +78,39 @@ 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() { + + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (s.toString().length() == 0) { + fetchData(); + } + } + + @Override + public void afterTextChanged(Editable s) { + + } + + +}); btnSiteName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //startActivity(new Intent(Reports.this, Site_name.class)); + String txt = searchBar.getText().toString().trim(); + if (txt.isEmpty() || txt ==null) { + return; + } + fetchFilteredDate(txt,"H_site_name"); } }); @@ -78,14 +118,22 @@ public void onClick(View v) { btnDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - //startActivity(new Intent(Reports.this, Date.class)); + String txt = searchBar.getText().toString().trim(); + if (txt.isEmpty() || txt ==null) { + return; + } + fetchFilteredDate(txt,"H_date"); } }); btnInspectorName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - //startActivity(new Intent(Reports.this, Inspector_name.class)); + String txt = searchBar.getText().toString().trim(); + if (txt.isEmpty() || txt ==null) { + return; + } + fetchFilteredDate(txt,"H_inspector_name"); } }); @@ -94,21 +142,40 @@ public void onClick(View v) { } + + private void fetchFilteredDate(String txt, String searchField) { + FirebaseFirestore.getInstance().collection("Forms").document(User.agid).collection("Waterway").whereEqualTo(searchField,txt).get().addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + reportList.clear(); + if (task.isSuccessful() && task != null) { + for(QueryDocumentSnapshot document:task.getResult()) { + reportList.add(document.toObject(WaterWayReport.class)); + } + reportAdapter.notifyDataSetChanged(); + } + } + }); + + + } + public void fetchData() { - List reportList = new ArrayList<>(); - final ReportAdapter reportAdapter = new ReportAdapter(reportList); - FirebaseFirestore.getInstance().collection("AquaSourceForms").orderBy("SortTimeStamp", Query.Direction.DESCENDING).addSnapshotListener(new EventListener() { + + FirebaseFirestore.getInstance().collection("Forms").document(User.agid).collection("Waterway").orderBy("SortTimeStamp", Query.Direction.DESCENDING).addSnapshotListener(new EventListener() { @Override public void onEvent(@javax.annotation.Nullable QuerySnapshot queryDocumentSnapshots, @javax.annotation.Nullable FirebaseFirestoreException e) { if (e != null) { Log.i("Error", "No data"); } reportList.clear(); - + System.out.println("108:" +queryDocumentSnapshots.size()); for (DocumentSnapshot d:queryDocumentSnapshots){ //needs to be changed to waterway data type + reportList.add( d.toObject(WaterWayReport.class)); } + System.out.println(reportList.size()); reportAdapter.notifyDataSetChanged(); } 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..486c36f --- /dev/null +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterwayReportDetail.java @@ -0,0 +1,169 @@ +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 android.widget.ArrayAdapter; +import android.widget.ListView; + +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<>(); +ListView listView; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_waterway_report_detail); + wp = (WaterWayReport) getIntent().getSerializableExtra("report"); + listView = findViewById(R.id.listView); + 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_screened_OK")); + s.add(labels[21] + wp.getBoolFields().get("FC_routine_evaluation")); + s.add(labels[22] + wp.getBoolFields().get( "FC_complaint_investigation")); + s.add(labels[23] + wp.getBoolFields().get("FC_illicit_discharge_detected")); + s.add(labels[24] + wp.getBoolFields().get("FC_no_illicit_discharge_detected")); + s.add(labels[25] + wp.getBoolFields().get("FC_further_action_needed")); + s.add(labels[26] + wp.getDoubleFields().get("CT_temperature_change")); + s.add(labels[27] + wp.getDoubleFields().get("CT_turbidity")); + s.add(labels[28] + wp.getDoubleFields().get("CT_pH")); + s.add(labels[29] + wp.getDoubleFields().get("CT_nitrate")); + s.add(labels[30] + wp.getDoubleFields().get("CT_total_phosphate")); + s.add(labels[31] + wp.getDoubleFields().get("CT_dissolved_oxygen")); + s.add(labels[32] + wp.getDoubleFields().get("CT_E_coli")); + s.add(labels[33] + wp.getDoubleFields().get("FC_further_action_needed")); + s.add(labels[34]+wp.getStringFields().get("CT_other_1")); + s.add(labels[35]+wp.getStringFields().get("CT_other_2")); + s.add(labels[36]+ wp.getDoubleFields().get("BM_intolerant")); + s.add(labels[37] + wp.getStringFields().get("BM_moderately_tolerant")); + s.add(labels[38] + wp.getStringFields().get("BM_fairly_tolerant")); + s.add(labels[39] + wp.getStringFields().get("BM_very_tolerant")); + s.add(labels[40] + wp.getStringFields().get("QHEI_substrate_size")); + s.add(labels[41] + wp.getStringFields().get("QHEI_smothering")); + s.add(labels[42] + wp.getStringFields().get("QHEI_silting")); + s.add(labels[43] + wp.getStringFields().get("QHEI_rootwads")); + s.add(labels[44] + wp.getStringFields().get("QHEI_overhanging_veg")); + s.add(labels[45] + wp.getStringFields().get("QHEI_oxbowsblack_waters")); + s.add(labels[46] + wp.getStringFields().get("QHEI_downed_treeslogs")); + s.add(labels[47] + wp.getStringFields().get("QHEI_shallows")); + s.add(labels[48] + wp.getStringFields().get("QHEI_water_plants")); + s.add(labels[49] + wp.getStringFields().get("QHEI_deep_pools")); + s.add(labels[50] + wp.getStringFields().get("QHEI_logswoody_debris")); + s.add(labels[51] + wp.getStringFields().get("QHEI_boulders")); + s.add(labels[52] + wp.getStringFields().get("QHEI_undercut_banks")); + s.add(labels[53] + wp.getStringFields().get("QHEI_sinuosity")); + s.add(labels[54] + wp.getStringFields().get("QHEI_riparian_width")); + s.add(labels[55] + wp.getStringFields().get("QHEI_land_use")); + s.add(labels[56] + wp.getStringFields().get("QHEI_bank_erosion")); + s.add(labels[57] + wp.getStringFields().get("QHEI_stream_shading")); + s.add(labels[58] + wp.getStringFields().get("QHEI_deepest_pool")); + s.add(labels[59] + wp.getStringFields().get("QHEI_velocity")); + s.add(labels[60] + wp.getStringFields().get("QHEI_rifflerun_depth")); + s.add(labels[61] + wp.getStringFields().get("QHEI_rifflerun_substrate")); + s.add(labels[62] + wp.getStringFields().get("CS_comments")); + ArrayAdapter adapter = new ArrayAdapter(this, + android.R.layout.simple_list_item_1, android.R.id.text1, s); + + + // Assign adapter to ListView + listView.setAdapter(adapter); + + } +} diff --git a/app/src/main/res/layout/activity_reports.xml b/app/src/main/res/layout/activity_reports.xml index ea37db6..5e6472f 100644 --- a/app/src/main/res/layout/activity_reports.xml +++ b/app/src/main/res/layout/activity_reports.xml @@ -6,91 +6,64 @@ android:layout_height="match_parent"> - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent" + android:hint="Date,name,or site" /> - + app:layout_constraintTop_toBottomOf="@+id/btn_inspector_name" />