<component name="ProjectDictionaryState">
<dictionary name="soren">
<words>
+ <w>aaaa</w>
<w>adsense</w>
<w>amiunique</w>
<w>androidversion</w>
<w>appbarlayout</w>
<w>aren</w>
<w>bebdb</w>
+ <w>beeb</w>
<w>bookmarkname</w>
<w>bookmarkurl</w>
<w>buildapi</w>
<w>displayorder</w>
<w>dname</w>
<w>downloadfile</w>
+ <w>dwallach</w>
<w>eadd</w>
<w>edittext</w>
<w>exynos</w>
<w>favoriteicon</w>
+ <w>fbee</w>
<w>firebase</w>
<w>gerlach</w>
<w>intl</w>
<w>webkitversion</w>
<w>whatismyip</w>
<w>zenlte</w>
+ <w>zeroflte</w>
</words>
</dictionary>
</component>
\ No newline at end of file
<head>\r
<style>\r
h3 {\r
- color: 0D4781;\r
+ color: 0D4781;\r
}\r
\r
strong {\r
- color: B71C1C;\r
+ color: B71C1C;\r
}\r
\r
item {\r
- color: 1976D2;\r
- font-weight: bold;\r
+ color: 1976D2;\r
+ font-weight: bold;\r
}\r
</style>\r
</head>\r
\r
<body>\r
<h3>Privacy Browser Free</h3>\r
-\r
<p><strong>Privacy Browser Free sammelt keinerlei Benutzerinformationen</strong>.</p>\r
\r
\r
<h3>Werbung</h3>\r
-\r
<p>Privacy Browser Free zeigt eine Bannerwerbung am unteren Rand des Bildschirms über Googles AdMob-Netzwerk,\r
welches seine eigene <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzrichtlinien</a> hat.\r
Beachten Sie, dass - solange Sie nicht <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">interessenbezogene Werbungen deaktiviert haben</a> -\r
der Werbebetreibende eine Kopie Ihrer einmaligen, gerätebezogenen Werbe-ID bekommt, was es ihm ermöglicht, Ihr Gerätenutzung in verschiedenen Anwendungen nachzuverfolgen.\r
AdMob sendet <em>anonymisierte Zusammenfassungen</em> der folgenden Informationen an Entwickler.\r
<strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>\r
-\r
<ul>\r
<li><item>Anzeigen insgesamt</item></li>\r
<li><item>Klicks insgesamt</item></li>\r
\r
\r
<h3>Google Play-Bewertungen</h3>\r
-\r
<p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.\r
Google stellt den Entwicklern <em>anonymisierte Statistiken</em> der folgenden Informationen zu den Bewertungen.\r
<strong>Stoutner kann diese Informationen für jeden Zweck benutzen</strong>.</p>\r
-\r
<ul>\r
<li><item>Land</item></li>\r
<li><item>Sprache</item></li>\r
\r
\r
<h3>Google Play Rezensionen</h3>\r
-\r
<p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.\r
Zusätzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle öffentlich sind)\r
stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verfügung.\r
<strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>\r
-\r
<ul>\r
<li><item>Version-Code</item> (z. B. 7)</li>\r
<li><item>Version-Name</item> (z. B. 1.6)</li>\r
--- /dev/null
+<!--
+ Copyright 2016 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+ Privacy Browser is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+<head>
+<style>
+ h3 {
+ color: 0D4781;
+ }
+</style>
+</head>
+
+<body>
+<h3>Have full network access</h3>
+<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INTERNET">android.permission.INTERNET</a></p>
+<p>Required for the WebView to access the internet. Without this permission, Privacy Browser would be “No Browser: Protecting Your Privacy by Staying Completely
+ Off the Internet”.</p>
+
+<h3>Install shortcuts</h3>
+<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_SHORTCUT">com.android.launcher.permission.INSTALL_SHORTCUT</a></p>
+<p>Required to add shortcuts for websites to the launcher desktop.</p>
+
+<br/>
+<hr/>
+<br/>
+
+<p>In addition, Privacy Browser Free displays ads from Google's AdMob network using the Firebase backend. For the free flavor, Firebase adds the following permissions even though they are not listed in the manifest file.</p>
+
+<h3>View network connections</h3>
+<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE">android.permission.ACCESS_NETWORK_STATE</a></p>
+<p>Allows the ads to tell when you are connected to the internet and when you aren't (presumably so they don't try to reload an ad when you are disconnected). They can also tell if you are connected via Wi-Fi, 2G, 3G, 4G, etc.</p>
+
+<h3>Prevent phone from sleeping</h3>
+<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK">android.permission.WAKE_LOCK</a></p>
+<p>Allows the ads to keep the processor from sleeping and the screen from dimming, although in my testing I don't think the ads actually do this.</p>
+
+<h3>Receive data from Internet</h3>
+<p><a href="http://androidpermissions.com/permission/com.google.android.c2dm.permission.RECEIVE">com.google.android.c2dm.permission.RECEIVE</a></p>
+<p>Allows Google to send information directly to the AdView without having to receive a request first (cloud-to-device messaging).</p>
+
+<h3>Receive data from Internet</h3>
+<p><a href="https://developers.google.com/cloud-messaging/android/client">com.stoutner.privacybrowser.free.permission.C2D_MESSAGE</a></p>
+<p>Secures the cloud-to-device messages so that only Privacy Browser Free can receive them.</p>
+</body>
+</html>
\ No newline at end of file
<head>
<style>
h3 {
- color: 0D4781;
+ color: 0D4781;
}
strong {
- color: B71C1C;
+ color: B71C1C;
}
item {
- color: 1976D2;
- font-weight: bold;
+ color: 1976D2;
+ font-weight: bold;
}
</style>
</head>
<body>
<h3>Privacy Browser Free</h3>
-
<p><strong>Privacy Browser Free does not collect any user information</strong>.</p>
-<h3>Advertisements</h3>
-
-<p>Privacy Browser Free displays a banner add across the bottom of the screen using the Google's AdMob network,
- which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
- Note that unless you have <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">opted out of interest-based ads</a>,
- the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
- AdMob reports <em>anonymized summaries</em> of the following information to developers.
- <strong>Stoutner may use this information for any purpose</strong>.</p>
-
+<h3>Google Play</h3>
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides <em>anonymized summary installation information</em> to developers, including the number of
+ installs organized by the following categories. <strong>Stoutner may use this information for any purpose</strong>.
+ Reasonable effort is made to not use this information in a way that would make the user uncomfortable.</p>
<ul>
- <li><item>Total impressions</item></li>
- <li><item>Total clicks</item></li>
- <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
- <li><item>Activity by country</item></li>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Samsung Galaxy S6 [zeroflte])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English [United States])</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Carrier</item> (eg. T-Mobile - US)</li>
</ul>
<h3>Google Play Ratings</h3>
-
<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
Google provides developers with <em>anonymized summaries</em> of the following information related to user ratings.
- <strong>Stoutner may use this information for any purpose</strong>.</p>
-
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made
+ to not use this information in a way that would make the user uncomfortable.</p>
<ul>
- <li><item>Country</item></li>
- <li><item>Language</item></li>
- <li><item>App version</item></li>
- <li><item>Android version</item></li>
- <li><item>Device</item> (eg. Google Nexus 5X, Samsung Galaxy Note3)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English)</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Google Nexus 5X [bullhead])</li>
<li><item>Tablets</item> (eg. Tablets 10" and above)</li>
</ul>
<h3>Google Play Reviews</h3>
-
-<p>Google Play has it <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
In addition to the name of the reviewer, the rating, and the text of the review (which are all available publicly),
- Google provides some or all of the following information to the developer.
- <strong>Stoutner may use this information for any purpose</strong>.</p>
-
+ Google provides some or all of the following information to the developer. <strong>Stoutner may
+ use this information for any purpose</strong>. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.</p>
<ul>
<li><item>Version code</item> (eg. 7)</li>
<li><item>Version name</item> (eg. 1.6)</li>
<li><item>Device language</item> (eg. English)</li>
</ul>
+
+<h3>Advertisements</h3>
+<p>Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network,
+ which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Note that unless you have <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">opted out of interest-based ads</a>,
+ the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
+ AdMob reports <em>anonymized summaries</em> of the following information to developers.
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made to
+ not use this information in a way that would make the user uncomfortable.</p>
+<ul>
+ <li><item>Total impressions</item></li>
+ <li><item>Total clicks</item></li>
+ <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
+ <li><item>Activity by country</item></li>
+</ul>
+
+
+<h3>Direct Communications</h3>
+<p>Users may choose to send direct communications to Stoutner, like email messages and comments on
+ <a href="https://www.stoutner.com/">stoutner.com</a>. <strong>Stoutner may use this information
+ for any purpose</strong>. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.</p>
+
<hr />
-<p style="text-align: center;"><em>Revision 1.2.1, 2 November 2016</em></p>
+<p style="text-align: center;"><em>Revision 1.3, 14 November 2016</em></p>
</body>
</html>
\ No newline at end of file
<body>\r
\r
<h3>1.12 (version code 14)</h3>\r
-<p>9. November 2016 - Mindest-API 19, Ziel-API 24</p>\r
+<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=3f2c7129a56e84d34cb07c151baf87bdea94dd12">9. November 2016</a> - Mindest-API 19, Ziel-API 24</p>\r
<ul>\r
<li>Hinzufügen einer <a href="https://redmine.stoutner.com/issues/24">Historie für Vor- und Zurück-Schaltflächen</a>.</li>\r
<li>Gedrückt halten bewirkt nun <a href="https://redmine.stoutner.com/issues/63">das Anzeigen der Zieladresse von URLs</a> und bietet die Möglichkeit, <a href="https://redmine.stoutner.com/issues/10">Bilder anzuzeigen oder herunterzuladen</a>.</li>\r
<head>\r
<style>\r
h3 {\r
- color: 0D4781;\r
+ color: 0D4781;\r
}\r
</style>\r
</head>\r
\r
<body>\r
<h3>Voller Netzwerkzugriff</h3>\r
-\r
<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INTERNET">android.permission.INTERNET</a></p>\r
-\r
<p>Benötigt, damit WebView das Internet nutzen kann. Ohne diese Berechtigung wäre Privacy Browser "Kein Browser: Schützt Ihre Privatsphäre durch Fernbleiben von jeglicher Konnektivität".</p>\r
\r
\r
<h3>Verknüpfungen installieren</h3>\r
-\r
<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_SHORTCUT">com.android.launcher.permission.INSTALL_SHORTCUT</a></p>\r
-\r
<p>Benötigt, um Verknüpfungen zu Websites auf Ihrer Startseite zu erstellen.</p>\r
</body>\r
</html>
\ No newline at end of file
<head>
<style>
h3 {
- color: 0D4781;
+ color: 0D4781;
}
strong {
- color: B71C1C;
+ color: B71C1C;
}
item {
- color: 1976D2;
- font-weight: bold;
+ color: 1976D2;
+ font-weight: bold;
}
</style>
</head>
<body>
<h3>Privacy Browser</h3>
-
<p><strong>Privacy Browser sammelt keinerlei Benutzerinformationen</strong>.</p>
<h3>Google Play-Bewertungen</h3>
-
<p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.
Google stellt den Entwicklern <em>anonymisierte Statistiken</em> der folgenden Informationen zu den Bewertungen.
<strong>Stoutner kann diese Informationen für jeden Zweck benutzen</strong>.</p>
-
<ul>
<li><item>Land</item></li>
<li><item>Sprache</item></li>
<h3>Google Play Rezensionen</h3>
-
<p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.
Zusätzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle öffentlich sind)
stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verfügung.
<strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>
-
<ul>
<li><item>Version-Code</item> (z. B. 7)</li>
<li><item>Version-Name</item> (z. B. 1.6)</li>
<body>
<h3>1.12 (version code 14)</h3>
-<p>9 November 2016 - minimum API 19, target API 24</p>
+<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=3f2c7129a56e84d34cb07c151baf87bdea94dd12">9 November 2016</a> - minimum API 19, target API 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>
<li>Added <a href="https://redmine.stoutner.com/issues/9">Find on Page</a>.</li>
<li>Completely <a href="https://redmine.stoutner.com/issues/69">remove Privacy Browser from RAM</a> on "Clear and Exit".</li>
- <li>Fix a crash when <a href="https://redmine.stoutner.com/issues/70">displaying an SSL Certificate error</a> in Android Kitkat and Lollipop.</li>
- <li>Fix a crash on some file downloades caused by a <a href="https://redmine.stoutner.com/issues/71">failure to parse the Content-Disposition header</a> correctly.</li>
+ <li>Fix a crash when <a href="https://redmine.stoutner.com/issues/70">displaying an SSL Certificate error</a> in Android KitKat and Lollipop.</li>
+ <li>Fix a crash on some file downloads caused by a <a href="https://redmine.stoutner.com/issues/71">failure to parse the Content-Disposition header</a> correctly.</li>
<li>Updated German translation provided by <a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>.</li>
</ul>
<html>
<head>
-<style>
- h3 {
- color: 0D4781;
- }
-</style>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+ </style>
</head>
<body>
<h3>Have full network access</h3>
-
<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INTERNET">android.permission.INTERNET</a></p>
-
<p>Required for the WebView to access the internet. Without this permission, Privacy Browser would be “No Browser: Protecting Your Privacy by Staying Completely
Off the Internet”.</p>
<h3>Install shortcuts</h3>
-
<p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_SHORTCUT">com.android.launcher.permission.INSTALL_SHORTCUT</a></p>
-
<p>Required to add shortcuts for websites to the launcher desktop.</p>
</body>
</html>
\ No newline at end of file
<html>
<head>
-<style>
- h3 {
- color: 0D4781;
- }
-
- strong {
- color: B71C1C;
- }
-
- item {
- color: 1976D2;
- font-weight: bold;
- }
-</style>
+ <style>
+ h3 {
+ color: 0D4781;
+ }
+
+ strong {
+ color: B71C1C;
+ }
+
+ item {
+ color: 1976D2;
+ font-weight: bold;
+ }
+ </style>
</head>
<body>
<h3>Privacy Browser</h3>
-
<p><strong>Privacy Browser does not collect any user information</strong>.</p>
-<h3>Google Play Ratings</h3>
+<h3>Google Play</h3>
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+ Google provides <em>anonymized summary installation information</em> to developers, including the number of
+ installs organized by the following categories. <strong>Stoutner may use this information for any purpose</strong>.
+ Reasonable effort is made to not use this information in a way that would make the user uncomfortable.</p>
+<ul>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Samsung Galaxy S6 [zeroflte])</li>
+ <li><item>Tablets</item> (eg. Tablets 10" and above)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English [United States])</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Carrier</item> (eg. T-Mobile - US)</li>
+</ul>
+
+<h3>Google Play Ratings</h3>
<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
Google provides developers with <em>anonymized summaries</em> of the following information related to user ratings.
- <strong>Stoutner may use this information for any purpose</strong>.</p>
-
+ <strong>Stoutner may use this information for any purpose</strong>. Reasonable effort is made
+ to not use this information in a way that would make the user uncomfortable.</p>
<ul>
- <li><item>Country</item></li>
- <li><item>Language</item></li>
- <li><item>App version</item></li>
- <li><item>Android version</item></li>
- <li><item>Device</item> (eg. Google Nexus 5X, Samsung Galaxy Note3)</li>
+ <li><item>Country</item> (eg. United States)</li>
+ <li><item>Language</item> (eg. English)</li>
+ <li><item>App version</item> (eg. 14)</li>
+ <li><item>Android version</item> (eg. Android 7.1)</li>
+ <li><item>Device</item> (eg. Google Nexus 5X [bullhead])</li>
<li><item>Tablets</item> (eg. Tablets 10" and above)</li>
</ul>
<h3>Google Play Reviews</h3>
-
-<p>Google Play has it <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
+<p>Google Play has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
In addition to the name of the reviewer, the rating, and the text of the review (which are all available publicly),
- Google provides some or all of the following information to the developer.
- <strong>Stoutner may use this information for any purpose</strong>.</p>
-
+ Google provides some or all of the following information to the developer. <strong>Stoutner may
+ use this information for any purpose</strong>. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.</p>
<ul>
<li><item>Version code</item> (eg. 7)</li>
<li><item>Version name</item> (eg. 1.6)</li>
<li><item>Device language</item> (eg. English)</li>
</ul>
+
+<h3>Direct Communications</h3>
+<p>Users may choose to send direct communications to Stoutner, like email messages and comments on
+ <a href="https://www.stoutner.com/">stoutner.com</a>. <strong>Stoutner may use this information
+ for any purpose</strong>. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.</p>
+
<hr />
-<p style="text-align: center;"><em>Revision 1.2, 3 June 2016</em></p>
+<p style="text-align: center;"><em>Revision 1.3, 14 November 2016</em></p>
</body>
</html>
\ No newline at end of file
// Make the font bold for folders.
if (cursor.getInt(cursor.getColumnIndex(BookmarksDatabaseHandler.IS_FOLDER)) == 1) {
- // The first argument is `null` because we don't want to change the font.
- bookmarkNameTextView.setTypeface(null, Typeface.BOLD);
- } else { // Reset the font to default.
+ bookmarkNameTextView.setTypeface(Typeface.DEFAULT_BOLD);
+ } else { // Reset the font to default for normal bookmarks.
bookmarkNameTextView.setTypeface(Typeface.DEFAULT);
}
}
package com.stoutner.privacybrowser;
import android.content.Context;
+import android.graphics.Typeface;
import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
favoriteIconImageView.setImageBitmap(history.entryFavoriteIcon);
urlTextView.setText(history.entryUrl);
- // Set the URL text for `currentPage` to be grey.
+ // Set the URL text for `currentPage` to be bold.
if (position == currentPage) {
- urlTextView.setTextColor(ContextCompat.getColor(getContext(), R.color.grey_500));
- } else {
- urlTextView.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
+ urlTextView.setTypeface(Typeface.DEFAULT_BOLD);
+ } else { // Set the default typeface for all the other entries.
+ urlTextView.setTypeface(Typeface.DEFAULT);
}
// Return the modified `convertView`.
mainWebView.goBackOrForward(moveBackOrForwardSteps);
}
+ @Override
+ public void onClearHistory() {
+ // Clear the history.
+ mainWebView.clearHistory();
+ }
+
// Override onBackPressed to handle the navigation drawer and mainWebView.
@Override
public void onBackPressed() {
@Override
public void onPause() {
+ // Pause `mainWebView`.
+ mainWebView.onPause();
+ mainWebView.pauseTimers();
+
// We need to pause the adView or it will continue to consume resources in the background on the free flavor.
BannerAd.pauseAd(adView);
public void onResume() {
super.onResume();
+ // Resume `mainWebView`.
+ mainWebView.resumeTimers();
+ mainWebView.onResume();
+
// We need to resume the adView for the free flavor.
BannerAd.resumeAd(adView);
}
public interface UrlHistoryListener {
// Send back the number of steps to move forward or back.
void onUrlHistoryEntrySelected(int moveBackOrForwardSteps);
+
+ // Clear the history.
+ void onClearHistory();
}
// `urlHistoryListener` is used in `onAttach()` and `onCreateDialog()`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.url_history_dialog, null));
// Set an `onClick()` listener on the negative button.
- dialogBuilder.setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {
+ dialogBuilder.setNegativeButton(R.string.clear_history, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Clear the history.
+ urlHistoryListener.onClearHistory();
+ }
+ });
+
+ // Set an `onClick()` listener on the positive button.
+ dialogBuilder.setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Do nothing if `Close` is clicked. The `Dialog` will automatically close.
</android.support.design.widget.AppBarLayout>
<!-- `android:choiceMode="multipleChoiceModal"` allows the contextual action menu to select more than one item at a time.
- `android:dividerHeight` must be specified with `android:divider` or the height will be `0dp`.
- In our case we want the height to be `0dp`. -->
+ `android:dividerHeight` must be specified with `android:divider` or the height will be `0dp`. In our case we want the height to be `0dp`. -->
<ListView
android:id="@+id/bookmarks_listview"
android:layout_height="match_parent"
android:textColor="@color/black"
android:textSize="22sp"
android:layout_margin="10dp"
- android:maxLines="1" />
+ android:maxLines="1"
+ android:ellipsize="end" />
</LinearLayout>
\ No newline at end of file
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+<!-- `android:dividerHeight` must be specified with `android:divider` or the height will be `0dp`. In our case we want the height to be `0dp`. -->
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/history_listview"
android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
\ No newline at end of file
+ android:layout_width="wrap_content"
+ android:divider="@color/white"
+ android:dividerHeight="0dp" />
\ No newline at end of file
<string name="back">Zurück</string>
<string name="forward">Vorwärts</string>
<string name="history">Verlauf</string>
+ <string name="clear_history">Verlauf löschen</string>
<string name="bookmarks">Lesezeichen</string>
<string name="downloads">Downloads</string>
<string name="settings">Einstellungen</string>
<string name="javascript_disabled_search">Suchmaschine bei deaktiviertem JavaScript</string>
<string-array name="javascript_disabled_search_entries">
<item>DuckDuckGo</item>
+ <item>StartPage</item>
<item>Google</item>
<item>Bing</item>
<item>Yahoo</item>
- <item>StartPage</item>
<item>Qwant</item>
<item>Eigene</item>
</string-array>
<string name="javascript_enabled_search">Suchmaschine bei aktiviertem JavaScript</string>
<string-array name="javascript_enabled_search_entries">
<item>DuckDuckGo</item>
+ <item>StartPage</item>
<item>Google</item>
<item>Bing</item>
<item>Yahoo</item>
- <item>StartPage</item>
<item>Qwant</item>
<item>Eigene</item>
</string-array>
<string name="back">Back</string>
<string name="forward">Forward</string>
<string name="history">History</string>
+ <string name="clear_history">Clear History</string>
<string name="bookmarks">Bookmarks</string>
<string name="downloads">Downloads</string>
<string name="settings">Settings</string>
<string name="javascript_disabled_search">JavaScript-disabled search</string>
<string-array name="javascript_disabled_search_entries">
<item>DuckDuckGo</item>
+ <item>StartPage</item>
<item>Google</item>
<item>Bing</item>
<item>Yahoo</item>
- <item>StartPage</item>
<item>Qwant</item>
<item>Custom</item>
</string-array>
<string-array name="javascript_disabled_search_entry_values" translatable="false"> <!-- None of the items in this `string-array` should be translated. -->
<item>https://duckduckgo.com/html/?q=</item>
+ <item>https://www.startpage.com/do/search?q=</item>
<item>https://www.google.com/search?q=</item>
<item>https://www.bing.com/search?q=</item>
<item>https://search.yahoo.com/mobile/s?nojs=1&p=</item>
- <item>https://www.startpage.com/do/search?q=</item>
<item>https://lite.qwant.com/?q=</item>
<item>Custom URL</item> <!-- This item must not be translated into other languages because it is referenced in code. It is never displayed on the screen. -->
</string-array>
<string name="javascript_enabled_search">JavaScript-enabled search</string>
<string-array name="javascript_enabled_search_entries">
<item>DuckDuckGo</item>
+ <item>StartPage</item>
<item>Google</item>
<item>Bing</item>
<item>Yahoo</item>
- <item>StartPage</item>
<item>Qwant</item>
<item>Custom</item>
</string-array>
<string-array name="javascript_enabled_search_entry_values" translatable="false"> <!-- None of the items in this `string-array` should be translated. -->
<item>https://duckduckgo.com/?q=</item>
+ <item>https://www.startpage.com/do/search?q=</item>
<item>https://www.google.com/search?q=</item>
<item>https://www.bing.com/search?q=</item>
<item>https://search.yahoo.com/mobile/s?p=</item>
- <item>https://www.startpage.com/do/search?q=</item>
<item>https://www.qwant.com/?q=</item>
<item>Custom URL</item> <!-- This item must not be translated into other languages because it is referenced in code. It is never displayed on the screen. -->
</string-array>