Skip to content

Commit

Permalink
Merge pull request #38 from andy-cameron/leaves_checker
Browse files Browse the repository at this point in the history
Leaves checker
  • Loading branch information
andy-cameron committed Mar 21, 2019
2 parents 4721830 + 4d333bc commit 314ac20
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@ public void onClick(View v) {
mDatabaseConfiguration = FirebaseDatabase.getInstance().getReference("Configuration");

//Getting Configuration Info
mDatabaseConfiguration.addListenerForSingleValueEvent(new ValueEventListener() {
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String loyaltyWeekText = (String) dataSnapshot.child("current_week").getValue();
String loyaltyWeekText = (String) dataSnapshot.child(uID).child("weekPreferences").child("recentWeekSubmitted").getValue();
loyaltyWeek.setText(loyaltyWeekText);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ private void createDBProfile () {

DatabaseReference newProfile = ref.child(uID);
newProfile.setValue(new UserProfile(mEmailField.getText().toString(), mFirstName.getText().toString(), mLastName.getText().toString(), mOrganisation.getText().toString(), starterLeaves, starterLeaves, starterPlants));
newProfile.child("weekPreferences").setValue(new UserPreferences(false, false, false, false, false, null));
newProfile.child("weekPreferences").setValue(new UserPreferences(false, false, false, false, false, null, null));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.andrewcameron.green_leaf;

public class UserLeavesValidationChecker {
private Long currentNumberOfLeaves, updateLeavesValue;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

public class UserPreferences {
private Boolean presentMonday, presentTuesday, presentWednesday, presentThursday, presentFriday;
private String recentWeekSubmitted;
private String recentWeekSubmitted, recentWeekIndexSubmitted;

public UserPreferences(Boolean presentMonday, Boolean presentTuesday, Boolean presentWednesday, Boolean presentThursday, Boolean presentFriday, String recentWeekSubmitted) {
public UserPreferences(Boolean presentMonday, Boolean presentTuesday, Boolean presentWednesday, Boolean presentThursday, Boolean presentFriday, String recentWeekSubmitted, String recentWeekIndexSubmitted) {
this.presentMonday = presentMonday;
this.presentTuesday = presentTuesday;
this.presentWednesday = presentWednesday;
this.presentThursday = presentThursday;
this.presentFriday = presentFriday;
this.recentWeekSubmitted = recentWeekSubmitted;
this.recentWeekIndexSubmitted = recentWeekIndexSubmitted;
}

public Boolean getPresentMonday() {
Expand Down Expand Up @@ -60,4 +61,12 @@ public String getRecentWeekSubmitted() {
public void setRecentWeekSubmitted(String recentWeekSubmitted) {
this.recentWeekSubmitted = recentWeekSubmitted;
}

public String getRecentWeekIndexSubmitted() {
return recentWeekIndexSubmitted;
}

public void setRecentWeekIndexSubmitted(String recentWeekIndexSubmitted) {
this.recentWeekIndexSubmitted = recentWeekIndexSubmitted;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,24 +85,37 @@ private void setPreferences () {
configRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//Obtaining the configuration of the current week
String weekIndex = (String) dataSnapshot.child("Configuration").child("current_week_index").getValue();
String userWeekIndex = (String) dataSnapshot.child("Profiles").child(uID).child("weekPreferences").child("recentWeekSubmitted").getValue();
Long currentNumberOfLeaves = (Long) dataSnapshot.child("Profiles").child(uID).child("currentNumberOfLeaves").getValue();
Long totalNumberOfLeaves = (Long) dataSnapshot.child("Profiles").child(uID).child("totalNumberOfLeaves").getValue();
String weekDate = (String) dataSnapshot.child("Configuration").child("current_week").getValue();
//Obtaining the value of the user's current week
String userWeekIndex = (String) dataSnapshot.child("Profiles").child(uID).child("weekPreferences").child("recentWeekIndexSubmitted").getValue();
//Obtaining user's number of Leaves (Total and current)
long currentNumberOfLeaves = (long) dataSnapshot.child("Profiles").child(uID).child("currentNumberOfLeaves").getValue();
long totalNumberOfLeaves = (long) dataSnapshot.child("Profiles").child(uID).child("totalNumberOfLeaves").getValue();
long numberOfPlants = (long) dataSnapshot.child("Profiles").child(uID).child("plants").getValue();

if (weekIndex.equals(userWeekIndex)) {
DatabaseReference ref = database.getReference("Profiles").child(uID);
DatabaseReference newPreferencesField = ref.child("weekPreferences");
newPreferencesField.setValue(new UserPreferences(mondayChecked.isChecked(),tuesdayChecked.isChecked(),wednesdayChecked.isChecked(),thursdayChecked.isChecked(),fridayChecked.isChecked(), weekIndex));
newPreferencesField.setValue(new UserPreferences(mondayChecked.isChecked(),tuesdayChecked.isChecked(),wednesdayChecked.isChecked(),thursdayChecked.isChecked(),fridayChecked.isChecked(), weekDate, weekIndex));
} else {
DatabaseReference ref = database.getReference("Profiles").child(uID);
DatabaseReference newPreferencesField = ref.child("weekPreferences");
DatabaseReference updateCurrentLeaves = ref.child("currentNumberOfLeaves");
DatabaseReference updateTotalLeaves = ref.child("totalNumberOfLeaves");

newPreferencesField.setValue(new UserPreferences(mondayChecked.isChecked(),tuesdayChecked.isChecked(),wednesdayChecked.isChecked(),thursdayChecked.isChecked(),fridayChecked.isChecked(), weekIndex));
updateCurrentLeaves.setValue(currentNumberOfLeaves + 1);
updateTotalLeaves.setValue(totalNumberOfLeaves + 1);
DatabaseReference updatePlants = ref.child("plants");

if (currentNumberOfLeaves == 20) {
newPreferencesField.setValue(new UserPreferences(mondayChecked.isChecked(),tuesdayChecked.isChecked(),wednesdayChecked.isChecked(),thursdayChecked.isChecked(),fridayChecked.isChecked(), weekDate, weekIndex));
updateCurrentLeaves.setValue(1);
updateTotalLeaves.setValue(totalNumberOfLeaves + 1);
updatePlants.setValue(numberOfPlants + 1);
} else {
newPreferencesField.setValue(new UserPreferences(mondayChecked.isChecked(),tuesdayChecked.isChecked(),wednesdayChecked.isChecked(),thursdayChecked.isChecked(),fridayChecked.isChecked(), weekDate, weekIndex));
updateCurrentLeaves.setValue(currentNumberOfLeaves + 1);
updateTotalLeaves.setValue(totalNumberOfLeaves + 1);
}
}
}

Expand Down

0 comments on commit 314ac20

Please sign in to comment.