package com.darshanbshah.odsystem; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.support.annotation.MainThread; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.ChildEventListener; 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.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{ private FirebaseAuth mAuth = FirebaseAuth.getInstance(); private EditText rollNumber; private Spinner advisors; List<String> list = new ArrayList<String>(); List<String> lst = new ArrayList<String>(); FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference root; DatabaseReference student; DatabaseReference adv; DatabaseReference id; DatabaseReference roll_no; DatabaseReference email; DatabaseReference advisor; HashMap <String,String> adv_map = new HashMap <String, String>(); ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { FirebaseUser user = mAuth.getCurrentUser(); root = database.getReference(); student = root.child("Student"); adv = root.child("Advisors"); id = student.child(user.getUid()); roll_no = id.child("RollNumber"); email = id.child("Email"); advisor = id.child("Advisor"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_roll_number); rollNumber = (EditText)findViewById(R.id.rollNumberEditText); advisors = (Spinner)findViewById(R.id.spinner); adv.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot dsp : dataSnapshot.getChildren()){ 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 public void onCancelled(DatabaseError databaseError) { } }); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.advisors, android.R.layout.simple_spinner_dropdown_item); advisors.setAdapter(adapter); advisors.setOnItemSelectedListener(this); dialog = new ProgressDialog(this); dialog.setMessage("Please Wait"); dialog.show(); adv.addChildEventListener(new ChildEventListener() { @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())); } if (lst.contains(mAuth.getCurrentUser().getEmail())) { startActivity(new Intent(getApplicationContext(), TeacherActivity.class)); } else { SharedPreferences preferences = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); if(preferences.getBoolean("activity_executed", false)){ Intent intent = new Intent(RollNumber.this, MainActivity.class); startActivity(intent); finish(); dialog.hide(); } else { SharedPreferences.Editor edit = preferences.edit(); edit.putBoolean("activity_executed", true); edit.commit(); } } } @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) { } }); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { TextView textView = (TextView)view; for (String advisorName: list) { Log.d("EMAIL", advisorName); Log.d("TEXTVIEW", textView.getText().toString()); if (textView.getText().equals(advisorName)) { int i = list.indexOf(advisorName); advisor.setValue(lst.get(i)); } } } @Override public void onNothingSelected(AdapterView<?> parent) { } int flag = 0; public void nextAct(View view) { if (TextUtils.isEmpty(rollNumber.getText().toString())) { Toast.makeText(this, "Enter Roll Number", Toast.LENGTH_SHORT).show(); } else { Log.e("LST_SIZE", String.valueOf(lst.size())); for (String email : lst) { if (email.equals(mAuth.getCurrentUser().getEmail())) { startActivity(new Intent(this, TeacherActivity.class)); flag = 1; finish(); break; } } if (flag == 0) { roll_no.setValue(rollNumber.getText().toString()); email.setValue(mAuth.getCurrentUser().getEmail()); startActivity(new Intent(this, MainActivity.class)); finish(); } } } public void signOut(View view) { mAuth.signOut(); startActivity(new Intent(this, Login.class)); finish(); } }