From 74e8a8368db991ee511c216a298c4ff5201f41de Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 27 Mar 2024 16:10:48 -0700 Subject: [PATCH] Fix displaying HTTP Authentication dialogs crashing when the app has been stopped. https://redmine.stoutner.com/issues/1178 --- .../activities/MainWebViewActivity.kt | 12 +++++++--- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 22 ++++++++++++++++++- app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 22 ++++++++++++++++++- app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 22 ++++++++++++++++++- app/src/main/res/values-zh-rCN/strings.xml | 1 - 8 files changed, 72 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt index b56a02f0..75aa38be 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt @@ -5455,8 +5455,14 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook // Instantiate an HTTP authentication dialog. val httpAuthenticationDialogFragment = HttpAuthenticationDialog.displayDialog(host, realm, nestedScrollWebView.webViewFragmentId) - // Show the HTTP authentication dialog. - httpAuthenticationDialogFragment.show(supportFragmentManager, getString(R.string.http_authentication)) + // Try to show the dialog. WebView can receive an HTTP authentication request even after the app has been paused. Attempting to display a dialog in that state leads to a crash. + try { + // Show the HTTP authentication dialog. + httpAuthenticationDialogFragment.show(supportFragmentManager, getString(R.string.http_authentication)) + } catch (exception: Exception) { // The dialog could not be shown. + // Add the dialog to the pending dialog array list. It will be displayed in `onStart()`. + pendingDialogsArrayList.add(PendingDialogDataClass(httpAuthenticationDialogFragment, getString(R.string.http_authentication))) + } } override fun onPageStarted(webView: WebView, url: String, favicon: Bitmap?) { @@ -5694,7 +5700,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook // Instantiate an SSL certificate error alert dialog. val sslCertificateErrorDialogFragment = SslCertificateErrorDialog.displayDialog(error, nestedScrollWebView.webViewFragmentId) - // Try to show the dialog. The SSL error handler continues to function even when the WebView is paused. Attempting to display a dialog in that state leads to a crash. + // Try to show the dialog. The SSL error handler continues to function even when the app has been stopped. Attempting to display a dialog in that state leads to a crash. try { // Show the SSL certificate error dialog. sslCertificateErrorDialogFragment.show(supportFragmentManager, getString(R.string.ssl_certificate_error)) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0830c64b..614b620b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -643,7 +643,6 @@ Intents sind Links, die von anderen Apps übergeben werden. Herunterziehen zum Aktualisieren Einige Websites funktionieren nicht, wenn "Herunterziehen zum Aktualisieren" eingeschaltet ist. - Mit einer externen App herunterladen App-Leiste scrollen Scrollt die App-Leiste mit der URL nach oben, wenn die Webseite gescrollt wird. Untere Anwendungs-Leiste diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c8dec3c7..98c7c554 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -203,6 +203,12 @@ bytes Tamaño desconocido URL inválida + Actualmente Navegador privado no puede descargar URLs de blobs. + El gestor de descargas de Android no puede gestionar las URLs de datos. + Directorio de descargas + Documentos + Imágenes + Música Guardando archivo:\u0020 %1$d%% - %2$s Guardando archivo:\u0020 %1$s bytes - %2$s Guardando archivo:\u0020 %1$d%% - %2$s bytes / %3$s bytes - %4$s @@ -254,6 +260,8 @@ Crear carpeta Icono de favorito actual Icono de carpeta actual + Icono de favorito personalizado + Icono de carpeta personalizado Icono de carpeta por defecto Icono favorito de página Web Nombre de favorito @@ -263,6 +271,7 @@ Editar carpeta Mover a carpeta Mover + Actualmente no puede usarse un SVG como icono preferido de un favorito. @@ -646,7 +655,18 @@ Los contenidos son enlaces enviados desde otras apps. Deslizar para actualizar Algunas webs no funcionan bien si la opción deslizar para actualizar está habilitada. - Descargar con una app externa + Proveedor de descargas + + Navegador Privado + Gestor de descargas de Android + Aplicación externa + + Navegador Privado - El descargador integrado de Navegador Privado es sencillo, pero tiene la ventaja de respetar el proxy y usar cookies (si están habilitadas), + así como la posibilidad de guardar datos: URLs. + Gestor de descargas de Android - El gestor de descargas de Android no respeta la configuración proxy de Navegador Privado, + pero sí tiene acceso a las cookies (lo que significa que los archivos descargados de sitios que requieren hacer login probablemente funcionarán). + Aplicación externa - Las aplicaciones externas no respetan la configuración proxy de Navegador Privado y no tienen acceso a las cookies + (lo que significa que es poco probable que funcionen los archivos descargados de sitios que requieren hacer login). Desplazar la barra de aplicaciones Desplazar la barra de aplicaciones desde la parte superior de la pantalla cuando el WebView se desplaza hacia abajo. Barra inferior de la app diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d9bd0976..ae6d75c1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -643,7 +643,6 @@ Les intentions sont des liens envoyés à partir d\'autres applications. Glisser pour rafraîchir Certains sites Web ne fonctionnent pas bien lorsque "Glisser pour rafraîchir" est activé. - Téléchargement avec une app externe Défilement barre d\'applications Faites défiler la barre d\'applications en haut de l\'écran lorsque WebView défile vers le bas. Barre d\'application en bas diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e1bcff0f..07d8d8d3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -203,6 +203,12 @@ byte Dimensione sconosciuta URL non valida + In questo momento Privacy Browser non può scaricare blob URL. + Il gestore dei download di Android non può gestire le URL dati. + Cartella dei Download + Documenti + Immagini + Musica Salvataggio file:\u0020 %1$d%% - %2$s Salvataggio file:\u0020 %1$s byte - %2$s Salvataggio file:\u0020 %1$d%% - %2$s byte / %3$s byte - %4$s @@ -253,6 +259,8 @@ Crea Cartella Icona Segnalibro Icona Cartella + Icona segnalibro personalizzata + Icona cartella personalizzata Icona predefinita cartella Icona preferita pagina web Nome Segnalibro @@ -262,6 +270,7 @@ Modifica Cartella Sposta nella Cartella Sposta + Al momento i file SVG non possono essere utilizzati come icona dei segnalibri. @@ -646,7 +655,18 @@ Gli intenti sono link inviati da altre app. Swipe per aggiornare Alcuni siti non funzionano correttamente se questa opzione è abilitata. - Scarica con una applicazione esterna + Provider dei Download + + Privacy Browser + Download manager di Android + Applicazione esterna + + Privacy Browser - Il gestore dei download incluso in Privacy Browser è semplice ma ha il vantaggio di rispettare i proxy e di utilizzare i cookie (se abilitati), + oltre che la capacità di salvare le URL dati. + Gestore dei download di Android - Il gestore dei download di Android non rispetta le impostazioni dei proxy di Privacy Browser ma ha accesso ai cookies + (per cui i lo scaricamento di file da siti che richiedono il login probabilmente dovrebbe funzionare). + Applicazione esterna - Le applicazioni esterne non rispettano le impostazioni dei proxy di Privacy Browser e non hanno accesso ai cookie + (per cui i lo scaricamento di file da siti che richiedono il login difficilmente funzionerà). Permetti lo scrolling della barra dell\'applicazione Permette lo scorrere della barra dell\'applicazione dalla parte alta dello schermo quando si effettua lo scrolling. Barra dell\'app in basso diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index d50014b7..cf80c4f4 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -529,7 +529,6 @@ Conteúdos são links enviados de outros aplicativos. Deslize para atualizar Alguns sites não funcionam bem se deslizar para atualizar estiver habilitado. - Download com aplicativo externo Role a barra de aplicativos Role a barra de aplicativos para fora da parte superior da tela quando o WebView rola para baixo. Barra de aplicativos inferior diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 19b25cc6..ece18585 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -200,6 +200,12 @@ байтов неизвестный размер неправильный URL + В настоящее время Privacy Browser не может загружать blob URL. + Менеджер загрузок Android не может обрабатывать URL данных. + Каталог загрузки + Документы + Изображения + Музыка Сохранение файла:\u0020 %1$d%% - %2$s Сохранение файла:\u0020 %1$s байтов - %2$s Сохранение файла:\u0020 %1$d%% - %2$s байтов / %3$s байтов - %4$s @@ -250,6 +256,8 @@ Создание папки Текущий значок закладки Текущий значок папки + Настраиваемый значок закладки + Настраиваемый значок папки Значок папки по умолчанию Значок избранной веб-страницы Имя закладки @@ -259,6 +267,7 @@ Изменить папку Переместить в папку Переместить + В настоящее время SVG нельзя использовать в качестве значка избранных закладок. @@ -642,7 +651,18 @@ Цели - это ссылки, отправленные из других приложений. Потянуть для обновления Некоторые веб-сайты могут работать некорректно при включении данной опции. - Загрузка во внешнем приложении + Провайдер загрузки + + Privacy Browser + Менеджер загрузок Android + Внешнее приложение + + Privacy Browser - Встроенный загрузчик Privacy Browser прост, но его преимущество в том, + что он поддерживает прокси и использует cookie (если они включены), а также позволяет сохранять данные: URL. + Менеджер загрузки Android - менеджер загрузки Android не поддерживает настройки прокси Privacy Browser, + но у него есть доступ к файлам cookie (это означает, что файлы, загруженные с сайтов, требующих авторизации, будут работать). + Внешнее приложение - внешние приложения не поддерживают настройки прокси Privacy Browser и не имеют доступа к файлам cookie + (это означает, что файлы, загруженные с сайтов, требующих авторизации, вряд ли будут работать). Прокручивать панель приложения Прокручивает панель приложения вверху экрана при прокрутке WebView вниз. Нижняя панель приложения diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 47c69780..441a17b3 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -531,7 +531,6 @@ 把目标链接发送到其他应用 下拉刷新 下拉刷新开启时部分网页不会工作 - 由外部应用下载 滚动应用栏 向下滚动网页时,隐藏顶部状态栏 底部状态栏 -- 2.45.2