package com.yyquan.jzh.fragment.luntan;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.demievil.library.RefreshLayout;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.melnykov.fab.FloatingActionButton;
import com.squareup.picasso.Picasso;
import com.yyquan.jzh.R;
import com.yyquan.jzh.activity.LuntanToStateActivity;
import com.yyquan.jzh.activity.ShowLuntanActivity;
import com.yyquan.jzh.adapter.LuntanListViewAdapter;
import com.yyquan.jzh.entity.Ip;
import com.yyquan.jzh.entity.News_content;
import com.yyquan.jzh.entity.News_luntan;
import com.yyquan.jzh.entity.User;
import com.yyquan.jzh.util.ToastUtil;
import com.yyquan.jzh.view.CircleImageView;
import com.yyquan.jzh.view.DialogView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import cz.msebera.android.httpclient.Header;
public class LuntanFragment extends Fragment implements View.OnClickListener, AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener, RefreshLayout.OnLoadListener {
private View view;
RefreshLayout mRefreshLayout;
ListView mlistview;
private TextView tv_more;
private ProgressBar pb;
int index = 0;
int news_size;
View footerLayout;
View headLayout;
private ArrayList<News_luntan> mlist;
LuntanListViewAdapter adapter;
FloatingActionButton fab;
Intent intent;
public User user;
CircleImageView iv_icon;
String url_icon = Ip.ip + "/YfriendService/DoGetIcon?name=";
String url = Ip.ip + "/YfriendService/DoGetLunTan";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view == null) {
DialogView.Initial(getActivity(), "正在加载动态......");
intent = getActivity().getIntent();
user = (User) intent.getSerializableExtra("user");
view = inflater.inflate(R.layout.fragment_luntan, container, false);
footerLayout = getActivity().getLayoutInflater().inflate(R.layout.luntan_list_item_more, null);
headLayout = getActivity().getLayoutInflater().inflate(R.layout.luntan_list_item_view, null);
iv_icon = (CircleImageView) headLayout.findViewById(R.id.luntan_imageview_icon);
if (user.getIcon().equals("")) {
if (user.getSex().equals("男")) {
iv_icon.setImageResource(R.mipmap.me_icon_man);
} else {
iv_icon.setImageResource(R.mipmap.me_icon_woman);
}
} else {
if (user.getIcon().substring(0, 4).equals("http")) {
Picasso.with(getActivity()).load(user.getIcon()).resize(200, 200).centerInside().placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).into(iv_icon);
} else {
Picasso.with(getActivity()).load(url_icon + user.getIcon()).resize(200, 200).centerInside().placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).into(iv_icon);
}
}
mlistview = (ListView) view.findViewById(R.id.fragment_luntan_listview);
fab = (FloatingActionButton) view.findViewById(R.id.fab);
fab.attachToListView(mlistview);
fab.setOnClickListener(this);
fab.setColorNormal(getResources().getColor(R.color.title));
fab.setColorPressed(getResources().getColor(R.color.title));
fab.setColorRipple(getResources().getColor(R.color.title));
fab.setShadow(true);
mRefreshLayout = (RefreshLayout) view.findViewById(R.id.fragment_luntan_freshLayout);
tv_more = (TextView) footerLayout.findViewById(R.id.text_more);
pb = (ProgressBar) footerLayout.findViewById(R.id.load_progress_bar);
tv_more.setOnClickListener(this);
mlistview.setOnItemClickListener(this);
mlistview.addFooterView(footerLayout);
mlistview.addHeaderView(headLayout);
mRefreshLayout.setOnRefreshListener(this);
mRefreshLayout.setOnLoadListener(this);
mRefreshLayout.setChildView(mlistview);
mRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
android.R.color.holo_green_dark,
android.R.color.holo_red_light,
android.R.color.holo_orange_dark);
mlistview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// Toast.makeText(getActivity(),i+"",Toast.LENGTH_SHORT).show();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (firstVisibleItem == 0) {
fab.show();
} else {
fab.hide();
}
}
});
DialogView.show();
Message m = h.obtainMessage(1);
m.arg1 = 0;
h.sendMessage(m);
}
return view;
}
public void updateData(String icon) {
Picasso.with(getActivity()).load(url_icon + icon).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerCrop().into(iv_icon);
}
@Override
public void onResume() {
super.onResume();
}
public void update() {
Message m = h.obtainMessage(1);
m.arg1 = 0;
h.sendMessage(m);
if (user.getIcon().equals("")) {
if (user.getSex().equals("男")) {
iv_icon.setImageResource(R.mipmap.me_icon_man);
} else {
iv_icon.setImageResource(R.mipmap.me_icon_woman);
}
} else {
if (user.getIcon().substring(0, 4).equals("http")) {
Picasso.with(getActivity()).load(user.getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerCrop().into(iv_icon);
} else {
Picasso.with(getActivity()).load(url_icon + user.getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerCrop().into(iv_icon);
}
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (view != null) {
ViewGroup vg = (ViewGroup) view.getParent();
vg.removeView(view);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fab:
Intent i = new Intent(getActivity(), LuntanToStateActivity.class);
i.putExtra("user", user);
getActivity().startActivityForResult(i, 200);
break;
case R.id.text_more:
loadData();
break;
}
}
private void loadData() {
index += 10;
if (news_size == mlist.size()) {
tv_more.setText("数据已加载完毕");
tv_more.setEnabled(false);
return;
}
tv_more.setVisibility(View.GONE);
pb.setVisibility(View.VISIBLE);
Message m = h.obtainMessage(1);
m.arg1 = index;
h.sendMessage(m);
}
Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
int limit = msg.arg1;
RequestParams params = new RequestParams();
params.put("action", "search");
params.put("limit", limit + "");
if (limit == 0) {
mlist = new ArrayList<>();
}
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
DialogView.dismiss();
String str = new String(responseBody);
if (str != null) {
JSONObject object = new JSONObject(str);
if (object.getString("code").equals("success")) {
JSONArray array = object.getJSONArray("data");
for (int i = 0; i < array.length(); i++) {
object = array.getJSONObject(i);
News_luntan news = new News_luntan();
User u = new User();
u.setNickname(object.getString("nickname"));
u.setSex(object.getString("sex"));
u.setIcon(object.getString("icon"));
u.setUser(object.getString("user"));
news.setLid(object.getInt("lid"));
news.setUser(u);
news.setTime(object.getString("time"));
news.setContent(object.getString("content"));
news.setImage(object.getString("image"));
news.setLocation(object.getString("location"));
news.setPinglun(object.getString("pinglun_size"));
news_size = object.getInt("state_size");
mlist.add(news);
}
if (index == 0) {
adapter = new LuntanListViewAdapter(getActivity(), mlist);
mlistview.setAdapter(adapter);
mRefreshLayout.setRefreshing(false);
} else {
adapter.setList(mlist);
adapter.notifyDataSetChanged();
tv_more.setVisibility(View.VISIBLE);
pb.setVisibility(View.GONE);
mRefreshLayout.setLoading(false);
}
} else {
}
} else {
Toast.makeText(getActivity(), "暂无数据", Toast.LENGTH_SHORT).show();
mRefreshLayout.setLoading(false);
mRefreshLayout.setRefreshing(false);
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
mRefreshLayout.setLoading(false);
mRefreshLayout.setRefreshing(false);
DialogView.dismiss();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
DialogView.dismiss();
mRefreshLayout.setLoading(false);
mRefreshLayout.setRefreshing(false);
Toast.makeText(getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
}
});
}
}
};
@Override
public void onLoad() {
loadData();
}
@Override
public void onRefresh() {
index = 0;
tv_more.setEnabled(true);
tv_more.setText("加载更多");
tv_more.setVisibility(View.VISIBLE);
pb.setVisibility(View.GONE);
mRefreshLayout.setLoading(false);
Message m = h.obtainMessage(1);
m.arg1 = index;
h.sendMessage(m);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position <= mlist.size()) {
if (position == 0) {
} else {
Intent intent = new Intent(getActivity(), ShowLuntanActivity.class);
intent.putExtra("news_luntan", mlist.get(position - 1));
User user = (User) getActivity().getIntent().getSerializableExtra("user");
intent.putExtra("user", user.getUser());
startActivity(intent);
}
}
}
}