package io.evercam.androidapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import io.evercam.androidapp.utils.Constants;
public class SlideActivity extends ParentActivity implements OnPageChangeListener
{
private final String TAG = "SlideActivity";
private ViewPager viewPager;
private ViewPagerAdapter viewPagerAdapter;
private List<View> views;
private ImageView[] dots;
private static final int[] pics = {R.drawable.play_page_intro, R.drawable.play_page_feature,
R.drawable.play_page_next};
private int currentIndex;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.indexslide);
initSlideView();
initDots();
initLinks();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == Constants.REQUEST_CODE_SIGN_IN || requestCode == Constants
.REQUEST_CODE_SIGN_UP)
{
if(resultCode == Constants.RESULT_TRUE)
{
finish();
startActivity(new Intent(this, MainActivity.class));
}
}
}
private void initSlideView()
{
views = new ArrayList<>();
LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(LayoutParams
.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
for(int index = 0; index < pics.length; index++)
{
ImageView imageView = new ImageView(this);
imageView.setLayoutParams(mParams);
imageView.setImageResource(pics[index]);
views.add(imageView);
}
viewPager = (ViewPager) findViewById(R.id.page);
viewPagerAdapter = new ViewPagerAdapter(views);
viewPager.setAdapter(viewPagerAdapter);
viewPager.setOnPageChangeListener(this);
}
private void initLinks()
{
TextView loginTextView = (TextView) findViewById(R.id.text_login);
TextView signUpTextView = (TextView) findViewById(R.id.text_signup);
loginTextView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent login = new Intent(SlideActivity.this, LoginActivity.class);
startActivityForResult(login, Constants.REQUEST_CODE_SIGN_IN);
}
});
signUpTextView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent signup = new Intent(SlideActivity.this, SignUpActivity.class);
startActivityForResult(signup, Constants.REQUEST_CODE_SIGN_UP);
}
});
}
private void initDots()
{
LinearLayout dotLayout = (LinearLayout) findViewById(R.id.dot_layout);
dots = new ImageView[pics.length];
for(int index = 0; index < pics.length; index++)
{
dots[index] = (ImageView) dotLayout.getChildAt(index);
dots[index].setEnabled(true);
dots[index].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
int position = (Integer) view.getTag();
setCurrentView(position);
setCurrentDot(position);
}
});
dots[index].setTag(index);
}
currentIndex = 0;
dots[currentIndex].setEnabled(false);
}
private void setCurrentView(int position)
{
if(position < 0 || position >= pics.length)
{
return;
}
viewPager.setCurrentItem(position);
}
private void setCurrentDot(int positon)
{
if(positon < 0 || positon > pics.length - 1 || currentIndex == positon)
{
return;
}
dots[positon].setEnabled(false);
dots[currentIndex].setEnabled(true);
currentIndex = positon;
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageSelected(int position)
{
setCurrentDot(position);
}
private class ViewPagerAdapter extends PagerAdapter
{
private List<View> views;
public ViewPagerAdapter(List<View> views)
{
this.views = views;
}
@Override
public void destroyItem(View view, int position, Object arg2)
{
((ViewPager) view).removeView(views.get(position));
}
@Override
public int getCount()
{
if(views != null)
{
return views.size();
}
return 0;
}
@Override
public Object instantiateItem(View view, int position)
{
((ViewPager) view).addView(views.get(position), 0);
return views.get(position);
}
@Override
public boolean isViewFromObject(View view, Object object)
{
return (view == object);
}
}
}