Use openUrlInChromeCustomTab because it's better and it fixes crash on API 21 (at least)

This commit is contained in:
Benoit Marty 2020-07-13 22:43:19 +02:00
parent 7237ec7310
commit bef0c7725b
3 changed files with 7 additions and 47 deletions

View File

@ -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()
}

View File

@ -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()
}

View File

@ -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<VectorPreference>(VectorPreferences.SETTINGS_COPYRIGHT_PREFERENCE_KEY)!!
.onPreferenceClickListener = Preference.OnPreferenceClickListener {
activity?.displayInWebView(VectorSettingsUrls.COPYRIGHT)
openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.COPYRIGHT)
false
}
// terms & conditions
findPreference<VectorPreference>(VectorPreferences.SETTINGS_APP_TERM_CONDITIONS_PREFERENCE_KEY)!!
.onPreferenceClickListener = Preference.OnPreferenceClickListener {
activity?.displayInWebView(VectorSettingsUrls.TAC)
openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.TAC)
false
}
// privacy policy
findPreference<VectorPreference>(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<VectorPreference>(VectorPreferences.SETTINGS_THIRD_PARTY_NOTICES_PREFERENCE_KEY)!!
.onPreferenceClickListener = Preference.OnPreferenceClickListener {
activity?.displayInWebView(VectorSettingsUrls.THIRD_PARTY_LICENSES)
openUrlInChromeCustomTab(requireContext(), null, VectorSettingsUrls.THIRD_PARTY_LICENSES)
false
}