package net.oschina.app.ui; import net.oschina.app.AppContext; import net.oschina.app.AppException; import net.oschina.app.AppManager; import net.oschina.app.R; import net.oschina.app.bean.Barcode; import net.oschina.app.bean.JsonResult; import net.oschina.app.common.UIHelper; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; /** * 线下活动签到 * * @author 火蚁(http://my.oschina.net/LittleDY) * @version 1.0 * @created 2014-03-18 */ public class Signin extends BaseActivity { private AppContext ac; private TextView mTitle;// 活动标题 private Button mPublish; private ImageButton mClose; private ProgressDialog mProgress; private Barcode barcode; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.signin); this.initView(); initData(); } @Override protected void onDestroy() { super.onDestroy(); AppManager.getAppManager().finishActivity(this); } private void initView() { ac = (AppContext) getApplication(); mTitle = (TextView) findViewById(R.id.signin_title); mPublish = (Button) findViewById(R.id.sigin_publish); mClose = (ImageButton) findViewById(R.id.signin_close_button); mClose.setOnClickListener(UIHelper.finish(this)); mPublish.setOnClickListener(publishListener); } private void initData() { Intent data = this.getIntent(); barcode = (Barcode) data.getSerializableExtra("barcode"); mTitle.setText(barcode.getTitle()); } private OnClickListener publishListener = new OnClickListener() { public void onClick(View v) { signIn(barcode); } }; /** * 签到 * * @param barcode */ private void signIn(final Barcode barcode) { // 如果网络没有连接则返回 if (!ac.isNetworkConnected()) { UIHelper.ToastMessage(Signin.this, "当前网络不可用,请检查网络设置", Toast.LENGTH_LONG); finish(); return; } mProgress = ProgressDialog.show(Signin.this, null, "正在签到,请稍候...", true, true); final Handler handler = new Handler() { public void handleMessage(Message msg) { if (mProgress != null) mProgress.dismiss(); if (msg.what == 0) { try { JsonResult res = JsonResult.parse(msg.obj.toString()); if (res.isOk()) { UIHelper.ToastMessage(Signin.this, res.getMessage(), Toast.LENGTH_LONG); } else { UIHelper.ToastMessage(Signin.this, res.getErrorMes(), Toast.LENGTH_LONG); } } catch (AppException e) { e.printStackTrace(); } } else { ((AppException) msg.obj).makeToast(Signin.this); } } }; new Thread() { public void run() { Message msg = new Message(); String res = ""; try { res = ac.signIn(barcode); if (mProgress != null && mProgress.isShowing()) { mProgress.dismiss(); } msg.what = 0; msg.obj = res; } catch (AppException e) { e.printStackTrace(); msg.what = -1; msg.obj = e; } handler.sendMessage(msg); } }.start(); } }