diff --git a/app/build.gradle b/app/build.gradle index 1ab53512e..26a6270bb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,6 +76,7 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.2.0-alpha03' implementation 'androidx.biometric:biometric:1.0.1' + implementation "androidx.browser:browser:1.2.0" implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0' implementation 'com.google.android.material:material:1.2.0-alpha05' diff --git a/app/src/main/java/com/hippo/ehviewer/UrlOpener.java b/app/src/main/java/com/hippo/ehviewer/UrlOpener.java index 03de474d2..79589ca1d 100644 --- a/app/src/main/java/com/hippo/ehviewer/UrlOpener.java +++ b/app/src/main/java/com/hippo/ehviewer/UrlOpener.java @@ -19,17 +19,16 @@ package com.hippo.ehviewer; import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.provider.Browser; import android.text.TextUtils; -import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.browser.customtabs.CustomTabsIntent; +import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.client.EhUrlOpener; import com.hippo.ehviewer.ui.MainActivity; import com.hippo.scene.Announcer; import com.hippo.scene.StageActivity; -import com.hippo.util.ExceptionUtils; public final class UrlOpener { @@ -57,14 +56,9 @@ public final class UrlOpener { } } - // Intent.ACTION_VIEW - intent = new Intent(Intent.ACTION_VIEW, uri); - intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); - try { - context.startActivity(intent); - } catch (Throwable e) { - ExceptionUtils.throwIfFatal(e); - Toast.makeText(context, R.string.error_cant_find_activity, Toast.LENGTH_SHORT).show(); - } + CustomTabsIntent.Builder customTabsIntent = new CustomTabsIntent.Builder(); + customTabsIntent.setShowTitle(true); + customTabsIntent.setToolbarColor(AttrResources.getAttrColor(context, R.attr.colorPrimary)); + customTabsIntent.build().launchUrl(context, uri); } }