Skip to content

Commit 2dea12a

Browse files
authored
Merge pull request #108 from aitorct/android_isAvailable
Android isAvailable method checks Custom Tab support
2 parents b175ce0 + 030a39d commit 2dea12a

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

android/src/main/java/com/proyecto26/inappbrowser/RNInAppBrowser.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.app.Activity;
77
import android.content.Context;
88
import android.content.Intent;
9+
import android.content.pm.ResolveInfo;
910
import android.graphics.Color;
1011
import android.provider.Browser;
1112
import androidx.annotation.Nullable;
@@ -23,6 +24,7 @@
2324
import org.greenrobot.eventbus.Subscribe;
2425

2526
import java.util.regex.Pattern;
27+
import java.util.List;
2628

2729
public class RNInAppBrowser {
2830
private final static String ERROR_CODE = "InAppBrowser";
@@ -162,6 +164,12 @@ public void close() {
162164
ChromeTabsManagerActivity.createDismissIntent(currentActivity));
163165
}
164166

167+
public void isAvailable(Context context, final Promise promise) {
168+
Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
169+
List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentServices(serviceIntent, 0);
170+
promise.resolve(!(resolveInfos == null || resolveInfos.isEmpty()));
171+
}
172+
165173
@Subscribe
166174
public void onEvent(ChromeTabsDismissedEvent event) {
167175
unRegisterEventBus();

android/src/main/java/com/proyecto26/inappbrowser/RNInAppBrowserModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,9 @@ public void open(final ReadableMap options, final Promise promise) {
3737
public void close() {
3838
inAppBrowser.close();
3939
}
40+
41+
@ReactMethod
42+
public void isAvailable(final Promise promise) {
43+
inAppBrowser.isAvailable(this.reactContext, promise);
44+
}
4045
}

index.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,7 @@ async function _checkResultAndReturnUrl(
224224
}
225225

226226
async function isAvailable(): Promise<boolean> {
227-
if (Platform.OS === 'android') {
228-
return Promise.resolve(true);
229-
} else {
230-
return RNInAppBrowser.isAvailable();
231-
}
227+
return RNInAppBrowser.isAvailable();
232228
}
233229

234230
export default {

0 commit comments

Comments
 (0)