From 84989e138cb593d5a2f70be848db4889aaa8da88 Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 20 Mar 2019 13:32:36 -0700 Subject: [PATCH] Move Clear and Exit to the top of the navigation menu. https://redmine.stoutner.com/issues/400 --- .idea/assetWizardSettings.xml | 5 +- .idea/dictionaries/soren.xml | 2 + app/build.gradle | 2 +- .../assets/de/about_permissions_dark.html | 40 +- .../assets/de/about_permissions_light.html | 40 +- .../assets/de/about_privacy_policy_dark.html | 97 +- .../assets/de/about_privacy_policy_light.html | 97 +- .../assets/it/about_permissions_dark.html | 4 +- .../assets/it/about_permissions_light.html | 4 +- .../assets/ru/about_permissions_dark.html | 4 +- .../assets/ru/about_permissions_light.html | 4 +- .../assets/de/about_contributors_dark.html | 16 +- .../assets/de/about_contributors_light.html | 16 +- .../main/assets/de/about_licenses_dark.html | 2 + .../main/assets/de/about_licenses_light.html | 2 + app/src/main/assets/de/about_links_dark.html | 4 +- app/src/main/assets/de/about_links_light.html | 4 +- .../assets/de/about_permissions_dark.html | 12 +- .../assets/de/about_permissions_light.html | 12 +- .../assets/de/about_privacy_policy_dark.html | 84 +- .../assets/de/about_privacy_policy_light.html | 84 +- .../main/assets/de/guide_bookmarks_dark.html | 10 +- .../main/assets/de/guide_bookmarks_light.html | 10 +- .../assets/de/guide_domain_settings_dark.html | 12 +- .../de/guide_domain_settings_light.html | 12 +- .../main/assets/de/guide_javascript_dark.html | 28 +- .../assets/de/guide_javascript_light.html | 28 +- .../assets/de/guide_local_storage_dark.html | 86 +- .../assets/de/guide_local_storage_light.html | 80 +- .../main/assets/de/guide_overview_dark.html | 24 +- .../main/assets/de/guide_overview_light.html | 22 +- .../main/assets/de/guide_requests_dark.html | 89 +- .../main/assets/de/guide_requests_light.html | 87 +- .../de/guide_ssl_certificates_dark.html | 36 +- .../de/guide_ssl_certificates_light.html | 34 +- app/src/main/assets/de/guide_tor_dark.html | 55 +- app/src/main/assets/de/guide_tor_light.html | 55 +- .../assets/de/guide_tracking_ids_dark.html | 16 +- .../assets/de/guide_tracking_ids_light.html | 12 +- .../main/assets/de/guide_user_agent_dark.html | 59 +- .../assets/de/guide_user_agent_light.html | 49 +- .../main/assets/en/about_licenses_dark.html | 2 + .../main/assets/en/about_licenses_light.html | 2 + .../en/guide_ssl_certificates_dark.html | 9 +- .../en/guide_ssl_certificates_light.html | 9 +- .../main/assets/es/about_licenses_dark.html | 2 + .../main/assets/es/about_licenses_light.html | 2 + .../main/assets/it/about_licenses_dark.html | 2 + .../main/assets/it/about_licenses_light.html | 2 + .../main/assets/ru/about_licenses_dark.html | 2 + .../main/assets/ru/about_licenses_light.html | 2 + .../main/assets/shared_images/tab_dark.png | Bin 0 -> 928 bytes .../main/assets/shared_images/tab_light.png | Bin 0 -> 796 bytes .../main/assets/tr/about_licenses_dark.html | 2 + .../main/assets/tr/about_licenses_light.html | 2 + .../activities/AboutActivity.java | 16 +- .../activities/BookmarksActivity.java | 44 +- .../activities/MainWebViewActivity.java | 7054 +++++++++-------- .../dialogs/AddDomainDialog.java | 2 +- .../fragments/AboutTabFragment.java | 11 +- .../fragments/WebViewTabFragment.java | 92 + .../helpers/BlockListHelper.java | 2 +- app/src/main/res/drawable/tab.xml | 18 + app/src/main/res/drawable/theme_dark.xml | 6 +- app/src/main/res/drawable/theme_light.xml | 6 +- .../res/layout/about_coordinatorlayout.xml | 11 +- app/src/main/res/layout/custom_tab_view.xml | 50 + app/src/main/res/layout/main_framelayout.xml | 194 +- .../main/res/layout/nestedscroll_webview.xml | 27 + app/src/main/res/layout/url_app_bar.xml | 40 +- .../main/res/menu/webview_navigation_menu.xml | 79 +- app/src/main/res/values-de/strings.xml | 4 +- app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values/strings.xml | 7 +- .../android/de-DE/full_description.txt | 13 + .../android/de-DE/short_description.txt | 1 + fastlane/metadata/android/de-DE/title.txt | 1 + .../android/en-US/full_description.txt | 12 +- .../android/en-US/short_description.txt | 2 +- fastlane/metadata/android/en-US/title.txt | 2 +- .../android/tr-TR/full_description.txt | 13 + .../android/tr-TR/short_description.txt | 1 + fastlane/metadata/android/tr-TR/title.txt | 1 + 86 files changed, 4873 insertions(+), 4229 deletions(-) create mode 100644 app/src/main/assets/shared_images/tab_dark.png create mode 100644 app/src/main/assets/shared_images/tab_light.png create mode 100644 app/src/main/java/com/stoutner/privacybrowser/fragments/WebViewTabFragment.java create mode 100644 app/src/main/res/drawable/tab.xml create mode 100644 app/src/main/res/layout/custom_tab_view.xml create mode 100644 app/src/main/res/layout/nestedscroll_webview.xml create mode 100644 fastlane/metadata/android/de-DE/full_description.txt create mode 100644 fastlane/metadata/android/de-DE/short_description.txt create mode 100644 fastlane/metadata/android/de-DE/title.txt create mode 100644 fastlane/metadata/android/tr-TR/full_description.txt create mode 100644 fastlane/metadata/android/tr-TR/short_description.txt create mode 100644 fastlane/metadata/android/tr-TR/title.txt diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index a2c18eb6..e1c83ef8 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -68,7 +68,7 @@ @@ -78,7 +78,8 @@ diff --git a/.idea/dictionaries/soren.xml b/.idea/dictionaries/soren.xml index e0dfdc07..36ddf6a6 100644 --- a/.idea/dictionaries/soren.xml +++ b/.idea/dictionaries/soren.xml @@ -103,6 +103,7 @@ mitm mozilla navigationview + nestedscroll nightmode nist nojs @@ -183,6 +184,7 @@ webpage websocket webview + webviewpager whatismyip wipo wouldn diff --git a/app/build.gradle b/app/build.gradle index 52f4d9b9..6de6e3bb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -86,5 +86,5 @@ dependencies { implementation 'com.google.android.material:material:1.0.0' // Only compile Firebase ads for the free flavor. - freeImplementation 'com.google.firebase:firebase-ads:17.1.3' + freeImplementation 'com.google.firebase:firebase-ads:17.2.0' } \ No newline at end of file diff --git a/app/src/free/assets/de/about_permissions_dark.html b/app/src/free/assets/de/about_permissions_dark.html index 06aa3016..4d429bce 100644 --- a/app/src/free/assets/de/about_permissions_dark.html +++ b/app/src/free/assets/de/about_permissions_dark.html @@ -1,6 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/theme_dark.xml b/app/src/main/res/drawable/theme_dark.xml index 3a717ce7..d4305902 100644 --- a/app/src/main/res/drawable/theme_dark.xml +++ b/app/src/main/res/drawable/theme_dark.xml @@ -4,15 +4,15 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/theme_light.xml b/app/src/main/res/drawable/theme_light.xml index c1409d0d..33193f1e 100644 --- a/app/src/main/res/drawable/theme_light.xml +++ b/app/src/main/res/drawable/theme_light.xml @@ -4,15 +4,15 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/about_coordinatorlayout.xml b/app/src/main/res/layout/about_coordinatorlayout.xml index 4d844be1..bc365d6b 100644 --- a/app/src/main/res/layout/about_coordinatorlayout.xml +++ b/app/src/main/res/layout/about_coordinatorlayout.xml @@ -19,22 +19,22 @@ along with Privacy Browser. If not, see . --> + When it is specified the theme should include true to make the status bar a transparent, darkened overlay. --> + android:fitsSystemWindows="true"> - + - + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_framelayout.xml b/app/src/main/res/layout/main_framelayout.xml index 9642decb..b04c6bc8 100644 --- a/app/src/main/res/layout/main_framelayout.xml +++ b/app/src/main/res/layout/main_framelayout.xml @@ -57,99 +57,107 @@ android:layout_width="match_parent" android:theme="@style/PrivacyBrowserAppBarLight" > - - - - + app:layout_scrollFlags="scroll|enterAlways|snap" /> - - + - + android:layout_width="wrap_content" + android:orientation="horizontal" > - - - - + app:tabMode="scrollable" /> + android:paddingStart="15dp" + android:paddingEnd="15dp" + android:src="@drawable/add_light" + android:tint="@color/gray_700" + android:onClick="addTab" + android:contentDescription="@string/add_tab" /> + + - + + - - - + + + + + + + + + + + @@ -159,12 +167,30 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" > - + + android:layout_height="match_parent"> + + + + + + diff --git a/app/src/main/res/layout/nestedscroll_webview.xml b/app/src/main/res/layout/nestedscroll_webview.xml new file mode 100644 index 00000000..3ece03d3 --- /dev/null +++ b/app/src/main/res/layout/nestedscroll_webview.xml @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/url_app_bar.xml b/app/src/main/res/layout/url_app_bar.xml index ef93af16..48161524 100644 --- a/app/src/main/res/layout/url_app_bar.xml +++ b/app/src/main/res/layout/url_app_bar.xml @@ -18,37 +18,17 @@ You should have received a copy of the GNU General Public License along with Privacy Browser. If not, see . --> - -= 26. `tools:ignore="UnusedAttribute"` removes the lint warning. --> + - - - - - - - \ No newline at end of file + android:hint="@string/url_or_search_terms" + android:imeOptions="actionGo" + android:inputType="textUri" + android:selectAllOnFocus="true" + android:autofillHints="" + tools:ignore="UnusedAttribute" /> \ No newline at end of file diff --git a/app/src/main/res/menu/webview_navigation_menu.xml b/app/src/main/res/menu/webview_navigation_menu.xml index 74a9249c..6181453c 100644 --- a/app/src/main/res/menu/webview_navigation_menu.xml +++ b/app/src/main/res/menu/webview_navigation_menu.xml @@ -20,97 +20,108 @@ + - + + - + + + + + + + + + + android:orderInCategory="70" /> + android:orderInCategory="80" /> + + android:orderInCategory="90" /> + android:orderInCategory="100" /> + android:orderInCategory="110" /> + android:orderInCategory="120" /> + + android:orderInCategory="130" /> - - - - - + android:orderInCategory="140" /> \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7773b01d..992dc40d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -107,9 +107,10 @@ Benutzername Passwort - + Navigationspanel Navigation + Leeren und verlassen Startseite Zurück Vorwärts @@ -121,7 +122,6 @@ Logcat Handbuch Infos - Leeren und verlassen JavaScript diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 853210cc..564bbdf4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -104,9 +104,10 @@ Usuario Contraseña - + Caja de navegación Navegación + Borrar y salir Inicio Atrás Adelante @@ -118,7 +119,6 @@ Logcat Guía Acerca de - Borrar y salir Javascript diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 60ca5155..168a3ed9 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -104,9 +104,10 @@ Nome utente Password - + Menù di navigazione Navigazione + Elimina dati ed esci Home Indietro Avanti @@ -118,7 +119,6 @@ Logcat Guida Informazioni - Elimina dati ed esci JavaScript diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 486b65c1..9ff1ed06 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -101,9 +101,10 @@ Имя пользователя Пароль - + Навигационная панель Навигация + Очистить и выйти Домой Назад Вперед @@ -115,7 +116,6 @@ Logcat Руководство О Privacy Browser - Очистить и выйти JavaScript diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8720f64d..e6dfa98c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -101,9 +101,10 @@ Kullanıcı Adı Şifre - + Açılır Menü Gezinti + Temizle ve Çık Anasayfa Geri İleri @@ -115,7 +116,6 @@ Logcat Rehber Hakkında - Temizle ve Çık JavaScript diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 23d45435..0013e8e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -51,6 +51,8 @@ No title Unrecognized URL: Open with + New tab + Add tab Save As @@ -108,9 +110,11 @@ Username Password - + Navigation Drawer Navigation + Close Tab + Clear and Exit Home Back Forward @@ -122,7 +126,6 @@ Logcat Guide About - Clear and Exit JavaScript diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt new file mode 100644 index 00000000..e1fefd23 --- /dev/null +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -0,0 +1,13 @@ +Die meisten Browser plaudern still und heimlich jede Menge Informationen an Websiten aus, welche genutzt werden können, um deren Benutzer zu verfolgen und deren Privatsphäre zu kompromittieren. Webseiten und Werbenetzwerke nutzen Technologien wie JavaScript, Cookies, DOM-Speicher, User-Agents und andere, um jeden einzelnen Browser-Benutzer eindeutig zu identifizieren und ihn zwischen seinen Besuchen und sogar quer durch das Internet zu verfolgen. + +Privacy Browser wird entwickelt, um die Menge an Informationen, die an Websites geliefert wird, zu minimieren. In der Voreinstellung sind Funktionen, die Ihre Privatsphäre beeinträchtigen können, grundsätzlich deaktiviert. Wenn Webseiten jedoch spezielle Funktionen benötigen, um zu funktionieren, können diese beim Besuch der betreffenden Seite bewusst einmalig aktiviert werden. Darüber hinaus können spezielle Einstellungen für bestimmte Domains auch abgespeichert werden, damit sie bei jedem Besuch der betreffenden Seite automatisch aktiviert und danach wieder deaktiviert werden. + +Privacy Browser nutzt aktuell Android's eingebaute WebView-Komponente, um Webseiten anzuzeigen. Er funktioniert daher am Besten, wenn die letzte Version von WebView installiert ist (siehe https://www.stoutner.com/privacy-browser/common-settings/webview/). Ab Version 4.x wird Privacy Browser eine abgeleitete Version von Android's WebView - Privacy WebView genannt - verwenden, um erweiterte Privatsphäre-Funktionen zu bieten. + +Achtung: Android KitKat (Version 4.4.x, API 19) wurde mit einer alten Version von OpenSSL ausgeliefert, welche für Man-In-The-Middle-Angriffe (MITM) anfällig ist, wenn auf Webseiten mit veralteten Protokollen und Cipher-Suites gesurft wird. Weitere Informationen dazu sind auf https://www.stoutner.com/kitkat-security-problems/ verfügbar. + +Features: +• Integrierter EasyList-Werbeblocker +• TOR-Proxy-Unterstützung mittels Orbot +• Verankerung von SSL-Zertifikaten (Pinning) +• Import/Export von Einstellungen und Lesezeichen \ No newline at end of file diff --git a/fastlane/metadata/android/de-DE/short_description.txt b/fastlane/metadata/android/de-DE/short_description.txt new file mode 100644 index 00000000..cb504a53 --- /dev/null +++ b/fastlane/metadata/android/de-DE/short_description.txt @@ -0,0 +1 @@ +Ein Browser, der Ihre Privatsphäre schützt. \ No newline at end of file diff --git a/fastlane/metadata/android/de-DE/title.txt b/fastlane/metadata/android/de-DE/title.txt new file mode 100644 index 00000000..ca458fec --- /dev/null +++ b/fastlane/metadata/android/de-DE/title.txt @@ -0,0 +1 @@ +Privacy Browser \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index ab03d23b..9992b757 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1,13 +1,13 @@ -Privacy Browser protects your privacy by disabling features like JavaScript, DOM storage, and cookies that are used by websites to track users. Settings can be adjusted by domain and on-the-fly to enable these features when needed. In addition, Privacy Browser incorporates the EasyList block lists, which block many tracking technologies even when JavaScript is enabled. +Most browsers silently give websites massive amounts of information that allows them to track you and compromise your privacy. Websites and ad networks use technologies like JavaScript, cookies, DOM storage, user agents, and many other things to uniquely identify each user and track them between visits and across the web. -Privacy Browser does not have tabbed browsing yet. This is a planned feature for the 3.x series. +Privacy Browser is designed to minimize the amount of information the browser presents to websites. By default, privacy sensitive features are disabled. If one of these technologies is required for a website to function correctly, the user may choose to turn it on for just that visit. Or, they can use domain settings to automatically turn on certain features when entering a specific website and turn them off again when leaving. -Privacy Browser currently uses Android’s built-in WebView to render web pages. As such, it works best when the latest version of WebView is installed. In the 4.x series, Privacy Browser will switch to a forked version of Android’s WebView called Privacy WebView that will allow for advanced privacy features. +Privacy Browser currently uses Android’s built-in WebView to render web pages. As such, it works best when the latest version of WebView is installed (see https://www.stoutner.com/privacy-browser/common-settings/webview/). In the 4.x series, Privacy Browser will switch to a forked version of Android’s WebView called Privacy WebView that will allow for advanced privacy features. -Warning: Due to limitations in the OS, Privacy Browser is susceptible to MITM (Man In The Middle) attacks when browsing insecure websites from devices running Android KitKat (version 4.4.x, API 19). More information about this issue is available at https://www.stoutner.com/kitkat-security-problems/. +Warning: Android KitKat (version 4.4.x, API 19) ships an older version of OpenSSL, which is susceptible to MITM (Man In The Middle) attacks when browsing websites that use outdated protocols and cipher suites. More information about this issue is available at https://www.stoutner.com/kitkat-security-problems/. Features: +• Integrated EasyList ad blocking. • Tor Orbot proxy support. • SSL certificate pinning. -• Full screen browsing mode. -• Night mode. +• Import/Export of settings and bookmarks. \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt index 8ad80090..e7f6b899 100644 --- a/fastlane/metadata/android/en-US/short_description.txt +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -1 +1 @@ -A web browser that respects your privacy. +A web browser that respects your privacy. \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt index beb60305..ca458fec 100644 --- a/fastlane/metadata/android/en-US/title.txt +++ b/fastlane/metadata/android/en-US/title.txt @@ -1 +1 @@ -Privacy Browser +Privacy Browser \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt new file mode 100644 index 00000000..1a6d102e --- /dev/null +++ b/fastlane/metadata/android/tr-TR/full_description.txt @@ -0,0 +1,13 @@ +Çoğu tarayıcı, sizi takip etmelerini sağlayacak ve gizliliğinizi riske edecek büyük miktarda bilgiyi sessizce web sitelerine verir. Web siteleri ve reklam ağları, her kullanıcıyı benzersiz şekilde tanımlamak ve web genelinde ve ziyaretleri arasında hepsini takip etmek için JavaScript, çerezler, DOM depolama alanı, kullanıcı aracıları ve daha birçok farklı teknolojileri kullanır. + +Privacy Browser, bir tarayıcının web sitelerine verebileceği bilgi miktarını en aza indirecek şekilde tasarlanmıştır. Gizliliğe duyarlı özellikler varsayılan olarak devre dışıdır. Bir web sitesinin düzgün çalışması için bu teknolojilerden biri gerekliyse, kullanıcı bu ziyaret için o özelliği etkinleştirmeyi seçebilir. Veya, belirli bir web sitesine girerken belirli özellikleri otomatik olarak açmak ve çıkarken tekrar kapatmak için domain ayarlarını kullanabilir. + +Privacy Browser, web sayfalarını oluşturmak için şu anda Android'in yerleşik Web Görünümü'nü kullanıyor. Bu nedenle, en güncel Web Görünümü sürümü kurulu olduğunda en iyi şekilde çalışır (bakınız https://www.stoutner.com/privacy-browser/common-settings/webview/). 4.x serisinde, Privacy Browser, gelişmiş gizlilik özelliklerine izin verecek, Android Web Görünümü'nün bölünmüş bir sürümü olan Privacy Web Görünümü'ne geçecektir. + +Uyarı: Android KitKat (sürüm 4.4.x, API 19), güncel olmayan protokolleri ve şifre takımlarını kullanan web sitelerine göz atarken MITM (Ortadaki Adam) saldırılarına açık olan eski bir OpenSSL sürümünü içerir. Bu konuda daha fazla bilgi için https://www.stoutner.com/kitkat-security-problems/. + +Özellikler: +• Entegre EasyList reklam engelleme. +• Tor Orbot proxy desteği. +• SSL sertifikası sabitlemesi. +• Ayarların ve yer imlerinin içe / dışa aktarımı. \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt new file mode 100644 index 00000000..8845d417 --- /dev/null +++ b/fastlane/metadata/android/tr-TR/short_description.txt @@ -0,0 +1 @@ +Mahremiyetinize saygı duyan bir web tarayıcısı. \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/title.txt b/fastlane/metadata/android/tr-TR/title.txt new file mode 100644 index 00000000..ca458fec --- /dev/null +++ b/fastlane/metadata/android/tr-TR/title.txt @@ -0,0 +1 @@ +Privacy Browser \ No newline at end of file -- 2.45.2