Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ttsl.miguel.tejo;
- import android.Manifest;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.net.Uri;
- import android.os.Build;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.github.clans.fab.FloatingActionButton;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.auth.UserProfileChangeRequest;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- public class RegisterActivity extends AppCompatActivity {
- ImageView ImgUserFoto;
- static int PReqCode = 1;
- static int REQUESCODE = 1;
- Uri pickedImgUri;
- private EditText userEmail, userPassword, userPassword2, userName;
- private Button regBtn;
- private FirebaseAuth mAuth;
- FloatingActionButton btnLogin, btnRecuperar;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_register);
- btnLogin = (FloatingActionButton) findViewById(R.id.floating_entrar);
- btnRecuperar = (FloatingActionButton) findViewById(R.id.floating_senha1);
- btnLogin.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent mIntent = new Intent(RegisterActivity.this, LoginActivity.class);
- startActivity(mIntent);
- finish();
- }
- });
- btnRecuperar.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent mIntent = new Intent(RegisterActivity.this, SenhaActivity.class);
- startActivity(mIntent);
- finish();
- }
- });
- //Metodo para registar conta
- userEmail = findViewById(R.id.email_reg);
- userPassword = findViewById(R.id.senha_reg);
- userPassword2 = findViewById(R.id.senha_conf);
- userName = findViewById(R.id.nome_reg);
- regBtn = findViewById(R.id.btn_registar);
- ImgUserFoto = findViewById(R.id.perfil_foto_reg);
- mAuth = FirebaseAuth.getInstance();
- regBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- final String email = userEmail.getText().toString();
- final String password = userPassword.getText().toString();
- final String password2 = userPassword2.getText().toString();
- final String nome = userName.getText().toString();
- if (email.isEmpty() || nome.isEmpty() || password.isEmpty() || !password.equals(password2) || pickedImgUri == null) {
- //Se alguma coisa ficar errada
- //Vai aparecer uma mensagem de erro
- showMessage("Por favor verifique todos os campos!");
- }
- else {
- //Se tudo estiver certo e se todos os campos estão preenchidos
- //vai criar a conta do usuario se o email é válido...
- CreateUserAccount(email,nome,password);
- }
- }
- });
- ImgUserFoto.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (Build.VERSION.SDK_INT >= 22) {
- checkAndRequestForPermission();
- }
- else {
- openGallery();
- }
- }
- });
- }
- private void CreateUserAccount(String email, final String nome, String password) {
- mAuth.createUserWithEmailAndPassword(email,password)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- //Conta do usuario criada com sucesso!
- showMessage("Conta criada!");
- //Depois de ser criada a conta precisamos de fazer update da foto
- //de perfil e nome
- updateUserInfo( nome ,pickedImgUri,mAuth.getCurrentUser());
- }
- else {
- //Falha ao criar conta
- showMessage("Erro ao criar conta!" + task.getException().getMessage());
- }
- }
- });
- }
- //update foto de perfil e nome
- private void updateUserInfo(final String nome, Uri pickedImgUri, final FirebaseUser currentUser) {
- //upload foto para firebase storage
- StorageReference mStorage = FirebaseStorage.getInstance().getReference().child("users_photos");
- final StorageReference imageFilePath = mStorage.child(pickedImgUri.getLastPathSegment());
- imageFilePath.putFile(pickedImgUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- //imagem uploaded com sucesso!
- //Agora temos o url da imagem
- imageFilePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
- @Override
- public void onSuccess(Uri uri) {
- //Uri contem url da imagem do usuario
- UserProfileChangeRequest profileUpdate = new UserProfileChangeRequest.Builder()
- .setDisplayName(nome)
- .setPhotoUri(uri)
- .build();
- currentUser.updateProfile(profileUpdate)
- .addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- if (task.isSuccessful()) {
- //Informaçoes do usuario updated com sucesso!
- showMessage("Registro Completo!");
- updateUI();
- }
- }
- });
- }
- });
- }
- });
- }
- private void updateUI() {
- Intent Main2Activity = new Intent(getApplicationContext(), DashboardActivity.class);
- startActivity(Main2Activity);
- finish();
- }
- private void showMessage(String message) {
- Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
- }
- private void openGallery() {
- //Abre a galeria e espera para o usuario escolher uma foto!
- Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
- galleryIntent.setType("image/*");
- startActivityForResult(galleryIntent, REQUESCODE);
- }
- private void checkAndRequestForPermission() {
- if (ContextCompat.checkSelfPermission(RegisterActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
- showMessage("amkjdfdf");
- if (ActivityCompat.shouldShowRequestPermissionRationale(RegisterActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
- showMessage("Por favor aceite para permissão requerida");
- }
- else {
- ActivityCompat.requestPermissions(RegisterActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PReqCode);
- }
- }
- else {
- openGallery();
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == RESULT_OK && requestCode == REQUESCODE && data != null) {
- //Escolheu uma imagem com sucesso!
- pickedImgUri = data.getData();
- ImgUserFoto.setImageURI(pickedImgUri);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement