/*
*
* * Copyright 2015 Van Shu
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
*
*/
package com.mobimvp.cliques.ui.fragment.profile;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.volley.Response;
import com.mobimvp.cliques.R;
import com.mobimvp.cliques.model.Follower;
import com.mobimvp.cliques.model.Shot;
import com.mobimvp.cliques.service.DribbbleApi;
import com.mobimvp.cliques.service.GsonRequest;
import com.mobimvp.cliques.ui.adapter.FollowerAdapter;
import com.mobimvp.cliques.ui.fragment.BaseFragment;
import com.mobimvp.cliques.ui.fragment.BasePageListener;
/**
* Created by Van on 2015/2/15.
*/
public class FollowerProfileFragment extends BaseFragment {
private RecyclerView mRecylerView;
private FollowerAdapter mFollowerAdapter;
public static final int FOLLOWER_PROFILE_FRAGMENT=0x00000001;
public static final int FOLLOWING_PROFILE_FRAGMENT=0x00000002;
public static final String PROFILE_FRAGMENT_TYPE="profile_fragment_type";
public int mCurrentType=FOLLOWER_PROFILE_FRAGMENT;
public int mMode;
public static final int MY_PROFILE=0x0000003;
public static final int OTHER_PROFILE=0x000004;
private View mContentView;
private String userId;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mContentView = inflater.inflate(R.layout.fragment_list_profile, container, false);
mCurrentType=getArguments().getInt(PROFILE_FRAGMENT_TYPE);
userId=getArguments().getString("userId");
if(TextUtils.isEmpty(userId)){
mMode=MY_PROFILE;
}else {
mMode=OTHER_PROFILE;
}
mRecylerView =(RecyclerView)mContentView.findViewById(R.id.recyclerView);
mRecylerView.setHasFixedSize(true);
mRecylerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
return super.onCreateView(inflater,container,savedInstanceState);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
loadData();
setContentView(mContentView);
}
private void loadData(){
if(mCurrentType==FOLLOWER_PROFILE_FRAGMENT&&mMode==MY_PROFILE){
addRequest(new GsonRequest<>(DribbbleApi.getAuthenticatedUserFollowers(), Follower.FollowerRequestData[].class, responseFollowerListener, errorListener));
}else if(mCurrentType==FOLLOWER_PROFILE_FRAGMENT&&mMode==OTHER_PROFILE){
addRequest(new GsonRequest<>(DribbbleApi.getOneUserFollowers(userId), Follower.FollowerRequestData[].class, responseFollowerListener, errorListener));
}else if(mCurrentType==FOLLOWING_PROFILE_FRAGMENT&&mMode==MY_PROFILE) {
addRequest(new GsonRequest<>(DribbbleApi.getAuthenticatedUserFollowing(), Follower.FollowerRequestData[].class, responseFolloweeListener, errorListener));
}else if(mCurrentType==FOLLOWING_PROFILE_FRAGMENT&&mMode==OTHER_PROFILE){
addRequest(new GsonRequest<>(DribbbleApi.getOneUserFollowing(userId), Follower.FollowerRequestData[].class, responseFolloweeListener, errorListener));
}
}
private Response.Listener<Follower.FollowerRequestData[]> responseFollowerListener=new Response.Listener<Follower.FollowerRequestData[]>(){
@Override
public void onResponse(Follower.FollowerRequestData[] response) {
if(response==null){
setEmptyView();
}else{
showResult();
mFollowerAdapter=new FollowerAdapter(getActivity(),response,FollowerAdapter.TYPE_FOLLOWER);
mRecylerView.setAdapter(mFollowerAdapter);
}
}
};
private Response.Listener<Follower.FollowerRequestData[]> responseFolloweeListener=new Response.Listener<Follower.FollowerRequestData[]>(){
@Override
public void onResponse(Follower.FollowerRequestData[] response) {
if(response==null){
setEmptyView();
}else{
showResult();
mFollowerAdapter=new FollowerAdapter(getActivity(),response,FollowerAdapter.TYPE_FOLLOWEE);
mRecylerView.setAdapter(mFollowerAdapter);
}
}
};
}