From 8e658a571a34babdba3b083ad50e9ffa0ac8fe8e Mon Sep 17 00:00:00 2001 From: geraugu Date: Thu, 20 Aug 2015 09:35:00 -0300 Subject: [PATCH] refactoring do login --- app/src/main/java/com/monitorabrasil/participacidadao/view/LoginActivity.java | 457 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 0 insertions(+), 457 deletions(-) delete mode 100644 app/src/main/java/com/monitorabrasil/participacidadao/view/LoginActivity.java diff --git a/app/src/main/java/com/monitorabrasil/participacidadao/view/LoginActivity.java b/app/src/main/java/com/monitorabrasil/participacidadao/view/LoginActivity.java deleted file mode 100644 index 7879a25..0000000 --- a/app/src/main/java/com/monitorabrasil/participacidadao/view/LoginActivity.java +++ /dev/null @@ -1,457 +0,0 @@ -package com.monitorabrasil.participacidadao.view; - -import android.app.Activity; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.Uri; -import android.os.Bundle; -import android.support.design.widget.Snackbar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.text.TextUtils; -import android.view.KeyEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.inputmethod.EditorInfo; -import android.widget.ArrayAdapter; -import android.widget.AutoCompleteTextView; -import android.widget.Button; -import android.widget.EditText; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.TextView; - -import com.monitorabrasil.participacidadao.R; -import com.monitorabrasil.participacidadao.application.MyApp; -import com.nostra13.universalimageloader.core.assist.FailReason; -import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; -import com.parse.LogInCallback; -import com.parse.LogOutCallback; -import com.parse.ParseTwitterUtils; -import com.parse.ParseUser; -import com.parse.SignUpCallback; - -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.util.List; - -/** - * A login screen that offers login via email/password. - */ -public class LoginActivity extends AppCompatActivity { - - - /** - * Keep track of the login task to ensure we can cancel it if requested. - */ - - - // UI references. - private AutoCompleteTextView mEmailView; - private EditText mPasswordView; - private EditText mNome; - private View mProgressView; - private View mLoginFormView; - private View mLogoutFormView; - private Button btnFazerCadastro; - private Button btnLogar; - private Button btnLogout; - private Button btnLoginTwitter; - private TextView lblNome; - private TextView lblEmail; - private ImageView foto; - private ParseUser currentUser; - private ImageButton btnFoto; - - private final int PICK_IMAGE=2; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - setupActionBar(); - mLoginFormView = findViewById(R.id.login_form); - mLogoutFormView = findViewById(R.id.logout_form); - mProgressView = findViewById(R.id.login_progress); - btnFoto = (ImageButton) findViewById(R.id.btnFoto); - currentUser = ParseUser.getCurrentUser(); - - - - - if (currentUser != null) { - montaFormLogout(); - - }else{ - mLogoutFormView.setVisibility(View.GONE); - mLoginFormView.setVisibility(View.VISIBLE); - - } - - // Set up the login form. - btnFoto.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT); - getIntent.setType("image/*"); - - Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - pickIntent.setType("image/*"); - - Intent chooserIntent = Intent.createChooser(getIntent, "Selecione uma foto"); - chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent}); - - startActivityForResult(chooserIntent, PICK_IMAGE); - } - }); - - mNome = (EditText)findViewById(R.id.txtNome); - mNome.setVisibility(View.GONE); - - btnLogar = (Button)findViewById(R.id.email_sign_in_button); - btnLogout = (Button)findViewById(R.id.btnLogout); - - btnLogout.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - showProgress(true,null); - ParseUser.logOutInBackground(new LogOutCallback() { - @Override - public void done(com.parse.ParseException e) { - showProgress(false, mLoginFormView); - } - }); - } - }); - - btnFazerCadastro = (Button)findViewById(R.id.fazer_cadastro); - btnFazerCadastro.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if(btnFazerCadastro.getText().toString().equals("Fazer Cadastro")){ - mNome.setVisibility(View.VISIBLE); - btnLogar.setVisibility(View.GONE); - btnLoginTwitter.setVisibility(View.GONE); - btnFazerCadastro.setText("Cadastrar"); - View view = mNome; - view.requestFocus(); - }else{ - realizarCadastro(); - } - - } - }); - - btnLoginTwitter = (Button)findViewById(R.id.login_twitter); - btnLoginTwitter.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - ParseTwitterUtils.logIn(v.getContext(), new LogInCallback() { - @Override - public void done(ParseUser parseUser, com.parse.ParseException e) { - if (parseUser == null) { - Snackbar.make(mLoginFormView, "Login cancelado ", Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); - } else if (parseUser.isNew()) { - parseUser.put("nome",ParseTwitterUtils.getTwitter().getScreenName()); - parseUser.saveInBackground(); - montaFormLogout(); - } else { - montaFormLogout(); - } - } - }); - } - }); - - mEmailView = (AutoCompleteTextView) findViewById(R.id.email); - - - mPasswordView = (EditText) findViewById(R.id.password); - mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { - @Override - public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { - if (id == R.id.login || id == EditorInfo.IME_NULL) { - attemptLogin(); - return true; - } - return false; - } - }); - - Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button); - mEmailSignInButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - attemptLogin(); - } - }); - - - - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK) { - if (data == null) { - //Display an error - return; - } - try { - Uri selectedImage = data.getData(); - InputStream imageStream = getContentResolver().openInputStream(selectedImage); - Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream); - btnFoto.setImageBitmap(yourSelectedImage); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap... - } - } - - private void showProgress(boolean b,View v) { - if(b){ - mProgressView.setVisibility(View.VISIBLE); - mLogoutFormView.setVisibility(View.GONE); - mLoginFormView.setVisibility(View.GONE); - }else{ - mProgressView.setVisibility(View.GONE); - v.setVisibility(View.VISIBLE); - } - } - - private void montaFormLogout() { - lblNome = (TextView)findViewById(R.id.lblNome); - lblEmail = (TextView)findViewById(R.id.lblEmail); - foto = (ImageView)findViewById(R.id.foto); - - mLoginFormView.setVisibility(View.GONE); - showProgress(false,mLogoutFormView); - - if(ParseTwitterUtils.getTwitter().getUserId() !=null){ - String screenName = ParseTwitterUtils.getTwitter().getScreenName(); - lblNome.setText(screenName); - lblEmail.setText(""); - MyApp.getInstance().getmImagemLoader().loadImage("https://twitter.com/" + screenName + "/profile_image?size=bigger", new ImageLoadingListener() { - - - @Override - public void onLoadingStarted(String imageUri, View view) { - - } - - @Override - public void onLoadingFailed(String imageUri, View view, FailReason failReason) { - - } - - @Override - public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { - foto.setImageBitmap(loadedImage); - } - - @Override - public void onLoadingCancelled(String imageUri, View view) { - - } - - - }); - }else{ - lblNome.setText(currentUser.get("nome").toString()); - lblEmail.setText(currentUser.getEmail()); - } - } - - - private void realizarCadastro() { - - // Reset errors. - mEmailView.setError(null); - mPasswordView.setError(null); - mNome.setError(null); - - // Store values at the time of the login attempt. - String email = mEmailView.getText().toString(); - String password = mPasswordView.getText().toString(); - String nome =mNome.getText().toString(); - - boolean cancel = false; - View focusView = null; - - if (TextUtils.isEmpty(nome)) { - mNome.setError(getString(R.string.error_field_required)); - focusView = mNome; - cancel = true; - } - - // Check for a valid password, if the user entered one. - if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) { - mPasswordView.setError(getString(R.string.error_invalid_password)); - focusView = mPasswordView; - cancel = true; - } - - // Check for a valid email address. - if (TextUtils.isEmpty(email)) { - mEmailView.setError(getString(R.string.error_field_required)); - focusView = mEmailView; - cancel = true; - } else if (!isEmailValid(email)) { - mEmailView.setError(getString(R.string.error_invalid_email)); - focusView = mEmailView; - cancel = true; - } - - if (cancel) { - // There was an error; don't attempt login and focus the first - // form field with an error. - focusView.requestFocus(); - } else { - // Show a progress spinner, and kick off a background task to - // perform the user login attempt. - showProgress(true,null); - - ParseUser user = new ParseUser(); - user.setUsername(email); - user.setPassword(password); - user.setEmail(email); - user.put("nome",mNome.getText().toString()); - - - user.signUpInBackground(new SignUpCallback() { - @Override - public void done(com.parse.ParseException e) { - if (e == null) { - montaFormLogout(); - } else { - showProgress(false,mLoginFormView); - Snackbar.make(mLoginFormView, "Houve um erro ao fazer seu cadastro ", Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); - } - } - - - }); - - } - } - - - - /** - * Set up the {@link android.app.ActionBar}, if the API is available. - */ -// @TargetApi(Build.VERSION_CODES.HONEYCOMB) - private void setupActionBar() { - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - - // toolbar.setNavigationIcon(R.drawable.ic_good); - toolbar.setTitle("Login"); - - toolbar.setTitleTextColor(getResources().getColor(R.color.md_white_1000)); - toolbar.setSubtitleTextColor(getResources().getColor(R.color.md_white_1000)); - setSupportActionBar(toolbar); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - - /** - * Attempts to sign in or register the account specified by the login form. - * If there are form errors (invalid email, missing fields, etc.), the - * errors are presented and no actual login attempt is made. - */ - public void attemptLogin() { - - - // Reset errors. - mEmailView.setError(null); - mPasswordView.setError(null); - - // Store values at the time of the login attempt. - String email = mEmailView.getText().toString(); - String password = mPasswordView.getText().toString(); - - boolean cancel = false; - View focusView = null; - - // Check for a valid password, if the user entered one. - if (TextUtils.isEmpty(password) && !isPasswordValid(password)) { - mPasswordView.setError(getString(R.string.error_invalid_password)); - focusView = mPasswordView; - cancel = true; - } - - // Check for a valid email address. - if (TextUtils.isEmpty(email)) { - mEmailView.setError(getString(R.string.error_field_required)); - focusView = mEmailView; - cancel = true; - } else if (!isEmailValid(email)) { - mEmailView.setError(getString(R.string.error_invalid_email)); - focusView = mEmailView; - cancel = true; - } - - if (cancel) { - // There was an error; don't attempt login and focus the first - // form field with an error. - focusView.requestFocus(); - } else { - // Show a progress spinner, and kick off a background task to - // perform the user login attempt. - showProgress(true,null); - - //fazer o login aqui - fazerLogin(email, password); - - } - } - - private void fazerLogin(String email, String password) { - ParseUser.logInInBackground(email, password, new LogInCallback() { - - @Override - public void done(ParseUser parseUser, com.parse.ParseException e) { - if (parseUser != null) { - finish(); - } else { - mPasswordView.setError(getString(R.string.error_incorrect_password)); - mPasswordView.requestFocus(); - showProgress(false,mLoginFormView); - } - } - - - }); - } - - private boolean isEmailValid(String email) { - //TODO: Replace this with your own logic - return email.contains("@"); - } - - private boolean isPasswordValid(String password) { - //TODO: Replace this with your own logic - return password.length() > 4; - } - - - - - - private void addEmailsToAutoComplete(List emailAddressCollection) { - //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list. - ArrayAdapter adapter = - new ArrayAdapter(LoginActivity.this, - android.R.layout.simple_dropdown_item_1line, emailAddressCollection); - - mEmailView.setAdapter(adapter); - } - - -} - -- libgit2 0.21.2