package com.emop.client;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.Toast;
import com.emop.client.io.ApiResult;
import com.emop.client.tasks.GetSinaUserInfoTask;
import com.taobao.top.android.TopAndroidClient;
import com.weibo.sdk.android.sso.SsoHandler;
public class LoginActivity extends BaseActivity {
private static final int SINA_LOGIN_CODE = 1;
private ProgressDialog loading = null;
private SsoHandler sinaSSO = null;
private EditText email = null;
private EditText password = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_view);
loading = new ProgressDialog(this);
loading.requestWindowFeature(Window.FEATURE_NO_TITLE);
loading.setMessage("登录中...");
email = (EditText)findViewById(R.id.login_email_text);
password = (EditText)findViewById(R.id.login_passward_text);
}
protected void onResume (){
super.onResume();
if(client.isLogined() && !loading.isShowing()){
Toast.makeText(this, "登录成功", Toast.LENGTH_LONG).show();
finish();
}
}
public void doLogin(View v){
loading.show();
new LoginRequest().execute();
}
public void doLoginFromSina(View v){
Log.d("tag", "doLoginFromsina");
/*
Intent intent = new Intent();
intent.setClass(this, WebLoginActivity.class);
startActivity(intent);
*/
sinaSSO = new SsoHandler(this, handler);
loading.show();
sinaSSO.authorize();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(sinaSSO != null){
sinaSSO.authorizeCallBack(requestCode, resultCode, data);
}
}
public void doLoginFromQQ(View v){
Log.d("tag", "doLoginFromqq");
Intent intent = new Intent();
intent.setClass(this, QQLoginActivity.class);
startActivity(intent);
}
public void onFinish(View v){
finish();
}
public void doLoginFromTaobao(View v){
Log.d("tag", "doLoginFrom taobao");
TopAndroidClient topClient = TopAndroidClient.getAndroidClientByAppKey(Constants.TAOBAO_APPID);
if(topClient != null){
String authLink = topClient.getAuthorizeLink();
Intent intent = new Intent().setClass(this, WebViewActivity.class);
Log.d(Constants.TAG_EMOP, "taobao auth link:" + authLink);
intent.putExtra("http_url", authLink);
intent.putExtra("title", "淘宝登陆");
intent.putExtra("taobaoLogin", true);
startActivity(intent);
}else {
this.showToast("加载失败");
}
}
public void doRegister(View v){
Log.d("tag", "do Register");
Intent intent = new Intent();
intent.setClass(this, RegisterActivity.class);
startActivity(intent);
finish();
}
public void doLogout(View v){
//Log.d("tag", "sina key:" + client.config.sinaKey);
}
private class LoginRequest extends AsyncTask<Void, Void, ApiResult> {
protected void onPostExecute(ApiResult u) {
loading.dismiss();
if(u != null && u.isOK){
client.saveLoginUser(LoginActivity.this, u.getString("data.user_id"));
finish();
}else if(u != null){
Toast.makeText(LoginActivity.this, u.errorMsg(), Toast.LENGTH_LONG).show();
}
}
@Override
protected ApiResult doInBackground(Void... arg0) {
String emailStr = email.getText().toString();
String passwordStr = password.getText().toString();
ApiResult r = client.login(emailStr, passwordStr);
return r;
}
}
private Handler handler = new Handler(){
public void handleMessage(final Message msg) {
String message = null;
if(msg.obj != null){
message = msg.obj.toString();
if(message != null){
Toast.makeText(LoginActivity.this, message, Toast.LENGTH_LONG).show();
}
}
if(msg.what == GetSinaUserInfoTask.LOGIN_DONE){
finish();
}else if(msg.what == SsoHandler.START_WEB_LOGIN || msg.what == SsoHandler.SSO_LOGIN_ERROR){
loading.dismiss();
}
}
};
}