Skip to content

Instantly share code, notes, and snippets.

@crabbits
Last active February 25, 2016 15:10

Revisions

  1. crabbits revised this gist Jun 26, 2014. 1 changed file with 72 additions and 0 deletions.
    72 changes: 72 additions & 0 deletions DroidForm.java
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    /* DroidForm.java */

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    @@ -53,3 +55,73 @@ public void displayErrorMessages() {
    }

    }

    /* Usage example - LoginActivity.java */

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;

    import com.intriguos.aid.classes.DroidForm;
    import com.parse.LogInCallback;
    import com.parse.ParseException;
    import com.parse.ParseUser;

    public class LoginActivity extends AidActivity {

    private DroidForm loginForm;
    private Button loginButton;
    private Button signupButton;
    private Intent signupIntent;
    private Intent mainIntent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_activity);

    loginButton = (Button) findViewById(R.id.login_button);
    signupButton = (Button) findViewById(R.id.signup_button);

    loginForm = new DroidForm(this);

    loginForm.addField(R.id.username_field, true);
    loginForm.addField(R.id.password_field, true);

    signupIntent = new Intent(LoginActivity.this, SignupActivity.class);

    setSubmitLoginListener();

    addClickListenerAndFinish(signupButton, signupIntent);
    }

    private void setSubmitLoginListener() {
    loginButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    if (loginForm.formValid() == true) {
    loginUser();
    } else {
    loginForm.displayErrorMessages();
    }
    }
    });
    }

    protected void loginUser() {
    ParseUser.logInInBackground(loginForm.valueOf(R.id.username_field), loginForm.valueOf(R.id.password_field), new LogInCallback() {
    @Override
    public void done(ParseUser user, ParseException e) {
    if (user != null) {
    mainIntent = new Intent(LoginActivity.this, AidActivity.class);
    startActivityAndFinish(mainIntent);
    } else {
    e.printStackTrace();
    }
    }
    });
    }
    }
  2. crabbits created this gist Jun 26, 2014.
    55 changes: 55 additions & 0 deletions DroidForm.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;

    import android.app.Activity;
    import android.content.Context;
    import android.util.Log;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class DroidForm {

    private Map<EditText,Boolean> requiredFields;
    private Iterator<Entry<EditText,Boolean>> iterator;
    private Context context;

    public DroidForm(Context context) {
    this.context = context;
    this.requiredFields = new HashMap<EditText,Boolean>();
    }

    public void addField(int id, Boolean required) {
    EditText field = (EditText) ((Activity) context).findViewById(id);
    this.requiredFields.put(field, required);
    }

    public boolean formValid() {
    iterator = requiredFields.entrySet().iterator();
    while(iterator.hasNext()) {
    Map.Entry<EditText,Boolean> field = (Map.Entry<EditText,Boolean>)iterator.next();
    if(field.getValue() == true && field.getKey().getText().toString().isEmpty()) {
    return false;
    }
    }
    return true;
    }

    public String valueOf(int id) {
    iterator = requiredFields.entrySet().iterator();
    View view = ((Activity) context).findViewById(id);
    while(iterator.hasNext()) {
    Map.Entry<EditText,Boolean> nextField = (Map.Entry<EditText,Boolean>)iterator.next();
    if(nextField.getKey() == view) {
    return nextField.getKey().getText().toString();
    }
    }
    return null;
    }

    public void displayErrorMessages() {
    }

    }