package com.florianmski.tracktoid.ui.fragments.user;
import android.app.ActionBar;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.florianmski.tracktoid.R;
import com.florianmski.tracktoid.rx.observables.TraktObservable;
import com.florianmski.tracktoid.TraktoidConstants;
import com.florianmski.tracktoid.TraktoidTheme;
import com.florianmski.tracktoid.adapters.RecyclerAdapter;
import com.florianmski.tracktoid.adapters.lists.RecyclerUserAdapter;
import com.florianmski.tracktoid.ui.activities.UserActivity;
import com.florianmski.tracktoid.ui.fragments.base.list.ItemRecyclerViewFragment;
import com.uwetrottmann.trakt.v2.entities.User;
import java.util.List;
import rx.Observable;
public class NetworkFragment extends ItemRecyclerViewFragment<User> implements ActionBar.OnNavigationListener, RecyclerAdapter.OnItemClickListener
{
private String userId;
private int currentSelectedNavigationItem = Title.Friends.ordinal();
private enum Title
{
Friends,
Followers,
Following;
public static String[] titles()
{
String[] titles = new String[Title.values().length];
for(int i = 0; i < titles.length; i++)
titles[i] = Title.values()[i].name();
return titles;
}
public static Title fromPosition(int position)
{
return Title.values()[position];
}
}
@Override
protected RecyclerView.LayoutManager getLayoutManager()
{
return new GridLayoutManager(getActivity(), getResources().getInteger(R.integer.grid_fanart_columns));
}
public NetworkFragment() {}
public static NetworkFragment newInstance(String userId)
{
NetworkFragment f = new NetworkFragment();
Bundle args = new Bundle();
args.putString(TraktoidConstants.BUNDLE_ID, userId);
f.setArguments(args);
return f;
}
@Override
protected void setupActionBar()
{
// if(getUserVisibleHint() && getActionBar().getNavigationMode() != ActionBar.NAVIGATION_MODE_LIST)
// {
// // TODO
//// getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
//// getActionBar().setListNavigationCallbacks(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, Title.titles()), this);
//// getActionBar().setSelectedNavigationItem(currentSelectedNavigationItem);
// }
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
userId = getArguments().getString(TraktoidConstants.BUNDLE_ID);
setupActionBar();
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
}
@Override
public TraktoidTheme getTheme()
{
return TraktoidTheme.DEFAULT;
}
@Override
public void onItemClick(View v, int position)
{
UserActivity.launch(getActivity(), getAdapter().getItem2(position).username);
}
@Override
protected RecyclerAdapter<User, ?> createAdapter(List<User> items)
{
return new RecyclerUserAdapter(getActivity(), items, this);
}
@Override
protected Observable<List<User>> createObservable()
{
return Observable.create(new TraktObservable<List<User>>()
{
@Override
public List<User> fire()
{
// TODO
// int itemSelected = getActionBar().getSelectedNavigationIndex();
// Title t = Title.fromPosition(itemSelected == -1 ? currentSelectedNavigationItem : itemSelected);
//
// switch(t)
// {
// case Friends:
// return TraktManager.getInstance().users().friends(userId);
// case Followers:
// return TraktManager.getInstance().users().followers(userId);
// case Following:
// return TraktManager.getInstance().users().following(userId);
// default:
// throw new UnsupportedOperationException();
// }
return null;
}
});
}
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
if(currentSelectedNavigationItem == itemPosition)
return false;
else
{
refresh(true);
currentSelectedNavigationItem = itemPosition;
}
return true;
}
}