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)); } } }