From bef0c7725b35ecea86ce958848b6a75ffd0fa07a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 13 Jul 2020 22:43:19 +0200 Subject: [PATCH] Use openUrlInChromeCustomTab because it's better and it fixes crash on API 21 (at least) --- .../im/vector/riotx/core/utils/Dialogs.kt | 40 ------------------- .../features/disclaimer/DisclaimerDialog.kt | 4 +- .../VectorSettingsHelpAboutFragment.kt | 10 ++--- 3 files changed, 7 insertions(+), 47 deletions(-) delete mode 100644 vector/src/main/java/im/vector/riotx/core/utils/Dialogs.kt diff --git a/vector/src/main/java/im/vector/riotx/core/utils/Dialogs.kt b/vector/src/main/java/im/vector/riotx/core/utils/Dialogs.kt deleted file mode 100644 index 9d73493e74..0000000000 --- a/vector/src/main/java/im/vector/riotx/core/utils/Dialogs.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2019 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package im.vector.riotx.core.utils - -import android.content.Context -import android.webkit.WebView -import android.webkit.WebViewClient -import androidx.appcompat.app.AlertDialog - -/** - * Open a web view above the current activity. - * - * @param url the url to open - */ -fun Context.displayInWebView(url: String) { - val wv = WebView(this) - - // Set a WebViewClient to ensure redirection is handled directly in the WebView - wv.webViewClient = WebViewClient() - - wv.loadUrl(url) - AlertDialog.Builder(this) - .setView(wv) - .setPositiveButton(android.R.string.ok, null) - .show() -} diff --git a/vector/src/main/java/im/vector/riotx/features/disclaimer/DisclaimerDialog.kt b/vector/src/main/java/im/vector/riotx/features/disclaimer/DisclaimerDialog.kt index e85803e301..51c61c99a9 100644 --- a/vector/src/main/java/im/vector/riotx/features/disclaimer/DisclaimerDialog.kt +++ b/vector/src/main/java/im/vector/riotx/features/disclaimer/DisclaimerDialog.kt @@ -22,7 +22,7 @@ import androidx.appcompat.app.AlertDialog import androidx.core.content.edit import androidx.preference.PreferenceManager import im.vector.riotx.R -import im.vector.riotx.core.utils.displayInWebView +import im.vector.riotx.core.utils.openUrlInChromeCustomTab import im.vector.riotx.features.settings.VectorSettingsUrls // Increase this value to show again the disclaimer dialog after an upgrade of the application @@ -45,7 +45,7 @@ fun showDisclaimerDialog(activity: Activity) { .setCancelable(false) .setNegativeButton(R.string.element_disclaimer_negative_button, null) .setPositiveButton(R.string.element_disclaimer_positive_button) { _, _ -> - activity.displayInWebView(VectorSettingsUrls.DISCLAIMER_URL) + openUrlInChromeCustomTab(activity, null, VectorSettingsUrls.DISCLAIMER_URL) } .show() } diff --git a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsHelpAboutFragment.kt b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsHelpAboutFragment.kt index 7b892ec88b..8e8c0d70eb 100644 --- a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsHelpAboutFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsHelpAboutFragment.kt @@ -24,7 +24,7 @@ import im.vector.matrix.android.api.Matrix import im.vector.riotx.R import im.vector.riotx.core.preference.VectorPreference import im.vector.riotx.core.utils.copyToClipboard -import im.vector.riotx.core.utils.displayInWebView +import im.vector.riotx.core.utils.openUrlInChromeCustomTab import im.vector.riotx.features.version.VersionProvider import im.vector.riotx.openOssLicensesMenuActivity import javax.inject.Inject @@ -82,28 +82,28 @@ class VectorSettingsHelpAboutFragment @Inject constructor( // copyright findPreference(VectorPreferences.SETTINGS_COPYRIGHT_PREFERENCE_KEY)!! .onPreferenceClickListener = Preference.OnPreferenceClickListener { - activity?.displayInWebView(VectorSettingsUrls.COPYRIGHT) + openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.COPYRIGHT) false } // terms & conditions findPreference(VectorPreferences.SETTINGS_APP_TERM_CONDITIONS_PREFERENCE_KEY)!! .onPreferenceClickListener = Preference.OnPreferenceClickListener { - activity?.displayInWebView(VectorSettingsUrls.TAC) + openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.TAC) false } // privacy policy findPreference(VectorPreferences.SETTINGS_PRIVACY_POLICY_PREFERENCE_KEY)!! .onPreferenceClickListener = Preference.OnPreferenceClickListener { - activity?.displayInWebView(VectorSettingsUrls.PRIVACY_POLICY) + openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.PRIVACY_POLICY) false } // third party notice findPreference(VectorPreferences.SETTINGS_THIRD_PARTY_NOTICES_PREFERENCE_KEY)!! .onPreferenceClickListener = Preference.OnPreferenceClickListener { - activity?.displayInWebView(VectorSettingsUrls.THIRD_PARTY_LICENSES) + openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.THIRD_PARTY_LICENSES) false }