package lb.com.parallaxviewpagers.demo;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.LayoutParams;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.concurrent.atomic.AtomicReference;

import lb.com.parallaxviewpagers.ParallaxOnPageChangeListener;

public class MainActivity extends AppCompatActivity
  {

  @Override
  protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ViewPager viewPager=(ViewPager)findViewById(R.id.viewPager);
    final ViewPager viewPager2=(ViewPager)findViewById(R.id.viewPager2);
    viewPager.setAdapter(new MyPagerAdapter());
    viewPager2.setAdapter(new MyPagerAdapter());
    /**the current master viewPager*/
    AtomicReference<ViewPager> masterRef=new AtomicReference<>();
    viewPager.addOnPageChangeListener(new ParallaxOnPageChangeListener(viewPager,viewPager2,masterRef));
    viewPager2.addOnPageChangeListener(new ParallaxOnPageChangeListener(viewPager2,viewPager,masterRef));
    }

  private class MyPagerAdapter extends PagerAdapter
    {
    int[] colors=new int[]{0xffff0000,0xff00ff00,0xff0000ff};

    @Override
    public int getCount()
      {
      return 3;
      }

    @Override
    public void destroyItem(ViewGroup container,int position,Object object)
      {
      ((ViewPager)container).removeView((View)object);
      }

    @Override
    public boolean isViewFromObject(final View view,final Object object)
      {
      return (view==object);
      }

    @Override
    public Object instantiateItem(final ViewGroup container,final int position)
      {
      TextView textView=new TextView(MainActivity.this);
      textView.setText("item"+position);
      textView.setBackgroundColor(colors[position]);
      textView.setGravity(Gravity.CENTER);
      final LayoutParams params=new LayoutParams();
      params.height=LayoutParams.MATCH_PARENT;
      params.width=LayoutParams.MATCH_PARENT;
      params.gravity=Gravity.CENTER;
      textView.setLayoutParams(params);
      textView.setTextColor(0xff000000);
      container.addView(textView);
      return textView;
      }
    }

  @Override
  public boolean onCreateOptionsMenu(final android.view.Menu menu)
    {
    getMenuInflater().inflate(R.menu.activity_main,menu);
    return super.onCreateOptionsMenu(menu);
    }

  @SuppressWarnings("deprecation")
  @Override
  public boolean onOptionsItemSelected(final android.view.MenuItem item)
    {
    String url=null;
    switch(item.getItemId())
      {
      case R.id.menuItem_all_my_apps:
        url="https://play.google.com/store/apps/developer?id=AndroidDeveloperLB";
        break;
      case R.id.menuItem_all_my_repositories:
        url="https://github.com/AndroidDeveloperLB";
        break;
      case R.id.menuItem_current_repository_website:
        url="https://github.com/AndroidDeveloperLB/ParallaxViewPagers";
        break;
      }
    if(url==null)
      return true;
    final android.content.Intent intent=new android.content.Intent(android.content.Intent.ACTION_VIEW,android.net.Uri.parse(url));
    intent.addFlags(android.content.Intent.FLAG_ACTIVITY_NO_HISTORY|android.content.Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    intent.addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK|android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
    startActivity(intent);
    return true;
    }
  }