package com.lan.nicehair.activity;
import java.util.ArrayList;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.lan.nicehair.R;
import com.lan.nicehair.adapter.HairCommentAdapter;
import com.lan.nicehair.common.CircleImageView;
import com.lan.nicehair.common.json.HairCommentParser.HairComResult;
import com.lan.nicehair.common.model.Comment;
import com.lan.nicehair.common.model.FindHairItem;
import com.lan.nicehair.common.net.ActionOfUrl.JsonAction;
import com.lan.nicehair.common.net.NetAsyncTask;
import com.lan.nicehair.common.refresh_list.RefreshListView;
import com.lan.nicehair.common.refresh_list.RefreshListView.IHListViewListener;
import com.lan.nicehair.utils.AppToast;
import com.lan.nicehair.utils.HProgress;
import com.lan.nicehair.utils.ImageFetcher;
public class HairCommentActivity extends BaseActivity implements IHListViewListener {
@OnClick(R.id.scan_info_back_btn)
public void onBackClicked(View v) {
finish();
}
@OnClick(R.id.scan_info_share_btn)
public void onShareClicked(View v) {
}
@OnClick(R.id.scan_info_comment_btn)
public void onCommentClicked(View v) {
}
@OnClick(R.id.scan_info_collect_btn)
public void onCollectClicked(View v) {
}
@OnClick(R.id.scan_info_zan_btn)
public void onZanClicked(View v) {
}
@InjectView(R.id.loading_layout) RelativeLayout mLayoutLoading;
@InjectView(R.id.hair_list) RefreshListView mListView;
@InjectView(R.id.layout_comment) LinearLayout mLayoutComment;
@InjectView(R.id.post_comment_input) EditText mEditInput;
private ViewHeadHolder mHolder;
private ImageFetcher mImageFetcher;
private List<Comment> mListComment=new ArrayList<Comment>();
private FindHairItem mInfo;
private HairCommentAdapter mAdapter;
private int currentPage = 1;
public static final String HAIR_COMMENT_ACTION="hair_comment_action";
private InputMethodManager mInputManager;
private ActionClickReceiver mActionClickReceiver;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case R.id.ui_show_dialog:
//dialog.show();
HProgress.show(HairCommentActivity.this, null);
break;
case R.id.ui_dismiss_dialog:
//dialog.dismiss();
HProgress.dismiss();
break;
case R.id.ui_show_text://网络超时和数据解析异常
AppToast.showShortText(HairCommentActivity.this, msg.arg1);
break;
case R.id.ui_update_ui:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.hair_scan_info_activity);
ButterKnife.inject(this);
mImageFetcher=new ImageFetcher(this, 800);
mInfo=(FindHairItem) getIntent().getSerializableExtra("hairInfo");
addHeadView();
mAdapter = new HairCommentAdapter(this, mListComment, mImageFetcher);
mListView.setAdapter(mAdapter);
mListView.setPullLoadEnable(true);
mListView.setHListViewListener(this);
mInputManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
registerMessageReceiver();
AddItemToContainer(currentPage, 1);
}
void addHeadView() {
View headView=getLayoutInflater().inflate(R.layout.hair_scan_info_top_view, null);
mHolder = new ViewHeadHolder(headView);
mListView.addHeaderView(headView);
if(mInfo!=null) {
mImageFetcher.loadImage(mInfo.getPicUrl(), mHolder.mHairIv);
mHolder.mContentTv.setText(mInfo.getTitle());
//top3布局
mHolder.mTop1Layout1.setVisibility(View.VISIBLE);
mHolder.mTop2Layout1.setVisibility(View.VISIBLE);
mHolder.mTop3Layout1.setVisibility(View.VISIBLE);
mHolder.mTop1Layout2.setVisibility(View.VISIBLE);
mHolder.mTop2Layout2.setVisibility(View.VISIBLE);
mHolder.mTop3Layout2.setVisibility(View.VISIBLE);
mHolder.mTop1Layout3.setVisibility(View.VISIBLE);
mHolder.mTop2Layout3.setVisibility(View.VISIBLE);
mHolder.mTop3Layout3.setVisibility(View.VISIBLE);
mHolder.mLineIv1.setVisibility(View.VISIBLE);
mHolder.mLineIv2.setVisibility(View.VISIBLE);
mImageFetcher.setLoadingImage(R.drawable.zone_list_profile);
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv1);
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv2);
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv3);
mHolder.mNameTv1.setText(mInfo.getName());
mHolder.mNameTv2.setText(mInfo.getName());
mHolder.mNameTv3.setText(mInfo.getName());
mHolder.mLevelTv1.setText("LV"+mInfo.getLevel());
mHolder.mLevelTv2.setText("LV"+mInfo.getLevel());
mHolder.mLevelTv3.setText("LV"+mInfo.getLevel());
mImageFetcher.loadImage(mInfo.getPicUrl(), mHolder.mTopImg1);
mImageFetcher.loadImage(mInfo.getPicUrl(), mHolder.mTopImg2);
mImageFetcher.loadImage(mInfo.getPicUrl(), mHolder.mTopImg3);
}
}
class ViewHeadHolder{
@InjectView(R.id.hair_iv) ImageView mHairIv;
@InjectView(R.id.hair_content_tv) TextView mContentTv;
@InjectView(R.id.scan_info_top1_layout1) LinearLayout mTop1Layout1;
@InjectView(R.id.scan_info_top2_layout1) LinearLayout mTop2Layout1;
@InjectView(R.id.scan_info_top3_layout1) LinearLayout mTop3Layout1;
@InjectView(R.id.scan_info_top1_layout2) RelativeLayout mTop1Layout2;
@InjectView(R.id.scan_info_top2_layout2) RelativeLayout mTop2Layout2;
@InjectView(R.id.scan_info_top3_layout2) RelativeLayout mTop3Layout2;
@InjectView(R.id.scan_info_top1_layout3) RelativeLayout mTop1Layout3;
@InjectView(R.id.scan_info_top2_layout3) RelativeLayout mTop2Layout3;
@InjectView(R.id.scan_info_top3_layout3) RelativeLayout mTop3Layout3;
@InjectView(R.id.scan_top_head1) CircleImageView mHeadIv1;
@InjectView(R.id.scan_top_head2) CircleImageView mHeadIv2;
@InjectView(R.id.scan_top_head3) CircleImageView mHeadIv3;
@InjectView(R.id.scan_top_username1) TextView mNameTv1;
@InjectView(R.id.scan_top_username2) TextView mNameTv2;
@InjectView(R.id.scan_top_username3) TextView mNameTv3;
@InjectView(R.id.scan_top_lv1) TextView mLevelTv1;
@InjectView(R.id.scan_top_lv2) TextView mLevelTv2;
@InjectView(R.id.scan_top_lv3) TextView mLevelTv3;
@InjectView(R.id.scan_top_img1) ImageView mTopImg1;
@InjectView(R.id.scan_top_img2) ImageView mTopImg2;
@InjectView(R.id.scan_top_img3) ImageView mTopImg3;
@InjectView(R.id.line_1) ImageView mLineIv1;
@InjectView(R.id.line_2) ImageView mLineIv2;
public ViewHeadHolder(View view) {
ButterKnife.inject(this,view);
}
}
public void registerMessageReceiver() {
mActionClickReceiver = new ActionClickReceiver();
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(HAIR_COMMENT_ACTION);
registerReceiver(mActionClickReceiver, filter);
}
public class ActionClickReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (HAIR_COMMENT_ACTION.equals(intent.getAction())) {
int uid=intent.getIntExtra("uid", 0);
String name=intent.getStringExtra("name");
mLayoutComment.setVisibility(View.VISIBLE);
mInputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
mEditInput.requestFocus();
mEditInput.setHint("回复 "+name);
}
}
}
public class NetCotnent extends NetAsyncTask{
private HairComResult result;
private int mType = 1;
public NetCotnent(Handler uiHandler,int type) {
super(uiHandler);
this.mType=type;
if(mListComment.size()==0)
setDialogId(1);
}
@Override
protected void handlePreExecute() {
// TODO Auto-generated method stub
}
@Override
protected String handleNetworkProcess(String... arg0) throws Exception {
// TODO Auto-generated method stub
result=(HairComResult) httptask.getRequestbyPOST(JsonAction.HAIR_COMMENT,arg0[0], null);
return result!=null? HANDLE_SUCCESS : HANDLE_FAILED;
}
@Override
protected void handleResult() {
// TODO Auto-generated method stub
if (result!=null&&result.isSuccess()) {
mListComment=result.getListComment();
mListView.stopLoadMore();
mListView.stopRefresh();
if (mType == 1&&mListComment.size()>0) {
mAdapter.mListInfo=mListComment;
mAdapter.notifyDataSetChanged();
} else if (mType == 2&&mListComment.size()>0) {
mAdapter.addItemLast(mListComment);
mAdapter.notifyDataSetChanged();
mListView.setSelection(mListView.getLastVisiblePosition());
}
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv1);
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv2);
mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mHeadIv3);
}
}
}
private void AddItemToContainer(int pageindex, int type) {
String url = "album/1733789/masn/p/" + pageindex + "/24/";
new NetCotnent(mHandler,type).execute(url);
}
@Override
public void onResume() {
super.onResume();
mImageFetcher.setExitTasksEarly(false);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(mActionClickReceiver);
}
@Override
public void onRefresh() {
// TODO Auto-generated method stub
currentPage=1;
AddItemToContainer(currentPage, 1);
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
AddItemToContainer(++currentPage, 2);
}
}