/**
*
*/
package com.photoshare.view;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.photoshare.service.users.UserInfo;
import com.photoshare.tabHost.R;
import com.photoshare.utils.async.AsyncImageLoader.ImageCallback;
import com.photoshare.utils.async.AsyncUtils;
/**
* @author Aron
*
* UserHomeTitleBarView contains views should be displayed on the home
* title.
*
*/
public class UserHomeTitleBarView {
private View baseView;
private ImageView mUserHomeHeadView;
private TextView mUserHomePhotosCntView;
private UserTextView mUserHomeFollowersCntView;
private UserTextView mUserHomeFollowingCntView;
private UserInfo userInfo;
private AsyncUtils async;
/**
* @param baseView
* @param userInfo
* @param async
*/
public UserHomeTitleBarView(View baseView, UserInfo userInfo,
AsyncUtils async) {
super();
this.baseView = baseView;
this.userInfo = userInfo;
this.async = async;
}
public void applyView() {
mUserHomeFollowersCntView = new UserTextView(
(TextView) baseView
.findViewById(R.id.userHomeTitleBarFollowersCnt),
userInfo, userInfo.getFollowersCnt() + "\r\n 跟随者");
mUserHomeFollowersCntView.registerListener(followerCntListener);
mUserHomeFollowingCntView = new UserTextView(
(TextView) baseView
.findViewById(R.id.userHomeTitlebarFollowingCnt),
userInfo, userInfo.getFollowingCnt() + "\r\n 跟随");
mUserHomeFollowingCntView.registerListener(followingCntListener);
mUserHomeHeadView = (ImageView) baseView
.findViewById(R.id.userHomeTitleBarHead);
mUserHomePhotosCntView = (TextView) baseView
.findViewById(R.id.userHomeTitleBarPhotosCnt);
mUserHomePhotosCntView.setText(userInfo.getPhotosCnt() + "\r\n 照片");
async.loadDrawableFromWeb(userInfo.getTinyurl(), new ImageCallback() {
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
if (mCallback != null) {
mCallback.OnUserHeadLoaded(mUserHomeHeadView,
imageDrawable, imageUrl);
}
}
public void imageDefault() {
if (mCallback != null) {
mCallback.OnDefault(mUserHomeHeadView);
}
}
});
}
private UserTextView.UserTextOnClickListener followerCntListener = new UserTextView.UserTextOnClickListener() {
public void OnClick(UserInfo info) {
if (mCallback != null) {
mCallback.OnFollowerCntClick();
}
}
};
private UserTextView.UserTextOnClickListener followingCntListener = new UserTextView.UserTextOnClickListener() {
public void OnClick(UserInfo info) {
if (mCallback != null) {
mCallback.OnFollowingCntClick();
}
}
};
private ICallback mCallback;
public void registerCallback(ICallback callback) {
this.mCallback = callback;
}
public interface ICallback {
public void OnFollowerCntClick();
public void OnFollowingCntClick();
public void OnPhotosCntClick();
public void OnEditInfoClick();
public void OnUserHeadLoaded(ImageView imageView, Drawable photo,
String url);
public void OnDefault(ImageView imageView);
}
}