package io.bxbxbai.zhuanlan.ui;
import android.app.Activity;
import android.app.FragmentManager;
import android.content.Intent;
import android.os.Bundle;
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.ListView;
import butterknife.Bind;
import butterknife.ButterKnife;
import io.bxbxbai.common.Tips;
import io.bxbxbai.common.utils.CommonExecutor;
import io.bxbxbai.common.utils.PrefUtils;
import io.bxbxbai.zhuanlan.R;
import io.bxbxbai.zhuanlan.widget.DrawerMenuContent;
import io.bxbxbai.zhuanlan.widget.MenuAdapter;
import io.bxbxbai.zhuanlan.widget.OnMenuListClickListener;
public class MainActivity extends BaseActivity {
@Bind(R.id.drawer_list)
protected ListView listView;
@Bind(R.id.toolbar)
protected Toolbar toolbar;
@Bind(R.id.drawerLayout)
protected DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
// ChoreographerHelper.getInstance(this).start();
initToolbarAndDrawer();
DrawerMenuContent content = new DrawerMenuContent(this);
listView.setAdapter(new MenuAdapter(this, content.getItems()));
listView.setOnItemClickListener(new OnMenuListClickListener(this, drawerLayout));
getSupportFragmentManager().beginTransaction().add(R.id.container,
PeopleListFragment.newInstance()).commit();
//第一次启动,会打开抽屉菜单
CommonExecutor.MAIN_HANDLER.post(new Runnable() {
@Override
public void run() {
if ((boolean) PrefUtils.getValue(MainActivity.this, PrefUtils.KEY_FIRST_ENTER, true)) {
CommonExecutor.MAIN_HANDLER.postDelayed(new Runnable() {
@Override
public void run() {
openDrawer();
}
}, 1500);
PrefUtils.setValue(MainActivity.this, PrefUtils.KEY_FIRST_ENTER, false);
}
}
});
// NewsDetailActivity.startActivity(this, "http://music.163.com/m/topic/194001?type=android");
}
private void initToolbarAndDrawer() {
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar,
R.string.app_name, R.string.app_name);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
Tips.showToast("Coming soon...");
break;
case R.id.action_about:
return WebActivity.start(MainActivity.this, WebActivity.URL_BXBXBAI, "About Me");
}
return false;
}
});
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
actionBarDrawerToggle.syncState();
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
closeDrawer();
} else {
openDrawer();
}
}
});
}
@Override
public void onBackPressed() {
closeDrawer();
// Otherwise, it may return to the previous fragment stack
FragmentManager fragmentManager = getFragmentManager();
if (fragmentManager.getBackStackEntryCount() > 0) {
fragmentManager.popBackStack();
} else {
// Lastly, it will rely on the system behavior for back
super.onBackPressed();
}
}
public boolean closeDrawer() {
// If the drawer is open, back will close it
if (drawerLayout != null && drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawers();
return true;
}
return false;
}
private boolean openDrawer() {
if (drawerLayout != null) {
drawerLayout.openDrawer(GravityCompat.START);
return true;
}
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, MainActivity.class));
}
}