/* * * * 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); } } }; }