Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.james.funtendance;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.design.widget.FloatingActionButton;
- import android.support.v7.app.AppCompatActivity;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.view.GestureDetector;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.firebase.ui.auth.AuthUI;
- 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 java.util.ArrayList;
- public class MainActivity extends AppCompatActivity {
- private FirebaseDatabase mFirebaseDatabase;
- private DatabaseReference mUserDatabaseReference, mSubjectsDatabaseReference;
- private FirebaseAuth mFirebaseAuth;
- private FirebaseAuth.AuthStateListener mAuthStateListener;
- private RecyclerView mRecycler;
- private TeacherProfileAdapter adapter;
- private ArrayList<Subject> subjectList = new ArrayList<>();
- private FirebaseUser mUser;
- private ChildEventListener mChildEventListener;
- private ArrayList<Teacher> teacherList = new ArrayList<>();
- public static final int RC_SIGN_IN = 1;
- public static final String ANONYMOUS = "anonymous";
- private String mUsername, name, mail, imgURL;
- private FloatingActionButton fabAdd;
- private ImageView img;
- private TextView mtxtName, mtxtMail;
- private int count = 0;
- TextView text;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mFirebaseDatabase = FirebaseDatabase.getInstance();
- mRecycler = (RecyclerView) findViewById(R.id.recycler_view);
- mtxtMail = (TextView) findViewById(R.id.txtMail);
- mtxtName = (TextView) findViewById(R.id.txtName);
- fabAdd = (FloatingActionButton) findViewById(R.id.addFloatingBtn);
- mSubjectsDatabaseReference = mFirebaseDatabase.getReference().child("subjects");
- mUserDatabaseReference = mFirebaseDatabase.getReference().child("teachers");
- fabAdd.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent1 = new Intent(MainActivity.this, AddNewSubject.class);
- intent1.putExtra("mail", mail);
- startActivity(intent1);
- }
- });
- mRecycler.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
- GestureDetector detector = new GestureDetector(getApplicationContext(), new GestureDetector.SimpleOnGestureListener() {
- @Override
- public boolean onSingleTapUp(MotionEvent e) {
- return true;
- }
- @Override
- public void onLongPress(MotionEvent e) {
- super.onLongPress(e);
- }
- });
- @Override
- public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
- View child = rv.findChildViewUnder(e.getX(), e.getY());
- if (child != null && detector.onTouchEvent(e)) {
- int pos = rv.getChildAdapterPosition(child);
- Subject subject = subjectList.get(pos);
- String inName, inCode, inDate, inRoom, inPass;
- Intent intent = new Intent(MainActivity.this, OpenSubject.class);
- intent.putExtra("name", subject.getSubName());
- intent.putExtra("mail", mail);
- intent.putExtra("code", subject.getSubCode());
- intent.putExtra("day", subject.getSubSchedDay());
- intent.putExtra("room", subject.getSubRoom());
- intent.putExtra("pass", subject.getSubPass());
- intent.putExtra("timeIn", subject.getSubTimeIn());
- intent.putExtra("timeOut", subject.getSubTimeOut());
- startActivity(intent);
- }
- return false;
- }
- @Override
- public void onTouchEvent(RecyclerView rv, MotionEvent e) {
- }
- @Override
- public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
- }
- });
- mFirebaseAuth = FirebaseAuth.getInstance();
- attachDBReadListenerSubs();
- mAuthStateListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- FirebaseUser user = firebaseAuth.getCurrentUser();
- if (user != null) {
- mail = user.getEmail();
- name = user.getDisplayName();
- imgURL = user.getPhotoUrl().toString();
- mtxtName.setText("Hi " + name + "!");
- mtxtMail.setText(mail);
- onSignedInInitialized(user.getDisplayName());
- Teacher teacher = new Teacher(name);
- mFirebaseDatabase.getReference("teachers").push().setValue(teacher);
- } else {
- onSignedOutCleanup();
- startActivityForResult(AuthUI.getInstance()
- .createSignInIntentBuilder()
- .setTheme(R.style.AppTheme)
- .setIsSmartLockEnabled(false)
- .setProviders(AuthUI.GOOGLE_PROVIDER)
- .build(),
- RC_SIGN_IN);
- }
- }
- };
- }
- @Override
- protected void onPause() {
- super.onPause();
- if (mAuthStateListener != null) {
- mFirebaseAuth.removeAuthStateListener(mAuthStateListener);
- }
- //detachDatabaseReadListener();
- //mMessageAdapter.clear();
- }
- @Override
- protected void onResume() {
- super.onResume();
- mFirebaseAuth.addAuthStateListener(mAuthStateListener);
- }
- private void onSignedInInitialized(String username) {
- mUsername = username;
- //attachDBReadListener();
- //attachDatabaseReadListener();
- attachDBReadListenerTeachers();
- }
- private void onSignedOutCleanup() {
- mUsername = ANONYMOUS;
- //mMessageAdapter.clear();
- }
- public void setIntent(FirebaseUser user) {
- mUser = user;
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.menu, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.sign_out_menu:
- AuthUI.getInstance().signOut(this);
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- private void attachDBReadListenerSubs() {
- if (mChildEventListener == null) {
- mChildEventListener = new ChildEventListener() {
- @Override
- public void onChildAdded(DataSnapshot dataSnapshot, String s) {
- Subject subject = dataSnapshot.getValue(Subject.class);
- if (subject.getTeacherMail().equals(mail))
- subjectList.add(subject);
- if (subjectList != null)
- Toast.makeText(MainActivity.this, "No Subjects as of the Moment", Toast.LENGTH_SHORT).show();
- adapter = new TeacherProfileAdapter(getParent(), subjectList);
- mRecycler.setAdapter(adapter);
- mRecycler.setLayoutManager(new LinearLayoutManager(getParent()));
- }
- @Override
- public void onChildChanged(DataSnapshot dataSnapshot, String s) {
- }
- @Override
- public void onChildRemoved(DataSnapshot dataSnapshot) {
- Subject subject = dataSnapshot.getValue(Subject.class);
- subjectList.add(subject);
- }
- @Override
- public void onChildMoved(DataSnapshot dataSnapshot, String s) {
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- };
- mSubjectsDatabaseReference.addChildEventListener(mChildEventListener);
- }
- }
- private void attachDBReadListenerTeachers() {
- if (mChildEventListener == null) {
- mChildEventListener = new ChildEventListener() {
- @Override
- public void onChildAdded(DataSnapshot dataSnapshot, String s) {
- Teacher teacher = dataSnapshot.getValue(Teacher.class);
- // if (teacher != null) {
- // if (teacher.getEmail().equals(mail)) {
- // teacherList.add(teacher);
- // if (teacher != null) {
- // Teacher teacher1 = new Teacher(name, mail, imgURL);
- // mUserDatabaseReference.push().setValue(teacher1);
- // }
- //
- // }
- // }
- }
- @Override
- public void onChildChanged(DataSnapshot dataSnapshot, String s) {
- }
- @Override
- public void onChildRemoved(DataSnapshot dataSnapshot) {
- Subject subject = dataSnapshot.getValue(Subject.class);
- subjectList.add(subject);
- }
- @Override
- public void onChildMoved(DataSnapshot dataSnapshot, String s) {
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- };
- mUserDatabaseReference.addChildEventListener(mChildEventListener);
- }
- }
- private void detachDatabaseReadListener() {
- if (mChildEventListener != null) {
- mSubjectsDatabaseReference.removeEventListener(mChildEventListener);
- mChildEventListener = null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement