package com.github.paolorotolo.appintro; import android.content.Context; import android.support.annotation.NonNull; import android.view.View; /** * A controller that is used to provide custom indicator implementations and to control their behaviour. * This is used for {@link AppIntro#setCustomIndicator(IndicatorController)} and * {@link AppIntro2#setCustomIndicator(IndicatorController)} */ public interface IndicatorController { /** * Create a new instance of the view to be inserted in the AppIntro layout. * This method is only called once for each creation of the activity. * <p/> * {@link IndicatorController#initialize(int)} is called after this. * * @param context A context to be used for the view instantiation * @return An instance of the indicator view */ View newInstance(@NonNull Context context); /** * Initialize the indicator view with the requested amount of elements. * As with {@link IndicatorController#newInstance(Context)}, this method is only called once for each creation of * the activity as well. * <p/> * {@link IndicatorController#newInstance(Context)} is called before this. * * @param slideCount The amount of slides present in the AppIntro */ void initialize(int slideCount); /** * Select the position for the new page that became selected. * This method is called every time the selected page changed. * * @param index The index of the page that became selected */ void selectPosition(int index); void setSelectedIndicatorColor(int color); void setUnselectedIndicatorColor(int color); }