package com.theostriches.amaretto.android; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.theostriches.amaretto.android.model.Event; import com.theostriches.amaretto.android.model.User; import com.theostriches.amaretto.android.server.PostLogIn; import com.theostriches.amaretto.android.util.LocalDataManager; public class LoginActivity extends SherlockFragmentActivity implements OnClickListener { private User user; private ArrayList<Event> eventList; private Context mContext; private EditText eUser; private EditText ePass; private LocalDataManager localData; private ProgressDialog mProgressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); mContext = this; localData = new LocalDataManager(mContext); eUser = (EditText) findViewById(R.id.editTextUser); ePass = (EditText) findViewById(R.id.editTextPass); Button b = (Button) findViewById(R.id.buttonLogin); b.setOnClickListener(this); Button b2 = (Button) findViewById(R.id.buttonSignUp); b2.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.buttonLogin: login(false); break; case R.id.buttonSignUp: login(true); break; default: break; } } private void login(boolean newUser) { Handler updateHandler = new Handler() { @Override public void handleMessage(Message msg) { mProgressDialog.dismiss(); try { switch (msg.what) { case PostLogIn.CODE_OK: User user = (User) msg.obj; localData.setUser(user); setResult(Activity.RESULT_OK); finish(); break; case PostLogIn.CODE_BADAUTH: Toast.makeText(mContext, "Login no autorizado", Toast.LENGTH_LONG).show(); break; case PostLogIn.CODE_ERROR: default: Toast.makeText(mContext, "Error", Toast.LENGTH_LONG).show(); break; } } catch (Exception e) { // Fragment closed, do nothing } } }; PostLogIn up = new PostLogIn(updateHandler, eUser.getText().toString(), md5(ePass.getText() .toString()), newUser); up.start(); mProgressDialog = ProgressDialog.show(mContext, mContext.getText(R.string.loading), mContext.getText(R.string.please_wait), true, true, null); } public String md5(String s) { try { // Create MD5 Hash MessageDigest digest = java.security.MessageDigest.getInstance("MD5"); digest.update(s.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) hexString.append(Integer.toHexString(0xFF & messageDigest[i])); return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } }