package net.coding.program.login;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import net.coding.program.MyApp;
import net.coding.program.R;
import net.coding.program.common.guide.IndicatorView;
import net.coding.program.common.ui.BaseActivity;
import net.coding.program.model.AccountInfo;
import java.util.Calendar;
public class ZhongQiuGuideActivity extends BaseActivity {
public static void showHolidayGuide(Activity activity) {
if (AccountInfo.needDisplayGuide(activity)) {
AccountInfo.markGuideReaded(activity);
Intent intent1 = new Intent(activity, ZhongQiuGuideActivity.class);
activity.startActivity(intent1);
}
}
public static boolean isZhongqiu() {
Calendar calendar = Calendar.getInstance();
// 25,26,27
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
return month == Calendar.SEPTEMBER && 25 <= day && day <= 27;
}
ViewPager mViewPager;
IndicatorView mIndicatorView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zhong_qiu_guide);
mIndicatorView = (IndicatorView) findViewById(R.id.indicatorView);
mViewPager = (ViewPager) findViewById(R.id.viewPager);
pagerAdapter = new HolidayPager(getSupportFragmentManager());
mViewPager.setAdapter(pagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
int indicatorWidth = 0;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d("", String.format("scr1 %d %f %d", position, positionOffset, positionOffsetPixels));
if (position == 1 && positionOffset > 0) {
Fragment fragment1 = getFragment(1);
Fragment fragment2 = getFragment(2);
float alpha = 1 - positionOffset;
fragment1.getView().setAlpha(alpha);
fragment2.getView().setAlpha(alpha);
if (indicatorWidth == 0) {
indicatorWidth = mIndicatorView.getWidth();
}
mIndicatorView.setAlpha(alpha);
mIndicatorView.setX((MyApp.sWidthPix - indicatorWidth) / 2 - positionOffsetPixels);
} else if (position == 2) {
finish();
}
if (positionOffset > 0.5) {
mIndicatorView.setSelect(position + 1);
} else {
mIndicatorView.setSelect(position);
}
}
@Override
public void onPageSelected(int position) {
Log.d("", String.format("scr2 %d", position));
}
@Override
public void onPageScrollStateChanged(int state) {
Log.d("", String.format("scr3 %d", state)); //, positionOffset, positionOffset));
}
private Fragment getFragment(int postion) {
String name1 = makeFragmentName(mViewPager.getId(), postion);
return getSupportFragmentManager().findFragmentByTag(name1);
}
private String makeFragmentName(int viewId, long id) {
return "android:switcher:" + viewId + ":" + id;
}
});
}
@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_zhong_qiu_guide, menu);
return true;
}
@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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
int[] mBackgroundResId = new int[]{
R.drawable.guide_zhongqiu_1,
R.drawable.guide_zhongqiu_2,
0
};
FragmentPagerAdapter pagerAdapter;
class HolidayPager extends FragmentPagerAdapter {
public HolidayPager(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
GuideFragment fragment = new GuideFragment();
Bundle bundle = new Bundle();
bundle.putInt(GuideFragment.ARGUMENT_IMAGE, mBackgroundResId[position]);
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return mBackgroundResId.length;
}
}
public static class GuideFragment extends Fragment {
public static final String ARGUMENT_IMAGE = "ARGUMENT_IMAGE";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.holiday_fragment, container, false);
ImageView imageView = (ImageView) v.findViewById(R.id.image);
int resId = getArguments().getInt(ARGUMENT_IMAGE, 0);
if (resId != 0) {
imageView.setImageResource(resId);
}
return v;
}
}
}