diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index c6e7f40..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -StormWaterUtilityAndroid \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b5108f..cf30795 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,11 +12,7 @@ - - - - - + + + + + + + diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/AgencyID.java b/app/src/main/java/com/sf/stormwaterutilityandroid/AgencyID.java new file mode 100644 index 0000000..c904463 --- /dev/null +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/AgencyID.java @@ -0,0 +1,13 @@ +package com.sf.stormwaterutilityandroid; + +public class AgencyID { + private String agencyID; + + public AgencyID(String agencyID) { + this.agencyID = agencyID; + } + + public String getAgencyID() { + return agencyID; + } +} diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java b/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java index e2fc838..3461202 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/Login.java @@ -18,6 +18,8 @@ import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.firestore.DocumentSnapshot; +import com.google.firebase.firestore.FirebaseFirestore; import com.sf.stormwaterutilityandroid.WaterWay.WaterWayNav; public class Login extends AppCompatActivity { @@ -55,7 +57,7 @@ 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.progressBar); + progressBar = findViewById(R.id.progressBar3); btnSignup = findViewById(R.id.btn_signup); btnLogin = findViewById(R.id.btn_login); btnReset = findViewById(R.id.btn_reset_password); @@ -80,6 +82,7 @@ public void onClick(View v) { btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + String email = inputEmail.getText().toString(); final String password = inputPassword.getText().toString(); @@ -113,11 +116,23 @@ public void onComplete(@NonNull Task task) { } } else { if (auth.getCurrentUser().isEmailVerified()) { - Intent intent = new Intent(Login.this, WaterWayNav.class); + FirebaseFirestore.getInstance().collection("Users").document(auth.getUid()).get().addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + if (task.getResult().exists()) { + String agencyID = task.getResult().get("agencyID").toString(); + AgencyID id = new AgencyID(agencyID); + } + } + } + }); + Intent intent = new Intent(Login.this, MainMenu.class); startActivity(intent); progressBar.setVisibility(View.INVISIBLE); finish(); } else { + progressBar.setVisibility(View.INVISIBLE); AlertDialog.Builder builder; builder = new AlertDialog.Builder(Login.this); //builder.setIcon(R.drawable.open_browser); diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/MainMenu.java b/app/src/main/java/com/sf/stormwaterutilityandroid/MainMenu.java index 6dd4920..75475d3 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/MainMenu.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/MainMenu.java @@ -1,6 +1,7 @@ package com.sf.stormwaterutilityandroid; import androidx.appcompat.app.AppCompatActivity; +import androidx.cardview.widget.CardView; import android.content.Intent; import android.os.Bundle; @@ -12,15 +13,40 @@ public class MainMenu extends AppCompatActivity { Button launchWWF,launchCF, launchSettings; +CardView cvWaterWay, cvConstruction, cvSettings; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main_menu); - launchWWF = findViewById(R.id.wwf); - launchCF = findViewById(R.id.cf); - launchSettings = findViewById(R.id.settings); - launchSettings.setOnClickListener(new View.OnClickListener() { + setContentView(R.layout.activity_menu2); + cvWaterWay = findViewById(R.id.cvWaterWay); + cvConstruction = findViewById(R.id.cvConstructionForm); + cvSettings = findViewById(R.id.cvSettings); + cvWaterWay.setOnClickListener(new View.OnClickListener() { @Override + public void onClick(View v) { + Intent intent = new Intent(MainMenu.this, WaterWayNav.class); + startActivity(intent); + } + }); + cvConstruction.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MainMenu.this, ConstructionNav.class); + startActivity(intent); + } + }); + cvSettings.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MainMenu.this, Settings.class); + startActivity(intent); + } + }); + // launchWWF = findViewById(R.id.wwf); + // launchCF = findViewById(R.id.cf); + // launchSettings = findViewById(R.id.settings); + // launchSettings.setOnClickListener(new View.OnClickListener() { + /* @Override public void onClick(View v) { Intent intent = new Intent(MainMenu.this, Settings.class); startActivity(intent); @@ -44,5 +70,6 @@ public void onClick(View v) { } }); + */ } } \ No newline at end of file diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/SignUp.java b/app/src/main/java/com/sf/stormwaterutilityandroid/SignUp.java index e0eaa03..48b04ae 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/SignUp.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/SignUp.java @@ -1,5 +1,7 @@ package com.sf.stormwaterutilityandroid; +import android.content.DialogInterface; +import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; @@ -9,6 +11,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.tasks.OnCompleteListener; @@ -34,16 +37,14 @@ protected void onCreate(Bundle savedInstanceState) { //Get Firebase auth instance auth = FirebaseAuth.getInstance(); - btnSignIn = findViewById(R.id.sign_in_button); - btnSignUp = findViewById(R.id.sign_up_button); + btnSignUp = findViewById(R.id.signUp); + inputEmail = findViewById(R.id.email); inputPassword = findViewById(R.id.password); progressBar = findViewById(R.id.progressBar); btnResetPassword = findViewById(R.id.btn_reset_password); - inputGrade = findViewById(R.id.grade); inputName = findViewById(R.id.name); - inputID = findViewById(R.id.studentID); - inputHR = findViewById(R.id.homeroom); + progressBar = findViewById(R.id.progressBar2); /* btnResetPassword.setOnClickListener(new View.OnClickListener() { @Override @@ -52,12 +53,6 @@ public void onClick(View v) { } }); */ - btnSignIn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); btnSignUp.setOnClickListener(new View.OnClickListener() { @Override @@ -66,14 +61,13 @@ public void onClick(View v) { final String email = inputEmail.getText().toString().trim(); final String password = inputPassword.getText().toString().trim(); final String name = inputName.getText().toString().trim(); - final String grade = inputGrade.getText().toString().trim(); - final String studentID = inputID.getText().toString().trim(); - final String homeroom = inputHR.getText().toString().trim(); + if (TextUtils.isEmpty(email)) { Toast.makeText(getApplicationContext(), "Enter a email address!", Toast.LENGTH_SHORT).show(); return; } - + int index = email.indexOf("@"); + String agencyID = email.substring(index + 1); if (TextUtils.isEmpty(password)) { Toast.makeText(getApplicationContext(), "Enter a password!", Toast.LENGTH_SHORT).show(); return; @@ -83,12 +77,21 @@ public void onClick(View v) { Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show(); return; } - if (TextUtils.isEmpty(homeroom)) { - Toast.makeText(getApplicationContext(), "Enter a homeroom!", Toast.LENGTH_SHORT).show(); - return; - } - if (TextUtils.isEmpty(studentID)) { - Toast.makeText(getApplicationContext(), "Enter a StudentID!", Toast.LENGTH_SHORT).show(); + + if (!email.contains("in.gov") && !email.contains("purdue.edu")) { + //invalid email + AlertDialog.Builder builder; + builder = new AlertDialog.Builder(SignUp.this); + builder.setTitle("Incorrect Email"); + builder.setMessage("You are not allowed to create an email with your current domain"); + builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + + builder.setCancelable(true); + builder.show(); return; } @@ -109,8 +112,10 @@ public void onComplete(@NonNull Task task) { } else { final String create_uid = FirebaseAuth.getInstance().getUid(); final FirebaseUser user2 = auth.getCurrentUser(); - user2.sendEmailVerification(); - User user = new User(name,email,create_uid); + // user2.sendEmailVerification(); + + System.out.println(agencyID); + User user = new User(name, email, create_uid, agencyID); FirebaseFirestore.getInstance().collection("Users") .document(create_uid) @@ -122,10 +127,23 @@ public void onSuccess(Void aVoid) { user2.sendEmailVerification(); - // progressBar.setVisibility(View.GONE); // Toast.makeText(SignupActivity.this, getString(R.string.registration_success), Toast.LENGTH_LONG).show(); - // startActivity(new Intent(SignupActivity.this, LoginActivity.class)); + AlertDialog.Builder builder; + builder = new AlertDialog.Builder(SignUp.this); + builder.setTitle("Account created"); + builder.setMessage("Your account has successfully been created. An email has been sent, so you can verify your email. You must verify your email before logging in."); + builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + startActivity(new Intent(SignUp.this, Login.class)); + dialog.dismiss(); + } + }); + + builder.setCancelable(true); + builder.show(); + + // finish(); } @@ -149,7 +167,6 @@ public void onFailure(@NonNull Exception e) { } - @Override protected void onResume() { super.onResume(); diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/User.java b/app/src/main/java/com/sf/stormwaterutilityandroid/User.java index 5671a58..efeb955 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/User.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/User.java @@ -1,12 +1,13 @@ package com.sf.stormwaterutilityandroid; class User { - String name, email, uid; + String name, email, uid,agencyID; - public User(String name, String email, String uid) { + public User(String name, String email, String uid, String agencyID) { this.name = name; this.email = email; this.uid = uid; + this.agencyID = agencyID; } public String getName() { @@ -32,4 +33,12 @@ public String getUid() { public void setUid(String uid) { this.uid = uid; } + + public String getAgencyID() { + return agencyID; + } + + public void setAgencyID(String agencyID) { + this.agencyID = agencyID; + } } diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WQI.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WQI.java index 72d7601..30c36f5 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WQI.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WQI.java @@ -31,5 +31,5 @@ public static double getWQI(double tempChange, double turbidity, double pH, doub } -} + diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png new file mode 100644 index 0000000..62c9edb Binary files /dev/null and b/app/src/main/res/drawable/construction.png differ diff --git a/app/src/main/res/drawable/construction2.png b/app/src/main/res/drawable/construction2.png new file mode 100644 index 0000000..6f9402b Binary files /dev/null and b/app/src/main/res/drawable/construction2.png differ diff --git a/app/src/main/res/drawable/settings.png b/app/src/main/res/drawable/settings.png new file mode 100644 index 0000000..e9500e0 Binary files /dev/null and b/app/src/main/res/drawable/settings.png differ diff --git a/app/src/main/res/drawable/settings2.png b/app/src/main/res/drawable/settings2.png new file mode 100644 index 0000000..5b99d80 Binary files /dev/null and b/app/src/main/res/drawable/settings2.png differ diff --git a/app/src/main/res/drawable/settings3.png b/app/src/main/res/drawable/settings3.png new file mode 100644 index 0000000..ddb40d4 Binary files /dev/null and b/app/src/main/res/drawable/settings3.png differ diff --git a/app/src/main/res/drawable/water.png b/app/src/main/res/drawable/water.png new file mode 100644 index 0000000..9280884 Binary files /dev/null and b/app/src/main/res/drawable/water.png differ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 61b3328..904aa6e 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -16,8 +16,10 @@ android:padding="@dimen/activity_horizontal_margin" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="1.0"> + android:textColor="@android:color/white" />