package com.github.paolorotolo.appintro;
import android.content.Context;
import android.graphics.PorterDuff;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.ProgressBar;
public class ProgressIndicatorController implements IndicatorController {
public final static int DEFAULT_COLOR = 1;
private static final int FIRST_PAGE_NUM = 0;
int selectedDotColor = DEFAULT_COLOR;
int unselectedDotColor = DEFAULT_COLOR;
private ProgressBar mProgressBar;
@Override
public View newInstance(@NonNull Context context) {
mProgressBar = (ProgressBar) View.inflate(context, R.layout.progress_indicator, null);
if (selectedDotColor != DEFAULT_COLOR)
mProgressBar.getProgressDrawable().setColorFilter(selectedDotColor,
PorterDuff.Mode.SRC_IN);
if (unselectedDotColor != DEFAULT_COLOR)
mProgressBar.getIndeterminateDrawable().setColorFilter(unselectedDotColor,
PorterDuff.Mode.SRC_IN);
return mProgressBar;
}
@Override
public void initialize(int slideCount) {
mProgressBar.setMax(slideCount);
selectPosition(FIRST_PAGE_NUM);
}
@Override
public void selectPosition(int index) {
mProgressBar.setProgress(index + 1);
}
@Override
public void setSelectedIndicatorColor(int color) {
this.selectedDotColor = color;
if (mProgressBar != null)
mProgressBar.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
}
@Override
public void setUnselectedIndicatorColor(int color) {
this.unselectedDotColor = color;
if (mProgressBar != null)
mProgressBar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
}
}