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.Report; import net.oschina.app.common.StringUtils; 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.Spinner; import android.widget.TextView; /** * 举报操作窗口 * @author 火蚁(http://my.oschina.net/LittleDY) * @version 1.0 * @created 2014-02-13 */ public class ReportUi extends BaseActivity { private final String TAG = "ReportUi"; private AppContext ac; private TextView mLink; private Spinner mReason; private TextView mOtherReason; private Button mPublish; private ImageButton mClose; private ProgressDialog mProgress; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.report); this.initView(); initData(); } @Override protected void onDestroy() { super.onDestroy(); AppManager.getAppManager().finishActivity(this); } private void initView() { ac = (AppContext)getApplication(); mLink = (TextView) findViewById(R.id.report_link); mReason = (Spinner) findViewById(R.id.report_reason); mOtherReason = (TextView) findViewById(R.id.report_other_reson); mPublish = (Button) findViewById(R.id.report_publish); mClose = (ImageButton) findViewById(R.id.report_close_button); mClose.setOnClickListener(UIHelper.finish(this)); mPublish.setOnClickListener(publishListener); } private void initData() { Intent data = this.getIntent(); mLink.setText(data.getStringExtra(Report.REPORT_LINK)); } private OnClickListener publishListener = new OnClickListener() { public void onClick(View v) { if (mPublish.getTag() == null) { return; } final Report report = new Report(); report.setLinkAddress(mLink.getText() + ""); report.setReportId(ac.getLoginUid()); String otherReason = mOtherReason.getText().toString(); if (StringUtils.isEmpty(otherReason)) { report.setOtherReason("其他原因"); } else { report.setOtherReason(otherReason); } report.setReason(mReason.getSelectedItem().toString()); mProgress = ProgressDialog.show(v.getContext(), null, "举报信息发送中...",true,true); final Handler handler = new Handler(){ public void handleMessage(Message msg) { if(mProgress!=null)mProgress.dismiss(); if(msg.what == 0){ UIHelper.ToastMessage(ReportUi.this, "发送成功"); finish(); } else if (msg.what == 1) { UIHelper.ToastMessage(ReportUi.this, "发送失败"); } else { ((AppException)msg.obj).makeToast(ReportUi.this); } } }; new Thread(){ public void run() { Message msg = new Message(); String res = ""; try { res = ac.report(report); msg.obj = res; if (res == "" || res == null) { msg.what = 0; } else { msg.what = 1; } } catch (AppException e) { e.printStackTrace(); msg.what = -1; } handler.sendMessage(msg); } }.start(); } }; }