• Non classé
  • 0

RxTips – Activity Result

Fatigué de récupérer le retour d’un starActivityForResult dans une méthode différente ?
Essayez RxActivityResult !

Configuration

Commencez par ajouter la dépendance rxactivityresult à votre build.gradle

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    compile 'com.github.nekocode.rxactivityresult:rxactivityresult:1.1'
}

Utilisation

Prenons le cas de la prise d’une photo via l’application de l’appareil photo Android


Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

RxActivityResult.startActivityForResult(this, takePictureIntent, REQUEST_CODE)

        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())

        .subscribe(result ->
                if (result.isOk()) {
                    Bundle extras = data.getExtras();
                    Bitmap imageBitmap = (Bitmap) extras.get("data");

                    // place cette image dans une ImageView
                    imageView.setImageBitmap(imageBitmap);
                }
        });

Le retour se fait directement à la suite du RxActivityResult.startActivityForResult

Nous pouvons même imaginer enchainer des appels, de la façon suivante


Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

RxActivityResult.startActivityForResult(this, takePictureIntent, REQUEST_CODE)

        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())

        .map(result -> (Bitmap) data.getExtras().get("data"))

        .subscribe(imageView::setImageBitmap); // place cette image dans une ImageView

Assez élégant n’est-il pas ? 🙂

Si vous ne connaissez pas RxJava, n’hésitez pas à aller faire un tour sur notre un article d’introduction sur RxJava .

Petit rappel on vient de lancer une nouvelle rubrique sur le site, où vous pouvez découvrir des livres et des Goodies Android, allez-y faire un tour 😀

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Recevez un ebook GRATUIT !

Nous vous avons créé un ebook pour vous remercier de votre fidélité. Retrouvez les 10 librairies indispensables pour Android. Pour cela rien de plus simple vous avez juste à renseigner votre email, vous recevrez un mail de confirmation (pour que l'on vérifie que vous n'êtes pas un robot), il suffira de vous inscrire à la liste et vous recevrez l'Ebook quelques instant après (peut prendre un petit peu de temps car vous êtes beaucoup à le vouloir).
Votre adresse email
Secure and Spam free...