InlineActivityResult

by florent37

Receive the activity result directly after the startActivityForResult with InlineActivityResult

235 Stars 18 Forks Last release: Not found MIT License 75 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Inline Activity Result

Language

Work in progress

Receive the activity result directly after the startActivityForResult with InlineActivityResult, choose your way : - Kotlin - Kotlin with Coroutines - RxJava - Java8 - Java7

No need to override Activity or Fragment

onActivityResult(code, permissions, result)
using this library, you just have to execute InlineActivityResult's methods This will not cut your code flow

Supports startIntentSenderForResult

General Usage (cross language)

Download

java
dependencies {
    implementation 'com.github.florent37:inline-activity-result:(lastest version)'
}
startForResult(this, new Intent(MediaStore.ACTION_IMAGE_CAPTURE), new ActivityResultListener() {
      @Override
      public void onSuccess(Result result) {
          //the started activity result is RESULT_OK
      }

  @Override
  public void onFailed(Result result) {
      //the started activity result is RESULT_CANCEL
  }

});

Kotlin-Coroutines

launch(UI) {
   try {
       val result = startForResult(Intent(MediaStore.ACTION_IMAGE_CAPTURE))

   //use the result, eg:
   val imageBitmap = result.data?.extras?.get("data") as Bitmap
   resultView.setImageBitmap(imageBitmap)

} catch (e: InlineActivityResultException) {

} }

Download

Download

groovy
implementation 'com.github.florent37:inline-activity-result-kotlin:(last version)'

Kotlin

startForResult(Intent(MediaStore.ACTION_IMAGE_CAPTURE)) { result ->
     //use the result, eg:
     val imageBitmap = result.data?.extras?.get("data") as Bitmap
     resultView.setImageBitmap(imageBitmap)
}.onFailed { result ->

}

Download

Download

groovy
implementation 'com.github.florent37:inline-activity-result-kotlin:(last version)'

RxJava

new RxInlineActivityResult(this).request(new Intent(MediaStore.ACTION_IMAGE_CAPTURE)))
    .subscribe(result -> {
        //use the result, eg:
        Bundle extras = result.getData().getExtras();
        Bitmap imageBitmap = (Bitmap) extras.get("data");
        resultView.setImageBitmap(imageBitmap);
    }, throwable -> {
        if (throwable instanceof RxInlineActivityResult.Error) {
            final Result result = ((RxInlineActivityResult.Error) throwable).getResult();

    }
})

Download

implementation 'com.github.florent37:inline-activity-result-rx:(last version)'

Java8

new InlineActivityResult(this)
       .startForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE))
       .onSuccess(result -> {
           //use the result, eg:
           Bundle extras = result.getData().getExtras();
           Bitmap imageBitmap = (Bitmap) extras.get("data");
           resultView.setImageBitmap(imageBitmap);
       })
       .onFail(result -> {

   });

Download

Download

groovy
implementation 'com.github.florent37:inline-activity-result:(last version)'

Java7

InlineActivityResult.startForResult(this, new Intent(MediaStore.ACTION_IMAGE_CAPTURE), new ActivityResultListener() {
      @Override
      public void onSuccess(Result result) {
          Bundle extras = result.getData().getExtras();
          Bitmap imageBitmap = (Bitmap) extras.get("data");
          resultView.setImageBitmap(imageBitmap);
      }

  @Override
  public void onFailed(Result result) {

  }

});

StartIntentSenderForResult

Also supports startIntentSenderForResult, as example:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), 0, intent, 0);

Request request = RequestFabric.create(pendingIntent.getIntentSender(), null, 0, 0, 0, null);

new InlineActivityResult(this) .startForResult(request) .onSuccess(result -> { Bundle extras = result.getData().getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); resultView.setImageBitmap(imageBitmap); }) .onFail(result -> {

      });

How to Contribute

We welcome your contributions to this project.

The best way to submit a patch is to send us a pull request.

To report a specific problem or feature request, open a new issue on Github.

Credits

Author: Florent Champigny

Blog : http://www.tutos-android-france.com/

Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/

Android app on Google Play

Follow me on Google+ Follow me on Twitter Follow me on LinkedIn

License

Copyright 2018 florent37, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.