package com.sets.speedtest.activity; import java.text.MessageFormat; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONObject; import android.os.Bundle; import android.view.Gravity; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.loopj.android.http.RequestParams; import com.sets.speedtest.R; import com.sets.speedtest.common.CommDialog; import com.sets.speedtest.common.CommToast; import com.sets.speedtest.constant.C; import com.sets.speedtest.domain.AddressInfo; import com.sets.speedtest.domain.DeviceInfo; import com.sets.speedtest.listener.OnDialogClickListener; import com.sets.speedtest.manager.SharedPreferencesManager; import com.sets.speedtest.manager.http.BaseResponseHandler; import com.sets.speedtest.manager.http.WSClient; import com.sets.speedtest.utils.CheckPhoneStatus; import com.sets.speedtest.utils.DateUtils; import com.sets.speedtest.utils.ResponseParser; import com.sets.speedtest.utils.StringB; import com.sets.speedtest.utils.ViewUtils; /** * @author : lipan * @create_time : 2014年8月15日 下午3:23:20 * @desc : 登录 * @update_person: * @update_time : * @update_desc : * */ public class LoginActivity extends BaseActivity { // private EditText phoneNoET; // 手机号 private String phoneNo = "-1"; // 手机号 private EditText passportET; // 口令 private String passport; // 口令 private Integer testerId; // 测试人Id private Button loginBtn; // 登录按钮 private long mExitTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); // phoneNoET = (EditText) findViewById(R.id.phone_no); passportET = (EditText) findViewById(R.id.passport); loginBtn = (Button) findViewById(R.id.loginBtn); DeviceInfo deviceInfo = CheckPhoneStatus.getDeviceInfo(getContext()); if (!StringB.isBlank(deviceInfo.phone_nbr)) // 设备手机号 { phoneNo = deviceInfo.phone_nbr; } // if (!StringB.isBlank(deviceInfo.phone_nbr)) // 设备手机号 // { // phoneNo = deviceInfo.phone_nbr; // } else if (!StringB // .isBlank(SharedPreferencesManager.getInstance().getUserInfo().testerPhone))// sp中手机号 // { // phoneNo = SharedPreferencesManager.getInstance().getUserInfo().testerPhone; // } // phoneNoET.setText(phoneNo); String passport = SharedPreferencesManager.getInstance().getUserInfo().passport; if (!StringB.isBlank(passport)) { passportET.setText(SharedPreferencesManager.getInstance().getUserInfo().passport); // 自动登录... loginBtn.performClick(); } // 禁用右滑 setSwipeBackEnable(false); } @Override public void BtnClick(View v) { switch (v.getId()) { case R.id.navi_btn_right: // 导航栏右上角 CommDialog.showConfirmDialog(getContext(), R.string.call_help, R.string.call_help_confirm, getString(R.string.dialog_cancel), getString(R.string.call_help_go), true, true, new OnDialogClickListener() { @Override public void onRightClick(View v) { ViewUtils.call(getContext(), getString(R.string.call_help_no)); } }); break; case R.id.get_passport: // 如何获取口令 CommDialog.showInfoDialog(getContext(), getString(R.string.how_to_get_passport), null); break; case R.id.loginBtn: // 登录按钮 // phoneNo = StringB.trimToEmpty(phoneNoET.getText().toString()); passport = StringB.trimToEmpty(passportET.getText().toString()); // 非空校验 if (StringB.isBlank(passport)) // if (StringB.isBlank(phoneNo) || StringB.isBlank(passport)) { CommDialog.showInfoDialog(getContext(), getString(R.string.is_empty, "口令"), null); return; } WSClient.postForm(getContext(), MessageFormat.format(C.WS_LOGIN, passport), new RequestParams(), new BaseResponseHandler(getContext(), null, null) { @Override public void onSuccess(int statusCode, JSONObject response) { ResponseParser handler = ResponseParser.handler(getContext(), response); if (handler.success) { // 登录成功后将手机号码和口令放入sp中 if (null != (testerId = handler.data.optInt("signalTester"))) { SharedPreferencesManager.getInstance() .setPassport(passport); SharedPreferencesManager.getInstance() .setTesterId(testerId); SharedPreferencesManager.getInstance().setTesterPhone( phoneNo); // 保存用户对应的地址信息 JSONArray addressList = handler.data .optJSONArray("addressList"); if (addressList.length() > 0) { // AddressInfoDao addressInfoDao = new AddressInfoDao(); // // 先清空所有地址信息 // addressInfoDao.deleteTempAdds(); // for (int i = 0; i < addressList.length(); i++) // { // JSONObject add = (JSONObject) addressList.opt(i); // addressInfoDao.insertTempAdds(new AddressInfo(add.optInt("addressId"),add // .optString("city"), add // .optString("college"), add // .optString("address"), add // .optInt("seatNumber"))); // } ArrayList<AddressInfo> addressInfos = new ArrayList<AddressInfo>(); for (int i = 0; i < addressList.length(); i++) { // JSONObject add = (JSONObject) addressList.opt(i); // addressInfos.add(new AddressInfo(add.optInt("addressId"),add // .optString("city"), add // .optString("college"), add // .optString("address"), add // .optInt("seatNumber"))); } // 跳转到学校选择页面 Bundle bundle =new Bundle(); bundle.putParcelableArrayList(AddressInfo.KEY, addressInfos); startActivity(ChooseCampusActivity.class,bundle); }else { CommDialog.showInfoDialog(getContext(), getString(R.string.no_school_info), null); } } else { CommToast.showInfo(getContext(), getString(R.string.testerId_is_null)); } } else { CommToast.showInfo(getContext(), handler.errorMsg); } } @Override public void onFailure(Throwable error, String content) { CommToast.showInfo(getContext(), getString(R.string.system_error)); } }); break; default: break; } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((DateUtils.getCurrentMillis() - mExitTime) > 2000) { CommToast.showInfo(this, R.string.exit_app, Gravity.BOTTOM, 0, getResources() .getDimensionPixelSize(R.dimen.gap_50)); mExitTime = DateUtils.getCurrentMillis(); } else { CommToast.dismiss(); // 两次按返回键在两秒内,那么退出应用 finish(); } return true; } return super.onKeyDown(keyCode, event); } }