Skip to content

Commit 42cbb1b

Browse files
authored
ensure data and type are set correctly
1 parent 918b72b commit 42cbb1b

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

android/src/main/java/com/poberwong/launcher/IntentLauncherModule.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,17 @@ public void startActivity(ReadableMap params, final Promise promise) {
6060
if (params.hasKey(ATTR_ACTION)) {
6161
intent.setAction(params.getString(ATTR_ACTION));
6262
}
63-
if (params.hasKey(ATTR_DATA)) {
64-
intent.setData(Uri.parse(params.getString(ATTR_DATA)));
65-
}
66-
if (params.hasKey(ATTR_TYPE)) {
67-
intent.setType(params.getString(ATTR_TYPE));
63+
// setting data resets type; and setting type resets data; if you have both, you need to set them at the same time
64+
// https://developer.android.com/guide/components/intents-filters.html#Types (see 'Data' section)
65+
if (params.hasKey(ATTR_DATA) && params.hasKey(ATTR_TYPE)) {
66+
intent.setDataAndType(Uri.parse(params.getString(ATTR_DATA)), params.getString(ATTR_TYPE));
67+
} else {
68+
if (params.hasKey(ATTR_DATA)) {
69+
intent.setData(Uri.parse(params.getString(ATTR_DATA)));
70+
}
71+
if (params.hasKey(ATTR_TYPE)) {
72+
intent.setType(params.getString(ATTR_TYPE));
73+
}
6874
}
6975
if (params.hasKey(TAG_EXTRA)) {
7076
intent.putExtras(Arguments.toBundle(params.getMap(TAG_EXTRA)));

0 commit comments

Comments
 (0)