package com.android.caigang.view;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.android.caigang.R;
import com.android.caigang.db.DataHelper;
import com.android.caigang.model.UserInfo;
import com.android.caigang.util.AsyncImageLoader;
import com.android.caigang.util.AsyncImageLoader.ImageCallback;
import com.android.caigang.util.TimeUtil;
import com.android.caigang.view.HomeTimeLineActivity.HomeViewHolder;
import com.mime.qweibo.examples.MyWeiboSync;
public class UserInfoActivity extends Activity implements OnItemClickListener{
private String currentNick;
private String name;
private String origtext;
private String timestamp;
private DataHelper dataHelper;
private UserInfo user;
private MyWeiboSync weibo;
private Handler handler;
private AsyncImageLoader asyncImageLoader;
private UserInfoThread thread;
private String weiboid;
private String returnJsonStr;
private JSONObject dataObj ;
private ImageView user_headicon;
private TextView user_nick;
private TextView user_name;
private TextView user_origtext;
private TextView user_time;
private TextView user_sex;
private TextView user_age;
private TextView user_location;
private TextView user_verifyinfo;
private Button user_back_btn;
private Button user_dialog_btn;
private Button user_message_btn;
private GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.user_info);
setUpViews();//����view
setUpListeners();//����listenter
asyncImageLoader = new AsyncImageLoader();
dataHelper = new DataHelper(UserInfoActivity.this);
weibo = new MyWeiboSync();
List<UserInfo> userList = dataHelper.GetUserList(false);
SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE);
String nick = preferences.getString("user_default_nick", "");
if (nick != "") {
user = dataHelper.getUserByName(nick,userList);
}
weibo.setAccessTokenKey(user.getToken());
weibo.setAccessTokenSecrect(user.getTokenSecret());
//��ȡ����һ���洫�ݹ���������
Intent intent = getIntent();
name = intent.getStringExtra("name");
currentNick = intent.getStringExtra("nick");//�dz�
origtext = intent.getStringExtra("origtext");
timestamp = intent.getStringExtra("timestamp");
user_name.setText("@"+name);
user_origtext.setText(origtext);
user_time.setText(timestamp);
handler = new UserInfoHandler();
thread = new UserInfoThread();
thread.start();//����һ���̻߳�ȡ����
}
private void setUpViews(){
user_headicon = (ImageView) findViewById(R.id.user_headicon);
user_nick = (TextView) findViewById(R.id.user_nick);
user_name = (TextView) findViewById(R.id.user_name);
user_origtext = (TextView) findViewById(R.id.user_origtext);
user_time = (TextView) findViewById(R.id.user_time);
user_sex = (TextView) findViewById(R.id.user_sex);
user_age = (TextView) findViewById(R.id.user_age);
user_location = (TextView) findViewById(R.id.user_location);
user_verifyinfo = (TextView) findViewById(R.id.user_verifyinfo);
user_back_btn = (Button) findViewById(R.id.user_back_btn);
user_dialog_btn = (Button) findViewById(R.id.user_dialog_btn);
user_message_btn = (Button) findViewById(R.id.user_message_btn);
gridView = (GridView)findViewById(R.id.user_grid);
}
private void setUpListeners(){
gridView.setOnItemClickListener(this);
}
class UserInfoThread extends Thread {
@Override
public void run() {
returnJsonStr = weibo.getUserInfoByName(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), name);
//֪ͨhandler��������
Message msg = handler.obtainMessage();
handler.sendMessage(msg);
}
}
class UserInfoHandler extends Handler {
@Override
public void handleMessage(Message msg){
Drawable cachedImage;
try {
dataObj = new JSONObject(returnJsonStr).getJSONObject("data");
cachedImage = asyncImageLoader.loadDrawable(dataObj.getString("head")+"/100",user_headicon, new ImageCallback(){
@Override
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {
imageView.setImageDrawable(imageDrawable);
}
});
if (cachedImage == null) {
user_headicon.setImageResource(R.drawable.icon);
} else {
user_headicon.setImageDrawable(cachedImage);
}
user_nick.setText(dataObj.getString("nick"));
user_sex.setText(dataObj.getInt("sex")==1?"��":"Ů");
if(dataObj.getInt("birth_year")!=0){
user_age.setText((Calendar.getInstance().get(Calendar.YEAR)-dataObj.getInt("birth_year"))+"��");
}
user_location.setText(dataObj.getString("location"));
String verifyinfo = dataObj.getString("verifyinfo");
if(verifyinfo==null||"".equals(verifyinfo)){
user_verifyinfo.setText("��һ����,û��ʲô");
}else{
user_verifyinfo.setText(verifyinfo);
}
final List<String> numsList = new ArrayList<String>();
numsList.add(dataObj.getString("tweetnum"));
numsList.add(dataObj.getString("fansnum"));
numsList.add(dataObj.getString("idolnum"));
gridView.setAdapter(new GridAdapter(UserInfoActivity.this, numsList));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
class GridAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
List<String> numList;
public GridAdapter(Context context, List<String> numList) {
super();
this.context = context;
this.numList = numList;
this.inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return numList.size();
}
@Override
public Object getItem(int position) {
return numList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
convertView = inflater.inflate(R.layout.userinfo_grid_item, null);
TextView num = (TextView)convertView.findViewById(R.id.userinfo_grid_num);
TextView title = (TextView)convertView.findViewById(R.id.userinfo_grid_title);
ImageView image = (ImageView)convertView.findViewById(R.id.userinfo_grid_image);
switch (position) {
case 0:
num.setText(numList.get(0));
title.setText("�㲥");
image.setVisibility(View.VISIBLE);
break;
case 1:
num.setText(numList.get(1));
title.setText("����");
image.setVisibility(View.VISIBLE);
break;
case 2:
num.setText(numList.get(2));
title.setText("����");
break;
default:
break;
}
return convertView;
}
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){
switch (position) {
case 0:
Intent intent = new Intent(UserInfoActivity.this,TweetsActivity.class);
intent.putExtra("name", name);
intent.putExtra("nick",currentNick);
startActivity(intent);
break;
case 1:
Intent intent2 = new Intent(UserInfoActivity.this,FansActivity.class);
intent2.putExtra("name", name);
intent2.putExtra("nick",currentNick);
startActivity(intent2);
break;
case 2:
Intent intent3 = new Intent(UserInfoActivity.this,IdolActivity.class);
intent3.putExtra("name", name);
intent3.putExtra("nick",currentNick);
startActivity(intent3);
break;
default:
break;
}
}
}