From 0c723968355b2bb421f948f5cb02cb6f05f77348 Mon Sep 17 00:00:00 2001 From: darshanxyz <darshanxyz@gmail.com> Date: Sat, 22 Apr 2017 11:17:35 +0530 Subject: [PATCH] Added the ability to change the flag value in the OD class of the Firebase database --- .idea/misc.xml | 2 +- .../darshanbshah/odsystem/MainActivity.java | 146 ++++++++++++++++-- .../com/darshanbshah/odsystem/RollNumber.java | 14 +- 3 files changed, 142 insertions(+), 20 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 79461bc..75318f7 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -53,7 +53,7 @@ <ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Remove" /> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/app/src/main/java/com/darshanbshah/odsystem/MainActivity.java b/app/src/main/java/com/darshanbshah/odsystem/MainActivity.java index 2db1140..a26130d 100644 --- a/app/src/main/java/com/darshanbshah/odsystem/MainActivity.java +++ b/app/src/main/java/com/darshanbshah/odsystem/MainActivity.java @@ -19,9 +19,11 @@ import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.List; public class MainActivity extends AppCompatActivity { @@ -43,10 +45,17 @@ public class MainActivity extends AppCompatActivity { DatabaseReference roll_no; DatabaseReference email; DatabaseReference advisor; + DatabaseReference od; + DatabaseReference od_child_child; + + RollNumber r = new RollNumber(); String recepient = ""; List<String> list1 = new ArrayList<String>(); + List<String> list_adv_name = new ArrayList<String>(); + List<String> list_adv_email = new ArrayList<String>(); + HashMap<String, String> adv_details = new HashMap<String, String>(); @Override @@ -62,7 +71,7 @@ public class MainActivity extends AppCompatActivity { roll_no = id.child("RollNumber"); email = id.child("Email"); advisor = id.child("Advisor"); - + od = root.child("OD"); welcomeText = (TextView)findViewById(R.id.welcomeText); welcomeText.setText("Welcome " + mAuth.getCurrentUser().getEmail()); @@ -74,12 +83,30 @@ public class MainActivity extends AppCompatActivity { student.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { - for(DataSnapshot dsp : dataSnapshot.getChildren()){ - if (dsp.getKey().toString().equals("Advisor")) { - list1.add(String.valueOf(dsp.getValue())); - Log.e("E-MAIL ", String.valueOf(dsp.getValue())); - } + for(final DataSnapshot d : dataSnapshot.getChildren()){ + student.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot ds) { + for(DataSnapshot dsp : ds.getChildren()){ + if (dsp.getKey().toString().equals(mAuth.getCurrentUser().getUid())) { + if (d.getKey().toString().equals("Advisor")) { + list1.add(String.valueOf(d.getValue())); + Log.e("E-MAIL of Adv ", String.valueOf(d.getValue())); + } + + } + + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + } + } @Override @@ -102,14 +129,63 @@ public class MainActivity extends AppCompatActivity { } }); - - } public void onClickFromDatePicker(View view) { + for (int i = 0; i < list_adv_name.size(); i++) { + list_adv_name.remove(i); + } + adv.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + for (DataSnapshot data : dataSnapshot.getChildren()) { + list_adv_name.add(data.getKey().toString()); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + for (int i = 0; i < list_adv_email.size(); i++) { + list_adv_email.remove(i); + } + + adv.addChildEventListener(new ChildEventListener() { + @Override + public void onChildAdded(DataSnapshot dataSnapshot, String s) { + for (DataSnapshot data : dataSnapshot.getChildren()) { + if (data.getKey().toString().equals("Email")) { + list_adv_email.add(data.getValue().toString()); + } + } + } + + @Override + public void onChildChanged(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onChildRemoved(DataSnapshot dataSnapshot) { + + } + + @Override + public void onChildMoved(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); new DatePickerDialog(this, fromListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); } @@ -149,6 +225,10 @@ public class MainActivity extends AppCompatActivity { } public void onRequestClick(View view) { + for (int i = 0; i < list_adv_name.size(); i++) { + adv_details.put(list_adv_email.get(i), list_adv_name.get(i)); + } + reasonString = reason.getText().toString(); fromDate = from.getText().toString(); toDate = to.getText().toString(); @@ -158,18 +238,52 @@ public class MainActivity extends AppCompatActivity { else { full = "No"; } + final String str = adv_details.get(list1.get(0)); - Intent intent = new Intent(Intent.ACTION_SEND); - intent.setData(Uri.parse("mailto:")); + od.addChildEventListener(new ChildEventListener() { + @Override + public void onChildAdded(DataSnapshot dataSnapshot, String s) { + for(DataSnapshot dsp : dataSnapshot.getChildren()){ + if (dsp.getKey().equals(mAuth.getCurrentUser().getUid())) { + od_child_child = od.child(str).child(mAuth.getCurrentUser().getUid()); + od_child_child.setValue(1); + } + } + } + @Override + public void onChildChanged(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onChildRemoved(DataSnapshot dataSnapshot) { + + } + + @Override + public void onChildMoved(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); +// recepient = list1.get(0); +// +// Intent intent = new Intent(Intent.ACTION_SEND); +// intent.setData(Uri.parse("mailto:")); +// // Log.e("Recepient", recepient); - intent.putExtra(Intent.EXTRA_EMAIL, recepient); - intent.putExtra(Intent.EXTRA_SUBJECT, "OD Request"); - intent.putExtra(Intent.EXTRA_TEXT, "Reason: " + reasonString + '\n' + "From: " + fromDate + '\n' + "To: " + toDate + '\n' + "Full day: " + full); - intent.setType("message/rfc822"); - Intent chooser = Intent.createChooser(intent, "Send email"); - startActivity(chooser); +// intent.putExtra(Intent.EXTRA_EMAIL, recepient); +// intent.putExtra(Intent.EXTRA_SUBJECT, "OD Request"); +// intent.putExtra(Intent.EXTRA_TEXT, "Reason: " + reasonString + '\n' + "From: " + fromDate + '\n' + "To: " + toDate + '\n' + "Full day: " + full); +// intent.setType("message/rfc822"); +// Intent chooser = Intent.createChooser(intent, "Send email"); +// startActivity(chooser); Log.e("DATA: ", reasonString + ", " + fromDate + ", " + toDate + ", " + full); diff --git a/app/src/main/java/com/darshanbshah/odsystem/RollNumber.java b/app/src/main/java/com/darshanbshah/odsystem/RollNumber.java index 2f15eb6..6f399d4 100644 --- a/app/src/main/java/com/darshanbshah/odsystem/RollNumber.java +++ b/app/src/main/java/com/darshanbshah/odsystem/RollNumber.java @@ -27,6 +27,7 @@ import com.google.firebase.database.Query; import com.google.firebase.database.ValueEventListener; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; public class RollNumber extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ @@ -35,6 +36,9 @@ public class RollNumber extends AppCompatActivity implements AdapterView.OnItemS private EditText rollNumber; private Spinner advisors; + List<String> list = new ArrayList<String>(); + List<String> lst = new ArrayList<String>(); + FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference root; @@ -45,8 +49,7 @@ public class RollNumber extends AppCompatActivity implements AdapterView.OnItemS DatabaseReference email; DatabaseReference advisor; - List<String> list = new ArrayList<String>(); - List<String> lst = new ArrayList<String>(); + HashMap <String,String> adv_map = new HashMap <String, String>(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -74,6 +77,7 @@ public class RollNumber extends AppCompatActivity implements AdapterView.OnItemS list.add(String.valueOf(dsp.getKey())); //add result into array list Log.e("VALUE: ", String.valueOf(dsp.getKey())); } + Log.e("LISTSIZE", String.valueOf(list.size())); } @Override @@ -82,17 +86,20 @@ public class RollNumber extends AppCompatActivity implements AdapterView.OnItemS } }); + ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.advisors, android.R.layout.simple_spinner_dropdown_item); advisors.setAdapter(adapter); advisors.setOnItemSelectedListener(this); - adv.addChildEventListener(new ChildEventListener() { + int i = 0; @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { for(DataSnapshot dsp : dataSnapshot.getChildren()){ lst.add(String.valueOf(dsp.getValue())); Log.e("EMAILS: ", String.valueOf(dsp.getValue())); +// adv_map.put(String.valueOf(dsp.getValue()), list.get(1)); +// ++i; } } @@ -116,6 +123,7 @@ public class RollNumber extends AppCompatActivity implements AdapterView.OnItemS } }); + Log.e("LSTSIZE", String.valueOf(lst.size())); // SharedPreferences preferences = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); // -- GitLab