package com.florianmski.tracktoid.ui.fragments.base.switcher;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import com.florianmski.tracktoid.TraktoidTheme;
public abstract class SwitchShowMovieFragment extends SwitchFragment
{
private enum State
{
SHOW,
MOVIE
}
// by default, display fragment linked to shows
// later we can persist this in SharedPreference so user is always greeted with the context he prefers
// this allow the user to stay in the same context (movie or show) if he switch fragment
// for instance Library (movie) -> Search (movie)
private static State currentState = State.SHOW;
public abstract Fragment getShowFragment();
public abstract Fragment getMovieFragment();
public SwitchShowMovieFragment() {}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
}
@Override
public Fragment getFragment(int index)
{
switch(currentState = State.values()[index])
{
case SHOW:
return getShowFragment();
case MOVIE:
return getMovieFragment();
}
throw new UnsupportedOperationException();
}
@Override
public int getCount()
{
return State.values().length;
}
@Override
protected void replaceFragment(Fragment previousFragment, Fragment nextFragment)
{
super.replaceFragment(previousFragment, nextFragment);
setupFAB();
}
@Override
public int getDefaultIndex()
{
return currentState.ordinal();
}
private void setupFAB()
{
// switch to correct color for FAB
TraktoidTheme theme = getTheme();
fab.setTheme(theme == TraktoidTheme.MOVIE ? TraktoidTheme.SHOW : TraktoidTheme.MOVIE);
getActionBar().setSubtitle(theme == TraktoidTheme.MOVIE ? "Movie" : "Show");
}
}