package com.dinhcv.lifelogpedometer.activity; import android.content.Context; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import com.dinhcv.lifelogpedometer.R; import com.dinhcv.lifelogpedometer.adapter.SnsTopicAdapter; import com.dinhcv.lifelogpedometer.model.structure.pojo.SnsTopicInfo; import com.dinhcv.lifelogpedometer.model.structure.pojo.SnsTopicResponse; import com.dinhcv.lifelogpedometer.network.ApiService; import com.dinhcv.lifelogpedometer.network.ApiUtils; import com.dinhcv.lifelogpedometer.portal.APIResponse; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import butterknife.ButterKnife; import butterknife.OnClick; import retrofit2.Callback; /** * Created by Admin on 8/18/2017. */ public class SnsTopicFragment extends FragmentBase { private ApiService mService; private View mRootView; private RecyclerView mRcvRank; private SnsTopicAdapter mMainAdapter; private Button mBtnRecommendedGroup; private List mSnsTopicList = new ArrayList<>(); private SwipeRefreshLayout mSwipeRefreshTopic; private SnsFragment mSnsFragment; public void setRootFragment(SnsFragment frag) { this.mSnsFragment = frag; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment mRootView = inflater.inflate(R.layout.fragment_sns_topic, container, false); ButterKnife.bind(this, mRootView); initView(); initData(); return mRootView; } @Override public void onAttach(Context context) { super.onAttach(context); Log.i("SonLT FR", "onAttach"); } @Override public void onDetach() { super.onDetach(); Log.i("SonLT FR", "onAttach"); } @Override public void onPause() { super.onPause(); Log.i("SonLT FR", "onPause"); } @Override public void onResume() { super.onResume(); Log.i("SonLT FR", "onResume"); } @Override public void onStart() { super.onStart(); Log.i("SonLT FR", "onStart"); } @Override public void onStop() { super.onStop(); Log.i("SonLT FR", "onStop"); } private void initView() { mMainAdapter = new SnsTopicAdapter(getActivity(), mSnsTopicList); final RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity()); mRcvRank = (RecyclerView) mRootView.findViewById(R.id.rcv_topic); mRcvRank.setLayoutManager(mLayoutManager); mRcvRank.setAdapter(mMainAdapter); mBtnRecommendedGroup = (Button) mRootView.findViewById(R.id.btn_recommended_group); mBtnRecommendedGroup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mSnsFragment.showSnsSearchFragment(); } }); mSwipeRefreshTopic = (SwipeRefreshLayout) mRootView.findViewById(R.id.swipe_topic); mSwipeRefreshTopic.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { getTopicList(); } }); } @OnClick(R.id.btn_my_group) public void showMyGroup(){ mSnsFragment.showSnsMyGroupFragment(); } /** * Init data */ private void initData() { if (mSnsTopicList.size() == 0) { getTopicList(); } else { } } private void getTopicList() { if (!mSwipeRefreshTopic.isRefreshing()) { mSwipeRefreshTopic.setRefreshing(true); } Map map = new HashMap<>(); map.put("token", APIResponse.getInstance().getToken()); mService = ApiUtils.getApiService(); mService.getSnsTopicList(map).enqueue(new Callback() { @Override public void onResponse(retrofit2.Call call, retrofit2.Response response) { if (response.isSuccessful()) { mSnsTopicList = response.body().getResult(); mMainAdapter.updateData(mSnsTopicList); mMainAdapter.notifyDataSetChanged(); Log.i("SonLT", "Success" + mSnsTopicList.size()); } else { int statusCode = response.code(); // handle request errors depending on status code Log.i("SonLT", "Fail " + statusCode); } if (mSwipeRefreshTopic.isRefreshing()) { mSwipeRefreshTopic.setRefreshing(false); } } @Override public void onFailure(retrofit2.Call call, Throwable t) { Log.i("SonLT", "Success"); if (mSwipeRefreshTopic.isRefreshing()) { mSwipeRefreshTopic.setRefreshing(false); } } }); } }