package com.dreamspace.uucampus.ui;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dreamspace.uucampus.R;
import com.dreamspace.uucampus.common.utils.PreferenceUtils;
import com.dreamspace.uucampus.ui.activity.Search.SearchResultActivity;
import com.dreamspace.uucampus.ui.base.AbsActivity;
import com.igexin.sdk.PushManager;
import com.umeng.update.UmengUpdateAgent;
import java.util.ArrayList;
import java.util.List;
import butterknife.Bind;
/**
* Created by money on 2015/9/14.
*/
public class MainActivity extends AbsActivity implements View.OnClickListener {
@Bind(R.id.home_page_rl)
RelativeLayout homeRl;
@Bind(R.id.shop_rl)
RelativeLayout shopRl;
@Bind(R.id.personal_rl)
RelativeLayout personalRl;
@Bind(R.id.home_select_ll)
LinearLayout homeSelectLl;
@Bind(R.id.home_unselect_ll)
LinearLayout homeUnselectLl;
@Bind(R.id.shop_select_ll)
LinearLayout shopSelectLl;
@Bind(R.id.shop_unselect_ll)
LinearLayout shopUnselectLl;
@Bind(R.id.personal_select_ll)
LinearLayout personalSelectLl;
@Bind(R.id.personal_unselect_ll)
LinearLayout personalUnselectLl;
private List<LinearLayout> mBottomTabs = new ArrayList<LinearLayout>();
private List<Fragment> mFragments = new ArrayList<Fragment>();
private ViewPager mViewPager;
private FragmentPagerAdapter mAdapter;
private TextView centerTitleTv;
private LinearLayout locationLl;//校区地址
private TextView locationTv;
private long lastBackPreeTime = 0;
//当前所在的fragment标号
private int currentIndex = 0;
@Override
protected void onResume() {
super.onResume();
initBottomBar(currentIndex);
}
@Override
protected int getContentView() {
return R.layout.activity_main;
}
@Override
protected void prepareDatas() {
UmengUpdateAgent.setDeltaUpdate(false);//关闭增量更新,增量更新会出现错误
UmengUpdateAgent.update(this);
}
@Override
protected void initViews() {
initView();
initDates();
initListener();
}
@Override
protected View getLoadingTargetView() {
return null;
}
private void initListener() {
homeRl.setOnClickListener(this);
shopRl.setOnClickListener(this);
personalRl.setOnClickListener(this);
}
private void initDates() {
HomeFragment firstFragment = new HomeFragment();
MarketFragment secondFragment = new MarketFragment();
final PersonCenterFragment thirdFragment = new PersonCenterFragment();
mFragments.add(firstFragment);
mFragments.add(secondFragment);
mFragments.add(thirdFragment);
mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public android.support.v4.app.Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
};
mViewPager.setAdapter(mAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position < 2) {
if (position == 0) {
homePageIconSetAlpha(1 - positionOffset);
shopPageIconSetAlpha(positionOffset);
} else if (position == 1) {
shopPageIconSetAlpha(1 - positionOffset);
personalPageIconSetAlpha(positionOffset);
}
}
}
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
currentIndex = 0;
break;
case 1:
currentIndex = 1;
break;
case 2:
currentIndex = 2;
thirdFragment.updateView();
break;
}
//重新加载menu item
invalidateOptionsMenu();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void initView() {
centerTitleTv = (TextView) mToolBar.findViewById(R.id.custom_title_tv);
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
locationLl = (LinearLayout) mToolBar.findViewById(R.id.location_ll);
locationTv = (TextView) mToolBar.findViewById(R.id.location_tv);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
initBottomBar(currentIndex);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
ActionBar actionBar = getSupportActionBar();
MenuItem searchItem = menu.findItem(R.id.action_search);
switch (currentIndex){
case 0:
searchItem.setVisible(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setTitle(getResources().getString(R.string.app_name));
centerTitleTv.setText("");
locationLl.setVisibility(View.VISIBLE);
locationTv.setText(PreferenceUtils.getString(this,PreferenceUtils.Key.LOCATION,getString(R.string.seu)));
break;
case 1:
searchItem.setVisible(true);
actionBar.setDisplayShowTitleEnabled(false);
locationLl.setVisibility(View.GONE);
centerTitleTv.setText(getResources().getString(R.string.seller));
break;
case 2:
searchItem.setVisible(false);
actionBar.setDisplayShowTitleEnabled(false);
locationLl.setVisibility(View.GONE);
centerTitleTv.setText(getResources().getString(R.string.personal_center));
break;
}
return super.onPrepareOptionsMenu(menu);
}
@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();
if(id==R.id.action_search){
readyGo(SearchResultActivity.class);
}
//noinspection SimplifiableIfStatement
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.home_page_rl:
homePageIconSetAlpha(1);
shopPageIconSetAlpha(0);
personalPageIconSetAlpha(0);
mViewPager.setCurrentItem(0, false);
break;
case R.id.shop_rl:
homePageIconSetAlpha(0);
shopPageIconSetAlpha(1);
personalPageIconSetAlpha(0);
mViewPager.setCurrentItem(1, false);
break;
case R.id.personal_rl:
homePageIconSetAlpha(0);
shopPageIconSetAlpha(0);
personalPageIconSetAlpha(1);
mViewPager.setCurrentItem(2, false);
break;
}
}
private void initBottomBar(int index){
switch (index){
case 0:
homeSelectLl.setAlpha(1);
homeUnselectLl.setAlpha(0);
shopSelectLl.setAlpha(0);
shopUnselectLl.setAlpha(1);
personalSelectLl.setAlpha(0);
personalUnselectLl.setAlpha(1);
break;
case 1:
homeSelectLl.setAlpha(0);
homeUnselectLl.setAlpha(1);
shopSelectLl.setAlpha(1);
shopUnselectLl.setAlpha(0);
personalSelectLl.setAlpha(0);
personalUnselectLl.setAlpha(1);
break;
case 2:
homeSelectLl.setAlpha(0);
homeUnselectLl.setAlpha(1);
shopSelectLl.setAlpha(0);
shopUnselectLl.setAlpha(1);
personalSelectLl.setAlpha(1);
personalUnselectLl.setAlpha(0);
break;
}
}
private void homePageIconSetAlpha(float alpha){
homeSelectLl.setAlpha(alpha);
homeUnselectLl.setAlpha(1 - alpha);
}
private void shopPageIconSetAlpha(float alpha){
shopSelectLl.setAlpha(alpha);
shopUnselectLl.setAlpha(1 - alpha);
}
private void personalPageIconSetAlpha(float alpha){
personalSelectLl.setAlpha(alpha);
personalUnselectLl.setAlpha(1 - alpha);
}
@Override
public void onBackPressed() {
if(System.currentTimeMillis() - lastBackPreeTime > 2000){
showToast(getString(R.string.press_again_to_exit));
lastBackPreeTime = System.currentTimeMillis();
}else{
super.onBackPressed();
}
}
}