Skip to content
This repository was archived by the owner on Aug 9, 2020. It is now read-only.

Commit 6ec8b16

Browse files
Merge pull request #40 from lkopocinski/2.x
Forward Throwable to onError() when ActivityNotFoundException thrown
2 parents 366e1fb + 4622b07 commit 6ec8b16

File tree

5 files changed

+21
-3
lines changed

5 files changed

+21
-3
lines changed

app/src/main/java/app/OnPreResultActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected void onCreate(Bundle savedInstanceState) {
2626

2727
startPreForResult.setOnClickListener(v ->
2828
RxActivityResult.on(this)
29-
.startIntent(new Intent(this, FirstActivity.class), (resultCode, data) ->
29+
.startIntent(new Intent(this, FirstActivity.class), (resultCode, requestCode, data) ->
3030
Observable.just(Ignore.Get)
3131
.map(_I -> data.putExtra(EXTRA_PRE, "Do whatever you want with the data, but not with the UI")))
3232
.subscribe(result -> {

app/src/main/java/app/SampleActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private void camera() {
3434
} else {
3535
result.targetUI().printUserCanceled();
3636
}
37-
});
37+
}, Throwable::printStackTrace);
3838
}
3939

4040
private void showImage(Intent data) {

rx_activity_result/src/main/java/rx_activity_result2/HolderActivity.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package rx_activity_result2;
1818

1919
import android.app.Activity;
20+
import android.content.ActivityNotFoundException;
2021
import android.content.Intent;
2122
import android.content.IntentSender;
2223
import android.os.Bundle;
@@ -52,7 +53,13 @@ protected void onCreate(Bundle savedInstanceState) {
5253
if (requestIntentSender.getOptions() == null) startIntentSender(requestIntentSender);
5354
else startIntentSenderWithOptions(requestIntentSender);
5455
} else {
55-
startActivityForResult(request.intent(), 0);
56+
try {
57+
startActivityForResult(request.intent(), 0);
58+
} catch (ActivityNotFoundException e) {
59+
if (onResult != null) {
60+
onResult.error(e);
61+
}
62+
}
5663
}
5764
}
5865

rx_activity_result/src/main/java/rx_activity_result2/OnResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77

88
interface OnResult extends Serializable {
99
void response(int requestCode, int resultCode, @Nullable Intent data);
10+
void error(Throwable throwable);
1011
}

rx_activity_result/src/main/java/rx_activity_result2/RxActivityResult.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ public void response(int requestCode, int resultCode, Intent data) {
117117
subject.onNext(new Result<>(activity, requestCode, resultCode, data));
118118
subject.onComplete();
119119
}
120+
121+
@Override
122+
public void error(Throwable throwable) {
123+
subject.onError(throwable);
124+
}
120125
};
121126
}
122127

@@ -141,6 +146,11 @@ public void response(int requestCode, int resultCode, Intent data) {
141146
//If code reaches this point it means some other activity has been stacked as a secondary process.
142147
//Do nothing until the current activity be the target activity to get the associated fragment
143148
}
149+
150+
@Override
151+
public void error(Throwable throwable) {
152+
subject.onError(throwable);
153+
}
144154
};
145155
}
146156

0 commit comments

Comments
 (0)