package com.kaixin.android.menu;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.kaixin.android.KXApplication;
import com.kaixin.android.R;
import com.kaixin.android.activity.AboutActivity;
import com.kaixin.android.activity.ChangeWallpagerActivity;
import com.kaixin.android.activity.CheckInActivity;
import com.kaixin.android.activity.ContactsActivity;
import com.kaixin.android.activity.DiaryActivity;
import com.kaixin.android.activity.EditSignatureActivity;
import com.kaixin.android.activity.FriendInfoActivity;
import com.kaixin.android.activity.FriendsActivity;
import com.kaixin.android.activity.HomeDiaryDetailActivity;
import com.kaixin.android.activity.HomePhotoPictureDetailActivity;
import com.kaixin.android.activity.PhoneAlbumActivity;
import com.kaixin.android.activity.PhotoActivity;
import com.kaixin.android.activity.VisitorsActivity;
import com.kaixin.android.activity.PlayVoiceActivity;
import com.kaixin.android.activity.WriteRecordActivity;
import com.kaixin.android.anim.UgcAnimations;
import com.kaixin.android.common.Constants;
import com.kaixin.android.common.KaiXinAddress;
import com.kaixin.android.result.Diary;
import com.kaixin.android.result.FriendInfoResult;
import com.kaixin.android.result.HomeResult;
import com.kaixin.android.result.VisitorsResult;
import com.kaixin.android.ui.base.FlipperLayout.OnOpenListener;
import com.kaixin.android.utils.ActivityForResultUtil;
import com.kaixin.android.utils.CallService;
import com.kaixin.android.utils.CommonUtils;
import com.kaixin.android.utils.ImageUtil;
import com.kaixin.android.utils.StorageUtil;
import com.kaixin.android.utils.StringUtil;
import com.kaixin.android.utils.TextUtil;
import com.kaixin.android.utils.Utils;
import com.nostra13.universalimageloader.core.ImageLoader;
/**
* 用户首页
*
* @author gyz
*
*/
public class User {
private Context mContext;
private Activity mActivity;
private KXApplication mKXApplication;
/**
* 当前界面的View
*/
private View mUser;
/**
* 以下为控件,自己查看布局文件
*/
// 头布局控件
private View mUserHead;
private ImageView mHead_Wallpager;
private ImageView mHead_Avatar;
private TextView mHead_Name;
private ImageView mHead_Gender;
private TextView mHead_Constellation;
private LinearLayout mHead_Sig_Layout;
private TextView mHead_Sig;
private TextView mHead_About;
private TextView mHead_Photo;
private TextView mHead_Diary;
private TextView mHead_Friends;
private Button mRefresh;
private LinearLayout mHead_Friends_List;
private Button mHead_Friends_List_Count;
// Path菜单控件
private View mUgcView;
private RelativeLayout mUgcLayout;
private ImageView mUgc;
private ImageView mUgcBg;
private ImageView mUgcVoice;
private ImageView mUgcPhoto;
private ImageView mUgcRecord;
private ImageView mUgcLbs;
private Button mMenu;
// 显示内容的ListView以及适配器
private ListView mDisplay;
private UserInfoAdapter mAdapter;
private OnOpenListener mOnOpenListener;
/**
* 判断当前的path菜单是否已经显示
*/
private boolean mUgcIsShowing = false;
private int mWidth;
public User(Context context, Activity activity, KXApplication application) {
mContext = context;
mWidth = activity.getWindowManager().getDefaultDisplay().getWidth();
mActivity = activity;
mKXApplication = application;
// 绑定布局到当前View
mUser = LayoutInflater.from(context).inflate(R.layout.user_info, null);
mUserHead = LayoutInflater.from(context).inflate(
R.layout.user_info_head, null);
findViewById();
setListener();
init();
}
/**
* 绑定界面UI
*/
private void findViewById() {
mHead_Wallpager = (ImageView) mUserHead
.findViewById(R.id.user_info_head_wallpager);
mHead_Avatar = (ImageView) mUserHead
.findViewById(R.id.user_info_head_avatar);
mHead_Name = (TextView) mUserHead
.findViewById(R.id.user_info_head_name);
mHead_Gender = (ImageView) mUserHead
.findViewById(R.id.user_info_head_gender);
mHead_Constellation = (TextView) mUserHead
.findViewById(R.id.user_info_head_constellation);
mHead_Sig_Layout = (LinearLayout) mUserHead
.findViewById(R.id.user_info_head_sig_layout);
mHead_Sig = (TextView) mUserHead.findViewById(R.id.user_info_head_sig);
mHead_About = (TextView) mUserHead
.findViewById(R.id.user_info_head_about);
mHead_Photo = (TextView) mUserHead
.findViewById(R.id.user_info_head_photo);
mHead_Diary = (TextView) mUserHead
.findViewById(R.id.user_info_head_diary);
mHead_Friends = (TextView) mUserHead
.findViewById(R.id.user_info_head_friends);
mHead_Friends_List = (LinearLayout) mUserHead
.findViewById(R.id.user_info_head_friends_list);
mHead_Friends_List_Count = (Button) mUserHead
.findViewById(R.id.user_info_head_friends_list_count);
mRefresh = (Button) mUser
.findViewById(R.id.refresh);
mUgcView = (View) mUser.findViewById(R.id.user_info_ugc);
mUgcLayout = (RelativeLayout) mUgcView.findViewById(R.id.ugc_layout);
mUgc = (ImageView) mUgcView.findViewById(R.id.ugc);
mUgcBg = (ImageView) mUgcView.findViewById(R.id.ugc_bg);
mUgcVoice = (ImageView) mUgcView.findViewById(R.id.ugc_voice);
mUgcPhoto = (ImageView) mUgcView.findViewById(R.id.ugc_photo);
mUgcRecord = (ImageView) mUgcView.findViewById(R.id.ugc_record);
mUgcLbs = (ImageView) mUgcView.findViewById(R.id.ugc_lbs);
mMenu = (Button) mUser.findViewById(R.id.user_info_menu);
mDisplay = (ListView) mUser.findViewById(R.id.user_info_display);
if(!CommonUtils.isNetWorkConnected(mKXApplication)){
mUser.findViewById(R.id.warnning_layout).setVisibility(View.VISIBLE);
}else{
mUser.findViewById(R.id.warnning_layout).setVisibility(View.GONE);
}
}
/**
* UI事件监听
*/
private void setListener() {
mMenu.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (mOnOpenListener != null) {
mOnOpenListener.open();
}
}
});
mRefresh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mKXApplication.mMyVisitorsResults.clear();
mKXApplication.mUserHomeResults.clear();
getInfo();
getVisitors();
getHomeData();
}
});
// 墙纸监听
mHead_Wallpager.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 跳转到修改墙纸界面
mActivity.startActivityForResult(new Intent(mContext,
ChangeWallpagerActivity.class),
ActivityForResultUtil.REQUESTCODE_CHANGEWALLPAGER);
}
});
// 头像监听
mHead_Avatar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(mContext)
.setTitle("请选择")
.setItems(
new String[] { "修改头像", "编辑我的资料", "设置为通讯录头像" },
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
switch (which) {
case 0:
new AlertDialog.Builder(mContext)
.setTitle("修改头像")
.setItems(
new String[] {
"拍照上传",
"上传手机中的照片" },
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
Intent intent = null;
switch (which) {
case 0:
intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
File dir = new File(
KaiXinAddress.SDCARED_CAMERA);
if (!dir.exists()) {
dir.mkdirs();
}
mKXApplication.mUploadPhotoPath = KaiXinAddress.SDCARED_CAMERA
+ UUID.randomUUID()
.toString();
File file = new File(
mKXApplication.mUploadPhotoPath);
if (!file
.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
}
}
intent.putExtra(
MediaStore.EXTRA_OUTPUT,
Uri.fromFile(file));
mActivity
.startActivityForResult(
intent,
ActivityForResultUtil.REQUESTCODE_UPLOADAVATAR_CAMERA);
break;
case 1:
intent = new Intent(
Intent.ACTION_PICK,
null);
intent.setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
mActivity
.startActivityForResult(
intent,
ActivityForResultUtil.REQUESTCODE_UPLOADAVATAR_LOCATION);
break;
}
}
})
.setNegativeButton(
"取消",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
dialog.cancel();
}
}).create().show();
break;
case 1:
// 跳转到关于界面
Intent intent = new Intent();
intent.setClass(mContext,
AboutActivity.class);
intent.putExtra(
"result",
mKXApplication.mMyInfoResult);
mContext.startActivity(intent);
break;
case 2:
mContext.startActivity(new Intent(
mContext,
ContactsActivity.class));
break;
}
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
}
}).create().show();
}
});
// 签名监听
mHead_Sig_Layout.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 跳转到修改签名界面
Intent intent = new Intent(mContext,
EditSignatureActivity.class);
intent.putExtra("signature", mKXApplication.mMyInfoResult.getSignature());
mActivity.startActivityForResult(intent,
ActivityForResultUtil.REQUESTCODE_EDITSIGNATURE);
}
});
// 最近来访数量监听
mHead_Friends_List_Count.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 跳转到最近来访列表界面
mContext.startActivity(new Intent(mContext,
VisitorsActivity.class));
}
});
// 关于监听
mHead_About.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 跳转到关于界面
Intent intent = new Intent();
intent.setClass(mContext, AboutActivity.class);
intent.putExtra("result", (Parcelable)mKXApplication.mMyInfoResult);
mActivity.startActivityForResult(intent,
ActivityForResultUtil.REQUESTCODE_EDITNICKNAME);
}
});
// 照片监听
mHead_Photo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 跳转到照片界面
mContext.startActivity(new Intent(mContext, PhotoActivity.class));
}
});
// 日记监听
mHead_Diary.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mContext.startActivity(new Intent(mContext, DiaryActivity.class));
}
});
// 好友监听
mHead_Friends.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext, FriendsActivity.class);
intent.putExtra("name", mKXApplication.mMyInfoResult.getName());
mContext.startActivity(intent);
}
});
// Path监听
mUgcView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// 判断是否已经显示,显示则关闭并隐藏
if (mUgcIsShowing) {
mUgcIsShowing = false;
UgcAnimations.startCloseAnimation(mUgcLayout, mUgcBg, mUgc,
500);
return true;
}
return false;
}
});
// Path监听
mUgc.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 判断是否显示,已经显示则隐藏,否则则显示
mUgcIsShowing = !mUgcIsShowing;
if (mUgcIsShowing) {
UgcAnimations.startOpenAnimation(mUgcLayout, mUgcBg, mUgc,
500);
} else {
UgcAnimations.startCloseAnimation(mUgcLayout, mUgcBg, mUgc,
500);
}
}
});
// Path 语音按钮监听
mUgcVoice.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation anim = UgcAnimations.clickAnimation(500);
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
mContext.startActivity(new Intent(mContext,
PlayVoiceActivity.class));
closeUgc();
}
});
mUgcVoice.startAnimation(anim);
}
});
// Path 拍照按钮监听
mUgcPhoto.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation anim = UgcAnimations.clickAnimation(500);
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
PhotoDialog();
closeUgc();
}
});
mUgcPhoto.startAnimation(anim);
}
});
// Path 记录按钮监听
mUgcRecord.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation anim = UgcAnimations.clickAnimation(500);
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
mContext.startActivity(new Intent(mContext,
WriteRecordActivity.class));
closeUgc();
}
});
mUgcRecord.startAnimation(anim);
}
});
// Path 签到按钮监听
mUgcLbs.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Animation anim = UgcAnimations.clickAnimation(500);
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
mContext.startActivity(new Intent(mContext,
CheckInActivity.class));
closeUgc();
}
});
mUgcLbs.startAnimation(anim);
}
});
}
/**
* 界面初始化
*/
private void init() {
getInfo();
getVisitors();
getHomeData();
mDisplay.addHeaderView(mUserHead);
mAdapter = new UserInfoAdapter(mContext);
mDisplay.setAdapter(mAdapter);
}
/**
* 获取用户资料
*/
private void getInfo() {
if(!CommonUtils.isNetWorkConnected(mContext)){
mKXApplication.mMyInfoResult = StorageUtil.getFriendInfoResult(mContext);
}else{
mKXApplication.mMyInfoResult = new FriendInfoResult();
String json = CallService.getUserInfo("");
try {
JSONObject jsonObject = new JSONObject(json);
JSONObject object = jsonObject.getJSONObject("data");
mKXApplication.mMyInfoResult.setName(object.getString("name"));
mKXApplication.mMyInfoResult.setAvatar(object.getString("avatar"));
mKXApplication.mMyInfoResult.setGender(object.getInt("gender"));
mKXApplication.mMyInfoResult.setConstellation(object
.getString("constellation"));
mKXApplication.mMyInfoResult.setSignature(object
.getString("signature"));
mKXApplication.mMyInfoResult.setPhoto_count(object
.getInt("photo_count"));
mKXApplication.mMyInfoResult.setDiary_count(object
.getInt("diary_count"));
mKXApplication.mMyInfoResult.setFriend_count(object
.getInt("friend_count"));
mKXApplication.mMyInfoResult.setVisitor_count(object
.getInt("visitor_count"));
mKXApplication.mMyInfoResult.setWallpager(object
.getInt("wallpager"));
mKXApplication.mMyInfoResult.setDate(object.getString("date"));
} catch (JSONException e) {
e.printStackTrace();
}
}
// 界面的数据赋值
mHead_Name.setText(mKXApplication.mMyInfoResult.getName());
// mHead_Avatar.setImageBitmap(mKXApplication
// .getAvatar(mKXApplication.mMyInfoResult.getAvatar()));
ImageLoader.getInstance().displayImage(Constants.getImageUrl()+ mKXApplication.mMyInfoResult.getAvatar(), mHead_Avatar, ImageUtil.getOption());
mHead_Gender.setImageBitmap(Utils.getGender(
mContext.getResources(),
mKXApplication.mMyInfoResult.getGender()));
mHead_Constellation.setText(mKXApplication.mMyInfoResult
.getConstellation());
String signature =mKXApplication.mMyInfoResult.getSignature();
if(!StringUtil.isNull(signature)){
mHead_Sig.setText(new TextUtil(mKXApplication)
.replace(signature));
}else{
mHead_Sig.setText("本人很低调,还没签名!");
}
mHead_About.setText("关于");
mHead_Photo.setText("照片 "
+ mKXApplication.mMyInfoResult.getPhoto_count());
mHead_Diary.setText("日记 "
+ mKXApplication.mMyInfoResult.getDiary_count());
mHead_Friends.setText("好友 "
+ mKXApplication.mMyInfoResult.getFriend_count());
mHead_Friends_List_Count.setText(mKXApplication.mMyInfoResult
.getVisitor_count() + "");
/**
* 原有的墙纸取消,采用随机的墙纸,这样保证每次进入都不一样,其他用户采用自己设定的墙纸显示,如注释掉的代码
*
* mHead_Wallpager.setImageDrawable(mKXApplication
* .getTitleWallpager(mKXApplication.mMyInfoResult
* .getWallpager()));
*/
mHead_Wallpager.setImageBitmap(mKXApplication
.getTitleWallpager(mKXApplication.mWallpagerPosition));
}
/**
* 获取用户最近来访
*/
private void getVisitors() {
if(mKXApplication.mMyVisitorsResults.isEmpty()){
String json;
try {
json = CallService.getVisitors(StorageUtil.getString(mContext, "userid"));
JSONObject object = new JSONObject(json);
JSONArray array = object.getJSONArray(
"data");
VisitorsResult result = null;
for (int i = 0; i < array.length(); i++) {
result = new VisitorsResult();
result.setUid(array.getJSONObject(i).getString("visitor_uid"));
result.setName(array.getJSONObject(i).getString("visitor_name"));
result.setAvatar(array.getJSONObject(i).getString("avatar"));
result.setTime(array.getJSONObject(i).getString("time"));
mKXApplication.mMyVisitorsResults.add(result);
// 显示最近头像
ImageView imageView = new ImageView(mContext);
int widthAndHeight = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 30, mContext
.getResources().getDisplayMetrics());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
widthAndHeight, widthAndHeight);
imageView.setLayoutParams(params);
imageView.setPadding(4, 4, 4, 4);
// imageView.setImageBitmap(mKXApplication.getAvatar(result
// .getAvatar()));
ImageLoader.getInstance().displayImage(Constants.getImageUrl()+ result
.getAvatar(), imageView, ImageUtil.getOption());
imageView.setTag(result);
mHead_Friends_List.addView(imageView);
mHead_Friends_List.invalidate();
imageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
VisitorsResult result = (VisitorsResult) v.getTag();
Intent intent = new Intent();
intent.setClass(mContext, FriendInfoActivity.class);
intent.putExtra("uid", result.getUid());
intent.putExtra("name", result.getName());
intent.putExtra("avatar", result.getAvatar());
mContext.startActivity(intent);
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
/**
* 获取用户的状态
*/
private void getHomeData() {
if(mKXApplication.mUserHomeResults.isEmpty()){
String json = CallService.getMyMessages();
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray array = jsonObject.getJSONArray("data");
HomeResult result = null;
for (int i = 0; i < array.length(); i++) {
result = new HomeResult();
result.setUid(array.getJSONObject(i).getInt("uid"));
result.setEmail(array.getJSONObject(i).getString("email"));
result.setName(array.getJSONObject(i).getString("name"));
result.setAvatar(array.getJSONObject(i).getString("avatar"));
result.setType(array.getJSONObject(i).getString("type"));
result.setTime(array.getJSONObject(i).getString("time"));
result.setTitle(array.getJSONObject(i).getString("title"));
result.setMessageid(array.getJSONObject(i).getInt("messageid"));
result.setAlbumid(array.getJSONObject(i).getInt("albumid"));
if (array.getJSONObject(i).has("from")) {
result.setFrom(array.getJSONObject(i).getString("from"));
}
if (array.getJSONObject(i).has("comment_count")) {
result.setComment_count(array.getJSONObject(i).getInt(
"comment_count"));
}
if (array.getJSONObject(i).has("like_count")) {
result.setLike_count(array.getJSONObject(i).getInt(
"like_count"));
}
if (array.getJSONObject(i).has("photo")) {
JSONArray photoArray = array.getJSONObject(i).getJSONArray("photo");
List<String> photos = new ArrayList<String>();;
for(int j=0; j< photoArray.length();j++){
photos.add(photoArray.getString(j));
}
result.setPhoto(photos);
}
mKXApplication.mUserHomeResults.add(result);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
/**
* 修改墙纸
*/
public void setWallpager() {
mHead_Wallpager.setImageBitmap(mKXApplication
.getTitleWallpager(mKXApplication.mWallpagerPosition));
}
/**
* 修改签名
*
* @param arg0
* 修改的签名文本
*/
public void setSignature(String arg0) {
mHead_Sig.setText(new TextUtil(mKXApplication).replace(arg0));
}
/**
* 修改昵称
*
* @param arg0
* 修改的昵称文本
*/
public void setNickName(String arg0) {
mHead_Name.setText(new TextUtil(mKXApplication).replace(arg0));
}
/**
* 修改头像
*
* @param bitmap
* 修改的头像
*/
public void setAvatar(Bitmap bitmap) {
mHead_Avatar.setImageBitmap(bitmap);
}
/**
* 获取Path菜单显示状态
*
* @return 显示状态
*/
public boolean getUgcIsShowing() {
return mUgcIsShowing;
}
/**
* 关闭Path菜单
*/
public void closeUgc() {
mUgcIsShowing = false;
UgcAnimations.startCloseAnimation(mUgcLayout, mUgcBg, mUgc, 500);
}
/**
* 显示Path菜单
*/
public void showUgc() {
if (mUgcView != null) {
mUgcView.setVisibility(View.VISIBLE);
}
}
/**
* 关闭Path菜单
*/
public void dismissUgc() {
if (mUgcView != null) {
mUgcView.setVisibility(View.GONE);
}
}
/**
* 获取用户首页界面
*
* @return 用户首页界面的View
*/
public View getView() {
return mUser;
}
/**
* 我的首页适配器
*
* @author gyz
*
*/
private class UserInfoAdapter extends BaseAdapter {
private Context mContext;
public UserInfoAdapter(Context context) {
mContext = context;
}
public int getCount() {
return mKXApplication.mUserHomeResults.size();
}
public Object getItem(int position) {
return mKXApplication.mUserHomeResults.size();
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.user_info_item, null);
holder = new ViewHolder();
holder.viewed = (View) convertView
.findViewById(R.id.user_item_viewed);
holder.viewed_avatar = (ImageView) holder.viewed
.findViewById(R.id.user_info_item_avatar);
holder.viewed_name = (TextView) holder.viewed
.findViewById(R.id.user_info_item_name);
holder.viewed_time = (TextView) holder.viewed
.findViewById(R.id.user_info_item_time);
holder.viewed_title = (TextView) holder.viewed
.findViewById(R.id.user_info_item_content);
holder.viewed_from = (TextView) holder.viewed
.findViewById(R.id.user_info_item_from);
holder.viewed_comment_count = (TextView) holder.viewed
.findViewById(R.id.user_info_item_comment_count);
holder.viewed_like_count = (TextView) holder.viewed
.findViewById(R.id.user_info_item_like_count);
holder.viewed_forward_count = (TextView) holder.viewed
.findViewById(R.id.user_info_item_forward_count);
holder.photo = (View) convertView
.findViewById(R.id.user_item_photo);
holder.photo_avatar = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_avatar);
holder.photo_name = (TextView) holder.photo
.findViewById(R.id.user_photo_item_name);
holder.photo_time = (TextView) holder.photo
.findViewById(R.id.user_photo_item_time);
holder.photo_title = (TextView) holder.photo
.findViewById(R.id.user_photo_item_titie);
holder.photo_photo1 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo1);
holder.photo_photo2 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo2);
holder.photo_photo3 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo3);
holder.photo_photo4 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo4);
holder.photo_photo5 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo5);
holder.photo_photo6 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo6);
holder.photo_photo7 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo7);
holder.photo_photo8 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo8);
holder.photo_photo9 = (ImageView) holder.photo
.findViewById(R.id.user_photo_item_photo9);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mWidth / 4 , mWidth / 4);
params.setMargins(2, 2, 2, 2);
holder.photo_photo1.setLayoutParams(params);
holder.photo_photo2.setLayoutParams(params);
holder.photo_photo3.setLayoutParams(params);
holder.photo_photo4.setLayoutParams(params);
holder.photo_photo5.setLayoutParams(params);
holder.photo_photo6.setLayoutParams(params);
holder.photo_photo7.setLayoutParams(params);
holder.photo_photo8.setLayoutParams(params);
holder.photo_photo9.setLayoutParams(params);
holder.photo_from = (TextView) holder.photo
.findViewById(R.id.user_photo_item_from);
holder.photo_comment_count = (TextView) holder.photo
.findViewById(R.id.user_photo_item_comment_count);
holder.photo_like_count = (TextView) holder.photo
.findViewById(R.id.user_photo_item_like_count);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final HomeResult result = mKXApplication.mUserHomeResults.get(position);
if ("viewed".equals(result.getType())) {
holder.viewed.setVisibility(View.VISIBLE);
holder.photo.setVisibility(View.GONE);
holder.viewed.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext,
HomeDiaryDetailActivity.class);
if(!StorageUtil.getString(mContext, "username").equals(mKXApplication.mUserHomeResults.get(position).getEmail())){
intent.putExtra("uid", mKXApplication.mUserHomeResults.get(position).getUid());
}
intent.putExtra("name", mKXApplication.mUserHomeResults.get(position).getName());
intent.putExtra("result", (Serializable)mKXApplication.mUserHomeResults.get(position));
mContext.startActivity(intent);
}
});
// holder.viewed_avatar.setImageBitmap(mKXApplication
// .getAvatar(result.getAvatar()));
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getAvatar(), holder.viewed_avatar, ImageUtil.getOption());
holder.viewed_name.setText(result.getName());
holder.viewed_time.setText(result.getTime());
holder.viewed_title.setText(result.getTitle());
holder.viewed_from.setText(result.getFrom());
holder.viewed_comment_count.setText(result.getComment_count()
+ "");
holder.viewed_like_count.setText(result.getLike_count() + "");
holder.viewed_forward_count.setText(result.getComment_count() + "");
} else {
holder.viewed.setVisibility(View.GONE);
holder.photo.setVisibility(View.VISIBLE);
holder.photo_photo2.setVisibility(View.GONE);
holder.photo_photo3.setVisibility(View.GONE);
holder.photo_photo4.setVisibility(View.GONE);
holder.photo_photo5.setVisibility(View.GONE);
holder.photo_photo6.setVisibility(View.GONE);
holder.photo_photo7.setVisibility(View.GONE);
holder.photo_photo8.setVisibility(View.GONE);
holder.photo_photo9.setVisibility(View.GONE);
// holder.photo_avatar.setImageBitmap(mKXApplication
// .getAvatar(result.getAvatar()));
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getAvatar(), holder.photo_avatar, ImageUtil.getOption());
holder.photo_name.setText(result.getName());
holder.photo_time.setText(result.getTime());
holder.photo_title.setText(result.getTitle());
for(int i = 0; i < result.getPhoto().size(); i++){
switch(i){
case 0:
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo1, ImageUtil.getImageOption());
break;
case 1:
holder.photo_photo2.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo2, ImageUtil.getImageOption());
break;
case 2:
holder.photo_photo3.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo3, ImageUtil.getImageOption());
break;
case 3:
holder.photo_photo4.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo4, ImageUtil.getImageOption());
break;
case 4:
holder.photo_photo5.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo5, ImageUtil.getImageOption());
break;
case 5:
holder.photo_photo6.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo6, ImageUtil.getImageOption());
break;
case 6:
holder.photo_photo7.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo7, ImageUtil.getImageOption());
break;
case 7:
holder.photo_photo8.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo8, ImageUtil.getImageOption());
break;
case 8:
holder.photo_photo9.setVisibility(View.VISIBLE);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getPhoto().get(i), holder.photo_photo9, ImageUtil.getImageOption());
break;
}
}
holder.photo_from.setText(result.getFrom());
holder.photo_comment_count.setText(result.getComment_count()
+ "");
holder.photo_like_count.setText(result.getLike_count() + "");
holder.photo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext,
HomePhotoPictureDetailActivity.class);
if(!StorageUtil.getString(mContext, "username").equals(mKXApplication.mUserHomeResults.get(position).getEmail())){
intent.putExtra("uid", mKXApplication.mUserHomeResults.get(position).getUid());
}
intent.putExtra("avatar", mKXApplication.mUserHomeResults.get(position).getAvatar());
intent.putExtra("name", mKXApplication.mUserHomeResults.get(position).getName());
intent.putExtra("result", (Serializable)mKXApplication.mUserHomeResults.get(position));
mContext.startActivity(intent);
}
});
}
/*Diary result = mResults.get(position);
// Bitmap avatar = PhotoUtil.toRoundCorner(BitmapFactory
// .decodeResource(mContext.getResources(), R.drawable.head),
// 15);
// holder.avatar.setImageBitmap(avatar);
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getAvatar(), holder.avatar, ImageUtil.getOption());
holder.name.setText(result.getUsername());
holder.time.setText(result.getTime());
holder.content.setText(new TextUtil(mKXApplication).replace(result.getTitle()));
holder.like_count.setText(result.getLike_count()+ "");
holder.comment_count.setText(result.getComment_count()+ "");
holder.forward_count.setText(result.getComment_count()+ "");*/
return convertView;
}
class ViewHolder {
View viewed;
ImageView viewed_avatar;
TextView viewed_name;
TextView viewed_time;
TextView viewed_title;
TextView viewed_all;
TextView viewed_from;
TextView viewed_comment_count;
TextView viewed_like_count;
TextView viewed_forward_count;
View photo;
ImageView photo_avatar;
TextView photo_name;
TextView photo_time;
TextView photo_title;
ImageView photo_photo1;
ImageView photo_photo2;
ImageView photo_photo3;
ImageView photo_photo4;
ImageView photo_photo5;
ImageView photo_photo6;
ImageView photo_photo7;
ImageView photo_photo8;
ImageView photo_photo9;
TextView photo_from;
TextView photo_comment_count;
TextView photo_like_count;
TextView photo_forward_count;
}
}
public void setOnOpenListener(OnOpenListener onOpenListener) {
// mHead_Name.setText(mKXApplication.mMyInfoResult.getName());
mOnOpenListener = onOpenListener;
}
private void PhotoDialog() {
AlertDialog.Builder builder = new Builder(mContext);
builder.setTitle("上传照片至OOXX");
builder.setItems(new String[] { "拍照上传", "上传手机中的照片" },
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
switch (which) {
case 0:
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir = new File(KaiXinAddress.SDCARED_CAMERA);
if (!dir.exists()) {
dir.mkdirs();
}
mKXApplication.mUploadPhotoPath = KaiXinAddress.SDCARED_CAMERA
+ UUID.randomUUID().toString();
File file = new File(
mKXApplication.mUploadPhotoPath);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
}
}
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(file));
mActivity
.startActivityForResult(
intent,
ActivityForResultUtil.REQUESTCODE_UPLOADPHOTO_CAMERA);
break;
case 1:
mContext.startActivity(new Intent(mContext,
PhoneAlbumActivity.class));
break;
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.create().show();
}
public void fresh(){
// 获取我的好友
getInfo();
}
}