package com.partynetwork.iparty.ishare;
import java.util.ArrayList;
import java.util.List;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.Public_reportRequest;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.baidu.mobstat.StatService;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
/**
* 举报页面 com.dongcemedia.iparty.ishare.IshareReportActivity
*
* @author 沈跃双 Create at 2013-12-19 下午6:00:50
*/
public class IshareReportActivity extends Activity implements
IJsonResultListener {
public static String REPORT_EVENT_TYPE = "reportEventType";
public static String CONTENT_ID = "contentId";
/**
* 返回按钮
*/
@ViewInject(R.id.menu_head_left)
private LinearLayout backBtn;
/**
* 举报的内容
*/
@ViewInject(R.id.report_content)
private EditText reportContentEt;
/**
* 举报的选择列表
*/
@ViewInject(R.id.report_ll)
private LinearLayout reportLl;
/**
* 提交举报
*/
@ViewInject(R.id.submit_tv)
private TextView submit;
/**
* 存放ImageView的链表,给之后单选效果使用
*/
private List<ImageView> imageList = new ArrayList<ImageView>();
/**
* 数据源
*/
private String[] str = { "垃圾内容", "仇恨言论或煽动暴力", "假冒", "裸露", "版权", "其他原因" };
private int contentId;
private int reportEventType;
private String reportType;
/**
*
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
ViewUtils.inject(this);
init();
}
/**
* 点击事件监听
*
* @param v
*/
@OnClick({ R.id.menu_head_left, R.id.submit_tv })
public void onClick(View view) {
switch (view.getId()) {
case R.id.submit_tv:
// 点击提交
sendRequest();
break;
case R.id.menu_head_left:
// 关闭当前举报窗口
finish();
break;
default:
break;
}
}
private void init() {
reportEventType = getIntent().getIntExtra(REPORT_EVENT_TYPE, 0);
contentId = getIntent().getIntExtra(CONTENT_ID, 0);
imageList.removeAll(imageList);
for (String title : str) {
// 包裹在两个控件外面的layout布局
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutParam.setMargins(0, 20, 0, 0);
layoutParam.gravity = Gravity.CENTER_VERTICAL;
LinearLayout layout = new LinearLayout(this);
layout.setTag(title);
layout.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
choose(v.getTag().toString());
}
});
layout.setLayoutParams(layoutParam);
// 左侧显示选中与否的状态按钮
ImageView image = new ImageView(this);
image.setImageResource(R.drawable.contacts_normal);
// 把当前的image放到列表中
imageList.add(image);
LinearLayout.LayoutParams textParam = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
textParam.setMargins(10, 0, 0, 0);
TextView text = new TextView(this);
text.setText(title);
text.setTextColor(Color.BLACK);
text.setTextSize(18);
text.setLayoutParams(textParam);
layout.addView(image);
layout.addView(text);
reportLl.addView(layout);
}
choose(str[0]);
}
/**
* 选择投诉理由操作
*
* @param string
*/
private void choose(String string) {
reportType = string;
for (int i = 0; i < str.length; i++) {
if (str[i].equals(string)) {
imageList.get(i).setImageResource(R.drawable.contacts_selected);
} else {
imageList.get(i).setImageResource(R.drawable.contacts_normal);
}
}
}
/**
* 发送举报的请求
*/
private void sendRequest() {
AppContext context = (AppContext) getApplication();
Public_reportRequest request = new Public_reportRequest();
request.setContent(StringUtil.checkEditText(reportContentEt));
request.setContentId(contentId);
request.setReportEventType(reportEventType);
request.setReportType(reportType);
request.setUserId(context.getLoginUid());
context.getmDataProvider().getJsonFromNetwork(request, this);
}
/**
* 请求开始
*/
public void onNetworkRequest() {
}
/**
* 请求失败后的回调方法
*/
public void onResultFail(String result) {
T.showTips(this, R.drawable.tips_error, result);
}
/**
* 请求成功后的回调方法
*/
public void onResultSuccess(NetworkEntity entity) {
if (entity.getRequest().getAction()
.equals(new Public_reportRequest().getAction())) {
T.showTips(this, R.drawable.tips_smile, "举报成功!");
finish();
}
}
@Override
protected void onResume() {
StatService.onResume(this);
super.onResume();
}
@Override
protected void onPause() {
StatService.onPause(this);
super.onPause();
}
}