package com.pivotallabs.tracker; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.view.View; import android.widget.EditText; import com.pivotallabs.Callbacks; import com.pivotallabs.EmptyOnClickListener; import com.pivotallabs.R; import com.pivotallabs.ViewEnablingTextWatcher; public class SignInDialog extends Dialog { AuthenticationGateway authenticationGateway; private View signInButton; public SignInDialog(Context context, AuthenticationGateway authenticationGateway) { super(context, android.R.style.Theme_Light_NoTitleBar); this.authenticationGateway = authenticationGateway; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sign_in_dialog); final EditText usernameEditText = (EditText) findViewById(R.id.username); final EditText passwordEditText = (EditText) findViewById(R.id.password); signInButton = findViewById(R.id.sign_in_button); new ViewEnablingTextWatcher(signInButton, usernameEditText, passwordEditText); signInButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { signInButton.setEnabled(false); authenticationGateway.signIn( usernameEditText.getText().toString(), passwordEditText.getText().toString(), new SignInCallbacks()); } }); } private class SignInCallbacks extends Callbacks{ @Override public void onSuccess() { dismiss(); } @Override public void onFailure() { Resources resources = getContext().getResources(); new AlertDialog.Builder(getContext()) .setTitle(resources.getString(R.string.error)) .setMessage(resources.getString(R.string.unknown_user_pass)) .setPositiveButton(resources.getString(R.string.ok), new EmptyOnClickListener()) .show(); } @Override public void onComplete() { signInButton.setEnabled(true); } } }