package pasta.music.adapters;
import android.app.Activity;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import com.afollestad.async.Action;
import java.util.List;
import pasta.music.Pasta;
import pasta.music.data.AlbumListData;
import pasta.music.data.PlaylistListData;
import pasta.music.fragments.OmniFragment;
public class HomePagerAdapter extends FragmentStatePagerAdapter {
Activity activity;
Pasta pasta;
OmniFragment albumFragment;
OmniFragment playlistFragment;
public HomePagerAdapter(final Activity activitiy, final FragmentManager manager) {
super(manager);
this.activity = activitiy;
pasta = (Pasta) activity.getApplicationContext();
albumFragment = new OmniFragment();
playlistFragment = new OmniFragment();
new Action<List<AlbumListData>>() {
@NonNull
@Override
public String id() {
return "getNewReleases";
}
@Nullable
@Override
protected List<AlbumListData> run() throws InterruptedException {
return pasta.getNewAlbums();
}
@Override
protected void done(@Nullable List<AlbumListData> result) {
if (result == null) {
pasta.onCriticalError(activity, "new releases action");
return;
}
albumFragment.addData(result);
}
}.execute();
new Action<List<PlaylistListData>>() {
@NonNull
@Override
public String id() {
return "getFeaturedPlaylists";
}
@Nullable
@Override
protected List<PlaylistListData> run() throws InterruptedException {
return pasta.getFeaturedPlaylists();
}
@Override
protected void done(@Nullable List<PlaylistListData> result) {
if (result == null) {
pasta.onCriticalError(activity, "featured playlists action");
return;
}
playlistFragment.swapData(result);
notifyDataSetChanged();
}
}.execute();
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return albumFragment;
case 1:
return playlistFragment;
default:
return null;
}
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "New Releases";
case 1:
return "Featured";
default:
return null;
}
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
}