<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (Code-Version 77)</h3>
- <p>2. Januar 2025 - Mindest-API 26, Ziel-API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2. Januar 2025</a> - Mindest-API 26, Ziel-API 35</p>
<ul>
<li>Problem beim Öffnen <a href="https://redmine.stoutner.com/issues/1254">von "Über" oder "Import/Export"</a> behoben, wenn Drittanbieter-Apps nicht installiert sind.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (version code 77)</h3>
- <p>2 January 2025 - minimum API 26, target API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 January 2025</a> - minimum API 26, target API 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (código de versión 77)</h3>
- <p>2 de enero de 2025 - API mínimo 26, API objetivo 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 de enero de 2025</a> - API mínimo 26, API objetivo 35</p>
<ul>
<li>Corregir una caída al abrir <a href="https://redmine.stoutner.com/issues/1254">Acerca De o Importar/Exportar</a> cuando no están instaladas aplicaciones de terceros.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (version du code 77)</h3>
- <p>2 Janvier 2025 - API minimale : 26, API optimale : 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 Janvier 2025</a> - API minimale : 26, API optimale : 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (versione codice 77)</h3>
- <p>2 Gennaio 2025 - minima API 26, target API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 Gennaio 2025</a> - minima API 26, target API 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (código de versão 77)</h3>
- <p>2 de janeiro de 2025 - minimum API 26, target API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 de janeiro de 2025</a> - minimum API 26, target API 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (код версии 77)</h3>
- <p>2 января 2025 года - минимальный API 26, целевой API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 января 2025 года</a> - минимальный API 26, целевой API 35</p>
<ul>
<li>Устранен сбой, возникавший при открытии разделов <a href="https://redmine.stoutner.com/issues/1254">О Privacy Browser или Импорт/Экспорт</a>, если не установлены приложения сторонних разработчиков.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (version code 77)</h3>
- <p>2 Ocak 2025 - minimum API 26, target API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 Ocak 2025</a> - minimum API 26, target API 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
<body>
<h3><a href="https://www.stoutner.com/privacy-browser-android-3-19-1">3.19.1</a> (version code 77)</h3>
- <p>2 January 2025 - 最低支持API 26, 最高支持API 35</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=023f59dfaeefe5d1d6c12c5af92dbfcaf0fef3cc;ds=sidebyside">2 January 2025</a> - 最低支持API 26, 最高支持API 35</p>
<ul>
<li>Fix a crash when opening <a href="https://redmine.stoutner.com/issues/1254">About or Import/Export</a> when third-party apps are not installed.</li>
</ul>
/* SPDX-License-Identifier: GPL-3.0-or-later
- * SPDX-FileCopyrightText: 2015-2024 Soren Stoutner <soren@stoutner.com>
+ * SPDX-FileCopyrightText: 2015-2025 Soren Stoutner <soren@stoutner.com>
*
* Download cookie code contributed 2017 Hendrik Knackstedt. Copyright assigned to Soren Stoutner <soren@stoutner.com>.
*
import android.view.inputmethod.InputMethodManager
import android.webkit.CookieManager
import android.webkit.HttpAuthHandler
-import android.webkit.ValueCallback
import android.webkit.SslErrorHandler
+import android.webkit.ValueCallback
import android.webkit.WebChromeClient
import android.webkit.WebResourceRequest
import android.webkit.WebResourceResponse
private lateinit var appBar: ActionBar
private lateinit var checkFilterListHelper: CheckFilterListHelper
private lateinit var bookmarksCursorAdapter: CursorAdapter
- private lateinit var bookmarksListView: ListView
private lateinit var bookmarksDrawerPinnedImageView: ImageView
private lateinit var bookmarksFrameLayout: FrameLayout
+ private lateinit var bookmarksHeaderLinearLayout: LinearLayout
+ private lateinit var bookmarksListView: ListView
private lateinit var bookmarksTitleTextView: TextView
private lateinit var browserFrameLayout: FrameLayout
private lateinit var coordinatorLayout: CoordinatorLayout
webViewViewPager2 = findViewById(R.id.webview_viewpager2)
navigationView = findViewById(R.id.navigationview)
bookmarksFrameLayout = findViewById(R.id.bookmarks_framelayout)
+ bookmarksHeaderLinearLayout = findViewById(R.id.bookmarks_header_linearlayout)
bookmarksListView = findViewById(R.id.bookmarks_drawer_listview)
bookmarksTitleTextView = findViewById(R.id.bookmarks_title_textview)
bookmarksDrawerPinnedImageView = findViewById(R.id.bookmarks_drawer_pinned_imageview)
// Only save the instance state if the WebView state adapter is not null, which will be the case if the app is restarting to change the initial app theme.
if (webViewStateAdapter != null) {
// Initialize the saved state array lists.
- savedStateArrayList = ArrayList<Bundle>()
- savedNestedScrollWebViewStateArrayList = ArrayList<Bundle>()
+ savedStateArrayList = ArrayList()
+ savedNestedScrollWebViewStateArrayList = ArrayList()
// Get the URLs from each tab.
for (i in 0 until webViewStateAdapter!!.itemCount) {
@SuppressLint("ClickableViewAccessibility")
override fun initializeWebView(nestedScrollWebView: NestedScrollWebView, pagePosition: Int, progressBar: ProgressBar, urlString: String, restoringState: Boolean) {
+ // Fix the bookmarks drawer top padding on API <= 29.
+ if (Build.VERSION.SDK_INT <= 29) {
+ // Set the top padding according to the app bar location.
+ if (bottomAppBar)
+ bookmarksListView.setPadding(bookmarksListView.paddingLeft, swipeRefreshLayout.top, bookmarksListView.paddingRight, bookmarksListView.paddingBottom)
+ else
+ bookmarksHeaderLinearLayout.setPadding(bookmarksHeaderLinearLayout.paddingLeft, appBarLayout.top, bookmarksHeaderLinearLayout.paddingRight, bookmarksHeaderLinearLayout.paddingBottom)
+ }
+
// Get the WebView theme.
val webViewTheme = sharedPreferences.getString(getString(R.string.webview_theme_key), getString(R.string.webview_theme_default_value))
<!--
SPDX-License-Identifier: GPL-3.0-or-later
- SPDX-FileCopyrightText: 2017-2020, 2022, 2024 Soren Stoutner <soren@stoutner.com>
+ SPDX-FileCopyrightText: 2017-2020, 2022, 2024-2025 Soren Stoutner <soren@stoutner.com>
This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android/>.
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:layout_gravity="end">
+ android:layout_gravity="end" >
<LinearLayout
android:layout_height="match_parent"