package com.diandi.demo.adapter; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Color; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.diandi.demo.CustomApplication; import com.diandi.demo.R; import com.diandi.demo.adapter.base.BaseListAdapter; import com.diandi.demo.config.Constant; import com.diandi.demo.model.User; import com.diandi.demo.model.diandi.DianDi; import com.diandi.demo.sync.sns.TencentShare; import com.diandi.demo.sync.sns.TencentShareConstants; import com.diandi.demo.sync.sns.TencentShareEntity; import com.diandi.demo.ui.activity.CommentActivity; import com.diandi.demo.util.ActivityUtil; import com.diandi.demo.util.ImageLoadOptions; import com.diandi.demo.util.L; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; import java.util.List; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.BmobUser; import cn.bmob.v3.datatype.BmobPointer; import cn.bmob.v3.datatype.BmobRelation; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.UpdateListener; /** * ******************************************************************************* * ********* Author : klob(kloblic@gmail.com) . * ********* Date : 2014-11-29 . * ********* Time : 11:46 . * ********* Project name : Diandi1.18 . * ********* Version : 1.0 * ********* Copyright @ 2014, klob, All Rights Reserved * ******************************************************************************* */ public class PersonCenterAdapter extends BaseListAdapter<DianDi> { public static final String TAG = "AIContentAdapter"; public static final int SAVE_FAVOURITE = 2; public PersonCenterAdapter(Context context, List<DianDi> list) { super(context, list); } @Override public View bindView(int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = mInflater.inflate(R.layout.item_feed, null); viewHolder.userName = (TextView) convertView.findViewById(R.id.user_name); viewHolder.userLogo = (ImageView) convertView.findViewById(R.id.user_logo); viewHolder.favMark = (ImageView) convertView.findViewById(R.id.item_action_fav); viewHolder.contentText = (TextView) convertView.findViewById(R.id.content_text); viewHolder.contentImage = (ImageView) convertView.findViewById(R.id.content_image); viewHolder.love = (TextView) convertView.findViewById(R.id.item_action_love); viewHolder.share = (TextView) convertView.findViewById(R.id.item_action_share); viewHolder.comment = (TextView) convertView.findViewById(R.id.item_action_comment); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } final DianDi entity = mDataList.get(position); L.i("user", entity.toString()); User user = entity.getAuthor(); if (user == null) { L.i("user", "USER IS NULL"); } if (user.getAvatar() == null) { L.i("user", "USER avatar IS NULL"); } String avatarUrl = null; if (user.getAvatarImg() != null) { avatarUrl = user.getAvatar(); } ImageLoader.getInstance() .displayImage(avatarUrl, viewHolder.userLogo, ImageLoadOptions.getOptions(), new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // TODO Auto-generated method stub super.onLoadingComplete(imageUri, view, loadedImage); } }); viewHolder.userLogo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub CustomApplication.getInstance().setCurrentDianDi(entity); // User currentUser = BmobUser.getCurrentUser(mContext,User.class); // if(currentUser != null){//已登录 // Intent intent = new Intent(); // intent.setClass(CustomApplication.getInstance().getTopActivity(), PersonalActivity.class); // mContext.startActivity(intent); // }else{//未登录 // ActivityUtil.show(mContext, "请先登录。"); // Intent intent = new Intent(); // intent.setClass(CustomApplication.getInstance().getTopActivity(), RegisterAndLoginActivity.class); // CustomApplication.getInstance().getTopActivity().startActivityForResult(intent, Constant.GO_SETTINGS); // } } }); viewHolder.userName.setText(entity.getAuthor().getNick()); viewHolder.contentText.setText(entity.getContent()); if (null == entity.getContentfigureurl()) { viewHolder.contentImage.setVisibility(View.GONE); } else { viewHolder.contentImage.setVisibility(View.VISIBLE); ImageLoader.getInstance() .displayImage(entity.getContentfigureurl().getFileUrl(mContext) == null ? "" : entity.getContentfigureurl().getFileUrl(mContext), viewHolder.contentImage, ImageLoadOptions.getOptions(R.drawable.bg_pic_loading), new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // TODO Auto-generated method stub super.onLoadingComplete(imageUri, view, loadedImage); float[] cons = ActivityUtil.getBitmapConfiguration(loadedImage, viewHolder.contentImage, 1.0f); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams((int) cons[0], (int) cons[1]); layoutParams.addRule(RelativeLayout.BELOW, R.id.content_text); viewHolder.contentImage.setLayoutParams(layoutParams); } }); } viewHolder.love.setText(entity.getLove() + ""); L.i("love", entity.getMyLove() + ".."); if (entity.getMyLove()) { viewHolder.love.setTextColor(Color.parseColor("#D95555")); } else { viewHolder.love.setTextColor(Color.parseColor("#000000")); } viewHolder.hate.setText(entity.getHate() + ""); viewHolder.love.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (entity.getMyLove()) { return; } entity.setLove(entity.getLove() + 1); viewHolder.love.setTextColor(Color.parseColor("#D95555")); viewHolder.love.setText(entity.getLove() + ""); entity.setMyLove(true); entity.increment("love", 1); entity.update(mContext, new UpdateListener() { @Override public void onSuccess() { L.i(TAG, "点赞成功~"); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub } }); } }); viewHolder.hate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub entity.setHate(entity.getHate() + 1); viewHolder.hate.setText(entity.getHate() + ""); entity.increment("hate", 1); entity.update(mContext, new UpdateListener() { @Override public void onSuccess() { // TODO Auto-generated method stub ShowToast("点踩成功~"); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub } }); } }); viewHolder.share.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //share to sociaty ShowToast("分享给好友看哦~"); final TencentShare tencentShare = new TencentShare(CustomApplication.getInstance().getTopActivity(), getQQShareEntity(entity)); tencentShare.shareToQQ(); } }); viewHolder.comment.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //评论 Intent intent = new Intent(); intent.putExtra("data", entity); intent.setClass(mContext, CommentActivity.class); startAnimActivity(intent); } }); if (entity.getMyFav()) { viewHolder.favMark.setImageResource(R.drawable.ic_action_fav_choose); } else { viewHolder.favMark.setImageResource(R.drawable.ic_action_fav_normal); } viewHolder.favMark.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //收藏 ShowToast("收藏"); onClickFav(v, entity); } }); return convertView; } private TencentShareEntity getQQShareEntity(DianDi qy) { String title = "这里好多美丽的风景"; String comment = "来领略最美的风景吧"; String img = null; if (qy.getContentfigureurl() != null) { img = qy.getContentfigureurl().getFileUrl(mContext); } else { img = TencentShareConstants.DEFAULT_IMG_URL; } String summary = qy.getContent(); String targetUrl = "http://yuanquan.bmob.cn"; TencentShareEntity entity = new TencentShareEntity(title, img, targetUrl, summary, comment); return entity; } private void onClickFav(View v, DianDi DianDi) { // TODO Auto-generated method stub User user = BmobUser.getCurrentUser(mContext, User.class); if (user != null && user.getSessionToken() != null) { BmobRelation favRelaton = new BmobRelation(); DianDi.setMyFav(!DianDi.getMyFav()); if (DianDi.getMyFav()) { ((ImageView) v).setImageResource(R.drawable.ic_action_fav_choose); favRelaton.add(DianDi); ShowToast("收藏成功。"); } else { ((ImageView) v).setImageResource(R.drawable.ic_action_fav_normal); favRelaton.remove(DianDi); ShowToast("取消收藏。"); } user.setFavorite(favRelaton); user.update(mContext, new UpdateListener() { @Override public void onSuccess() { // TODO Auto-generated method stub L.i(TAG, "收藏成功。"); //try get fav to see if fav success // getMyFavourite(); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub L.i(TAG, "收藏失败。请检查网络~"); ShowToast("收藏失败。请检查网络~" + arg0); } }); } } private void getMyFavourite() { User user = BmobUser.getCurrentUser(mContext, User.class); if (user != null) { BmobQuery<DianDi> query = new BmobQuery<DianDi>(); query.addWhereRelatedTo("favorite", new BmobPointer(user)); query.include("user"); query.order("createdAt"); query.setLimit(Constant.NUMBERS_PER_PAGE); query.findObjects(mContext, new FindListener<DianDi>() { @Override public void onSuccess(List<DianDi> data) { // TODO Auto-generated method stub L.i(TAG, "get fav success!" + data.size()); ShowToast("fav size:" + data.size()); } @Override public void onError(int arg0, String arg1) { // TODO Auto-generated method stub ShowToast("获取收藏失败。请检查网络~"); } }); } } public static class ViewHolder { public ImageView userLogo; public TextView userName; public TextView contentText; public ImageView contentImage; public ImageView favMark; public TextView love; public TextView hate; public TextView share; public TextView comment; } }