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