Created
August 22, 2017 10:07
-
-
Save nabeelnazir163/6217f6e049add3fc9b73c514d51488ea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.nabeel.postandcommenttutorial.ui.activities; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.support.annotation.NonNull; | |
import android.support.design.widget.NavigationView; | |
import android.support.v4.view.GravityCompat; | |
import android.support.v4.widget.DrawerLayout; | |
import android.support.v7.app.ActionBarDrawerToggle; | |
import android.support.v7.widget.Toolbar; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import com.bumptech.glide.Glide; | |
import com.example.nabeel.postandcommenttutorial.R; | |
import com.example.nabeel.postandcommenttutorial.models.User; | |
import com.example.nabeel.postandcommenttutorial.ui.fragments.homeFragment; | |
import com.example.nabeel.postandcommenttutorial.utils.BaseActivity; | |
import com.example.nabeel.postandcommenttutorial.utils.FirebaseUtils; | |
import com.google.firebase.auth.FirebaseAuth; | |
import com.google.firebase.database.DataSnapshot; | |
import com.google.firebase.database.DatabaseError; | |
import com.google.firebase.database.DatabaseReference; | |
import com.google.firebase.database.ValueEventListener; | |
public class MainActivity extends BaseActivity | |
implements NavigationView.OnNavigationItemSelectedListener { | |
private FirebaseAuth.AuthStateListener mAuthStateListener; | |
private ImageView mDisplayImageView; | |
private TextView mNameTextView; | |
private TextView mEmailTextView; | |
private ValueEventListener mUserValueEventListener; | |
private DatabaseReference mUserRef; | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | |
setSupportActionBar(toolbar); | |
mAuthStateListener = new FirebaseAuth.AuthStateListener() { | |
@Override | |
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { | |
if (firebaseAuth.getCurrentUser() == null) { | |
startActivity(new Intent(MainActivity.this, RegisterActivity.class)); | |
} | |
} | |
}; | |
init(); | |
getSupportFragmentManager().beginTransaction().replace(R.id.container, new HomeFragment()) | |
.commit(); | |
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( | |
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); | |
drawer.setDrawerListener(toggle); | |
toggle.syncState(); | |
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); | |
navigationView.setNavigationItemSelectedListener(this); | |
View navHeaderView = navigationView.getHeaderView(0); | |
initNavHeader(navHeaderView); | |
} | |
private void init() { | |
if (mFirebaseUser != null) { | |
mUserRef = FirebaseUtils.getUserRef(mFirebaseUser.getEmail().replace(".", ",")); | |
} | |
} | |
private void initNavHeader(View view) { | |
mDisplayImageView = (ImageView) view.findViewById(R.id.imageView_display); | |
mNameTextView = (TextView) view.findViewById(R.id.textview_name); | |
mEmailTextView = (TextView) view.findViewById(R.id.textView_email); | |
mUserValueEventListener = new ValueEventListener() { | |
@Override | |
public void onDataChange(DataSnapshot dataSnapshot) { | |
if (dataSnapshot.getValue() != null) { | |
User users = dataSnapshot.getValue(User.class); | |
Glide.with(MainActivity.this) | |
.load(users.getPhotoUrl()) | |
.into(mDisplayImageView); | |
mNameTextView.setText(users.getUser()); | |
mEmailTextView.setText(users.getEmail()); | |
} | |
} | |
@Override | |
public void onCancelled(DatabaseError databaseError) { | |
} | |
}; | |
} | |
@Override | |
public void onBackPressed() { | |
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
if (drawer.isDrawerOpen(GravityCompat.START)) { | |
drawer.closeDrawer(GravityCompat.START); | |
} else { | |
super.onBackPressed(); | |
} | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
// Inflate the menu; this adds items to the action bar if it is present. | |
getMenuInflater().inflate(R.menu.main, menu); | |
return true; | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
// Handle action bar item clicks here. The action bar will | |
// automatically handle clicks on the Home/Up button, so long | |
// as you specify a parent activity in AndroidManifest.xml. | |
int id = item.getItemId(); | |
//noinspection SimplifiableIfStatement | |
if (id == R.id.action_settings) { | |
return true; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
@SuppressWarnings("StatementWithEmptyBody") | |
@Override | |
public boolean onNavigationItemSelected(MenuItem item) { | |
// Handle navigation view item clicks here. | |
int id = item.getItemId(); | |
if (id == R.id.nav_camera) { | |
// Handle the camera action | |
} else if (id == R.id.nav_gallery) { | |
} else if (id == R.id.nav_slideshow) { | |
} else if (id == R.id.nav_manage) { | |
} else if (id == R.id.nav_share) { | |
} else if (id == R.id.nav_send) { | |
} | |
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
drawer.closeDrawer(GravityCompat.START); | |
return true; | |
} | |
@Override | |
protected void onStart() { | |
super.onStart(); | |
mAuth.addAuthStateListener(mAuthStateListener); | |
if (mUserRef != null) { | |
mUserRef.addValueEventListener(mUserValueEventListener); | |
} | |
} | |
@Override | |
protected void onStop() { | |
super.onStop(); | |
if (mAuthStateListener != null) | |
mAuth.removeAuthStateListener(mAuthStateListener); | |
if (mUserRef != null) | |
mUserRef.removeEventListener(mUserValueEventListener); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment