Android Open Source - android Login Activity






From Project

Back to project page android.

License

The source code is released under:

MIT License

If you think the Android project android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.felina.android;
//  w w w . java2  s.co  m
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
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.TextView;

import com.felina.android.api.FelinaClient;
import com.loopj.android.http.JsonHttpResponseHandler;

public class LoginActivity extends Activity {

  private EditText userBox;
  private EditText passBox;
  private EditText nameBox;
  private TextView errTxt;
  private Button registerBtn;
  private Button loginBtn;
  private ProgressDialog dialog;
  private String login;
  private String register;
  private String new_account;
   private static FelinaClient fClient;

  private OnClickListener mListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      
      String text;
      
      switch(v.getId()) {
      
      case R.id.loginBtn:

        String email = userBox.getText().toString();
        String pass = passBox.getText().toString();
        String name = nameBox.getText().toString();
        text = loginBtn.getText().toString();

        if(text.equals(login)) {
          dialog.show();
            login(getApplicationContext(), email, pass, Constants.RETRY_LIMIT);
        }
        
        else if (text.equals(register)) {
          dialog.show();
            register(getApplicationContext(), email, pass, name, Constants.RETRY_LIMIT);
        }
          
        break;
      
      case R.id.registerBtn:
        
        text = registerBtn.getText().toString();
        
        if(text.equals(new_account)) {
          errTxt.setVisibility(View.INVISIBLE);
          nameBox.setVisibility(View.VISIBLE);
          loginBtn.setText(register);
          registerBtn.setText(login);
        }
        
        else if(text.equals(login)) {
          nameBox.setVisibility(View.INVISIBLE);
          loginBtn.setText(login);
          registerBtn.setText(new_account);
        }
          
        break;
      }
    }
  };
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    
    fClient = new FelinaClient(this);
    
    userBox = (EditText) findViewById(R.id.usernameBox);
    passBox = (EditText) findViewById(R.id.passwordBox);
    nameBox = (EditText) findViewById(R.id.nameBox);
    errTxt = (TextView) findViewById(R.id.errorTxt);
    registerBtn = (Button) findViewById(R.id.registerBtn);
    loginBtn = (Button) findViewById(R.id.loginBtn);
    
    login = getResources().getString(R.string.login);
    register = getResources().getString(R.string.register);
    new_account = getResources().getString(R.string.new_account);
    
    loginBtn.setText(login);
    registerBtn.setText(new_account);
    
    dialog = new ProgressDialog(this, ProgressDialog.STYLE_SPINNER);
    
    loginBtn.setOnClickListener(mListener);
    registerBtn.setOnClickListener(mListener);
  }
  
    private void login(final Context context, final String email, final String pass, final int retry) {
      
      if(retry == 0) {
        return;
      }
      
      try {
      fClient.login(email, pass, new JsonHttpResponseHandler(){
        @Override
        public void onSuccess(JSONObject response) {
          dialog.dismiss();
          try {
            if (response.getBoolean("res")) {
                CredentialUtils.writeEmail(context, email);
                CredentialUtils.writePassword(context, pass);
                CredentialUtils.writeName(context, response.getJSONObject("user").getString("name"));
              setResult(RESULT_OK);
              finish();
            } else {
              errTxt.setVisibility(View.VISIBLE);
            }
          } catch (JSONException e) {
            e.printStackTrace();
            login(context, email, pass, retry-1);
          }
        }
        
        @Override
        public void onFailure(Throwable e, JSONObject errorResponse) {
          login(context, email, pass, retry-1);
        }
      });
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    }
    
    private void register(final Context context, final String email, final String pass, final String name, final int retry) {
      
      if(retry == 0) {
        return;
      }
      
      try {
      fClient.register(email, pass, name, new JsonHttpResponseHandler(){
        @Override
        public void onSuccess(JSONObject response) {
          dialog.dismiss();
          try {
            if (response.getBoolean("res")) {
                CredentialUtils.writeEmail(context, email);
                CredentialUtils.writePassword(context, pass);
                CredentialUtils.writeName(context, name);
              setResult(RESULT_OK);
              finish();
            } else {
              errTxt.setVisibility(View.VISIBLE);
              Log.e("LoginActivity", response.toString(2));
            }
          } catch (JSONException e) {
            e.printStackTrace();
            login(context, email, pass, retry-1);
          }
        }
        
        @Override
        public void onFailure(Throwable e, JSONObject errorResponse) {
          login(context, email, pass, retry-1);
        }
      });
    } catch (Exception e) {
      e.printStackTrace();
    }
    }
  
  @Override
  public void onBackPressed() {
    setResult(RESULT_CANCELED);
    super.onBackPressed();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.login, menu);
    return true;
  }

}




Java Source Code List

com.felina.android.Constants.java
com.felina.android.CredentialUtils.java
com.felina.android.GalleryFragment.java
com.felina.android.HttpRequestClient.java
com.felina.android.ImageUploader.java
com.felina.android.LoginActivity.java
com.felina.android.MainActivity.java
com.felina.android.ProfileFragment.java