From: Soren Stoutner
Date: Mon, 14 Nov 2016 18:52:15 +0000 (-0700)
Subject: Update the Permission and the Privacy Policy tabs. Add a Clear History button.
X-Git-Tag: v1.13~13
X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=ac6db897f8e99a28a7e2d916238fbdf7a021ac55;p=PrivacyBrowserAndroid.git
Update the Permission and the Privacy Policy tabs. Add a Clear History button.
---
diff --git a/.idea/dictionaries/soren.xml b/.idea/dictionaries/soren.xml
index 2e3bd783..4f40564b 100644
--- a/.idea/dictionaries/soren.xml
+++ b/.idea/dictionaries/soren.xml
@@ -1,6 +1,7 @@
+ aaaa
adsense
amiunique
androidversion
@@ -8,6 +9,7 @@
appbarlayout
aren
bebdb
+ beeb
bookmarkname
bookmarkurl
buildapi
@@ -21,10 +23,12 @@
displayorder
dname
downloadfile
+ dwallach
eadd
edittext
exynos
favoriteicon
+ fbee
firebase
gerlach
intl
@@ -69,6 +73,7 @@
webkitversion
whatismyip
zenlte
+ zeroflte
\ No newline at end of file
diff --git a/app/src/free/assets/de/about_privacy_policy.html b/app/src/free/assets/de/about_privacy_policy.html
index 8a49b66d..114b152b 100644
--- a/app/src/free/assets/de/about_privacy_policy.html
+++ b/app/src/free/assets/de/about_privacy_policy.html
@@ -25,35 +25,32 @@
Privacy Browser Free
-
Privacy Browser Free sammelt keinerlei Benutzerinformationen.
Werbung
-
Privacy Browser Free zeigt eine Bannerwerbung am unteren Rand des Bildschirms über Googles AdMob-Netzwerk,
welches seine eigene Datenschutzrichtlinien hat.
Beachten Sie, dass - solange Sie nicht interessenbezogene Werbungen deaktiviert haben -
der Werbebetreibende eine Kopie Ihrer einmaligen, gerätebezogenen Werbe-ID bekommt, was es ihm ermöglicht, Ihr Gerätenutzung in verschiedenen Anwendungen nachzuverfolgen.
AdMob sendet anonymisierte Zusammenfassungen der folgenden Informationen an Entwickler.
Stoutner kann diese Informationen zu jedem Zweck nutzen.
-
- Anzeigen insgesamt
- Klicks insgesamt
@@ -63,11 +60,9 @@
Google Play-Bewertungen
-
Google Play hat seine eigenen Datenschutzbestimmungen.
Google stellt den Entwicklern anonymisierte Statistiken der folgenden Informationen zu den Bewertungen.
Stoutner kann diese Informationen für jeden Zweck benutzen.
-
- Land
- Sprache
@@ -79,12 +74,10 @@
Google Play Rezensionen
-
Google Play hat seine eigenen Datenschutzbestimmungen.
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.
Stoutner kann diese Informationen zu jedem Zweck nutzen.
-
- Version-Code
(z. B. 7)
- Version-Name
(z. B. 1.6)
diff --git a/app/src/free/assets/en/about_permissions.html b/app/src/free/assets/en/about_permissions.html
new file mode 100644
index 00000000..1c7983dd
--- /dev/null
+++ b/app/src/free/assets/en/about_permissions.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+Have full network access
+android.permission.INTERNET
+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â.
+
+Install shortcuts
+com.android.launcher.permission.INSTALL_SHORTCUT
+Required to add shortcuts for websites to the launcher desktop.
+
+
+
+
+
+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.
+
+View network connections
+android.permission.ACCESS_NETWORK_STATE
+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.
+
+Prevent phone from sleeping
+android.permission.WAKE_LOCK
+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.
+
+Receive data from Internet
+com.google.android.c2dm.permission.RECEIVE
+Allows Google to send information directly to the AdView without having to receive a request first (cloud-to-device messaging).
+
+Receive data from Internet
+com.stoutner.privacybrowser.free.permission.C2D_MESSAGE
+Secures the cloud-to-device messages so that only Privacy Browser Free can receive them.
+
+
\ No newline at end of file
diff --git a/app/src/free/assets/en/about_privacy_policy.html b/app/src/free/assets/en/about_privacy_policy.html
index 241dbc74..49335556 100644
--- a/app/src/free/assets/en/about_privacy_policy.html
+++ b/app/src/free/assets/en/about_privacy_policy.html
@@ -20,66 +20,62 @@
Privacy Browser Free
-
Privacy Browser Free does not collect any user information.
-Advertisements
-
-Privacy Browser Free displays a banner add across the bottom of the screen using the Google's AdMob network,
- which has its own privacy policy.
- Note that unless you have opted out of interest-based ads,
- the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
- AdMob reports anonymized summaries of the following information to developers.
- Stoutner may use this information for any purpose.
-
+Google Play
+Google Play has its own privacy policy.
+ Google provides anonymized summary installation information to developers, including the number of
+ installs organized by the following categories. Stoutner may use this information for any purpose.
+ Reasonable effort is made to not use this information in a way that would make the user uncomfortable.
- - Total impressions
- - Total clicks
- - Platforms
(eg. high-end mobile devices, tablets)
- - Activity by country
+ - Android version
(eg. Android 7.1)
+ - Device
(eg. Samsung Galaxy S6 [zeroflte])
+ - Tablets
(eg. Tablets 10" and above)
+ - Country
(eg. United States)
+ - Language
(eg. English [United States])
+ - App version
(eg. 14)
+ - Carrier
(eg. T-Mobile - US)
Google Play Ratings
-
Google Play has its own privacy policy.
Google provides developers with anonymized summaries of the following information related to user ratings.
- Stoutner may use this information for any purpose.
-
+ Stoutner may use this information for any purpose. Reasonable effort is made
+ to not use this information in a way that would make the user uncomfortable.
- - Country
- - Language
- - App version
- - Android version
- - Device
(eg. Google Nexus 5X, Samsung Galaxy Note3)
+ - Country
(eg. United States)
+ - Language
(eg. English)
+ - App version
(eg. 14)
+ - Android version
(eg. Android 7.1)
+ - Device
(eg. Google Nexus 5X [bullhead])
- Tablets
(eg. Tablets 10" and above)
Google Play Reviews
-
-Google Play has it own privacy policy.
+
Google Play has its own privacy policy.
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.
- Stoutner may use this information for any purpose.
-
+ Google provides some or all of the following information to the developer. Stoutner may
+ use this information for any purpose. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.
- Version code
(eg. 7)
- Version name
(eg. 1.6)
@@ -97,7 +93,30 @@
- Device language
(eg. English)
+
+Advertisements
+Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network,
+ which has its own privacy policy.
+ Note that unless you have opted out of interest-based ads,
+ the advertiser will receive a copy of your unique device advertising ID, which allows them to track your device across apps.
+ AdMob reports anonymized summaries of the following information to developers.
+ Stoutner may use this information for any purpose. Reasonable effort is made to
+ not use this information in a way that would make the user uncomfortable.
+
+ - Total impressions
+ - Total clicks
+ - Platforms
(eg. high-end mobile devices, tablets)
+ - Activity by country
+
+
+
+Direct Communications
+Users may choose to send direct communications to Stoutner, like email messages and comments on
+ stoutner.com. Stoutner may use this information
+ for any purpose. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.
+
-Revision 1.2.1, 2 November 2016
+Revision 1.3, 14 November 2016
\ No newline at end of file
diff --git a/app/src/main/assets/de/about_changelog.html b/app/src/main/assets/de/about_changelog.html
index b3fda204..aeb2cc22 100644
--- a/app/src/main/assets/de/about_changelog.html
+++ b/app/src/main/assets/de/about_changelog.html
@@ -33,7 +33,7 @@
1.12 (version code 14)
-9. November 2016 - Mindest-API 19, Ziel-API 24
+9. November 2016 - Mindest-API 19, Ziel-API 24
- Hinzufügen einer Historie für Vor- und Zurück-Schaltflächen.
- Gedrückt halten bewirkt nun das Anzeigen der Zieladresse von URLs und bietet die Möglichkeit, Bilder anzuzeigen oder herunterzuladen.
diff --git a/app/src/main/assets/de/about_permissions.html b/app/src/main/assets/de/about_permissions.html
index da648f8c..ebea0671 100644
--- a/app/src/main/assets/de/about_permissions.html
+++ b/app/src/main/assets/de/about_permissions.html
@@ -25,23 +25,19 @@
Voller Netzwerkzugriff
-
android.permission.INTERNET
-
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".
Verknüpfungen installieren
-
com.android.launcher.permission.INSTALL_SHORTCUT
-
Benötigt, um Verknüpfungen zu Websites auf Ihrer Startseite zu erstellen.
\ No newline at end of file
diff --git a/app/src/main/assets/de/about_privacy_policy.html b/app/src/main/assets/de/about_privacy_policy.html
index a8f29ff1..0015f81a 100644
--- a/app/src/main/assets/de/about_privacy_policy.html
+++ b/app/src/main/assets/de/about_privacy_policy.html
@@ -25,32 +25,29 @@
Privacy Browser
-
Privacy Browser sammelt keinerlei Benutzerinformationen.
Google Play-Bewertungen
-
Google Play hat seine eigenen Datenschutzbestimmungen.
Google stellt den Entwicklern anonymisierte Statistiken der folgenden Informationen zu den Bewertungen.
Stoutner kann diese Informationen für jeden Zweck benutzen.
-
- Land
- Sprache
@@ -62,12 +59,10 @@
Google Play Rezensionen
-
Google Play hat seine eigenen Datenschutzbestimmungen.
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.
Stoutner kann diese Informationen zu jedem Zweck nutzen.
-
- Version-Code
(z. B. 7)
- Version-Name
(z. B. 1.6)
diff --git a/app/src/main/assets/en/about_changelog.html b/app/src/main/assets/en/about_changelog.html
index 4d162a9b..0472baf1 100644
--- a/app/src/main/assets/en/about_changelog.html
+++ b/app/src/main/assets/en/about_changelog.html
@@ -28,14 +28,14 @@
1.12 (version code 14)
-9 November 2016 - minimum API 19, target API 24
+9 November 2016 - minimum API 19, target API 24
diff --git a/app/src/main/assets/en/about_permissions.html b/app/src/main/assets/en/about_permissions.html
index b40f8bf6..c6abfecb 100644
--- a/app/src/main/assets/en/about_permissions.html
+++ b/app/src/main/assets/en/about_permissions.html
@@ -18,26 +18,22 @@
-
+
Have full network access
-
android.permission.INTERNET
-
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â.
Install shortcuts
-
com.android.launcher.permission.INSTALL_SHORTCUT
-
Required to add shortcuts for websites to the launcher desktop.
\ No newline at end of file
diff --git a/app/src/main/assets/en/about_privacy_policy.html b/app/src/main/assets/en/about_privacy_policy.html
index 83ecfdaa..6b1eb522 100644
--- a/app/src/main/assets/en/about_privacy_policy.html
+++ b/app/src/main/assets/en/about_privacy_policy.html
@@ -18,51 +18,64 @@
-
+
Privacy Browser
-
Privacy Browser does not collect any user information.
-Google Play Ratings
+Google Play
+Google Play has its own privacy policy.
+ Google provides anonymized summary installation information to developers, including the number of
+ installs organized by the following categories. Stoutner may use this information for any purpose.
+ Reasonable effort is made to not use this information in a way that would make the user uncomfortable.
+
+ - Android version
(eg. Android 7.1)
+ - Device
(eg. Samsung Galaxy S6 [zeroflte])
+ - Tablets
(eg. Tablets 10" and above)
+ - Country
(eg. United States)
+ - Language
(eg. English [United States])
+ - App version
(eg. 14)
+ - Carrier
(eg. T-Mobile - US)
+
+
+Google Play Ratings
Google Play has its own privacy policy.
Google provides developers with anonymized summaries of the following information related to user ratings.
- Stoutner may use this information for any purpose.
-
+ Stoutner may use this information for any purpose. Reasonable effort is made
+ to not use this information in a way that would make the user uncomfortable.
- - Country
- - Language
- - App version
- - Android version
- - Device
(eg. Google Nexus 5X, Samsung Galaxy Note3)
+ - Country
(eg. United States)
+ - Language
(eg. English)
+ - App version
(eg. 14)
+ - Android version
(eg. Android 7.1)
+ - Device
(eg. Google Nexus 5X [bullhead])
- Tablets
(eg. Tablets 10" and above)
Google Play Reviews
-
-Google Play has it own privacy policy.
+
Google Play has its own privacy policy.
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.
- Stoutner may use this information for any purpose.
-
+ Google provides some or all of the following information to the developer. Stoutner may
+ use this information for any purpose. Reasonable effort is made to not use this
+ information in a way that would make the reviewer uncomfortable.
- Version code
(eg. 7)
- Version name
(eg. 1.6)
@@ -80,7 +93,14 @@
- Device language
(eg. English)
+
+Direct Communications
+Users may choose to send direct communications to Stoutner, like email messages and comments on
+ stoutner.com. Stoutner may use this information
+ for any purpose. Reasonable effort is made to not use this information in a way that
+ would make the author uncomfortable.
+
-Revision 1.2, 3 June 2016
+Revision 1.3, 14 November 2016
\ No newline at end of file
diff --git a/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java b/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java
index 3941e634..15264c69 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/BookmarksActivity.java
@@ -789,9 +789,8 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
// 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);
}
}
diff --git a/app/src/main/java/com/stoutner/privacybrowser/HistoryArrayAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/HistoryArrayAdapter.java
index 414f5fc4..6b7f0561 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/HistoryArrayAdapter.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/HistoryArrayAdapter.java
@@ -20,8 +20,8 @@
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;
@@ -67,11 +67,11 @@ class HistoryArrayAdapter extends ArrayAdapter {
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`.
diff --git a/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
index 779d2d69..077aa49b 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
@@ -1288,6 +1288,12 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
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() {
@@ -1309,6 +1315,10 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
@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);
@@ -1319,6 +1329,10 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
public void onResume() {
super.onResume();
+ // Resume `mainWebView`.
+ mainWebView.resumeTimers();
+ mainWebView.onResume();
+
// We need to resume the adView for the free flavor.
BannerAd.resumeAd(adView);
}
diff --git a/app/src/main/java/com/stoutner/privacybrowser/UrlHistory.java b/app/src/main/java/com/stoutner/privacybrowser/UrlHistory.java
index d2d4fecd..ec0b45e4 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/UrlHistory.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/UrlHistory.java
@@ -150,6 +150,9 @@ public class UrlHistory extends AppCompatDialogFragment{
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()`.
@@ -185,7 +188,16 @@ public class UrlHistory extends AppCompatDialogFragment{
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.
diff --git a/app/src/main/res/layout/bookmarks_coordinatorlayout.xml b/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
index c055ea99..4cdcb285 100644
--- a/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
+++ b/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
@@ -52,8 +52,7 @@
+ `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:maxLines="1"
+ android:ellipsize="end" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/url_history_dialog.xml b/app/src/main/res/layout/url_history_dialog.xml
index 0a32dfcb..b5e14f70 100644
--- a/app/src/main/res/layout/url_history_dialog.xml
+++ b/app/src/main/res/layout/url_history_dialog.xml
@@ -18,8 +18,11 @@
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see . -->
+
\ No newline at end of file
+ android:layout_width="wrap_content"
+ android:divider="@color/white"
+ android:dividerHeight="0dp" />
\ 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 5ba95cf3..e7a22a49 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -92,6 +92,7 @@
Zurück
Vorwärts
Verlauf
+ Verlauf löschen
Lesezeichen
Downloads
Einstellungen
@@ -221,10 +222,10 @@
Suchmaschine bei deaktiviertem JavaScript
- DuckDuckGo
+ - StartPage
- Google
- Bing
- Yahoo
- - StartPage
- Qwant
- Eigene
@@ -232,10 +233,10 @@
Suchmaschine bei aktiviertem JavaScript
- DuckDuckGo
+ - StartPage
- Google
- Bing
- Yahoo
- - StartPage
- Qwant
- Eigene
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 26f41f3b..a8d6f5c7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -91,6 +91,7 @@
Back
Forward
History
+ Clear History
Bookmarks
Downloads
Settings
@@ -237,19 +238,19 @@
JavaScript-disabled search
- DuckDuckGo
+ - StartPage
- Google
- Bing
- Yahoo
- - StartPage
- Qwant
- Custom
- https://duckduckgo.com/html/?q=
+ - https://www.startpage.com/do/search?q=
- https://www.google.com/search?q=
- https://www.bing.com/search?q=
- https://search.yahoo.com/mobile/s?nojs=1&p=
- - https://www.startpage.com/do/search?q=
- https://lite.qwant.com/?q=
- Custom URL
@@ -257,19 +258,19 @@
JavaScript-enabled search
- DuckDuckGo
+ - StartPage
- Google
- Bing
- Yahoo
- - StartPage
- Qwant
- Custom
- https://duckduckgo.com/?q=
+ - https://www.startpage.com/do/search?q=
- https://www.google.com/search?q=
- https://www.bing.com/search?q=
- https://search.yahoo.com/mobile/s?p=
- - https://www.startpage.com/do/search?q=
- https://www.qwant.com/?q=
- Custom URL