package com.kenny.openimgur.fragments;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.kenny.openimgur.R;
import com.kenny.openimgur.api.ApiClient;
import com.kenny.openimgur.classes.ImgurUser;
import com.kenny.openimgur.util.ViewUtils;
import com.kennyc.view.MultiStateView;
/**
* Created by kcampagna on 12/23/14.
*/
public class ProfileSubmissionsFragment extends BaseGridFragment {
private static final String KEY_USER = "user";
private ImgurUser mSelectedUser;
public static ProfileSubmissionsFragment newInstance(@NonNull ImgurUser user) {
ProfileSubmissionsFragment fragment = new ProfileSubmissionsFragment();
Bundle args = new Bundle(1);
args.putParcelable(KEY_USER, user);
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_gallery, container, false);
}
@Override
protected void fetchGallery() {
super.fetchGallery();
ApiClient.getService().getProfileSubmissions(mSelectedUser.getUsername(), mCurrentPage).enqueue(this);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(KEY_USER, mSelectedUser);
}
@Override
protected void onRestoreSavedInstance(Bundle savedInstanceState) {
super.onRestoreSavedInstance(savedInstanceState);
if (savedInstanceState != null) {
mSelectedUser = savedInstanceState.getParcelable(KEY_USER);
} else {
mSelectedUser = getArguments().getParcelable(KEY_USER);
}
if (mSelectedUser == null) {
throw new IllegalArgumentException("Profile must be supplied to fragment");
}
}
@Override
protected void onEmptyResults() {
mHasMore = false;
mIsLoading = false;
if (getAdapter() == null || getAdapter().isEmpty()) {
String errorMessage = getString(R.string.profile_no_submissions, mSelectedUser.getUsername());
ViewUtils.setErrorText(mMultiStateView, R.id.errorMessage, errorMessage);
mMultiStateView.setViewState(MultiStateView.VIEW_STATE_ERROR);
}
}
}