package com.chinaece.gaia.gui;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.chinaece.gaia.R;
import com.chinaece.gaia.constant.Gaia;
import com.chinaece.gaia.db.DataStorage;
import com.chinaece.gaia.http.OAHttpApi;
import com.chinaece.gaia.types.UserType;
import com.chinaece.gaia.util.UpdateVersionInfo;
public class GaiaActivity extends Activity {
private final HashMap<String, String> map = new HashMap<String, String>();
private URL formatUrl;
private boolean network = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataStorage.load(this);
try{
network = getIntent().getBooleanExtra("network", true);
}catch (Exception e) {
Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show();
}
if(network && DataStorage.properties.get("token") != null && DataStorage.properties.get("url") != null){
Intent intent = new Intent(GaiaActivity.this,MainActivity.class);
startActivity(intent);
this.finish();
}
setContentView(R.layout.login);
final Spinner url = (Spinner) findViewById(R.id.edtOAUrl);
// if(Gaia.DEBUG){
// map.put("开发测试", "http://10.4.3.1:8080/obpm/");
// }
map.put("华东有色电子政务平台", "http://oa.china-ece.com:18081");
String[] keys = {};
keys = map.keySet().toArray(keys);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,keys);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
url.setAdapter(adapter);
Button loginButton = (Button) findViewById(R.id.btnLogin);
final EditText user = (EditText) findViewById(R.id.edtUserId);
final EditText password = (EditText) findViewById(R.id.edtPassWord);
final EditText domain = (EditText) findViewById(R.id.edtDomain);
loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
formatUrl = new URL(map.get(url.getSelectedItem()));
ApiTask task = new ApiTask();
task.execute(formatUrl.toString(), user.getText()
.toString().trim(), password.getText().toString().trim(), domain
.getText().toString().trim());
} catch (MalformedURLException e) {
Toast.makeText(getApplicationContext(), "请输入正确的网址", Toast.LENGTH_LONG).show();
}
}
});
Button Ebutton = (Button) findViewById(R.id.btnExit);
Ebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog = new AlertDialog.Builder(GaiaActivity.this)
.setTitle("提示")
.setMessage("确定要退出OA系统")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
GaiaActivity.this.finish();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
return;
}
}).create();
dialog.show();
}
});
UpdateVersionInfo.CheckVersionTask(GaiaActivity.this);
}
class ApiTask extends AsyncTask<String, Integer, UserType> {
private ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(GaiaActivity.this, "请稍等...", "正在登录...");
}
@Override
protected UserType doInBackground(String... params) {
OAHttpApi OaApi = new OAHttpApi(params[0]);
UserType user = OaApi.getToken(params[1], params[2], params[3]);
return user;
}
@Override
protected void onPostExecute(UserType user) {
dialog.dismiss();
if (user != null) {
if(user.getToken().indexOf("null") == -1){
DataStorage.properties.put("token", user.getToken());
DataStorage.properties.put("url", formatUrl.toString());
DataStorage.properties.put("name", user.getName());
DataStorage.save(GaiaActivity.this);
Intent intent = new Intent(GaiaActivity.this,MainActivity.class);
startActivityForResult(intent,11);
finish();
}
else{
Toast.makeText(getApplicationContext(), "请登陆OA系统生成鉴证码", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getApplicationContext(), "请输入合法的用户名和密码",
Toast.LENGTH_LONG).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
map.clear();
}
}