package com.partynetwork.iparty.scanqr;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.Public_scanOrderRequest;
import com.partynetwork.dataprovider.json.struct.Public_scanOrderResponse;
import com.partynetwork.dataprovider.util.ActionUtil;
import com.partynetwork.dataprovider.util.StringUtil;
import com.partynetwork.dataprovider.util.Util;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.R.color;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.common.UIHelper;
import com.partynetwork.iparty.app.util.StringUtils;
import com.zxing.activity.CaptureActivity;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
public class CaptureResultActivity extends Activity implements
IJsonResultListener, TextWatcher {
public static final int CAPTURE_CODE = 10;
public static final String QR_RESULT = "qrResult";
/**
* 返回图标
*/
@ViewInject(R.id.menu_head_left_iv)
private ImageView backBtn;
/**
* 确定按钮
*/
@ViewInject(R.id.menu_head_right)
private RelativeLayout rightBtn;
/**
* 页面标题
*/
@ViewInject(R.id.menu_head_middle_text)
private TextView headTitle;
/**
* 确定的文本框
*/
@ViewInject(R.id.menu_head_right_tv)
private TextView rightTv;
/**
* 输入文本框
*/
@ViewInject(R.id.name_et)
private EditText name;
/** 扫描结果 */
private String qrResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.site_info_scan);
ViewUtils.inject(this);
init();
}
/**
* 初始化方法
*/
private void init() {
qrResult = getIntent().getStringExtra(QR_RESULT);
headTitle.setText("手动输入");
name.setHint("请输入参加验证码");
backBtn.setImageResource(R.drawable.menu_head_close);
name.addTextChangedListener(this);
checkQrResult();
}
/**
* 检验验证码有效性
*/
private void checkQrResult() {
if (StringUtil.checkStr(qrResult).equals("")) {
return;
}
if (qrResult.contains(ActionUtil.Capture.QR_PREFIX)) {
// 内部二维码
if (qrResult.contains(ActionUtil.Capture.QR_PREFIX + "user_")) {
String str = qrResult
.substring(qrResult.lastIndexOf("user_") + 5);
UIHelper.showUserCenter(this, Integer.parseInt(str));
} else if (qrResult.contains(ActionUtil.Capture.QR_PREFIX
+ "iparty_")) {
String str = qrResult
.substring(qrResult.lastIndexOf("iparty_") + 7);
Util.showMsg(this, "参加凭证" + str);
sendRequest(str);
}
} else if (StringUtils.checkURL(qrResult)) {
UIHelper.showWebPage(this, "二维码内容", qrResult);
} else {
Util.showMsg(this, "无效二维码:" + qrResult);
}
}
/**
* 验证验证码
*
* @param str
*/
private void sendRequest(String str) {
Public_scanOrderRequest request = new Public_scanOrderRequest();
request.setUserId(AppContext.getInstance().getLoginUid());
request.setCaptcha(str);
AppContext.getInstance().getmDataProvider()
.getJsonFromNetwork(request, this);
}
/**
* 事件监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.menu_head_right, R.id.scan_tv })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
finish();
break;
case R.id.menu_head_right:
// 确定
sendRequest(StringUtil.checkEditText(name));
name.setText("");
break;
case R.id.scan_tv:
// 启动扫描
UIHelper.showCapturePage(this);
finish();
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
return;
}
switch (requestCode) {
case CAPTURE_CODE:
// 处理扫描结果(在界面上显示)
Bundle bundle = data.getExtras();
qrResult = bundle.getString(CaptureActivity.RESULT_KEY);
checkQrResult();
break;
default:
break;
}
}
public void onNetworkRequest() {
}
public void onResultSuccess(NetworkEntity entity) {
if (entity.getRequest().getAction()
.equals(new Public_scanOrderRequest().getAction())) {
Public_scanOrderResponse response = (Public_scanOrderResponse) entity
.getResponse();
UIHelper.showOrderInfo(this, response.getDetails().getOrderId());
}
}
public void onResultFail(String result) {
Util.showMsg(this, result);
}
@Override
public void onResume() {
super.onResume();
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
public void afterTextChanged(Editable s) {
if (0 < s.toString().length()) {
name.setTextColor(Color.BLACK);
name.setBackgroundResource(R.drawable.stroke_single_select);
rightBtn.setClickable(true);
rightTv.setTextColor(getResources().getColor(R.color.blue_text));
} else {
name.setTextColor(color.lightgray);
name.setBackgroundResource(R.drawable.stroke_single);
rightBtn.setClickable(false);
rightTv.setTextColor(getResources().getColor(R.color.gray));
}
}
}