Skip to content

Added report page, report detail page, fixed navigation, changed login to persist,updated waterformfragment #19

Merged
merged 6 commits into from
Apr 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 10 additions & 17 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,20 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.StormWaterUtilityAndroid">
<activity android:name=".Settings"></activity>

<activity android:name=".MainMenu" >

</activity>
<activity
android:name=".WaterWay.WaterWayNav"
>
</activity>
<activity android:name=".Construction.ConstructionNav">

</activity>
<activity android:name=".WaterwayReportDetail"></activity>
<activity android:name=".Settings" />
<activity android:name=".MainMenu"></activity>
<activity android:name=".WaterWay.WaterWayNav"></activity>
<activity android:name=".Construction.ConstructionNav"></activity>
<activity android:name=".Reset_password" />
<activity android:name=".SampleFordm" />
<activity android:name=".InspectionForm" />
<activity android:name=".Login" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<activity android:name=".Login">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SignUp" />
</application>
Expand Down
27 changes: 25 additions & 2 deletions app/src/main/java/com/sf/stormwaterutilityandroid/Login.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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) {
Expand All @@ -54,14 +62,17 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
};



setContentView(R.layout.activity_login);
inputEmail = findViewById(R.id.email);
inputPassword = findViewById(R.id.password);
progressBar = findViewById(R.id.progressBar3);
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();

Expand Down Expand Up @@ -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<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
System.out.println("Execute 174");
User.agid = task.getResult().toObject(User.class).getAgencyID();
System.out.println(User.agid);
}
});
}

}
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package com.sf.stormwaterutilityandroid;

import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

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<ReportAdapter.MyHolder>{
Expand All @@ -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
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/java/com/sf/stormwaterutilityandroid/User.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -34,6 +47,7 @@


public class WaterWayFormFragment extends Fragment {

//Gen Form Variable Initialization
String nameOfInspector = "";
String nameOfSite = "";
Expand Down Expand Up @@ -185,6 +199,7 @@ public void onClick(View v) {
Map<String, String> WaterWayStringFields = new HashMap<String, String>();

//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);
Expand Down Expand Up @@ -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<DocumentReference>() {
@Override
public void onComplete(@NonNull Task<DocumentReference> task) {
if (task.isSuccessful()) {
Toast.makeText(getContext(),"Successfully Uploaded",Toast.LENGTH_LONG).show();
}
}
});
}


Expand Down Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,16 @@ 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();

active = fragment1;
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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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<String,Boolean> boolFields = new HashMap<>();
Map<String, Double> doubleFields = new HashMap<>();
Map<String,String> stringFields = new HashMap<>();

public WaterWayReport(String h_date, String h_inspector_name, String h_site_name, Timestamp sortTimeStamp, GeoPoint location, Map<String, Boolean> boolFields, Map<String, Double> doubleFields, Map<String, String> stringFields) {
public WaterWayReport() {
}
public WaterWayReport(String h_date, String h_inspector_name, String h_site_name, Date sortTimeStamp, GeoPoint location, Map<String, Boolean> boolFields, Map<String, Double> doubleFields, Map<String, String> 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<String, Boolean> boolFields, Map<String, Double> doubleFields, Map<String, String> 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;
}
Expand All @@ -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<String, Boolean> getBoolFields() {
return boolFields;
}

public void setBoolFields(Map<String, Boolean> boolFields) {
this.boolFields = boolFields;
}

public Map<String, Double> getDoubleFields() {
return doubleFields;
}

public void setDoubleFields(Map<String, Double> doubleFields) {
this.doubleFields = doubleFields;
}

public Map<String, String> getStringFields() {
return stringFields;
}

public void setStringFields(Map<String, String> stringFields) {
this.stringFields = stringFields;
}
}
Loading