package com.amlogic.tzr.charismatic_yichang; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.amlogic.tzr.charismatic_yichang.Tool.BitmapCache; import com.amlogic.tzr.charismatic_yichang.Tool.ConfigUtil; import com.amlogic.tzr.charismatic_yichang.Tool.DensityUtil; import com.amlogic.tzr.charismatic_yichang.Tool.SPUtils; import com.amlogic.tzr.charismatic_yichang.activity.LoginActivity; import com.amlogic.tzr.charismatic_yichang.activity.UserProfileActivity; import com.amlogic.tzr.charismatic_yichang.bean.User; import com.amlogic.tzr.charismatic_yichang.event.LoginEvent; import com.amlogic.tzr.charismatic_yichang.fragment.FeedFragment; import com.amlogic.tzr.charismatic_yichang.fragment.NewsMainFragment; import com.amlogic.tzr.charismatic_yichang.fragment.TourFragment; import com.amlogic.tzr.charismatic_yichang.fragment.VideoFragment; import com.amlogic.tzr.charismatic_yichang.view.CircleTransformation; import com.android.volley.RequestQueue; import com.android.volley.toolbox.ImageLoader; import com.squareup.picasso.Picasso; import java.util.ArrayList; import java.util.List; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobUser; import cn.bmob.v3.datatype.BmobFile; import de.greenrobot.event.EventBus; public class MainActivity extends BaseActivity { private static final String TAG = "MainActivity"; private Context mContext; private DrawerLayout mDrawerLayout; private NavigationView mNavigationView; private Toolbar mToolbar; private boolean pendingIntroAnimation=false; private TextView mUserName; private ImageView mUserHead; private RequestQueue mQueue; private ImageLoader mImageLoader; /* fragment */ private List<Fragment> mFragments = new ArrayList<Fragment>(); private NewsMainFragment mNewsMainFragment; private VideoFragment mFoodFragment; private TourFragment mTourFragment; private FeedFragment mFeedFragment; private FragmentTransaction transaction; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext=MainActivity.this; mQueue = ApplicationController.getInstance().getRequestQueue(); mImageLoader = new ImageLoader(mQueue, new BitmapCache()); if (savedInstanceState==null){ pendingIntroAnimation=true; } Bmob.initialize(mContext,"d3ec31d05d5dd780ced301c5c81431ee"); initView(); if (pendingIntroAnimation){ // startIntroAnimation(); } setTabSelection(0); EventBus.getDefault().register(this); } private void initView() { mUserHead= (ImageView) findViewById(R.id.iv_user_head); User mUser= BmobUser.getCurrentUser(mContext,User.class); if (mUser!=null){ if (mUser.getHead_thumb()!=null) { Picasso.with(mContext).load(mUser.getHead_thumb().getFileUrl(mContext)).transform(new CircleTransformation()).into(mUserHead); }else { Picasso.with(context).load(R.mipmap.ic_user).transform(new CircleTransformation()).into(mUserHead); } }else{ // Bitmap bitmap= BitmapUtil.transform(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_user)); // mUserHead.setImageBitmap(bitmap); Picasso.with(context).load(R.mipmap.ic_user).transform(new CircleTransformation()).into(mUserHead); } mUserName= (TextView) findViewById(R.id.tv_user_name); mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); final ActionBar actionBar = getSupportActionBar(); actionBar.setHomeAsUpIndicator(R.mipmap.ic_menu); actionBar.setDisplayHomeAsUpEnabled(true); mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_main_drawer); mNavigationView = (NavigationView) findViewById(R.id.nv_main_navigation); mNavigationView.getMenu().getItem(0).setChecked(true); if (mNavigationView != null) { setupDrawerContent(mNavigationView); } mUserHead.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if ( BmobUser.getCurrentUser(mContext,User.class)==null) { startActivity(new Intent(MainActivity.this, LoginActivity.class)); }else{ Intent intent=new Intent(mContext, UserProfileActivity.class); intent.putExtra(UserProfileActivity.CURRENT_USER,BmobUser.getCurrentUser(mContext,User.class)); startActivity(intent); } } }); } private void startIntroAnimation() { int actionbarSize = DensityUtil.dp2px(MainActivity.this, 56); mToolbar.setTranslationY(-actionbarSize); mToolbar.animate() .translationY(0) .setDuration(700) .setStartDelay(300) .start(); } private void setTabSelection(int index) { transaction = getSupportFragmentManager().beginTransaction(); hideFragments(transaction); switch (index) { case 0: if (mNewsMainFragment==null){ mNewsMainFragment = new NewsMainFragment(); transaction.add(R.id.fl_main_content,mNewsMainFragment); }else { transaction.show(mNewsMainFragment); } break; case 1: if (mTourFragment==null){ mTourFragment = new TourFragment(); transaction.add(R.id.fl_main_content,mTourFragment); }else { transaction.show(mTourFragment); } break; case 2: if (mFoodFragment==null){ mFoodFragment = new VideoFragment(); transaction.add(R.id.fl_main_content,mFoodFragment); }else{ transaction.show(mFoodFragment); } break; case 3: if (mFeedFragment==null){ mFeedFragment = new FeedFragment(); transaction.add(R.id.fl_main_content,mFeedFragment); }else { transaction.show(mFeedFragment); } break; } transaction.commit(); } private void hideFragments(FragmentTransaction transaction) { if (mNewsMainFragment != null) { transaction.hide(mNewsMainFragment); } if (mTourFragment != null) { transaction.hide(mTourFragment); } if (mFoodFragment != null) { transaction.hide(mFoodFragment); } if (mFeedFragment != null) { transaction.hide(mFeedFragment); } } private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.news_yc: setTabSelection(0); mToolbar.setTitle(menuItem.getTitle()); menuItem.setChecked(true); break; case R.id.tour_yc: setTabSelection(1); mToolbar.setTitle(menuItem.getTitle()); menuItem.setChecked(true); break; case R.id.food_yc: setTabSelection(2); mToolbar.setTitle(menuItem.getTitle()); menuItem.setChecked(true); break; case R.id.info_yc: setTabSelection(3); mToolbar.setTitle(menuItem.getTitle()); menuItem.setChecked(true); break; case R.id.setting: break; case R.id.about: break; } mDrawerLayout.closeDrawers(); return true; } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: mDrawerLayout.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } public void onEventMainThread(LoginEvent event){ User mUser= event.getmUser(); if (mUser!=null){ if (mUser.getUsername()!=null) { mUserName.setText(mUser.getUsername()); } BmobFile icon=mUser.getHead_thumb(); if (icon!=null) { Picasso.with(mContext).load(mUser.getHead_thumb().getFileUrl(mContext)).into(mUserHead); }else { Picasso.with(context).load(R.mipmap.ic_user).transform(new CircleTransformation()).into(mUserHead); } } /* if (mFeedFragment!=null){ LogManager.e(TAG, "transaction.replace(R.id.fl_main_content,mFeedFragment); is success!----"); mFeedFragment = new FeedFragment(); transaction.replace(R.id.fl_main_content,mFeedFragment); transaction.commit(); }*/ } @Override protected void onDestroy() { BmobUser.logOut(this); //清除缓存用户对象 super.onDestroy(); SPUtils.put(mContext, ConfigUtil.IS_LOGIN, false); EventBus.getDefault().unregister(this); } }