diff --git a/app/build.gradle b/app/build.gradle index 8aece35..c6a0811 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -53,5 +53,8 @@ dependencies { //SpotsDialog implementation 'com.github.d-max:spots-dialog:1.1@aar' + //Mascara de telefone + implementation 'com.github.rtoshiro.mflibrary:mflibrary:1.0.0' + } diff --git a/app/src/main/java/com/example/bomapetite/activity/AutenticacaoActivity.java b/app/src/main/java/com/example/bomapetite/activity/AutenticacaoActivity.java index 5638286..95c64b8 100644 --- a/app/src/main/java/com/example/bomapetite/activity/AutenticacaoActivity.java +++ b/app/src/main/java/com/example/bomapetite/activity/AutenticacaoActivity.java @@ -50,7 +50,7 @@ protected void onCreate(Bundle savedInstanceState) { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){//empresa - linearTipoUsuario.setVisibility(View.GONE); //Caso queira que qualquer um possa cadastrar empresa, alterar de GONE para VISIBLE + linearTipoUsuario.setVisibility(View.GONE);//Caso queira que qualquer um possa cadastrar empresa, alterar de GONE para VISIBLE }else{//Usuario linearTipoUsuario.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesEmpresaActivity.java b/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesEmpresaActivity.java index 2db981d..3cf0824 100644 --- a/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesEmpresaActivity.java +++ b/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesEmpresaActivity.java @@ -81,7 +81,6 @@ public void onDataChange(DataSnapshot dataSnapshot) { editEmpresaTaxa.setText(empresa.getPrecoEntrega().toString()); urlImagemSelecionada = empresa.getUrlImagem(); - if (urlImagemSelecionada != ""){ Picasso.get().load(urlImagemSelecionada).into(imagePerfilEmpresa); } diff --git a/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesUsuarioActivity.java b/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesUsuarioActivity.java index 1a997e3..cb8561c 100644 --- a/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesUsuarioActivity.java +++ b/app/src/main/java/com/example/bomapetite/activity/ConfiguracoesUsuarioActivity.java @@ -1,10 +1,17 @@ package com.example.bomapetite.activity; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; import android.os.Bundle; +import android.provider.MediaStore; import android.view.View; import android.widget.EditText; +import android.widget.ImageView; import android.widget.Toast; import com.example.bomapetite.R; @@ -12,45 +19,83 @@ import com.example.bomapetite.helper.UsuarioFirebase; import com.example.bomapetite.model.Empresa; import com.example.bomapetite.model.Usuario; +import com.github.rtoshiro.util.format.SimpleMaskFormatter; +import com.github.rtoshiro.util.format.text.MaskTextWatcher; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.ValueEventListener; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; import com.squareup.picasso.Picasso; +import java.io.ByteArrayOutputStream; + public class ConfiguracoesUsuarioActivity extends AppCompatActivity { - private EditText editUsuarioNome, editUsuarioEndereco; + private EditText editUsuarioNome, editUsuarioEndereco, editUsuarioTelefone; private String idUsuario; + private ImageView imagePerfilUsuario; + + private static final int SELECAO_GALERIA = 200; + private StorageReference storageReference; private DatabaseReference firebaseRef; + private String idUsuarioLogado; + private String urlImagemSelecionada = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_configuracoes_usuario); - getSupportActionBar().setTitle("Configurações"); + getSupportActionBar().setTitle("Perfil"); inicializaComponentes(); idUsuario = UsuarioFirebase.getIdUsuario(); firebaseRef = ConfiguracaoFirebase.getFirebase(); + storageReference = ConfiguracaoFirebase.getFirebaseStorage(); + firebaseRef = ConfiguracaoFirebase.getFirebase(); + idUsuarioLogado = UsuarioFirebase.getIdUsuario(); + + imagePerfilUsuario.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + if (i.resolveActivity(getPackageManager()) != null){ + startActivityForResult(i, SELECAO_GALERIA); + } + } + }); recuperarDadosUsuario(); + + SimpleMaskFormatter smf = new SimpleMaskFormatter("(NN)NNNNN-NNNN"); + MaskTextWatcher mtw = new MaskTextWatcher(editUsuarioTelefone, smf); + editUsuarioTelefone.addTextChangedListener(mtw); } public void validarDadosUsuario(View view){ String nome = editUsuarioNome.getText().toString(); String endereco = editUsuarioEndereco.getText().toString(); + String telefone = editUsuarioTelefone.getText().toString(); if (!nome.isEmpty()){ if (!endereco.isEmpty()){ - Usuario usuario = new Usuario(); - usuario.setIdUsuario(idUsuario); - usuario.setNome(nome); - usuario.setEndereco(endereco); - usuario.salvar(); - exibirMensagem("Dados salvos com sucesso!"); - finish(); + if (!telefone.isEmpty()){ + Usuario usuario = new Usuario(); + usuario.setIdUsuario(idUsuario); + usuario.setNome(nome); + usuario.setEndereco(endereco); + usuario.setTelefone(telefone); + usuario.setUrlImagem(urlImagemSelecionada); + usuario.salvar(); + exibirMensagem("Dados salvos com sucesso!"); + finish(); + }else{ + exibirMensagem("Digite seu telefone!"); + } }else{ - exibirMensagem("Digite seu endereço completo!"); + exibirMensagem("Digite seu endereço completo!"); } }else{ exibirMensagem("Digite seu nome!"); @@ -66,15 +111,12 @@ public void onDataChange(DataSnapshot dataSnapshot) { Usuario usuario = dataSnapshot.getValue(Usuario.class); editUsuarioNome.setText(usuario.getNome()); editUsuarioEndereco.setText(usuario.getEndereco()); - //editUsuarioTelefone.setText(usuario.getTelefone()); + editUsuarioTelefone.setText(usuario.getTelefone()); - /* urlImagemSelecionada = usuario.getUrlImagem(); if (urlImagemSelecionada != ""){ - Picasso.get().load(urlImagemSelecionada).into(imagePerfilEmpresa); + Picasso.get().load(urlImagemSelecionada).into(imagePerfilUsuario); } - - */ } } @@ -85,6 +127,49 @@ public void onCancelled(DatabaseError databaseError) { }); } + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK){ + Bitmap imagem = null; + try { + + switch (requestCode){ + case SELECAO_GALERIA: + Uri localImagem = data.getData(); + imagem = MediaStore.Images.Media.getBitmap(getContentResolver(),localImagem); + break; + } + + if (imagem != null){ + imagePerfilUsuario.setImageBitmap(imagem); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + imagem.compress(Bitmap.CompressFormat.JPEG, 70, baos); + byte[] dadosImagem = baos.toByteArray(); + + StorageReference imagemRef = storageReference.child("imagens").child("usuarios").child(idUsuarioLogado + "jpeg"); + UploadTask uploadTask = imagemRef.putBytes(dadosImagem); + uploadTask.addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + Toast.makeText(ConfiguracoesUsuarioActivity.this, "Erro ao fazer upload da imagem", Toast.LENGTH_SHORT).show(); + } + }).addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + urlImagemSelecionada = taskSnapshot.getDownloadUrl().toString(); + Toast.makeText(ConfiguracoesUsuarioActivity.this, "Sucesso ao fazer upload da imagem", Toast.LENGTH_SHORT).show(); + } + }); + } + + }catch (Exception e){ + e.printStackTrace(); + } + } + } + + private void exibirMensagem(String texto){ Toast.makeText(this, texto, Toast.LENGTH_SHORT).show(); } @@ -92,5 +177,8 @@ private void exibirMensagem(String texto){ private void inicializaComponentes(){ editUsuarioNome = findViewById(R.id.editUsuarioNome); editUsuarioEndereco = findViewById(R.id.editUsuarioEndereco); + editUsuarioTelefone = findViewById(R.id.editUsuarioTelefone); + imagePerfilUsuario = findViewById(R.id.imagePerfilUsuario); } + } diff --git a/app/src/main/java/com/example/bomapetite/model/Usuario.java b/app/src/main/java/com/example/bomapetite/model/Usuario.java index 3e48fdd..ae87b9e 100644 --- a/app/src/main/java/com/example/bomapetite/model/Usuario.java +++ b/app/src/main/java/com/example/bomapetite/model/Usuario.java @@ -8,6 +8,8 @@ public class Usuario { private String idUsuario; private String nome; private String endereco; + private String telefone; + private String urlImagem; public Usuario() { } @@ -41,4 +43,20 @@ public String getEndereco() { public void setEndereco(String endereco) { this.endereco = endereco; } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getUrlImagem() { + return urlImagem; + } + + public void setUrlImagem(String urlImagem) { + this.urlImagem = urlImagem; + } } diff --git a/app/src/main/res/drawable/ic_perfil.xml b/app/src/main/res/drawable/ic_perfil.xml new file mode 100644 index 0000000..d7366bd --- /dev/null +++ b/app/src/main/res/drawable/ic_perfil.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_autenticacao.xml b/app/src/main/res/layout/activity_autenticacao.xml index 5d31c75..29cf692 100644 --- a/app/src/main/res/layout/activity_autenticacao.xml +++ b/app/src/main/res/layout/activity_autenticacao.xml @@ -13,7 +13,7 @@ + android:layout_height="wrap_content"> + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_usuario.xml b/app/src/main/res/menu/menu_usuario.xml index c0e06d0..d609483 100644 --- a/app/src/main/res/menu/menu_usuario.xml +++ b/app/src/main/res/menu/menu_usuario.xml @@ -8,8 +8,9 @@ app:showAsAction="always"/> + android:title="Perfil" + android:icon="@drawable/ic_perfil" + app:showAsAction="always"/>