package com.carson.broker;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.text.TextPaint;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.StringRequest;
import com.carson.constant.ConstantForSaveList;
import com.qingmu.jianzhidaren.R;
import com.quark.adapter.BrokerAdapter;
import com.quark.common.JsonUtil;
import com.quark.common.Url;
import com.quark.http.image.CircularImage;
import com.quark.http.image.LoadImage;
import com.quark.jianzhidaren.BaseActivity;
import com.parttime.main.MainTabActivity;
import com.quark.model.BrokerBean;
import com.quark.volley.VolleySington;
public class BrokerActivity extends BaseActivity implements IXListViewListener {
ArrayList<BrokerBean> lists = new ArrayList<BrokerBean>();
XListView list;
private BrokerAdapter adpter;
private String dataUrl;
int pageNumber = 1;
int currentCount = 1;
int page_size = 5;
private String user_id;
private SharedPreferences sp;
private RequestQueue queue;
private ImageView nodata_img;
private CircularImage cover_user_photo;
private String city;
// 当前经纪人个人信息
private String avatar, name;// 头像
private int rank, fans;// 排名、粉丝数
private TextView my_broker_tv, my_funs_tv, name_tv, content_tv;// 排行榜、粉丝数、名字、描述、干得漂亮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_broker_paihangbang);
cover_user_photo = (CircularImage) findViewById(R.id.cover_user_photo);
name_tv = (TextView) findViewById(R.id.broker_name_tv);
TextPaint tp = name_tv.getPaint();
tp.setFakeBoldText(true);
my_broker_tv = (TextView) findViewById(R.id.broker_paiming_tv);
// 排行榜设置粗体
TextPaint tp2 = my_broker_tv.getPaint();
tp2.setFakeBoldText(true);
my_funs_tv = (TextView) findViewById(R.id.broker_fans_num_tv);
content_tv = (TextView) findViewById(R.id.broker_top_content_tv);
nodata_img = (ImageView) findViewById(R.id.nodata_img);
queue = VolleySington.getInstance().getRequestQueue();
setTopTitle("金牌助理排行榜");
setBackButton();
dataUrl = Url.BROKER_LIST + "?token=" + MainTabActivity.token;
sp = getSharedPreferences("jrdr.setting", MODE_PRIVATE);
user_id = sp.getString("userId", "");
city = sp.getString("city", "");
list = (XListView) findViewById(R.id.my_broker_list);
list.setPullLoadEnable(true);
adpter = new BrokerAdapter(BrokerActivity.this, lists);
list.setAdapter(adpter);
// list.setPullRefreshEnable(true);
list.setXListViewListener(this);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
}
});
// 头部显示灰色
RelativeLayout reLayout = (RelativeLayout) findViewById(R.id.top_title_layout);
reLayout.setBackgroundColor(getResources().getColor(
R.color.guanli_common_color));
}
/**
* 清空数据链表
*/
private void init_lists() {
lists = new ArrayList<BrokerBean>();
}
@Override
protected void onResume() {
super.onResume();
init_lists();// 置空数据链表
pageNumber = 1;
getData();
adpter = new BrokerAdapter(BrokerActivity.this, lists);
list.setAdapter(adpter);
}
public void resetData() {
init_lists();// 置空数据链表
pageNumber = 1;
getData();
}
// ========================xlist=================================================
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (lists != null && lists.size() > 0) {
nodata_img.setVisibility(View.GONE);
list.setLoadOver(currentCount, page_size);// 用于是否加载完了
adpter.notifyDataSetChanged();
onLoad();
} else {
nodata_img.setVisibility(View.VISIBLE);
list.setVisibility(View.GONE);
}
if (name == null || "".equals(name)) {
} else {
name_tv.setText(name);
}
if (avatar == null || "".equals(avatar)) {
cover_user_photo
.setImageResource(R.drawable.default_avatar_business);
} else {
checkPhotoExits(avatar, cover_user_photo);
}
if (rank > 0) {
my_broker_tv.setText("No." + rank);
if (rank > 3) {
content_tv.setText("做得不错,继续加油。");
} else {
content_tv.setText("干得漂亮,继续保持!");
}
}
if (fans > 0)
my_funs_tv.setText(String.valueOf(fans) + "粉丝");
};
};
private void onLoad() {
list.stopRefresh();
list.stopLoadMore();
list.setRefreshTime("刚刚");
}
/**
* 分享兼职活动
*/
public void setTopTitle(String titlestr) {
TextView title = (TextView) findViewById(R.id.title);
title.setText(titlestr);
}
/**
* 设置返回按钮
*/
public void setBackButton() {
LinearLayout back_lay = (LinearLayout) findViewById(R.id.left);
back_lay.setVisibility(View.VISIBLE);
back_lay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
public void onRefresh() {
pageNumber = 1;
lists.clear();
getData();
adpter = new BrokerAdapter(BrokerActivity.this, lists);
list.setAdapter(adpter);
}
@Override
public void onLoadMore() {
pageNumber++;
getData();
}
// ======xlist end============
public void getData() {
showWait(true);
StringRequest request = new StringRequest(Request.Method.POST, dataUrl,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject js = new JSONObject(response);
JSONObject jss2 = js
.getJSONObject("responseStatus");
int status = jss2.getInt("status");
// status 1表示获取成功
if (status == 1) {
// 经纪人个人信息
rank = jss2.getInt("rank");// 排名
fans = jss2.getInt("fans");// 粉丝数
name = jss2.getString("name");// 商家自己名字
JSONObject jss = jss2.getJSONObject("company");
avatar = jss.getString("avatar");// 获取个人头像
JSONObject jsss = jss2
.getJSONObject("agentPage");
// 其它经纪人信息列表
JSONArray ls = jsss.getJSONArray("list");
if (ls.length() > 0) {
for (int i = 0; i < ls.length(); i++) {
BrokerBean brokerBean = (BrokerBean) JsonUtil
.jsonToBean(
ls.getJSONObject(i),
BrokerBean.class);
lists.add(brokerBean);
}
}
currentCount = ls.length();
Message msg = handler.obtainMessage();
msg.what = 20;
handler.sendMessage(msg);
} else {
Message msg = handler.obtainMessage();
msg.what = 20;
handler.sendMessage(msg);
}
} catch (JSONException e) {
e.printStackTrace();
Message msg = handler.obtainMessage();
msg.what = 20;
handler.sendMessage(msg);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
showWait(false);
Message msg = handler.obtainMessage();
msg.what = 20;
handler.sendMessage(msg);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("company_id", user_id);
map.put("city", city);
map.put("page_size", page_size + "");
map.put("pn", pageNumber + "");
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
/**
* 判断本地是否存储了之前的照片
*
*/
private void checkPhotoExits(String picName, ImageView iv) {
File mePhotoFold = new File(Environment.getExternalStorageDirectory()
+ "/" + "jzdr/" + "image");
if (!mePhotoFold.exists()) {
mePhotoFold.mkdirs();
}
File f = new File(Environment.getExternalStorageDirectory() + "/"
+ "jzdr/" + "image/" + picName);
if (f.exists()) {
// Bitmap bb_bmp = MyResumeActivity.zoomImg(f, 300, 300);
Bitmap bb_bmp = BitmapFactory.decodeFile(Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/"
+ "image/"
+ picName);
if (bb_bmp != null) {
iv.setImageBitmap(LoadImage.toRoundBitmap(bb_bmp));
} else {
loadpersonPic(picName, iv, 0);
}
} else {
loadpersonPic(picName, iv, 0);
}
}
/**
* @Description: 加载图片
* @author howe
* @date 2014-7-30 下午5:57:52
*
*/
private void loadpersonPic(final String picName, final ImageView imageView,
final int isRound) {
ImageRequest imgRequest = new ImageRequest(Url.GETPIC + picName,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap arg0) {
if (isRound == 1) {
} else {
imageView.setImageBitmap(arg0);
OutputStream output = null;
try {
File mePhotoFold = new File(
Environment
.getExternalStorageDirectory()
+ "/" + "jzdr/" + "image");
if (!mePhotoFold.exists()) {
mePhotoFold.mkdirs();
}
output = new FileOutputStream(
Environment
.getExternalStorageDirectory()
+ "/"
+ "jzdr/"
+ "image/"
+ picName);
arg0.compress(Bitmap.CompressFormat.JPEG, 100,
output);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}, 300, 200, Config.ARGB_8888, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
queue.add(imgRequest);
imgRequest.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
}