Archivo del blog

sábado, 9 de junio de 2018

Android leer contenido galeria y subirlo a Firebase


Implementar método para leer el contenido de nuestra galería
imageButton_enviaFoto.setOnClickListener(new View.OnClickListener() {
   
@Override
   
public void onClick(View view) {
        Log.d(
TAG, "onClick: envia foto");
       
// todo el contendido de nuestra galeria, fotos,vidos ...
       
Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
       
// para filtrar solo fotos
       
intent1.setType("image/jpeg");
       
// necesario enviar un valor
       
intent1.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
       
//al iniciar la actividad espera un resultado para ser evaluado
       
startActivityForResult(Intent.createChooser(intent1,"Selecciona una imagen"),FOTO_ENVIADA);
   
}
})
;
control de la elección correcta de la imagen
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   
super.onActivityResult(requestCode, resultCode, data);
   
Globales.LECTURA_MENSAJES = false;
   
Log.d(TAG, "onActivityResult: data: "+data.toString());
    if
(requestCode == FOTO_ENVIADA && resultCode == RESULT_OK){
       
// cuando selecionamos una foto nos devuelve un codigo
       
final Uri uri = data.getData();
       
Log.d(TAG, "onActivityResult: uri: "+ uri);
para subirla a firebase storage
// nombre de la carpeta donde se guardaran las fotos enviadas y recibidas
       
mStorageReference = mFirebaseStorage.getReference("imagenes_chat");
       
// obtiene una key para que cada foto sea diferente
       
final StorageReference fotoReferencia = mStorageReference.child(uri.getLastPathSegment());

       
UploadTask uploadTask = fotoReferencia.putFile(uri);

       
uploadTask.addOnFailureListener(new OnFailureListener() {
           
@Override
           
public void onFailure(@NonNull Exception e) {
                Log.d(
TAG, "onFailure: **** FALLO LA SUBIDA ***");
           
}
        }).addOnSuccessListener(
new OnSuccessListener<UploadTask.TaskSnapshot>() {
            
@Override
           
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

               
fotoReferencia.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                   
@Override
                   
public void onSuccess(Uri u) {
                        String hora = devuelveFechaYhora().replace(
"-",":");
                       
String hora2 = devuelveFechaYhora().substring(11).replace("-",":");

                       
Mensajes mensaje = new Mensajes(
                                
"Foto enviada",
                               
nombre_usuario_chat.getText().toString(),
                               
"",
                               
"2", // mensaje con foto
                               
hora2,
                                
uri.toString(), // uri foto local
                               
u.toString() //fotoReferencia.toString() // uri foto nube
                       
);
                       
guardarMensaje(nombre_usuario_chat.getText().toString(),mensaje,hora);
                       
Log.d(TAG, "onSuccess: ¡¡¡ exito al subir !!! ");
                   
}
                })
;

           
}
        })
;
    
}
}

No hay comentarios:

Publicar un comentario