package com.yeetou.xinyongkaguanjia.ui;
import com.yeetou.xinyongkaguanjia.R;
import com.yeetou.xinyongkaguanjia.constants.AppConstant;
import com.yeetou.xinyongkaguanjia.db.base.DbAccount;
import com.yeetou.xinyongkaguanjia.db.service.DbAccountService;
import com.yeetou.xinyongkaguanjia.http.base.EmailCheckBase;
import com.yeetou.xinyongkaguanjia.http.service.EmailCheck;
import com.yeetou.xinyongkaguanjia.http.service.SyncData;
import com.yeetou.xinyongkaguanjia.util.Crypt;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class BEmialAddActivity extends AbstractActivity {
private EditText user;
private EditText passwd;
private String email_input = "";//"tti12345@126.com";
private String passwd_input = "";//"tt123456789";
private Button passwd_cancel;
private Button passwd_submit;
private DbAccountService dbas;
private DbAccount dbaccout;
private String secret = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bemial_add);
user = (EditText) findViewById(R.id.user);
passwd = (EditText) findViewById(R.id.passwd);
user.setText(email_input);
passwd.setText(passwd_input);
passwd_cancel = (Button) findViewById(R.id.passwd_cancel);
passwd_submit = (Button) findViewById(R.id.passwd_submit);
dbas = new DbAccountService(this);
dbaccout = dbas.get();
passwd_cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setResult(RESULT_CANCELED);
finish();
}
});
passwd_submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showProgressDialog("正在添加邮箱");
try {
new Thread(new EmailCheck(BEmialAddActivity.this, emailAuthlHandler, dbaccout.getEmail(), dbaccout.getSecret(), user.getText().toString(), Crypt.encrypt(passwd.getText().toString(), dbaccout.getIv()), AppConstant.HTTPURL.emails_add, dbaccout.getIv())).start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public Handler emailAuthlHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case AppConstant.HANDLER_MESSAGE_NORMAL:
EmailCheckBase eCheckBase = (EmailCheckBase) msg.obj;
secret = eCheckBase.getSecret();
dbas.saveSecret(secret);
switch (eCheckBase.getCode()) {
case 101: // 验证成功 , 则添加邮箱
Log.d(TAG, "emailAuthlHandler .secret=" + secret);
try {
new Thread(new EmailCheck(BEmialAddActivity.this, emailAddlHandler, dbaccout.getEmail(), secret, user.getText().toString(), Crypt.encrypt(passwd.getText().toString(), dbaccout.getIv()), AppConstant.HTTPURL.emails_add, dbaccout.getIv())).start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case 999:// 认证邮箱失败,请稍后再试
dismissProgressDialog();
Toast.makeText(BEmialAddActivity.this, "认证邮箱失败,请稍后再试", Toast.LENGTH_SHORT).show();
break;
case 200:// 用户邮箱或者密码错误。或者POP3服务没有开启
dismissProgressDialog();
Toast.makeText(BEmialAddActivity.this, " 用户邮箱或者密码错误", Toast.LENGTH_SHORT).show();
break;
case 201:// 参数错误
dismissProgressDialog();
Toast.makeText(BEmialAddActivity.this, "认证邮箱失败,请稍后再试", Toast.LENGTH_SHORT).show();
break;
}
break;
case AppConstant.HANDLER_MESSAGE_NONETWORK:
break;
case AppConstant.HANDLER_MESSAGE_TIMEOUT:
break;
case AppConstant.HANDLER_HTTPSTATUS_ERROR:
break;
}
}
};
public Handler emailAddlHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case AppConstant.HANDLER_MESSAGE_NORMAL:
dismissProgressDialog();
EmailCheckBase eCheckBase = (EmailCheckBase) msg.obj;
switch (eCheckBase.getCode()) {
case 101: // 添加邮箱成功
// 同步数据,暂时写在这里
secret = eCheckBase.getSecret(); // 更新secret
dbas.saveSecret(secret);
// new Thread(new SyncData(LoginActivity.this,
// SyncDatahandler, dbaccout.getEmail(),
// dbaccout.getSecret(), 1)).start();
new Thread(new SyncData(BEmialAddActivity.this, SyncDatahandler, dbaccout.getEmail(), secret, 0)).start();
Log.d(TAG, "eCheckBase.getFlag=" + eCheckBase.getFlag());
switch (eCheckBase.getFlag()) {
case 0:// 新的邮箱
break;
case 1:// 存在,弹出提示是否解绑
break;
case 2:// 激活??
break;
}
break;
case 999:// 认证邮箱失败,请稍后再试
break;
case 200:// 用户邮箱或者密码错误。或者POP3服务没有开启
break;
case 201:// 参数错误
break;
}
break;
case AppConstant.HANDLER_MESSAGE_NONETWORK:
break;
case AppConstant.HANDLER_MESSAGE_TIMEOUT:
break;
case AppConstant.HANDLER_HTTPSTATUS_ERROR:
break;
}
}
};
public Handler SyncDatahandler = new Handler() {
@Override
public void handleMessage(Message msg) {
dismissProgressDialog();
super.handleMessage(msg);
switch (msg.what) {
case AppConstant.HANDLER_MESSAGE_NORMAL:
setResult(RESULT_OK);
finish();
break;
case AppConstant.HANDLER_MESSAGE_NONETWORK:
break;
case AppConstant.HANDLER_MESSAGE_TIMEOUT:
break;
case AppConstant.HANDLER_HTTPSTATUS_ERROR:
break;
}
}
};
}