package com.pandocloud.freeiot.ui.login; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import com.pandocloud.android.api.interfaces.RequestListener; import com.pandocloud.android.api.interfaces.SimpleRequestListener; import com.pandocloud.freeiot.R; import com.pandocloud.freeiot.api.UserApi; import com.pandocloud.freeiot.api.WrapperBaseJsonHttpResponseHandler; import com.pandocloud.freeiot.ui.MainActivity; import com.pandocloud.freeiot.ui.app.AppConstants; import com.pandocloud.freeiot.ui.app.UserState; import com.pandocloud.freeiot.ui.base.BaseActivity; import com.pandocloud.freeiot.ui.bean.http.UserLoginResponse; import com.pandocloud.freeiot.ui.bean.http.UserRegisterResponse; import com.pandocloud.freeiot.ui.helper.ProductInfoHelper; import com.pandocloud.freeiot.utils.ActivityUtils; import com.pandocloud.freeiot.utils.AnalyticsUtils; import com.pandocloud.freeiot.utils.CommonUtils; import com.pandocloud.freeiot.utils.GsonUtils; import com.pandocloud.freeiot.utils.LogUtils; import com.umeng.analytics.MobclickAgent; import org.apache.http.Header; public class EmailRegisterActivity extends BaseActivity implements View.OnClickListener { private EditText mEmailEditView; private EditText mPwdEditView; private EditText mPwdAgainEditView; private ProductInfoHelper mProductInfoHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_email_register); initView(); } public void initView() { mEmailEditView = (EditText) findViewById(R.id.email); mPwdEditView = (EditText) findViewById(R.id.pwd); mPwdAgainEditView = (EditText) findViewById(R.id.pwd_again); findViewById(R.id.register_btn).setOnClickListener(this); mProductInfoHelper = new ProductInfoHelper(productRequestListener); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.register_btn: register(); break; } } public void register() { final String email = mEmailEditView.getText().toString().trim(); if (TextUtils.isEmpty(email)) { CommonUtils.ToastMsg(this, R.string.error_email_empty); return; } final String pwd = mPwdEditView.getText().toString().trim(); if (TextUtils.isEmpty(pwd)) { CommonUtils.ToastMsg(this, R.string.error_empty_pwd); return; } String pwdAgain = mPwdAgainEditView.getText().toString().trim(); if (TextUtils.isEmpty(pwdAgain)) { CommonUtils.ToastMsg(this, R.string.again_pwd_empty); return; } if (!pwd.equals(pwdAgain)) { CommonUtils.ToastMsg(this, R.string.pwd_not_equal); return; } UserApi.mailRegister(this, AppConstants.PRODUCT_KEY, null, email, pwd, new WrapperBaseJsonHttpResponseHandler<UserRegisterResponse>(EmailRegisterActivity.this) { @Override public void onStart() { super.onStart(); CommonUtils.showProgressDialog(EmailRegisterActivity.this, null, null); } @Override protected UserRegisterResponse parseResponse2(String rawJsonData, boolean isFailure) throws Throwable { if (isFailure || TextUtils.isEmpty(rawJsonData)) { return null; } return GsonUtils.getInstance().getGson().fromJson(rawJsonData, UserRegisterResponse.class); } @Override public void onSuccess(int statusCode, Header[] headers, String rawJsonData, UserRegisterResponse response) { if (response.isSuccess()) { if (response.data != null) { UserState.getInstances(EmailRegisterActivity.this).saveAccessToken(response.data.access_token); } login(email, pwd); } else { CommonUtils.dismissDialog(); super.onSuccess(statusCode, headers, rawJsonData, response); } } }); } public void login(String email, String pwd) { UserApi.login(EmailRegisterActivity.this, AppConstants.PRODUCT_KEY, null, null, email, pwd, new WrapperBaseJsonHttpResponseHandler<UserLoginResponse>(this) { @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, String rawJsonData, UserLoginResponse errorResponse) { CommonUtils.ToastMsg(EmailRegisterActivity.this, R.string.register_success); } @Override public void onSuccess(int statusCode, Header[] headers, String rawJsonData, UserLoginResponse response) { if (response.isSuccess()) { if (response.data != null) { UserState.getInstances(EmailRegisterActivity.this).saveAccessToken(response.data.access_token); } mProductInfoHelper.getProductInfo(EmailRegisterActivity.this); } else { CommonUtils.ToastMsg(EmailRegisterActivity.this, R.string.register_success); onBackPressed(); } } @Override protected UserLoginResponse parseResponse2(String rawJsonData, boolean isFailure) throws Throwable { LogUtils.e("RegisterActivity", "rawJsonData: " + rawJsonData); if (!isFailure && !TextUtils.isEmpty(rawJsonData)) { return GsonUtils.getInstance().getGson().fromJson(rawJsonData, UserLoginResponse.class); } return null; } @Override public void onFinish() { CommonUtils.dismissDialog(); } }); } RequestListener productRequestListener = new SimpleRequestListener() { public void onSuccess() { CommonUtils.ToastMsg(EmailRegisterActivity.this, R.string.register_success); setResult(RESULT_OK); ActivityUtils.start(EmailRegisterActivity.this, MainActivity.class, R.anim.slide_in_from_right, R.anim.slide_out_to_left); finish(); } public void onFail(Exception e) { CommonUtils.ToastMsg(EmailRegisterActivity.this, R.string.register_success); onBackPressed(); } public void onFinish() { CommonUtils.dismissDialog(); } }; @Override protected void onResume() { super.onResume(); MobclickAgent.onPageStart(AnalyticsUtils.AnalyticsViewKeys.VIEW_EMAIL_REGISTER_ACTIVITY); MobclickAgent.onResume(this); } @Override protected void onPause() { super.onPause(); MobclickAgent.onPageEnd(AnalyticsUtils.AnalyticsViewKeys.VIEW_EMAIL_REGISTER_ACTIVITY); MobclickAgent.onPause(this); } @Override protected void onDestroy() { super.onDestroy(); UserApi.cancel(EmailRegisterActivity.this, true); } }