Last active
August 29, 2015 14:16
-
-
Save yaronv/d1cfffad3955d2515817 to your computer and use it in GitHub Desktop.
This file contains 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 yv.trip; | |
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.widget.DrawerLayout; | |
import android.support.v7.app.ActionBarActivity; | |
import android.support.v7.app.ActionBarDrawerToggle; | |
import android.support.v7.widget.LinearLayoutManager; | |
import android.support.v7.widget.RecyclerView; | |
import android.support.v7.widget.Toolbar; | |
import android.view.GestureDetector; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.MotionEvent; | |
import android.view.View; | |
import android.view.Window; | |
import android.view.WindowManager; | |
import android.view.animation.Animation; | |
import android.view.animation.AnimationUtils; | |
import android.widget.ImageView; | |
import yv.trip.adapters.MyAdapter; | |
import yv.trip.fragments.FlightsFragment; | |
import yv.trip.fragments.HomeFragment; | |
import yv.trip.fragments.HotelsFragment; | |
public class MainActivity extends ActionBarActivity { | |
String TITLES[] = {"Home", "Flights", "Hotels"}; | |
int ICONS[] = {R.drawable.ic_action_user, R.drawable.ic_action_plane, R.drawable.ic_action_home}; | |
String NAME = "Yaron & Tali"; | |
String EMAIL = "yaronv99@gmail.com"; | |
String WEBSITE = "http://yaronvazana.com"; | |
int PROFILE = R.drawable.us; | |
private Toolbar toolbar; | |
RecyclerView mRecyclerView; | |
RecyclerView.Adapter mAdapter; | |
RecyclerView.LayoutManager mLayoutManager; | |
DrawerLayout Drawer; | |
int lastMenu = -1; | |
ActionBarDrawerToggle mDrawerToggle; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
requestWindowFeature(Window.FEATURE_NO_TITLE); | |
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
toolbar = (Toolbar) findViewById(R.id.tool_bar); | |
setSupportActionBar(toolbar); | |
mRecyclerView = (RecyclerView) findViewById(R.id.RecyclerView); | |
mRecyclerView.setHasFixedSize(true); | |
mAdapter = new MyAdapter(TITLES,ICONS,NAME,EMAIL,PROFILE,WEBSITE,this); | |
mRecyclerView.setAdapter(mAdapter); | |
// get the fadein animation | |
final Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in); | |
final ImageView bgImage = (ImageView)findViewById(R.id.bg_image); | |
// fade in the background image | |
bgImage.startAnimation(animationFadeIn); | |
final GestureDetector mGestureDetector = new GestureDetector(MainActivity.this, new GestureDetector.SimpleOnGestureListener() { | |
@Override public boolean onSingleTapUp(MotionEvent e) { | |
return true; | |
} | |
}); | |
mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { | |
@Override | |
public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) { | |
View child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY()); | |
if(child != null && mGestureDetector.onTouchEvent(motionEvent)){ | |
Drawer.closeDrawers(); | |
// Toast.makeText(MainActivity.this, "The Item Clicked is: " + recyclerView.getChildPosition(child), Toast.LENGTH_SHORT).show(); | |
onTouchDrawer(recyclerView.getChildPosition(child)); | |
return true; | |
} | |
return false; | |
} | |
@Override | |
public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) { | |
} | |
}); | |
mLayoutManager = new LinearLayoutManager(this); | |
mRecyclerView.setLayoutManager(mLayoutManager); | |
Drawer = (DrawerLayout) findViewById(R.id.DrawerLayout); | |
mDrawerToggle = new ActionBarDrawerToggle(this, Drawer, toolbar, R.string.openDrawer, R.string.closeDrawer){ | |
@Override | |
public void onDrawerOpened(View drawerView) { | |
super.onDrawerOpened(drawerView); | |
} | |
@Override | |
public void onDrawerClosed(View drawerView) { | |
super.onDrawerClosed(drawerView); | |
} | |
}; | |
Drawer.setDrawerListener(mDrawerToggle); | |
mDrawerToggle.syncState(); | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu 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); | |
} | |
private void openFragment(final Fragment fragment) { | |
getSupportFragmentManager() | |
.beginTransaction() | |
.replace(R.id.container, fragment) | |
.commit(); | |
} | |
public void onTouchDrawer(final int position) { | |
if (lastMenu == position) return; | |
switch (lastMenu = position) { | |
case 1: | |
openFragment(new HomeFragment()); | |
break; | |
case 2: | |
openFragment(new FlightsFragment()); | |
break; | |
case 3: | |
openFragment(new HotelsFragment()); | |
break; | |
default: | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment