Receive the activity result directly after the startActivityForResult with InlineActivityResult
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
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 }
});
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) {
} }
groovy implementation 'com.github.florent37:inline-activity-result-kotlin:(last version)'
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 ->}
groovy implementation 'com.github.florent37:inline-activity-result-kotlin:(last version)'
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();} })
implementation 'com.github.florent37:inline-activity-result-rx:(last version)'
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 -> {});
groovy implementation 'com.github.florent37:inline-activity-result:(last version)'
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) { }
});
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 -> {
});
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.
Author: Florent Champigny
Blog : http://www.tutos-android-france.com/
Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/
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.