/** * */ package com.photoshare.service.follow.views; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.photoshare.common.IObserver; import com.photoshare.msg.MsgType; import com.photoshare.service.users.UserInfo; import com.photoshare.tabHost.R; import com.photoshare.utils.async.AsyncImageLoader.ImageCallback; import com.photoshare.utils.async.AsyncUtils; import com.photoshare.view.UserBooleanBtn; import com.photoshare.view.UserBooleanBtn.OnObserverClickListener; import com.photoshare.view.UserTextView; /** * @author czj_yy * */ public class FollowItemView { private UserTextView userNameView; private TextView userPseudoName; private ImageView userHead; private UserBooleanBtn userFollow; private UserInfo followerInfo; private View baseView; private AsyncUtils async; /** * @param followerInfo * @param baseView * @param async */ public FollowItemView(UserInfo followerInfo, View baseView, AsyncUtils async) { super(); this.followerInfo = followerInfo; this.baseView = baseView; this.async = async; } public void applyView() { userHead = (ImageView) baseView.findViewById(R.id.followItemUserHead); userNameView = new UserTextView( (TextView) baseView.findViewById(R.id.followItemUserName), followerInfo, followerInfo.getName()); userPseudoName = (TextView) baseView .findViewById(R.id.followItemPseudoName); userFollow = new UserBooleanBtn(baseView, R.id.followItembtn, followerInfo.isFollowing(), MsgType.FOLLOW.getEnabledString(), MsgType.FOLLOW.getIntermediateString(), MsgType.FOLLOW.getDisabledString()); userFollow.registerListener(new OnObserverClickListener() { public void OnClick(IObserver<Boolean> observer) { // TODO Auto-generated method stub if (mCallback != null) { mCallback.OnFollowClick(followerInfo, observer); } } }); userFollow.applyView(); async.loadDrawableFromWeb(followerInfo.getTinyurl(), new ImageCallback() { public void imageLoaded(Drawable imageDrawable, String imageUrl) { if (mCallback != null) { mCallback.OnUserHeadLoaded(userHead, imageDrawable, imageUrl); } } public void imageDefault() { if (mCallback != null) { mCallback.OnImageDefaule(userHead); } } }); userPseudoName.setText(followerInfo.getPseudoName()); userNameView.registerListener(listener); userNameView.apply(); } private UserTextView.UserTextOnClickListener listener = new UserTextView.UserTextOnClickListener() { public void OnClick(UserInfo info) { // TODO Auto-generated method stub if (mCallback != null) { mCallback.OnNameClick(info); } } }; private ICallback mCallback; public void registerCallback(ICallback mCallback) { this.mCallback = mCallback; } public interface ICallback { public void OnNameClick(UserInfo info); public void OnFollowClick(UserInfo info, IObserver<Boolean> observer); public void OnUserHeadLoaded(ImageView image, Drawable drawable, String url); public void OnImageDefaule(ImageView image); } }