package com.yyquan.jzh.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
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.squareup.picasso.Picasso;
import com.tencent.android.tpush.XGPushClickedResult;
import com.tencent.android.tpush.XGPushManager;
import com.yyquan.jzh.R;
import com.yyquan.jzh.adapter.LunTanPingLunListViewAdapter;
import com.yyquan.jzh.adapter.PingLunListViewAdapter;
import com.yyquan.jzh.entity.Ip;
import com.yyquan.jzh.entity.News_luntan;
import com.yyquan.jzh.entity.News_pinglun;
import com.yyquan.jzh.entity.User;
import com.yyquan.jzh.location.Location;
import com.yyquan.jzh.util.SaveUserUtil;
import com.yyquan.jzh.util.SharedPreferencesUtil;
import com.yyquan.jzh.view.CircleImageView;
import com.yyquan.jzh.view.DialogView;
import com.yyquan.jzh.xmpp.XmppTool;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import cz.msebera.android.httpclient.Header;
/**
* Created by jzh on 2015/11/8.
*/
public class ShowLuntanActivity extends Activity implements View.OnClickListener, SwipeRefreshLayout.OnRefreshListener, RefreshLayout.OnLoadListener {
RefreshLayout mRefreshLayout;
LinearLayout ll_back;
ListView mlistview;
View footerLayout;
String url_icon = Ip.ip + "/YfriendService/DoGetIcon?name=";
Intent intent;
News_luntan news_luntan;
//String user;
private TextView tv_location;
private TextView tv_pinglun_total;
private TextView tv_uppinglun;
private EditText et_pinglun;
private CircleImageView iv_icon;
GridView gv;
private TextView tv_name;
private TextView tv_time;
private TextView tv_content;
String url = Ip.ip + "/YfriendService/DoGetLunTan";
ArrayList<News_pinglun> list;
LunTanPingLunListViewAdapter adapter;
private TextView tv_more;
private ProgressBar pb;
int pinglun_size;
int index = 0;
Location lt;
InputMethodManager imm;//键盘管理器
User users;
XGPushClickedResult result;
boolean xg_bool = false;
public static ShowLuntanActivity instance;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_luntan);
instance=this;
users = SaveUserUtil.loadAccount(this);
result = XGPushManager.onActivityStarted(ShowLuntanActivity.this);
if (result != null) {
xg_bool = true;
// 获取自定义key-value
String customContent = result.getCustomContent();
if (customContent != null && customContent.length() != 0) {
try {
JSONObject obj = new JSONObject(customContent);
// key1为前台配置的key
if (!obj.isNull("data")) {
news_luntan = new News_luntan();
String data = obj.getString("data");
JSONObject object = new JSONObject(data);
User userr = new User();
userr.setUser(object.getString("user"));
userr.setNickname(object.getString("nickname"));
userr.setIcon(object.getString("icon"));
userr.setSex(object.getString("sex"));
news_luntan.setUser(userr);
news_luntan.setLid(object.getInt("lid"));
news_luntan.setContent(object.getString("content"));
news_luntan.setImage(object.getString("image"));
news_luntan.setTime(object.getString("time"));
news_luntan.setLocation(object.getString("location"));
}
// ...
} catch (JSONException e) {
e.printStackTrace();
}
}
} else {
intent = getIntent();
news_luntan = (News_luntan) intent.getSerializableExtra("news_luntan");
}
initialView();
}
private void initialView() {
imm = (InputMethodManager) getSystemService(this.INPUT_METHOD_SERVICE);
DialogView.Initial(this, "正在评论......");
lt = new Location(this);
list = new ArrayList<>();
final String[] grid_img = news_luntan.getImage().split(";");
ll_back = (LinearLayout) findViewById(R.id.show_luntan_layout_back);
ll_back.setOnClickListener(this);
footerLayout = getLayoutInflater().inflate(R.layout.list_item_more, null);
if (news_luntan.getImage().equals("")) {
} else {
gv = (GridView) findViewById(R.id.show_luntan_gridview);
gv.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return grid_img.length;
}
@Override
public Object getItem(int position) {
return grid_img[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(ShowLuntanActivity.this).inflate(R.layout.layout_imagview, null);
holder.iv = (ImageView) convertView.findViewById(R.id.imageView);
holder.iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ShowLuntanActivity.this, ShowImageActivity.class);
intent.putExtra("str[]", grid_img);
intent.putExtra("type", "luntan");
intent.putExtra("number", position);
startActivity(intent);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final String urlpath = Ip.ip + "/YfriendService/DoGetLunTan?action=search_image&name=" + grid_img[position];
Picasso.with(ShowLuntanActivity.this)
.load(urlpath)
.resize(200, 200).centerCrop()
.placeholder(R.mipmap.aio_image_default_round)
.error(R.mipmap.aio_image_default_round)
.into(holder.iv);
return convertView;
}
});
}
tv_more = (TextView) footerLayout.findViewById(R.id.text_more);
tv_more.setOnClickListener(this);
pb = (ProgressBar) footerLayout.findViewById(R.id.load_progress_bar);
iv_icon = (CircleImageView) findViewById(R.id.show_luntan_imageview_icon);
tv_name = (TextView) findViewById(R.id.show_luntan_textView_name);
tv_pinglun_total = (TextView) findViewById(R.id.show_luntan_pinglun_total);
tv_uppinglun = (TextView) findViewById(R.id.show_luntan_text_enterpinglun);
tv_uppinglun.setOnClickListener(this);
et_pinglun = (EditText) findViewById(R.id.show_luntan_editText_pinglun);
tv_location = (TextView) findViewById(R.id.show_luntan_textView_location);
tv_time = (TextView) findViewById(R.id.show_luntan_textView_time);
tv_content = (TextView) findViewById(R.id.show_luntan_textView_content);
tv_name.setText(news_luntan.getUser().getNickname());
if (news_luntan.getLocation().equals("")) {
tv_location.setVisibility(View.GONE);
} else {
tv_location.setVisibility(View.VISIBLE);
tv_location.setText(" " + news_luntan.getLocation());
}
if (news_luntan.getUser().getIcon().equals("")) {
if (news_luntan.getUser().getSex().equals("男")) {
iv_icon.setImageResource(R.mipmap.me_icon_man);
} else {
iv_icon.setImageResource(R.mipmap.me_icon_woman);
}
} else {
if (news_luntan.getUser().getIcon().substring(0, 4).equals("http")) {
Picasso.with(this).load(news_luntan.getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(iv_icon);
} else {
Picasso.with(this).load(url_icon + news_luntan.getUser().getIcon()).resize(200, 200).placeholder(R.mipmap.qq_addfriend_search_friend).error(R.mipmap.qq_addfriend_search_friend).centerInside().into(iv_icon);
}
}
tv_time.setText(news_luntan.getTime());
tv_content.setText(news_luntan.getContent());
mlistview = (ListView) findViewById(R.id.show_luntan_listview);
mRefreshLayout = (RefreshLayout) findViewById(R.id.show_luntan_freshLayout);
mlistview.addFooterView(footerLayout);
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);
getData(news_luntan.getLid(), 0);
}
/**
* 根据文章id获取评论
*
* @param plid
*/
public void getData(int plid, int limit) {
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.put("plid", plid);
params.put("user", users.getUser());
params.put("limit", limit);
params.put("action", "search_pinglun");
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
{
String str = new String(responseBody);
if (str != null) {
try {
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_pinglun pinglun = new News_pinglun();
User users = new User();
users.setNickname(object.getString("nickname"));
pinglun_size = object.getInt("size");
users.setSex(object.getString("sex"));
users.setIcon(object.getString("icon"));
pinglun.setIspzan(object.getString("ispzan"));
JSONObject ob = object.getJSONObject("pdata");
pinglun.setPcid(ob.getInt("pcid"));
pinglun.setPid(ob.getInt("pid"));
pinglun.setPcontent(ob.getString("pcontent"));
pinglun.setPlocation(ob.getString("plocation"));
pinglun.setPtime(ob.getString("ptime"));
pinglun.setPzan(ob.getString("pzan"));
users.setUser(ob.getString("user"));
pinglun.setUser(users);
list.add(pinglun);
}
if (list.size() < 0) {
return;
} else {
}
tv_pinglun_total.setText("热门评论(" + pinglun_size + ")");
// ((NewsContentActivity)getActivity()).pl_size=pinglun_size;
if (index == 0) {
adapter = new LunTanPingLunListViewAdapter(ShowLuntanActivity.this, list, news_luntan.getUser().getUser());
mlistview.setAdapter(adapter);
mlistview.setVisibility(View.VISIBLE);
if (xg_bool) {
xg_bool = false;
mlistview.setSelection(list.size() - 1);
}
} else {
adapter.setList(list);
adapter.notifyDataSetChanged();
tv_more.setVisibility(View.VISIBLE);
pb.setVisibility(View.GONE);
}
} else {
// tv_total.setText("暂无评论");
}
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setLoading(false);
} catch (JSONException e) {
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setLoading(false);
e.printStackTrace();
}
} else {
mRefreshLayout.setLoading(false);
mRefreshLayout.setRefreshing(false);
}
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
mRefreshLayout.setRefreshing(false);
mRefreshLayout.setLoading(false);
}
});
}
/**
* 提交评论
*/
private void upPingLun() {
String pinglun = et_pinglun.getText().toString();
if (pinglun.equals("")) {
Toast.makeText(ShowLuntanActivity.this, "请先评论", Toast.LENGTH_SHORT).show();
return;
}
DialogView.show();
tv_uppinglun.setEnabled(false);
Date date = new Date();
long ptime = date.getTime();
RequestParams params = new RequestParams();
params.put("plid", news_luntan.getLid());
params.put("author", news_luntan.getUser().getUser());
params.put("action", "save_pinglun");
params.put("user", users.getUser());
params.put("plocation", lt.city);
params.put("ptime", ptime);
params.put("pcontent", pinglun);
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
tv_uppinglun.setEnabled(true);
DialogView.dismiss();
String str = new String(responseBody);
if (str != null) {
try {
JSONObject object = new JSONObject(str);
if (object.getString("code").equals("success")) {
Toast.makeText(ShowLuntanActivity.this, "评论成功", Toast.LENGTH_SHORT).show();
et_pinglun.setText("");
if (imm.isActive()) {//关闭键盘
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
}
refreshData();
//更新评论内容
} else {
Toast.makeText(ShowLuntanActivity.this, "评论失败,请重试", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
tv_uppinglun.setEnabled(true);
DialogView.dismiss();
e.printStackTrace();
Toast.makeText(ShowLuntanActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
tv_uppinglun.setEnabled(true);
DialogView.dismiss();
Toast.makeText(ShowLuntanActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.show_luntan_layout_back:
if (result != null) {
if (MainActivity.main == null) {
new Thread() {
@Override
public void run() {
boolean result = XmppTool.getInstance().login(users.getUser(), users.getPassword(), ShowLuntanActivity.this);
if (result) {
Intent intent = new Intent(ShowLuntanActivity.this, MainActivity.class);
intent.putExtra("user", users);
startActivity(intent);
finish();
} else {
finish();
}
}
}.start();
} else {
finish();
}
} else {
finish();
}
break;
case R.id.show_luntan_text_enterpinglun:
upPingLun();
break;
case R.id.text_more:
loadData();
break;
}
}
@Override
public void onLoad() {
loadData();
}
@Override
public void onRefresh() {
refreshData();
}
/**
* 加载更多数据
*/
private void loadData() {
index += 10;
if (pinglun_size == list.size()) {
tv_more.setText("数据已加载完毕");
tv_more.setEnabled(false);
return;
}
tv_more.setVisibility(View.GONE);
pb.setVisibility(View.VISIBLE);
getData(news_luntan.getLid(), index);
}
/**
* 刷新数据
*/
public void refreshData() {
index = 0;
tv_more.setEnabled(true);
tv_more.setText("加载更多");
list = new ArrayList<>();
getData(news_luntan.getLid(), 0);
tv_more.setVisibility(View.VISIBLE);
pb.setVisibility(View.GONE);
mRefreshLayout.setLoading(false);
}
class ViewHolder {
ImageView iv;
}
@Override
protected void onDestroy() {
super.onDestroy();
lt.stopLocation();
instance=null;
}
@Override
public void onBackPressed() {
instance=null;
if (result != null) {
if (MainActivity.main == null) {
new Thread() {
@Override
public void run() {
boolean result = XmppTool.getInstance().login(users.getUser(), users.getPassword(), ShowLuntanActivity.this);
if (result) {
Intent intent = new Intent(ShowLuntanActivity.this, MainActivity.class);
intent.putExtra("user", users);
startActivity(intent);
finish();
} else {
finish();
}
}
}.start();
} else {
finish();
}
} else {
finish();
}
}
}