package com.sun.bingo.ui.activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import com.sun.bingo.R; import com.sun.bingo.control.NavigateManager; import com.sun.bingo.model.eventbus.EventEntity; import com.sun.bingo.model.eventbus.EventType; import com.sun.bingo.ui.fragment.MineFragment; import com.sun.bingo.ui.fragment.MsgFragment; import com.sun.bingo.ui.fragment.SquareBingoFragment; import com.sun.bingo.util.update.DownloadApk; import com.sun.bingo.widget.IconWithTextView; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by sunfusheng on 16/4/14. */ public class MainV2Activity extends BaseActivity implements ViewPager.OnPageChangeListener { @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.view_pager) ViewPager viewPager; @BindView(R.id.tab_home) IconWithTextView tabHome; @BindView(R.id.rl_tab_home) RelativeLayout rlTabHome; @BindView(R.id.tab_msg) IconWithTextView tabMsg; @BindView(R.id.rl_tab_msg) RelativeLayout rlTabMsg; @BindView(R.id.tab_mine) IconWithTextView tabMine; @BindView(R.id.rl_tab_mine) RelativeLayout rlTabMine; @BindView(R.id.iv_mine_dot) ImageView ivMineDot; private List<IconWithTextView> mTabIconList = new ArrayList<>(); private List<Fragment> mFragmentList = new ArrayList<>(); private FragmentPagerAdapter mAdapter; private MineFragment mineFragment; private int pageSelectedPosition = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_v2); ButterKnife.bind(this); EventBus.getDefault().register(this); initData(); initView(); initListener(); } private void initData() { mTabIconList.add(tabHome); mTabIconList.add(tabMsg); mTabIconList.add(tabMine); mineFragment = new MineFragment(); mFragmentList.add(new SquareBingoFragment()); mFragmentList.add(new MsgFragment()); mFragmentList.add(mineFragment); mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { return mTabIconList.size(); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } }; checkVersion(); } private void checkVersion() { if (!TextUtils.isEmpty(getAccountSharedPreferences().ignore_version_name())) { ivMineDot.setVisibility(View.VISIBLE); getAccountSharedPreferences().is_need_update(true); if (mineFragment != null) { mineFragment.showDot(true); } } else { new DownloadApk(this).checkVersion(false); } } private void initView() { initToolBar(toolbar, false, R.string.app_name); viewPager.setOffscreenPageLimit(2); viewPager.setAdapter(mAdapter); resetTabList(); tabHome.setIconAlpha(1.0f); viewPager.setCurrentItem(0, false); } private void initListener() { rlTabHome.setOnClickListener(this); rlTabMsg.setOnClickListener(this); rlTabMine.setOnClickListener(this); viewPager.addOnPageChangeListener(this); } @Override public void onClick(View v) { super.onClick(v); resetTabList(); switch (v.getId()) { case R.id.rl_tab_home: tabHome.setIconAlpha(1.0f); viewPager.setCurrentItem(0, false); break; case R.id.rl_tab_msg: tabMsg.setIconAlpha(1.0f); viewPager.setCurrentItem(1, false); break; case R.id.rl_tab_mine: tabMine.setIconAlpha(1.0f); viewPager.setCurrentItem(2, false); break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main_v2, menu); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { return super.onPrepareOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add: if (pageSelectedPosition == 1) { NavigateManager.gotoEditNewBingoActivity(mActivity, ""); } else { NavigateManager.gotoSpecifiedActivity(mActivity, AddBingoActivity.class); } return true; case R.id.item_github: NavigateManager.gotoWebPageActivity(mContext, getString(R.string.title_github), getString(R.string.url_github)); return true; case R.id.item_jianshu: NavigateManager.gotoWebPageActivity(mContext, getString(R.string.title_jianshu), getString(R.string.url_jianshu)); return true; case R.id.item_blog: NavigateManager.gotoWebPageActivity(mContext, getString(R.string.title_blog), getString(R.string.url_blog)); return true; case R.id.item_weibo: NavigateManager.gotoWebPageActivity(mContext, getString(R.string.title_weibo), getString(R.string.url_weibo)); return true; default: return super.onOptionsItemSelected(item); } } private void resetTabList() { for (int i = 0; i < mTabIconList.size(); i++) { mTabIconList.get(i).setIconAlpha(0.0f); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (positionOffset > 0) { IconWithTextView left = mTabIconList.get(position); IconWithTextView right = mTabIconList.get(position + 1); left.setIconAlpha(1 - positionOffset); right.setIconAlpha(positionOffset); } } @Override public void onPageSelected(int position) { pageSelectedPosition = position; } @Override public void onPageScrollStateChanged(int state) {} @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MAIN) public void eventBusListener(EventEntity event) { switch (event.getType()) { case EventType.EVENT_TYPE_CHANGE_THEME: recreate(); break; case EventType.EVENT_TYPE_UPDATE_APP: ivMineDot.setVisibility(event.getArg1() == 0? View.VISIBLE:View.INVISIBLE); getAccountSharedPreferences().is_need_update(event.getArg1() == 0? true:false); if (mineFragment != null) { mineFragment.showDot(event.getArg1() == 0? true:false); } break; } } }