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);
}
});
@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);
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 !!! ");
}
});
}
}) ;
}
}
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