package com.shaweibo.biu.ui.picture;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.ViewGroup;
import com.shaweibo.biu.R;
import com.shaweibo.biu.Utils.SystemBarUtils;
import com.shaweibo.biu.model.MessageModel;
import com.shaweibo.biu.ui.common.BaseActivity;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
public class PicsActivity extends BaseActivity implements OnPageChangeListener {
public static void start(Activity from, MessageModel bean, int index) {
Intent intent = new Intent(from, PicsActivity.class);
intent.putExtra("bean", bean);
intent.putExtra("index", index);
from.startActivity(intent);
}
@InjectView(R.id.viewPager_pics)
ViewPager viewPager;
@InjectView( R.id.toolbar)
Toolbar toolbar;
@InjectView( R.id.multiple_actions)
FloatingActionsMenu mFloatingMenu;
@OnClick( R.id.action_ori_photo)
void viewOrigPic(){
mFloatingMenu.collapse();
int current=viewPager.getCurrentItem();
PictureFragment picFgm= (PictureFragment) myViewPagerAdapter.getItem(current);
if(picFgm!=null)
picFgm.loadOrigImage();
}
@OnClick( R.id.action_save)
void savePic(){
mFloatingMenu.collapse();
int current=viewPager.getCurrentItem();
PictureFragment picFgm= (PictureFragment) myViewPagerAdapter.getItem(current);
if(picFgm!=null)
picFgm.savePic();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
onBackPressed();
}
return super.onOptionsItemSelected(item);
}
private MessageModel mBean;
private int index;
MyViewPagerAdapter myViewPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// AisenUtils.setPicStatusBar(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pics);
ButterKnife.inject(this);
setSupportActionBar(toolbar);
// initStatusBar();
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mBean = savedInstanceState == null ? (MessageModel) getIntent().getParcelableExtra("bean")
: (MessageModel) savedInstanceState.getParcelable("bean");
index = savedInstanceState == null ? getIntent().getIntExtra("index", 0)
: savedInstanceState.getInt("index", 0);
myViewPagerAdapter = new MyViewPagerAdapter(getFragmentManager());
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(this);
viewPager.setCurrentItem(index);
if (size() > 1 && getSupportActionBar() != null)
getSupportActionBar().setTitle(String.format("%d/%d", index + 1, size()));
else if (getSupportActionBar() != null)
getSupportActionBar().setTitle(String.format("%d/%d", 1, 1));
}
private void initStatusBar(){
if (Build.VERSION.SDK_INT >= 19) {
ViewGroup drawerRoot = (ViewGroup) findViewById(R.id.rl_root);
drawerRoot.setPadding(drawerRoot.getPaddingLeft(),
SystemBarUtils.getStatusBarHeight(this),
drawerRoot.getPaddingRight(),
drawerRoot.getBottom());
}
if (Build.VERSION.SDK_INT >= 19) {
ViewGroup rootMain = (ViewGroup) findViewById(R.id.rl_root);
rootMain.setPadding(rootMain.getPaddingLeft(),
rootMain.getPaddingTop(),
rootMain.getPaddingRight(),
rootMain.getBottom() + SystemBarUtils.getNavigationBarHeight(this));
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("index", index);
outState.putParcelable("bean", mBean);
}
private int size() {
if (mBean.retweeted_status != null) {
return mBean.retweeted_status.pic_urls.size();
}
return mBean.pic_urls.size();
}
private MessageModel.PictureUrl getPicture(int index) {
if (mBean.retweeted_status != null) {
return mBean.retweeted_status .pic_urls.get(index);
}
return mBean.pic_urls.get(index);
}
public MessageModel.PictureUrl getCurrent() {
return getPicture(viewPager.getCurrentItem());
}
protected Fragment newFragment(int position) {
return PictureFragment.newInstance(getPicture(position));
}
class MyViewPagerAdapter extends FragmentPagerAdapter {
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = getFragmentManager().findFragmentByTag(makeFragmentName(position));
if (fragment == null) {
fragment = newFragment(position);
}
return fragment;
}
@Override
public int getCount() {
return size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
// Fragment fragment = getFragmentManager().findFragmentByTag(makeFragmentName(position));
// if (fragment != null)
// .remove(fragment);
}
private String makeFragmentName(long id) {
return "android:switcher:" + R.id.viewPager_pics+ ":" + id;
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int index) {
this.index = index;
getSupportActionBar().setTitle(String.format("%d/%d", index + 1, size()));
PictureFragment fragment = (PictureFragment) myViewPagerAdapter.getItem(index);
// if (fragment != null)
// fragment.onStripTabRequestData();
}
// @Override
// protected int configTheme() {
// return R.style.AppTheme_Pics;
// }
}