</head>
<body>
- <h3>3.12.1 (Version Code 62)</h3>
- <p>17. November 2022 - Mindest-API 23, Ziel-API 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (Version Code 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17. November 2022</a> - Mindest-API 23, Ziel-API 33</p>
<ul>
<li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
</ul>
<li>Delete the <a href="https://redmine.stoutner.com/issues/885">Service Worker directory</a> after every page load.</li>
<li>Restrict the file provider to a <a href="https://redmine.stoutner.com/issues/779">subdirectory</a> of the cache directory.</li>
<li>Bump the <a href="https://redmine.stoutner.com/issues/902">target API to 33</a> (Android 13).</li>
- <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView's dark mode</a> on Android 13.</li>
+ <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView’s dark mode</a> on Android 13.</li>
<li><a href="https://redmine.stoutner.com/issues/921">Implement</a>
<a href="https://redmine.stoutner.com/issues/917">a</a>
<a href="https://redmine.stoutner.com/issues/922">number</a>
</head>
<body>
- <h3>3.12.1 (version code 62)</h3>
- <p>17 November 2022 - minimum API 23, target API 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (version code 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 November 2022</a> - minimum API 23, target API 33</p>
<ul>
<li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
</ul>
<li>Delete the <a href="https://redmine.stoutner.com/issues/885">Service Worker directory</a> after every page load.</li>
<li>Restrict the file provider to a <a href="https://redmine.stoutner.com/issues/779">subdirectory</a> of the cache directory.</li>
<li>Bump the <a href="https://redmine.stoutner.com/issues/902">target API to 33</a> (Android 13).</li>
- <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView's dark mode</a> on Android 13.</li>
+ <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView’s dark mode</a> on Android 13.</li>
<li><a href="https://redmine.stoutner.com/issues/921">Implement</a>
<a href="https://redmine.stoutner.com/issues/917">a</a>
<a href="https://redmine.stoutner.com/issues/922">number</a>
<ul>
<li>Update launcher icon to make it bigger.</li>
<li>Replace all toast messages with <a href="https://redmine.stoutner.com/issues/12">snackbars</a>.</li>
- <li><a href="https://redmine.stoutner.com/issues/11">Don't update the URL box if the user is typing in it</a>.</li>
+ <li><a href="https://redmine.stoutner.com/issues/11">Don’t update the URL box if the user is typing in it</a>.</li>
<li>Bump the minimum API from 10 to 15. Privacy Browser was crashing on load in API 10.</li>
</ul>
<p>Almost all websites with logins require cookies to be enabled for a user to log in.
That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.</p>
- <p>Android's System WebView treats cookies as an app-level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
+ <p>Android’s System WebView treats cookies as an app-level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
The result is that the cookies setting for whatever tab is currently displayed controls the cookies setting for all the background tabs as well.
If you have a tab in that background that has cookies enabled so that you can be logged into a website, and switch to a tab that doesn't have cookies enabled, it disabled cookies for all the tabs.
If the background tab makes a request, for example, to see if there is updated information, that request will be sent without cookies, which will cause the website to log you out.
</head>
<body>
- <h3>3.12.1 (código de versión 62)</h3>
- <p>17 de noviembre de 2022 - API mínimo 23, API objetivo 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (código de versión 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 de noviembre de 2022</a> - API mínimo 23, API objetivo 33</p>
<ul>
<li>Corregir un fallo en <a href="https://redmine.stoutner.com/issues/925">nuevas instalaciones</a> de Navegador Privado.</li>
</ul>
</head>
<body>
- <h3>3.12.1 (version code 62)</h3>
- <p>17 Novembre 2022 - API minimale : 23, API optimale : 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (version code 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 Novembre 2022</a> - API minimale : 23, API optimale : 33</p>
<ul>
<li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
</ul>
</head>
<body>
- <h3>3.12.1 (versione codice 62)</h3>
- <p>17 Novembre 2022 - minima API 23, target API 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (versione codice 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 Novembre 2022</a> - minima API 23, target API 33</p>
<ul>
- <li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
+ <li>Correzione di un crash per le <a href="https://redmine.stoutner.com/issues/925">nuove installazioni</a> di Privacy Browser.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (versione codice 61)</h3>
<ul>
<li>Update launcher icon to make it bigger.</li>
<li>Replace all toast messages with <a href="https://redmine.stoutner.com/issues/12">snackbars</a>.</li>
- <li><a href="https://redmine.stoutner.com/issues/11">Don't update the URL box if the user is typing in it</a>.</li>
+ <li><a href="https://redmine.stoutner.com/issues/11">Don’t update the URL box if the user is typing in it</a>.</li>
<li>Bump the minimum API from 10 to 15. Privacy Browser was crashing on load in API 10.</li>
</ul>
</head>
<body>
- <h3>3.12.1 (version code 62)</h3>
- <p>17 November 2022 - API mínimo 23, API alvo 33</p>
- <ul>
- <li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
- </ul>
-
- <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (version code 61)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 November 2022</a> - API mínimo 23, API alvo 33</p>
- <ul>
- <li>Add <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> to the navigation menu.</li>
- <li>Make long-pressing a bookmark open it in a new <a href="https://redmine.stoutner.com/issues/912">foreground tab</a>.</li>
- <li>Add <a href="https://redmine.stoutner.com/issues/910">per-app language support</a>.</li>
- <li>Fix a crash if Add Domain Settings is called on an <a href="https://redmine.stoutner.com/issues/906">empty tab</a>.</li>
- <li>Improve the night mode red <a href="https://redmine.stoutner.com/issues/691">text</a> and <a href="https://redmine.stoutner.com/issues/805">icon</a> color.</li>
- <li>Detect <a href="https://redmine.stoutner.com/issues/895">I2P installations</a> from Google Play.</li>
- <li>Implement a <a href="https://redmine.stoutner.com/issues/716">bottom app bar</a> in Settings.</li>
- <li>Delete the <a href="https://redmine.stoutner.com/issues/885">Service Worker directory</a> after every page load.</li>
- <li>Restrict the file provider to a <a href="https://redmine.stoutner.com/issues/779">subdirectory</a> of the cache directory.</li>
- <li>Bump the <a href="https://redmine.stoutner.com/issues/902">target API to 33</a> (Android 13).</li>
- <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView's dark mode</a> on Android 13.</li>
- <li><a href="https://redmine.stoutner.com/issues/921">Implement</a>
- <a href="https://redmine.stoutner.com/issues/917">a</a>
- <a href="https://redmine.stoutner.com/issues/922">number</a>
- <a href="https://redmine.stoutner.com/issues/778">of</a>
- <a href="https://redmine.stoutner.com/issues/759">minor</a>
- <a href="https://redmine.stoutner.com/issues/757">improvements</a>.</li>
- <li>Fix a <a href="https://redmine.stoutner.com/issues/621">number</a>
- <a href="https://redmine.stoutner.com/issues/766">of</a>
- <a href="https://redmine.stoutner.com/issues/904">minor</a>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (código de versão 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 de novembro de 2022</a> - API mínimo 23, API alvo 33</p>
+ <ul>
+ <li>Corrigida uma falha em <a href="https://redmine.stoutner.com/issues/925">novas instalações</a> do Privacy Browser.</li>
+ </ul>
+
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12/">3.12</a> (código de versão 61)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=60846bcbf234ed7452af94f080f3da3133ce674c">16 de novembro de 2022</a> - API mínimo 23, API alvo 33</p>
+ <ul>
+ <li>Adiciona <a href="https://redmine.stoutner.com/issues/893">WebView DevTools</a> ao menu de navegação.</li>
+ <li>Faça um pressionamento longo de um marcador para abri-lo em uma nova <a href="https://redmine.stoutner.com/issues/912">guia de primeiro plano</a>.</li>
+ <li>Adiciona <a href="https://redmine.stoutner.com/issues/910">suporte a idiomas por aplicativo</a>.</li>
+ <li>Corrijida uma falha se o Adicionar Configurações de Domínio for chamado em uma <a href="https://redmine.stoutner.com/issues/906">guia vazia</a>.</li>
+ <li>Melhorar o modo noturno vermelho <a href="https://redmine.stoutner.com/issues/691">texto</a> e <a href="https://redmine.stoutner.com/issues/805">cor do ícone</a>.</li>
+ <li>Detectar <a href="https://redmine.stoutner.com/issues/895">instalações I2P</a> do Google Play.</li>
+ <li>Implemente uma <a href="https://redmine.stoutner.com/issues/716">barra de aplicativos inferior</a> em Configurações.</li>
+ <li>Exclua o <a href="https://redmine.stoutner.com/issues/885">diretório do Service Worker</a> após cada carregamento de página.</li>
+ <li>Restringir o provedor de arquivos a um <a href="https://redmine.stoutner.com/issues/779">subdiretório</a> do diretório de cache.</li>
+ <li>Use a <a href="https://redmine.stoutner.com/issues/902">API de destino para 33</a> (Android 13).</li>
+ <li>Implementar a imposição do <a href="https://redmine.stoutner.com/issues/903">modo escuro do WebView</a> no Android 13.</li>
+ <li><a href="https://redmine.stoutner.com/issues/921">Implementado</a>
+ <a href="https://redmine.stoutner.com/issues/917">um</a>
+ <a href="https://redmine.stoutner.com/issues/922">número</a>
+ <a href="https://redmine.stoutner.com/issues/778">menor</a>
+ <a href="https://redmine.stoutner.com/issues/759">de</a>
+ <a href="https://redmine.stoutner.com/issues/757">melhorias</a>.</li>
+ <li>Corrigido um <a href="https://redmine.stoutner.com/issues/621">número</a>
+ <a href="https://redmine.stoutner.com/issues/766">menor</a>
+ <a href="https://redmine.stoutner.com/issues/904">de</a>
<a href="https://redmine.stoutner.com/issues/914">bugs</a>.</li>
<li>Tradução atualizada para o português do Brasil fornecida por <a href="mailto:mochileiro2006-trilhas@yahoo.com.br">Thiago Nazareno Conceição Silva de Jesus</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-11/">3.11</a> (código da versão 60)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 Julho 2022</a> - API mínimo 23, API alvo 32</p>
- <ul>
- <li>Create an option to use the default <a href="https://redmine.stoutner.com/issues/819">X-Requested-With header</a>.</li>
- <li>Block all the <a href="https://redmine.stoutner.com/issues/863">URL query trackers</a> listed at privacytests.org.</li>
- <li>Add a <a href="https://redmine.stoutner.com/issues/838">Share Message</a> option.</li>
- <li>Fix a bug that caused the bottom app bar to <a href="https://redmine.stoutner.com/issues/839">cover part of the website</a>.</li>
- <li>Fix duplicate tabs sometimes being <a href="https://redmine.stoutner.com/issues/807">opened on restart</a>.</li>
- <li>Display the bookmark opened in new tab snackbar <a href="https://redmine.stoutner.com/issues/818">above the bookmarks drawer</a>.</li>
- <li>Add the <a href="https://redmine.stoutner.com/issues/815">kernel version</a> to About > Version.</li>
- <li>Preserve the <a href="https://redmine.stoutner.com/issues/806">current bookmarks folder</a> on restart.</li>
- <li>Change the <a href="https://redmine.stoutner.com/issues/817">default value</a> of the custom proxy URL to socks://localhost:9050.</li>
- <li><a href="https://redmine.stoutner.com/issues/792">Add</a> <a href="https://redmine.stoutner.com/issues/789">various</a>
- <a href="https://redmine.stoutner.com/issues/875">updates</a> to the Guide.</li>
- <li>Make <a href="https://redmine.stoutner.com/issues/877">several</a> <a href="https://redmine.stoutner.com/issues/878">small</a>
- <a href="https://redmine.stoutner.com/issues/879">UI</a> improvements.</li>
- <li>Bump the <a href="https://redmine.stoutner.com/issues/828">target API to 32</a> (Android 12L).</li>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=aa9590ff1a1097733bdda217ce1fe6f1fc93afc3">30 de julho de 2022</a> - API mínimo 23, API alvo 32</p>
+ <ul>
+ <li>Cria uma opção para usar o cabeçalho padrão <a href="https://redmine.stoutner.com/issues/819">X-Requested-With</a>.</li>
+ <li>Bloqueia todos os <a href="https://redmine.stoutner.com/issues/863">rastreadores de consulta de URL</a> listados em privacytests.org.</li>
+ <li>Adiciona uma opção <a href="https://redmine.stoutner.com/issues/838">Compartilhar mensagem</a>.</li>
+ <li>Corrigido um bug que fazia com que a barra inferior do aplicativo <a href="https://redmine.stoutner.com/issues/839">cobrisse parte do site</a>.</li>
+ <li>Corrigido guias duplicadas que às vezes são <a href="https://redmine.stoutner.com/issues/807">abertas na reinicialização</a>.</li>
+ <li>Exibe o favorito aberto na nova guia snackbar <a href="https://redmine.stoutner.com/issues/818">acima da gaveta de favoritos</a>.</li>
+ <li>Adiciona a <a href="https://redmine.stoutner.com/issues/815">versão do kernel</a> a Sobre > Versão.</li>
+ <li>Preserva a <a href="https://redmine.stoutner.com/issues/806">pasta de favoritos atual</a> ao reiniciar.</li>
+ <li>Altera o <a href="https://redmine.stoutner.com/issues/817">valor padrão</a> do URL de proxy personalizado para socks://localhost:9050.</li>
+ <li><a href="https://redmine.stoutner.com/issues/792">Adiciona</a> <a href="https://redmine.stoutner.com/issues/789">várias</a>
+ <a href="https://redmine.stoutner.com/issues/875">atualizações</a> do Guia.</li>
+ <li>Feitas <a href="https://redmine.stoutner.com/issues/877">diversas</a> <a href="https://redmine.stoutner.com/issues/878">pequenas</a> melhorias na
+ <a href="https://redmine.stoutner.com/issues/879">IU</a>.</li>
+ <li>Alterada a <a href="https://redmine.stoutner.com/issues/828">API de destino para 32</a> (Android 12L).</li>
<li>Tradução atualizada para o português do Brasil fornecida por <a href="mailto:mochileiro2006-trilhas@yahoo.com.br">Thiago Nazareno Conceição Silva de Jesus</a>.</li>
</ul>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-9/">3.9</a> (código da versão 57)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=392f2726cd21539c5ec89e0d09d2e7d7922bebad">27 November 2021</a> - API mínimo 19, API alvo 31</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=392f2726cd21539c5ec89e0d09d2e7d7922bebad">27 de novembro de 2021</a> - API mínimo 19, API alvo 31</p>
<ul>
<li>Simplificadas as <a href="https://redmine.stoutner.com/issues/769">caixas de diálogo de salvamento</a>.</li>
<li>Exibe o nome do arquivo salvo nas <a href="https://redmine.stoutner.com/issues/695">barras de notificação flutuantes</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-8-1/">3.8.1</a> (código da versão 56)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=bda37dc9784e900cb64b87af3e221e11320d9d01">29 Junho 2021</a> - API mínimo 19, API alvo 30</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=bda37dc9784e900cb64b87af3e221e11320d9d01">29 de junho de 2021</a> - API mínimo 19, API alvo 30</p>
<ul>
<li>Removido <a href="https://redmine.stoutner.com/issues/722">Startpage</a> e colocado <a href="https://redmine.stoutner.com/issues/577">Mojeek</a>
como a página inicial padrão e motor de busca.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-8/">3.8</a> (código da versão 55)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=1650cd6eff9ef807a84263328cb73e755250e3af">24 Junho 2021</a> - API mínimo 19, API alvo 30</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=1650cd6eff9ef807a84263328cb73e755250e3af">24 de junho de 2021</a> - API mínimo 19, API alvo 30</p>
<ul>
<li>Adicionado uma opção para <a href="https://redmine.stoutner.com/issues/143">mover a barra de aplicativos para a parte inferior</a>.</li>
<li>Reimplementado o <a href="https://redmine.stoutner.com/issues/677">salvamento de arquivos da web</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-6-1/">3.6.1</a> (código da versão 53)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=78e6b0e9a553e3bf800e4c69535c46fb63bef017">26 November 2020</a> - API mínimo 19, API alvo 29</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=78e6b0e9a553e3bf800e4c69535c46fb63bef017">26 de novembro de 2020</a> - API mínimo 19, API alvo 29</p>
<ul>
<li>Corrigido o erro que gerava <a href="https://redmine.stoutner.com/issues/642">Ver Fonte ao travar</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-6/">3.6</a> (código da versão 52)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=8a06558b0071fa94e2a7d1093b3118417ac5cc8f">16 November 2020</a> - API mínimo 19, API alvo 29</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=8a06558b0071fa94e2a7d1093b3118417ac5cc8f">16 de novembro de 2020</a> - API mínimo 19, API alvo 29</p>
<ul>
<li>Correção da reprodução do áudio em buffer <a href="https://redmine.stoutner.com/issues/595">após o fechamento de uma guia</a>.</li>
<li>Confiar <a href="https://redmine.stoutner.com/issues/636">nas autoridades de certificação do usuário</a> no Android 7 (API 24) e mais recente.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-3-2/">3.2</a> (código da versão 46)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=424ab40e495fed0fd1fe4109be466206d64ae6be">20 Julho 2019</a> - API mínimo 19, API alvo 28</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=424ab40e495fed0fd1fe4109be466206d64ae6be">20 de julho de 2019</a> - API mínimo 19, API alvo 28</p>
<ul>
<li>Change the default search engine and homepage to <a href="https://www.stoutner.com/switching-to-startpage-as-the-default-homepage-and-search-engine/">Startpage</a>.</li>
<li>Fix proxying through Orbot on <a href="https://redmine.stoutner.com/issues/473">recent</a> <a href="https://redmine.stoutner.com/issues/474">versions</a> of WebView.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-12/">2.12</a> (código da versão 35)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=eeb6f383b74980bc29ff1ecab8f6c3eb6ac17d54">31 Julho 2018</a> - API mínimo 19, API alvo 27</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=eeb6f383b74980bc29ff1ecab8f6c3eb6ac17d54">31 de julho de 2018</a> - API mínimo 19, API alvo 27</p>
<ul>
<li>Change the default homepage and search engine to <a href="https://redmine.stoutner.com/issues/308">Searx.me</a>.</li>
<li>Add <a href="https://redmine.stoutner.com/issues/310">UltraPrivacy</a> to the blocklists.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-11/">2.11</a> (código da versão 34)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=bc45b14cfda10249800a6ccfdb8247d2ce9b32a9">10 Julho 2018</a> - API mínimo 19, API alvo 27</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=bc45b14cfda10249800a6ccfdb8247d2ce9b32a9">10 de julho de 2018</a> - API mínimo 19, API alvo 27</p>
<ul>
<li>Add a <a href="https://redmine.stoutner.com/issues/170">Requests activity</a> that shows how many resource requests have been blocked.</li>
<li>Fix a problem with <a href="https://redmine.stoutner.com/issues/297">proxying through Orbot</a> on recent versions of WebView.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-7-2/">2.7.2</a> (código da versão 29)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=298ddb5aeffe0e18e84c7551c55ff8164b238080">22 November 2017</a> - API mínimo 19, API alvo 26</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=298ddb5aeffe0e18e84c7551c55ff8164b238080">22 de novembro de 2017</a> - API mínimo 19, API alvo 26</p>
<ul>
<li>Add an options menu item to <a href="https://redmine.stoutner.com/issues/104">create/edit domain settings</a> for the current domain.</li>
<li>Open <a href="https://redmine.stoutner.com/issues/226">telephone number hyperlinks</a> in the dialer.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-7-1/">2.7.1</a> (código da versão 28)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=24f2d6529540bc8ea47f45bc07dd058f402a9140">9 November 2017</a> - API mínimo 19, API alvo 26</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=24f2d6529540bc8ea47f45bc07dd058f402a9140">9 de novembro de 2017</a> - API mínimo 19, API alvo 26</p>
<ul>
<li>Fix a crash when <a href="https://redmine.stoutner.com/issues/225">editing a bookmark</a> in the new bookmarks drawer.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-7/">2.7</a> (código da versão 27)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=eb9bc527c37223964f7c00592df982b47ff2f81c">7 November 2017</a> - API mínimo 19, API alvo 26</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=eb9bc527c37223964f7c00592df982b47ff2f81c">7 de novembro de 2017</a> - API mínimo 19, API alvo 26</p>
<ul>
<li>Add a <a href="https://redmine.stoutner.com/issues/132">bookmarks drawer</a> that is accessed by sliding from the right.</li>
<li>Prevent Night Mode from <a href="https://redmine.stoutner.com/issues/213">flashing a white background</a> when loading new pages.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-2-4/">2.4</a> (código da versão 24)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=0063aac3b25ee5ea558669d42269d16158eca40b">23 Junho 2017</a> - API mínimo 19, API alvo 25</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=0063aac3b25ee5ea558669d42269d16158eca40b">23 de junho de 2017</a> - API mínimo 19, API alvo 25</p>
<ul>
<li>Add a <a href="https://redmine.stoutner.com/issues/124">dark theme</a> option.</li>
<li><a href="https://redmine.stoutner.com/issues/137">Highlight the http:// in red</a> if a domain is not encrypted.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-1-13/">1.13</a> (código da versão 15)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=5a9cabddff240061fe521f01df3025b037e9da9e">28 November 2016</a> - API mínimo 19, API alvo 24</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=5a9cabddff240061fe521f01df3025b037e9da9e">28 de novembro de 2016</a> - API mínimo 19, API alvo 24</p>
<ul>
<li>Double-tap for <a href="https://redmine.stoutner.com/issues/46">full screen browsing mode</a>.</li>
<li>Change the default user agent to <a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=b0ddee839c666ba339e374749588f910070658ee">PrivacyBrowser/1.0</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-1-12/">1.12</a> (código da versão 14)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=3f2c7129a56e84d34cb07c151baf87bdea94dd12">9 November 2016</a> - API mínimo 19, API alvo 24</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=3f2c7129a56e84d34cb07c151baf87bdea94dd12">9 de novembro de 2016</a> - API mínimo 19, API alvo 24</p>
<ul>
<li>Add a <a href="https://redmine.stoutner.com/issues/24">forward and back history list</a>.</li>
<li>Long press now <a href="https://redmine.stoutner.com/issues/63">displays target URLs</a> and the option to <a href="https://redmine.stoutner.com/issues/10">view or download pictures</a>.</li>
</ul>
<h3><a href="https://www.stoutner.com/privacy-browser-1-8/">1.8</a> (código da versão 9)</h3>
- <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=f386169ee9c68325562068394cb6b21b0b89be1c">16 Julho 2016</a> - API mínimo 19, API alvo 23</p>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=f386169ee9c68325562068394cb6b21b0b89be1c">16 de julho de 2016</a> - API mínimo 19, API alvo 23</p>
<ul>
<li>Add a <a href="https://redmine.stoutner.com/issues/16">bookmarks interface</a>.</li>
<li>Add <a href="https://redmine.stoutner.com/issues/29">basic controls for form data</a>.</li>
<ul>
<li>Update launcher icon to make it bigger.</li>
<li>Replace all toast messages with <a href="https://redmine.stoutner.com/issues/12">snackbars</a>.</li>
- <li><a href="https://redmine.stoutner.com/issues/11">Don't update the URL box if the user is typing in it</a>.</li>
+ <li><a href="https://redmine.stoutner.com/issues/11">Don’t update the URL box if the user is typing in it</a>.</li>
<li>Bump the minimum API from 10 to 15. Privacy Browser was crashing on load in API 10.</li>
</ul>
<a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=summary">GitWeb</a></h4>
<h4><a href="https://www.stoutner.com/donations/"><svg class="links"><use href="../shared_images/payments_rounded.svg#icon"/></svg></a>
- <a href="https://www.stoutner.com/donations/">Donations</a></h4>
+ <a href="https://www.stoutner.com/donations/">Doações</a></h4>
</body>
</html>
<p>Quase todos os sites com logins exigem que os cookies sejam ativados para o login do usuário.
É assim que eles se certificam de que ainda é você conforme você passa de uma página para outra no site, e é, na minha opinião, o único uso legítimo para cookies.</p>
- <p>Android's System WebView treats cookies as an app-level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
- The result is that the cookies setting for whatever tab is currently displayed controls the cookies setting for all the background tabs as well.
- If you have a tab in that background that has cookies enabled so that you can be logged into a website, and switch to a tab that doesn't have cookies enabled, it disabled cookies for all the tabs.
- If the background tab makes a request, for example, to see if there is updated information, that request will be sent without cookies, which will cause the website to log you out.
- This is a limitation that will be removed with the release of <a href="https://www.stoutner.com/category/privacy-browser-android-roadmap/">Privacy WebView</a> in the 4.x series.</p>
+ <p>O System WebView do Android trata os cookies como uma configuração no nível do aplicativo, o que significa que os cookies estão ativados ou desativados em todas as guias do Privacy Browser.
+ O resultado é que a configuração de cookies para qualquer guia exibida no momento também controla a configuração de cookies para todas as guias em segundo plano.
+ Se você tiver uma guia nesse plano de fundo que tenha cookies ativados para que você possa fazer login em um site e alternar para uma guia que não tenha cookies ativados,
+ ela desativou os cookies para todas as guias.
+ Se a guia em segundo plano fizer uma solicitação, por exemplo, para ver se há informações atualizadas, essa solicitação será enviada sem cookies, oque fará com que o site desconecte você.
+ Esta é uma limitação que será removida com o lançamento do <a href="https://www.stoutner.com/category/privacy-browser-android-roadmap/">Privacy WebView</a> no 4.x série.</p>
<p>Se os cookies estiverem habilitados, mas o JavaScript estiver desabilitado, o ícone de privacidade ficará amarelo <img class="inline" src="../shared_images/warning.svg"> como um aviso.</p>
Como tal, os controles para dados de formulário não aparecem mais em dispositivos Android mais recentes.</p>
- <h3><svg class="header"><use href="../shared_images/delete_forever.svg#icon"/></svg> Clear and Exit</h3>
+ <h3><svg class="header"><use href="../shared_images/delete_forever.svg#icon"/></svg> Limpar e fechar</h3>
- <p>Clear and Exit runs every time the last tab is closed or Clear and Exit is selected from the navigation menu.
- By default it clears the cookies, DOM storage, form data, the logcat, and the WebView cache. Then it manually deletes the entire <code>app_webview</code> and <code>cache</code> directories.
- The behavior of Clear and Exit can be configured in the settings.</p>
+ <p>Limpar e Fechar é executado sempre que a última guia é fechada ou Limpar e Fechar é selecionado no menu de navegação.
+ Por padrão, ele limpa os cookies, o armazenamento DOM, os dados do formulário, o logcat e o cache do WebView.
+ Em seguida, ele exclui manualmente todos os diretórios <code>app_webview</code> e <code>cache</code>. O comportamento de Limpar e Fechar pode ser configurado nas configurações.</p>
</body>
</html>
\ No newline at end of file
<h3><svg class="header"><use href="../shared_images/link_off.svg#icon"/></svg> Modificação de URL</h3>
- <p>Privacy Browser removes tracking IDs and AMP (<a href="https://en.wikipedia.org/wiki/Accelerated_Mobile_Pages">Accelerated Mobile Pages</a>) redirects from URL queries.
- There is a blog post that is updated with the <a href="https://www.stoutner.com/url-modification/">current list</a> of modifications.
- URL modification can be turned off in the settings if it is causing issues.</p>
+ <p>O navegador de privacidade remove IDs de rastreamento e redirecionamentos AMP (<a href="https://en.wikipedia.org/wiki/Accelerated_Mobile_Pages">Accelerated Mobile Pages</a>) das consultas de URL.
+ Há uma postagem no blog atualizada com a <a href="https://www.stoutner.com/url-modification/">lista atual</a> de modificações.
+ A modificação de URL pode ser desativada nas configurações se estiver causando problemas.</p>
- <h3><svg class="header"><use href="../shared_images/disabled_by_default.svg#icon"/></svg> X-Requested-With Header</h3>
+ <h3><svg class="header"><use href="../shared_images/disabled_by_default.svg#icon"/></svg> Cabeçalho X-Requested-With</h3>
- <p>Google programmed Android’s WebView to send an <a href="https://www.stoutner.com/the-x-requested-with-header/">X-Requested-With header</a> with every request.
- The value of the X-Requested-With header is set to the application ID, which in the case of Privacy Browser is <code>com.stoutner.privacybrowser.standard</code>.
- This can be disabled using <a href="https://www.stoutner.com/webview-devtools/">WebView's DevTools</a>.</p>
+ <p>O Google programou o WebView do Android para enviar um <a href="https://www.stoutner.com/the-x-requested-with-header/">cabeçalho X-Requested-With</a> a cada solicitação .
+ O valor do cabeçalho X-Requested-With é definido para o ID do aplicativo, que no caso do Privacy Browser é <code>com.stoutner.privacybrowser.standard</code>.
+ Isso pode ser desativado usando as <a href="https://www.stoutner.com/webview-devtools/">DevTools do WebView</a>.</p>
</body>
</html>
</head>
<body>
- <h3>3.12.1 (код версии 62)</h3>
- <p>17 Ноябрь 2022 года - минимальный API 23, целевой API 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (код версии 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 Ноябрь 2022 года</a> - минимальный API 23, целевой API 33</p>
<ul>
<li>Исправлен сбой <a href="https://redmine.stoutner.com/issues/925">при установке новой версии</a> Privacy Browser.</li>
</ul>
<ul>
<li>Update launcher icon to make it bigger.</li>
<li>Replace all toast messages with <a href="https://redmine.stoutner.com/issues/12">snackbars</a>.</li>
- <li><a href="https://redmine.stoutner.com/issues/11">Don't update the URL box if the user is typing in it</a>.</li>
+ <li><a href="https://redmine.stoutner.com/issues/11">Don’t update the URL box if the user is typing in it</a>.</li>
<li>Bump the minimum API from 10 to 15. Privacy Browser was crashing on load in API 10.</li>
</ul>
</head>
<body>
- <h3>3.12.1 (version code 62)</h3>
- <p>17 November 2022 - minimum API 23, target API 33</p>
+ <h3><a href="https://www.stoutner.com/privacy-browser-3-12-1/">3.12.1</a> (version code 62)</h3>
+ <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=6b2cf168a9c3697be63dee603d05a88506c380a1">17 November 2022</a> - minimum API 23, target API 33</p>
<ul>
<li>Fix a crash on <a href="https://redmine.stoutner.com/issues/925">new installs</a> of Privacy Browser.</li>
</ul>
<li>Delete the <a href="https://redmine.stoutner.com/issues/885">Service Worker directory</a> after every page load.</li>
<li>Restrict the file provider to a <a href="https://redmine.stoutner.com/issues/779">subdirectory</a> of the cache directory.</li>
<li>Bump the <a href="https://redmine.stoutner.com/issues/902">target API to 33</a> (Android 13).</li>
- <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView's dark mode</a> on Android 13.</li>
+ <li>Implement forcing <a href="https://redmine.stoutner.com/issues/903">WebView’s dark mode</a> on Android 13.</li>
<li><a href="https://redmine.stoutner.com/issues/921">Implement</a>
<a href="https://redmine.stoutner.com/issues/917">a</a>
<a href="https://redmine.stoutner.com/issues/922">number</a>
<ul>
<li>Update launcher icon to make it bigger.</li>
<li>Replace all toast messages with <a href="https://redmine.stoutner.com/issues/12">snackbars</a>.</li>
- <li><a href="https://redmine.stoutner.com/issues/11">Don't update the URL box if the user is typing in it</a>.</li>
+ <li><a href="https://redmine.stoutner.com/issues/11">Don’t update the URL box if the user is typing in it</a>.</li>
<li>Bump the minimum API from 10 to 15. Privacy Browser was crashing on load in API 10.</li>
</ul>
<p>Almost all websites with logins require cookies to be enabled for a user to log in.
That is how they make sure it is still you as you move from page to page on the site, and is, in my opinion, the only legitimate use for cookies.</p>
- <p>Android's System WebView treats cookies as an app-level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
+ <p>Android’s System WebView treats cookies as an app-level setting, meaning that cookies are either on or off for all tabs in Privacy Browser.
The result is that the cookies setting for whatever tab is currently displayed controls the cookies setting for all the background tabs as well.
If you have a tab in that background that has cookies enabled so that you can be logged into a website, and switch to a tab that doesn't have cookies enabled, it disabled cookies for all the tabs.
If the background tab makes a request, for example, to see if there is updated information, that request will be sent without cookies, which will cause the website to log you out.
// Disable the clear form data menu item if the API >= 26 so that the status of the main Clear Data is calculated correctly.
optionsClearFormDataMenuItem.setEnabled(Build.VERSION.SDK_INT < 26);
+ // Only display the dark WebView menu item if the API >= 29.
+ optionsDarkWebViewMenuItem.setVisible(Build.VERSION.SDK_INT >= 29);
+
// Set the status of the additional app bar icons. Setting the refresh menu item to `SHOW_AS_ACTION_ALWAYS` makes it appear even on small devices like phones.
if (displayAdditionalAppBarIcons) {
optionsRefreshMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
// Get the current theme status.
int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Enable dark WebView if the API is < 33 or if night mode is enabled.
- optionsDarkWebViewMenuItem.setEnabled((Build.VERSION.SDK_INT < 33) || (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES));
+ // Enable dark WebView if night mode is enabled.
+ optionsDarkWebViewMenuItem.setEnabled(currentThemeStatus == Configuration.UI_MODE_NIGHT_YES);
- // Set the checkbox status for dark WebView if the WebView supports it.
- if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the checkbox status for dark WebView if the device is running API >= 29 and algorithmic darkening is supported.
+ if ((Build.VERSION.SDK_INT >= 29) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING))
optionsDarkWebViewMenuItem.setChecked(WebSettingsCompat.isAlgorithmicDarkeningAllowed(currentWebView.getSettings()));
- } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
- //noinspection deprecation
- optionsDarkWebViewMenuItem.setChecked(WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON);
- }
}
// Set the cookies menu item checked status.
// Consume the event.
return true;
} else if (menuItemId == R.id.dark_webview) { // Dark WebView.
- // Check to see if dark WebView is supported by this WebView.
- if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
- // Toggle algorithmic darkening.
+ // Toggle dark WebView if supported.
+ if ((Build.VERSION.SDK_INT >= 29) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING))
WebSettingsCompat.setAlgorithmicDarkeningAllowed(currentWebView.getSettings(), !WebSettingsCompat.isAlgorithmicDarkeningAllowed(currentWebView.getSettings()));
- } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
- // Toggle the dark WebView setting.
- //noinspection deprecation
- if (WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON) { // Dark WebView is currently enabled.
- // Turn off dark WebView.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- } else { // Dark WebView is currently disabled.
- // Turn on dark WebView.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- }
- }
// Consume the event.
return true;
break;
}
- // Check to see if WebView themes are supported.
- if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView theme if device is running API >= 29 and algorithmic darkening is supported.
+ if ((Build.VERSION.SDK_INT >= 29) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) {
// Set the WebView theme.
switch (webViewThemeInt) {
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
break;
}
- } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
- // Set the WebView theme.
- switch (webViewThemeInt) {
- case DomainsDatabaseHelper.SYSTEM_DEFAULT:
- // Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
- if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- } else { // The system default theme is selected.
- // Get the current system theme status.
- int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
-
- // Set the WebView theme according to the current system theme status.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- } else { // The system is in night mode.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- }
- }
- break;
-
- case DomainsDatabaseHelper.LIGHT_THEME:
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- break;
-
- case DomainsDatabaseHelper.DARK_THEME:
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- break;
- }
}
// Set the viewport.
nestedScrollWebView.getSettings().setUserAgentString(userAgentDataArray[userAgentArrayPosition]);
}
- // Apply the WebView theme if supported by the installed WebView.
- if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView theme if device is running API >= 29 and algorithmic darkening is supported.
+ if ((Build.VERSION.SDK_INT >= 29) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) {
// Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // the light theme is selected.
// Turn off algorithmic darkening.
// Set the algorithmic darkening according to the current system theme status.
WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), currentThemeStatus == Configuration.UI_MODE_NIGHT_YES);
}
- } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
- // Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
- if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- } else { // The system default theme is selected.
- // Get the current system theme status.
- int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
-
- // Set the WebView theme according to the current system theme status.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
- } else { // The system is in night mode.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- }
- }
}
// Set the viewport.
// Get the WebView theme entry values string array.
String[] webViewThemeEntryValuesStringArray = getResources().getStringArray(R.array.webview_theme_entry_values);
- // Apply the WebView theme if supported by the installed WebView.
- if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView theme if device is running API >= 29 and algorithmic darkening is supported.
+ if ((Build.VERSION.SDK_INT >= 29) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) {
// Set the WebView them. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
// Turn off algorithmic darkening.
WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
}
}
- } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
- // Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
- if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
-
- // Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
- // If the system is currently in night mode, showing the WebView will be handled in `onProgressChanged()`.
- nestedScrollWebView.setVisibility(View.VISIBLE);
- } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- } else { // The system default theme is selected.
- // Get the current system theme status.
- int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
-
- // Set the WebView theme according to the current system theme status.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
- // Turn off the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
-
- // Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
- // If the system is currently in night mode, showing the WebView will be handled in `onProgressChanged()`.
- nestedScrollWebView.setVisibility(View.VISIBLE);
- } else { // The system is in night mode.
- // Turn on the WebView dark mode.
- //noinspection deprecation
- WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
- }
- }
}
// Get a handle for the activity
val swipeToRefreshImageView = domainSettingsView.findViewById<ImageView>(R.id.swipe_to_refresh_imageview)
val swipeToRefreshSpinner = domainSettingsView.findViewById<Spinner>(R.id.swipe_to_refresh_spinner)
val swipeToRefreshTextView = domainSettingsView.findViewById<TextView>(R.id.swipe_to_refresh_textview)
+ val webViewThemeLinearLayout = domainSettingsView.findViewById<LinearLayout>(R.id.webview_theme_linearlayout)
val webViewThemeImageView = domainSettingsView.findViewById<ImageView>(R.id.webview_theme_imageview)
val webViewThemeSpinner = domainSettingsView.findViewById<Spinner>(R.id.webview_theme_spinner)
val webViewThemeTextView = domainSettingsView.findViewById<TextView>(R.id.webview_theme_textview)
val currentIpAddressesRadioButton = domainSettingsView.findViewById<RadioButton>(R.id.current_ip_addresses_radiobutton)
val currentIpAddressesTextView = domainSettingsView.findViewById<TextView>(R.id.current_ip_addresses_textview)
+ // Hide the WebView theme linear layout if the API < 29.
+ if (Build.VERSION.SDK_INT < 29)
+ webViewThemeLinearLayout.visibility = View.GONE
+
// Setup the pinned labels.
val cNameLabel = getString(R.string.common_name) + " "
val oNameLabel = getString(R.string.organization) + " "
clearAndExitCategory.removePreference(clearFormDataPreference)
}
+ // Remove the WebView theme preference if the API < 29.
+ if (Build.VERSION.SDK_INT < 29) {
+ // Get a handle for the general category.
+ val generalCategory = findPreference<PreferenceCategory>(getString(R.string.general_category_key))!!
+
+ // Remove the WebView theme preference.
+ generalCategory.removePreference(webViewThemePreference)
+ }
+
// Only enable Fanboy's social blocking list preference if Fanboy's annoyance list is disabled.
fanboySocialBlockingListPreference.isEnabled = !fanboyAnnoyanceListEnabled
// Set the current theme as the summary text for the preference.
appThemePreference.summary = appThemeEntriesStringArray[appThemeEntryNumber]
- // Enable the WebView theme preference if the API < 33 or the app theme is not set to light. Google no longer allows light themes to display dark WebViews.
- webViewThemePreference.isEnabled = ((Build.VERSION.SDK_INT < 33) || (appThemeEntryNumber != 1))
+ // Enable the WebView theme preference if the app theme is not set to light. Google does not allow light themes to display dark WebViews.
+ webViewThemePreference.isEnabled = (appThemeEntryNumber != 1)
// Get the WebView theme string arrays.
webViewThemeEntriesStringArray = resources.getStringArray(R.array.webview_theme_entries)
}
}
- // Enable the WebView theme preference if the API < 33 or the app theme is set to light.
- webViewThemePreference.isEnabled = ((Build.VERSION.SDK_INT < 33) || (appThemeEntryNumber != 1))
+ // Enable the WebView theme preference if the app theme is not set to light. Google does not allow light themes to display dark WebViews.
+ webViewThemePreference.isEnabled = (appThemeEntryNumber != 1)
// Get the webView theme entry number that matches the new WebView theme.
val webViewThemeEntryNumber: Int = when (sharedPreferences.getString(getString(R.string.webview_theme_key), getString(R.string.webview_theme_default_value))) {
<string name="settings">Configurações</string>
<string name="import_export">Importar/Exportar</string>
<string name="logcat">Logcat</string>
+ <string name="webview_devtools">WebView DevTools</string>
<string name="guide">Guia</string>
<string name="about">Sobre</string>
<string name="invalid_url">URL inválida</string>
<string name="saving_file">Salvando file:</string>
<string name="processing_image">Processando imagem… :</string>
+ <string name="error_saving_file">Erro ao salvar %1$s: \u0020 %2$s</string>
+ <string name="unknown_error">Erro desconhecido</string>
<!-- View Source. -->
<string name="request_headers">Solicitar cabeçalhos</string>
<string name="ssl_certificates">Certificados SSL</string>
<string name="proxies">Proxies</string>
<string name="tracking_ids">IDs de rastreamento</string>
+ <string name="gui">Interface</string>
<!-- Proxy. -->
<string name="orbot_not_installed_title">Orbot Não Instalado</string>
<string name="webview_version">Versão do WebView:</string>
<string name="orbot">Orbot:</string>
<string name="i2p">I2P:</string>
+ <string name="fdroid_flavor">%1$s (Derivação do F-Droid)</string>
+ <string name="google_play_flavor">%1$s (Derivação do Google Play)</string>
<string name="openkeychain">OpenKeychain:</string>
<string name="memory_usage">Uso da Memória</string>
<string name="app_consumed_memory">Consumo da Memória do Aplicativo:</string>
<string name="block_all_third_party_requests">Bloquear todas as solicitações de terceiros</string>
<string name="block_all_third_party_requests_summary">Bloquear todas as solicitações de terceiros aumenta a privacidade, mas quebra muitos sites.</string>
<string name="url_modification">Modificação de URL</string>
+ <string name="tracking_queries">Consultas de rastreamento</string>
+ <string name="tracking_queries_summary">Remova consultas de rastreamento conhecidas de URLs.</string>
+ <string name="amp_redirects">Redirecionamentos de AMP</string>
+ <string name="amp_redirects_summary">Remova consultas de redirecionamento AMP (páginas aceleradas para dispositivos móveis) conhecidas de URLs.</string>
<string name="search">Search</string>
<string-array name="search_entries">
<item>Mojeek</item>
<string name="swipe_to_refresh">Deslize para atualizar</string>
<string name="swipe_to_refresh_summary">Alguns sites não funcionam bem se deslizar para atualizar estiver habilitado.</string>
<string name="download_with_external_app">Download com aplicativo externo</string>
+ <string name="download_with_external_app_summary">Aplicativos externos não respeitarão as configurações de proxy do Privacy Browser e não terão acesso a cookies
+ (o que significa que é improvável que os arquivos baixados de sites que exigem login funcionem).</string>
<string name="scroll_app_bar">Role a barra de aplicativos</string>
<string name="scroll_app_bar_summary">Role a barra de aplicativos para fora da parte superior da tela quando o WebView rola para baixo.</string>
<string name="bottom_app_bar">Barra de aplicativos inferior</string>
<string name="fanboys_social_blocking_list_key" translatable="false">fanboys_social_blocking_list</string>
<string name="font_size_key" translatable="false">font_size</string>
<string name="full_screen_browsing_mode_key" translatable="false">full_screen_browsing_mode</string>
+ <string name="general_category_key" translatable="false">general</string>
<string name="hide_app_bar_key" translatable="false">hide_app_bar</string>
<string name="homepage_key" translatable="false">homepage</string>
<string name="incognito_mode_key" translatable="false">incognito_mode</string>
</PreferenceCategory>
<PreferenceCategory
- app:key="general"
+ app:key="@string/general_category_key"
app:title="@string/general" >
<EditTextPreference
--- /dev/null
+• Correzione di un crash per le nuove installazioni di Privacy Browser.
\ No newline at end of file
--- /dev/null
+• Cria uma opção para usar o cabeçalho padrão X-Requested-With.
+• Bloqueia todos os rastreadores de consulta de URL listados em privacytests.org.
+• Adiciona uma opção Compartilhar mensagem.
+• Corrigido um bug que fazia com que a barra inferior do aplicativo cobrisse parte do site.
+• Corrigido guias duplicadas que às vezes são abertas na reinicialização.
+• Exibe o favorito aberto na nova guia snackbar acima da gaveta de favoritos.
+• Adiciona a versão do kernel a Sobre > Versão.
+• Preserva a pasta de favoritos atual ao reiniciar.
+• Altera o valor padrão do URL de proxy personalizado para socks://localhost:9050.
+• Adiciona várias atualizações do Guia.
+• Feitas diversas pequenas melhorias na IU.
+• Alterada a API de destino para 32 (Android 12L).
+• Tradução atualizada para o português do Brasil fornecida por Thiago Nazareno Conceição Silva de Jesus.
\ No newline at end of file
--- /dev/null
+• Corrigida uma falha em novas instalações do Privacy Browser.
\ No newline at end of file