Skip to content

Commit 243029f

Browse files
author
Aitor Cubeles Torres
committed
Android isAvailable method checks Custom Tab support
1 parent ef70ac3 commit 243029f

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
@@ -33,4 +33,9 @@ public void open(final ReadableMap options, final Promise promise) {
3333
public void close() {
3434
inAppBrowser.close();
3535
}
36+
37+
@ReactMethod
38+
public void isAvailable(final Promise promise) {
39+
inAppBrowser.isAvailable(this.reactContext, promise);
40+
}
3641
}

index.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,7 @@ function _waitForRedirectAsync(returnUrl: string): Promise<RedirectResult> {
168168
}
169169

170170
async function isAvailable(): Promise<boolean> {
171-
if (Platform.OS === 'android') {
172-
return Promise.resolve(true);
173-
} else {
174-
return RNInAppBrowser.isAvailable();
175-
}
171+
return RNInAppBrowser.isAvailable();
176172
}
177173

178174
export default {

0 commit comments

Comments
 (0)