package com.dinhcv.lifelogpedometer.activity; import android.os.Bundle; import android.support.v4.app.Fragment; 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 android.widget.EditText; import android.widget.ProgressBar; import com.dinhcv.lifelogpedometer.R; import com.dinhcv.lifelogpedometer.adapter.SnsSearchAdapter; import com.dinhcv.lifelogpedometer.model.structure.pojo.SnsSearchInfo; import com.dinhcv.lifelogpedometer.model.structure.pojo.SnsSearchResponse; 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.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import retrofit2.Callback; /** * Created by Admin on 8/18/2017. */ public class SnsSearchFragment extends Fragment { private ApiService mService; private View mRootView; @BindView(R.id.rcv_search_result) RecyclerView mRcvSearch; SnsSearchAdapter mSearchAdapter; List mSnsSearchList = new ArrayList<>(); @BindView(R.id.edt_search_input) EditText mEdtSearchInput; @BindView(R.id.btn_search) Button mBtnSearch; @BindView(R.id.btn_create_group) Button mBtnCreateGroup; @BindView(R.id.pb_seaching) ProgressBar mPbSearcher; 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_search, container, false); ButterKnife.bind(this, mRootView); initView(); return mRootView; } private void initView() { // mRcvSearch = (RecyclerView) mRootView.findViewById(R.id.rcv_search_result); // mPbSearcher =(ProgressBar) mRootView.findViewById(R.id.pb_seaching); // mEdtSearchInput = (EditText) mRootView.findViewById(R.id.edt_search_input); // mBtnSearch = (Button) m mSearchAdapter = new SnsSearchAdapter(getActivity(), mSnsSearchList); final RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity()); mRcvSearch.setLayoutManager(mLayoutManager); mRcvSearch.setAdapter(mSearchAdapter); mSearchAdapter.setOnItemClickListener(new SnsSearchAdapter.ItemClickListener() { @Override public void onItemClick(int position) { Log.i("SonLT", "Item in adapter clicked " + position); if ((mSnsFragment != null) && !mSnsSearchList.isEmpty()) { mSnsFragment.showSnsDetailFragment(mSnsSearchList.get(position)); } } }); mPbSearcher.setVisibility(View.GONE); mBtnSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { handlerSearchAction(mEdtSearchInput.getText().toString(), 0); } }); } @OnClick(R.id.btn_create_group) public void createGroup(){ mSnsFragment.showSnsCreateGroupFragment(); } private void handlerSearchAction(String keyword, int page) { mPbSearcher.setVisibility(View.VISIBLE); mSearchAdapter.clearData(); mSearchAdapter.notifyDataSetChanged(); Map map = new HashMap<>(); map.put("token", APIResponse.getInstance().getToken()); mService = ApiUtils.getApiService(); mService.getSnsSearchList(map, keyword, page).enqueue(new Callback() { @Override public void onResponse(retrofit2.Call call, retrofit2.Response response) { if (response.isSuccessful()) { mSnsSearchList = response.body().getResult(); mSearchAdapter.updateData(mSnsSearchList); mSearchAdapter.notifyDataSetChanged(); Log.i("SonLT", "Success" + mSnsSearchList.size()); } else { int statusCode = response.code(); // handle request errors depending on status code Log.i("SonLT", "Fail " + statusCode); } mPbSearcher.setVisibility(View.GONE); } @Override public void onFailure(retrofit2.Call call, Throwable t) { Log.i("SonLT", "Success"); mPbSearcher.setVisibility(View.GONE); } }); } }