Выполнить условие если изображение не было выбрано . Андроид

Получаю изображение

 Picasso.with(this)                                       // --- Получить Изображение product_image

     .load(Config.ADMIN_PANEL_URL + "/upload/" + Simage.replace(" ", "%20"))
     .placeholder(R.drawable.ic_loading)
     .into(Eimage);  

Выбираю другое изображение

 Eimage.setOnClickListener(new View.OnClickListener() {  // --- Добавить изображение  по клику
        @Override
        public void onClick(View view) {
            selectImage();
        }
    });
private void selectImage() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, IMAGE);
    }  

Конвертирую

private String convertToString()
{

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG,30,byteArrayOutputStream);
    byte[] imgByte = byteArrayOutputStream.toByteArray();
    return Base64.encodeToString(imgByte,Base64.DEFAULT);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode== IMAGE && resultCode==RESULT_OK && data!=null)
    {
        Uri path = data.getData();

        try {
            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),path);
            Eimage.setImageBitmap(bitmap);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}  

Как мне выполнить другое условие где bitmap.compress(Bitmap.CompressFormat.JPEG,100,byteArrayOutputStream); если onClick не было ?


Ответы (1 шт):

Автор решения: denisnumb

Если пользователь вышел из меню выбора изображения, через системную/физическую кнопку "назад", так и не выбрав изображение, то Intent data будет иметь пустое значение(null).

Исходя из этого стройте условие в onActivityResult():

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data); 
    
    if(data == null){
        Toast.makeText(getBaseContext(), "Изображение не было выбрано", Toast.LENGTH_SHORT).show();
    }
}

Если я вас неправильно понял, и вам нужно условие в другом месте, то тяните Intent data в какой-либо глобальный boolean, от значения которого будет зависеть условие в другом месте.

То есть, если изображение не было выбрано, то:

boolean is_image_picked;

if(data == null){
      is_image_picked = false;
}
→ Ссылка