From 30b6db5cdccb01d98f19b3a6af91d9f8ae1322bf Mon Sep 17 00:00:00 2001
From: Soren Stoutner ic_info_outline. ic_language. ic_list. ic_location_off. ic_more. ic_question_answer. ic_select_all. ic_info_outline. ic_language. ic_list. ic_location_off. ic_more. ic_question_answer. ic_select_all.
ic_language.
ic_list.
+ic_location_off.
ic_more.
ic_question_answer.
ic_select_all.
diff --git a/app/src/main/assets/it/about_licenses.html b/app/src/main/assets/it/about_licenses.html index f92b4f3a..c7ad171f 100644 --- a/app/src/main/assets/it/about_licenses.html +++ b/app/src/main/assets/it/about_licenses.html @@ -85,6 +85,7 @@ic_info_outline.
ic_language.
ic_list.
+ic_location_off.
ic_more.
ic_question_answer.
ic_select_all.
diff --git a/app/src/main/assets/zh-rTW/about_licenses.html b/app/src/main/assets/zh-rTW/about_licenses.html index ab596eae..741f8db7 100644 --- a/app/src/main/assets/zh-rTW/about_licenses.html +++ b/app/src/main/assets/zh-rTW/about_licenses.html @@ -79,6 +79,7 @@ic_info_outline.
ic_language.
ic_list.
+ic_location_off.
ic_more.
ic_question_answer.
ic_select_all.
diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index a7dfad7e..9551b16c 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -1236,10 +1236,21 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation return true; case R.id.share: + // Setup the share string. + String shareString; + if (webViewTitle != null) { + shareString = webViewTitle + " â " + urlTextBox.getText().toString(); + } else { + shareString = urlTextBox.getText().toString(); + } + + // Create the share intent. Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); - shareIntent.putExtra(Intent.EXTRA_TEXT, urlTextBox.getText().toString()); + shareIntent.putExtra(Intent.EXTRA_TEXT, shareString); shareIntent.setType("text/plain"); + + // Make it so. startActivity(Intent.createChooser(shareIntent, "Share URL")); return true; diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java index 75e008ad..06fd18ec 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java @@ -44,12 +44,14 @@ public class SettingsFragment extends PreferenceFragment { savedPreferences = getPreferenceScreen().getSharedPreferences(); // Get handles for the preferences we need to modify. - final Preference javaScriptEnabled = findPreference("javascript_enabled"); - final Preference firstPartyCookiesEnabled = findPreference("first_party_cookies_enabled"); - final Preference thirdPartyCookiesEnabled = findPreference("third_party_cookies_enabled"); - final Preference domStorageEnabled = findPreference("dom_storage_enabled"); + final Preference javaScriptPreference = findPreference("javascript_enabled"); + final Preference firstPartyCookiesPreference = findPreference("first_party_cookies_enabled"); + final Preference thirdPartyCookiesPreference = findPreference("third_party_cookies_enabled"); + final Preference domStoragePreference = findPreference("dom_storage_enabled"); + final Preference saveFormDataPreference = findPreference("save_form_data_enabled"); final Preference userAgentPreference = findPreference("user_agent"); - final Preference customUserAgent = findPreference("custom_user_agent"); + final Preference customUserAgentPreference = findPreference("custom_user_agent"); + final Preference doNotTrackPreference = findPreference("do_not_track"); final Preference torHomepagePreference = findPreference("tor_homepage"); final Preference torSearchPreference = findPreference("tor_search"); final Preference torSearchCustomURLPreference = findPreference("tor_search_custom_url"); @@ -61,7 +63,7 @@ public class SettingsFragment extends PreferenceFragment { final Preference defaultFontSizePreference = findPreference("default_font_size"); // Set dependencies. - domStorageEnabled.setDependency("javascript_enabled"); + domStoragePreference.setDependency("javascript_enabled"); torHomepagePreference.setDependency("proxy_through_orbot"); torSearchPreference.setDependency("proxy_through_orbot"); hideSystemBarsPreference.setDependency("enable_full_screen_browsing_mode"); @@ -75,8 +77,8 @@ public class SettingsFragment extends PreferenceFragment { boolean firstPartyCookiesEnabledBoolean = savedPreferences.getBoolean("first_party_cookies_enabled", false); boolean thirdPartyCookiesEnabledBoolean = savedPreferences.getBoolean("third_party_cookies_enabled", false); - // Only enable `third_party_cookies_enabled` if `first_party_cookies_enabled` is `true` and API >= 21. - thirdPartyCookiesEnabled.setEnabled(firstPartyCookiesEnabledBoolean && (Build.VERSION.SDK_INT >= 21)); + // Only enable `thirdPartyCookiesPreference` if `firstPartyCookiesEnabledBoolean` is `true` and API >= 21. + thirdPartyCookiesPreference.setEnabled(firstPartyCookiesEnabledBoolean && (Build.VERSION.SDK_INT >= 21)); // We need to inflated a `WebView` to get the default user agent. LayoutInflater inflater = getActivity().getLayoutInflater(); @@ -102,9 +104,9 @@ public class SettingsFragment extends PreferenceFragment { break; } - // Set the summary text for "custom_user_agent" (the default is "PrivacyBrowser/1.0") and enable it if "user_agent" it set to "Custom user agent". - customUserAgent.setSummary(savedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0")); - customUserAgent.setEnabled(userAgentPreference.getSummary().equals("Custom user agent")); + // Set the summary text for "customUserAgentPreference" (the default is `PrivacyBrowser/1.0`) and enable it if `userAgentPreference` it set to `Custom user agent`. + customUserAgentPreference.setSummary(savedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0")); + customUserAgentPreference.setEnabled(userAgentPreference.getSummary().equals("Custom user agent")); // Set the Tor homepage URL as the summary text for the `tor_homepage` preference when the preference screen is loaded. The default is DuckDuckGo: `https://3g2upl4pq6kufc4m.onion`. @@ -152,40 +154,61 @@ public class SettingsFragment extends PreferenceFragment { defaultFontSizePreference.setSummary(savedPreferences.getString("default_font_size", "100") + "%%"); - // Set the `javascript_enabled` icon. + // Set the `javaScriptPreference` icon. if (javaScriptEnabledBoolean) { - javaScriptEnabled.setIcon(R.drawable.javascript_enabled); + javaScriptPreference.setIcon(R.drawable.javascript_enabled); } else { - javaScriptEnabled.setIcon(R.drawable.privacy_mode); + javaScriptPreference.setIcon(R.drawable.privacy_mode); } - // Set the `first_party_cookies_enabled` icon. + // Set the `firstPartyCookiesPreference` icon. if (firstPartyCookiesEnabledBoolean) { - firstPartyCookiesEnabled.setIcon(R.drawable.cookies_enabled); + firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled); } else { - firstPartyCookiesEnabled.setIcon(R.drawable.cookies_disabled); + firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled); } - // Set the `third_party_cookies_enabled` icon. + // Set the `thirdPartyCookiesPreference` icon. if (firstPartyCookiesEnabledBoolean && Build.VERSION.SDK_INT >= 21) { if (thirdPartyCookiesEnabledBoolean) { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_warning); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning); } else { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_disabled); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled); } } else { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_ghosted); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted); } - // Set the `dom_storage_enabled` icon. + // Set the `domStoragePreference` icon. if (javaScriptEnabledBoolean) { if (savedPreferences.getBoolean("dom_storage_enabled", false)) { - domStorageEnabled.setIcon(R.drawable.dom_storage_enabled); + domStoragePreference.setIcon(R.drawable.dom_storage_enabled); } else { - domStorageEnabled.setIcon(R.drawable.dom_storage_disabled); + domStoragePreference.setIcon(R.drawable.dom_storage_disabled); } } else { - domStorageEnabled.setIcon(R.drawable.dom_storage_ghosted); + domStoragePreference.setIcon(R.drawable.dom_storage_ghosted); + } + + // Set the `saveFormDataPreference` icon. + if (savedPreferences.getBoolean("save_form_data_enabled", false)) { + saveFormDataPreference.setIcon(R.drawable.form_data_enabled); + } else { + saveFormDataPreference.setIcon(R.drawable.form_data_disabled); + } + + // Set the `customUserAgentPreference` icon. + if (customUserAgentPreference.isEnabled()) { + customUserAgentPreference.setIcon(R.drawable.user_agent_enabled); + } else { + customUserAgentPreference.setIcon(R.drawable.user_agent_ghosted); + } + + // Set the `doNotTrackPreference` icon. + if (savedPreferences.getBoolean("do_not_track", false)) { + doNotTrackPreference.setIcon(R.drawable.do_not_track_enabled); + } else { + doNotTrackPreference.setIcon(R.drawable.do_not_track_disabled); } // Listen for preference changes. @@ -200,20 +223,20 @@ public class SettingsFragment extends PreferenceFragment { // Update the icons. if (sharedPreferences.getBoolean("javascript_enabled", false)) { // Update the icon for `javascript_enabled`. - javaScriptEnabled.setIcon(R.drawable.javascript_enabled); + javaScriptPreference.setIcon(R.drawable.javascript_enabled); // Update the icon for `dom_storage_enabled`. if (sharedPreferences.getBoolean("dom_storage_enabled", false)) { - domStorageEnabled.setIcon(R.drawable.dom_storage_enabled); + domStoragePreference.setIcon(R.drawable.dom_storage_enabled); } else { - domStorageEnabled.setIcon(R.drawable.dom_storage_disabled); + domStoragePreference.setIcon(R.drawable.dom_storage_disabled); } } else { // `javascript_enabled` is `false`. // Update the icon for `javascript_enabled`. - javaScriptEnabled.setIcon(R.drawable.privacy_mode); + javaScriptPreference.setIcon(R.drawable.privacy_mode); // Set the icon for `dom_storage_disabled` to be ghosted. - domStorageEnabled.setIcon(R.drawable.dom_storage_ghosted); + domStoragePreference.setIcon(R.drawable.dom_storage_ghosted); } break; @@ -221,75 +244,102 @@ public class SettingsFragment extends PreferenceFragment { // Update the icons for `first_party_cookies_enabled` and `third_party_cookies_enabled`. if (sharedPreferences.getBoolean("first_party_cookies_enabled", false)) { // Set the icon for `first_party_cookies_enabled`. - firstPartyCookiesEnabled.setIcon(R.drawable.cookies_enabled); + firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled); // Update the icon for `third_party_cookies_enabled`. if (Build.VERSION.SDK_INT >= 21) { if (sharedPreferences.getBoolean("third_party_cookies_enabled", false)) { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_warning); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning); } else { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_disabled); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled); } } else { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_ghosted); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted); } } else { // `first_party_cookies_enabled` is `false`. // Update the icon for `first_party_cookies_enabled`. - firstPartyCookiesEnabled.setIcon(R.drawable.cookies_disabled); + firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled); // Set the icon for `third_party_cookies_enabled` to be ghosted. - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_ghosted); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted); } // Enable `third_party_cookies_enabled` if `first_party_cookies_enabled` is `true` and API >= 21. - thirdPartyCookiesEnabled.setEnabled(sharedPreferences.getBoolean("first_party_cookies_enabled", false) && (Build.VERSION.SDK_INT >= 21)); + thirdPartyCookiesPreference.setEnabled(sharedPreferences.getBoolean("first_party_cookies_enabled", false) && (Build.VERSION.SDK_INT >= 21)); break; case "third_party_cookies_enabled": // Update the icon. if (sharedPreferences.getBoolean("third_party_cookies_enabled", false)) { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_warning); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning); } else { - thirdPartyCookiesEnabled.setIcon(R.drawable.cookies_disabled); + thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled); } break; case "dom_storage_enabled": // Update the icon. if (sharedPreferences.getBoolean("dom_storage_enabled", false)) { - domStorageEnabled.setIcon(R.drawable.dom_storage_enabled); + domStoragePreference.setIcon(R.drawable.dom_storage_enabled); } else { - domStorageEnabled.setIcon(R.drawable.dom_storage_disabled); + domStoragePreference.setIcon(R.drawable.dom_storage_disabled); } break; + case "save_form_data_enabled": + // Update the icon. + if (sharedPreferences.getBoolean("save_form_data_enabled", false)) { + saveFormDataPreference.setIcon(R.drawable.form_data_enabled); + } else { + saveFormDataPreference.setIcon(R.drawable.form_data_disabled); + } + case "user_agent": String userAgentString = sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0"); switch (userAgentString) { case "WebView default user agent": - // Display the user agent as the summary text for `userAgentPreference`, and disable `customUserAgent`. + // Display the user agent as the summary text for `userAgentPreference`. userAgentPreference.setSummary(bareWebView.getSettings().getUserAgentString()); - customUserAgent.setEnabled(false); + + // Update `customUserAgentPreference`. + customUserAgentPreference.setEnabled(false); + customUserAgentPreference.setIcon(R.drawable.user_agent_ghosted); break; case "Custom user agent": - // Display `Custom user agent` as the summary text for `userAgentPreference`, and enable `customUserAgent`. + // Display `Custom user agent` as the summary text for `userAgentPreference`. userAgentPreference.setSummary(R.string.custom_user_agent); - customUserAgent.setEnabled(true); + + // Update `customUserAgentPreference`. + customUserAgentPreference.setEnabled(true); + customUserAgentPreference.setIcon(R.drawable.user_agent_enabled); break; default: - // Display the user agent as the summary text for `userAgentPreference`, and disable `customUserAgent`. + // Display the user agent as the summary text for `userAgentPreference`. userAgentPreference.setSummary(sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0")); - customUserAgent.setEnabled(false); + + // Update `customUserAgentPreference`. + customUserAgentPreference.setEnabled(false); + customUserAgentPreference.setIcon(R.drawable.user_agent_ghosted); break; } break; case "custom_user_agent": // Set the new custom user agent as the summary text for `custom_user_agent`. The default is `PrivacyBrowser/1.0`. - customUserAgent.setSummary(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0")); + customUserAgentPreference.setSummary(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0")); + break; + + case "do_not_track": + // Update the icon. + if (sharedPreferences.getBoolean("do_not_track", false)) { + doNotTrackPreference.setIcon(R.drawable.do_not_track_enabled); + } else { + doNotTrackPreference.setIcon(R.drawable.do_not_track_disabled); + } + break; case "proxy_through_orbot": diff --git a/app/src/main/res/drawable/do_not_track_disabled.xml b/app/src/main/res/drawable/do_not_track_disabled.xml new file mode 100644 index 00000000..77ba07e1 --- /dev/null +++ b/app/src/main/res/drawable/do_not_track_disabled.xml @@ -0,0 +1,17 @@ + + + +orbot is a modified version of the status icon from the Orbot project, which is copyright - 2009-2010 Nathan Freitas, The Guardian Project. It is released under the 3-clause BSD license. The full text of the license is below. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.
+ 2009-2010 Nathan Freitas, The Guardian Project. It is released under the 3-clause BSD license. + The full text of the license is below. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.cookie was created by Google. It is released under the Apache License 2.0 and can be downloaded from Material Design Icons. It is unchanged except for layout information like color and size.
@@ -72,6 +72,7 @@ic_arrow_forward.
ic_bookmark_border.
ic_bug_report.
+ic_call_to_action.
ic_chrome_reader_mode.
ic_close.
ic_create_new_folder.
@@ -86,6 +87,7 @@ic_find_in_page.
ic_folder.
ic_folder_special.
+ic_fullscreen.
ic_home.
ic_import_contacts.
ic_important_devices.
@@ -96,9 +98,11 @@ic_location_off.
ic_more.
ic_question_answer.
+ic_refresh.
ic_search.
ic_select_all.
ic_settings.
+ic_smartphone.
ic_subtitles.
ic_text_fields.
ic_vertical_align_bottom.
@@ -127,7 +131,7 @@The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to - share and change all versions of a program--to make sure it remains free + share and change all versions of a programâto make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to @@ -155,16 +159,16 @@ (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
-For the developers' and authors' protection, the GPL clearly explains - that there is no warranty for this free software. For both users' and - authors' sake, the GPL requires that modified versions be marked as +
For the developersâ and authorsâ protection, the GPL clearly explains + that there is no warranty for this free software. For both usersâ and + authorsâ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of - protecting users' freedom to change the software. The systematic + protecting usersâ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those @@ -248,7 +252,7 @@
The âCorresponding Sourceâ for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to - control those activities. However, it does not include the work's + control those activities. However, it does not include the workâs System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source @@ -290,7 +294,7 @@ the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
-No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article @@ -302,13 +306,13 @@ circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or - modification of the work as a means of enforcing, against the work's - users, your or third parties' legal rights to forbid circumvention of + modification of the work as a means of enforcing, against the workâs + users, your or third partiesâ legal rights to forbid circumvention of technological measures.
You may convey verbatim copies of the Program's source code as you +
You may convey verbatim copies of the Programâs source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any @@ -353,7 +357,7 @@ and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an âaggregateâ if the compilation and its resulting copyright are not - used to limit the access or legal rights of the compilation's users + used to limit the access or legal rights of the compilationâs users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
@@ -575,7 +579,7 @@ organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever - licenses to the work the party's predecessor in interest had or could + licenses to the work the partyâs predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. @@ -592,9 +596,9 @@A âcontributorâ is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The - work thus licensed is called the contributor's âcontributor versionâ.
+ work thus licensed is called the contributorâs âcontributor versionâ. -A contributor's âessential patent claimsâ are all patent claims +
A contributorâs âessential patent claimsâ are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, @@ -605,7 +609,7 @@ this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free - patent license under the contributor's essential patent claims, to + patent license under the contributorâs essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
@@ -626,7 +630,7 @@ consistent with the requirements of this License, to extend the patent license to downstream recipients. âKnowingly relyingâ means you have actual knowledge that, but for the patent license, your conveying the - covered work in a country, or your recipient's use of the covered work + covered work in a country, or your recipientâs use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. @@ -657,7 +661,7 @@ any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not @@ -697,7 +701,7 @@ by the Free Software Foundation.
If the Program specifies that a proxy can decide which future - versions of the GNU General Public License can be used, that proxy's + versions of the GNU General Public License can be used, that proxyâs public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
@@ -790,7 +794,7 @@ certain conditions; type `show c' for details.The hypothetical commands `show w' and `show c' should show the appropriate - parts of the General Public License. Of course, your program's commands + parts of the General Public License. Of course, your programâs commands might be different; for a GUI interface, you would use an âabout boxâ.
You should also get your employer (if you work as a programmer) or school, diff --git a/app/src/main/assets/en/about_licenses.html b/app/src/main/assets/en/about_licenses.html index ed4aa4d5..c433ce37 100644 --- a/app/src/main/assets/en/about_licenses.html +++ b/app/src/main/assets/en/about_licenses.html @@ -55,8 +55,8 @@ are derived from ic_security and ic_language, which are part of the Android Material icon set and are released under the Apache License 2.0. The full text of the license is below. Modifications copyright © 2016 Soren Stoutner. The resulting images are released under the GPLv3+ license.
orbot is a modified version of the status icon from the Orbot project, which is copyright - 2009-2010 Nathan Freitas, The Guardian Project. It is released under the 3-clause BSD license. The full text of the license is below. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.
+ 2009-2010 Nathan Freitas, The Guardian Project. It is released under the 3-clause BSD license. + The full text of the license is below. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.cookie was created by Google. It is released under the Apache License 2.0 and can be downloaded from Material Design Icons. It is unchanged except for layout information like color and size.
The following icons come from the Android Material icon set, which is released under the Apache License 2.0. They are unchanged except for layout @@ -66,6 +66,7 @@
ic_arrow_forward.
ic_bookmark_border.
ic_bug_report.
+ic_call_to_action.
ic_chrome_reader_mode.
ic_close.
ic_create_new_folder.
@@ -80,6 +81,7 @@ic_find_in_page.
ic_folder.
ic_folder_special.
+ic_fullscreen.
ic_home.
ic_import_contacts.
ic_important_devices.
@@ -90,9 +92,11 @@ic_location_off.
ic_more.
ic_question_answer.
+ic_refresh.
ic_search.
ic_select_all.
ic_settings.
+ic_smartphone.
ic_subtitles.
ic_text_fields.
ic_vertical_align_bottom.
@@ -119,7 +123,7 @@The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to - share and change all versions of a program--to make sure it remains free + share and change all versions of a programâto make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to @@ -147,16 +151,16 @@ (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
-For the developers' and authors' protection, the GPL clearly explains - that there is no warranty for this free software. For both users' and - authors' sake, the GPL requires that modified versions be marked as +
For the developersâ and authorsâ protection, the GPL clearly explains + that there is no warranty for this free software. For both usersâ and + authorsâ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of - protecting users' freedom to change the software. The systematic + protecting usersâ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those @@ -240,7 +244,7 @@
The âCorresponding Sourceâ for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to - control those activities. However, it does not include the work's + control those activities. However, it does not include the workâs System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source @@ -282,7 +286,7 @@ the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
-No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article @@ -294,13 +298,13 @@ circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or - modification of the work as a means of enforcing, against the work's - users, your or third parties' legal rights to forbid circumvention of + modification of the work as a means of enforcing, against the workâs + users, your or third partiesâ legal rights to forbid circumvention of technological measures.
You may convey verbatim copies of the Program's source code as you +
You may convey verbatim copies of the Programâs source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any @@ -345,7 +349,7 @@ and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an âaggregateâ if the compilation and its resulting copyright are not - used to limit the access or legal rights of the compilation's users + used to limit the access or legal rights of the compilationâs users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
@@ -567,7 +571,7 @@ organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever - licenses to the work the party's predecessor in interest had or could + licenses to the work the partyâs predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. @@ -584,9 +588,9 @@A âcontributorâ is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The - work thus licensed is called the contributor's âcontributor versionâ.
+ work thus licensed is called the contributorâs âcontributor versionâ. -A contributor's âessential patent claimsâ are all patent claims +
A contributorâs âessential patent claimsâ are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, @@ -597,7 +601,7 @@ this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free - patent license under the contributor's essential patent claims, to + patent license under the contributorâs essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
@@ -618,7 +622,7 @@ consistent with the requirements of this License, to extend the patent license to downstream recipients. âKnowingly relyingâ means you have actual knowledge that, but for the patent license, your conveying the - covered work in a country, or your recipient's use of the covered work + covered work in a country, or your recipientâs use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. @@ -649,7 +653,7 @@ any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not @@ -689,7 +693,7 @@ by the Free Software Foundation.
If the Program specifies that a proxy can decide which future - versions of the GNU General Public License can be used, that proxy's + versions of the GNU General Public License can be used, that proxyâs public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
@@ -782,7 +786,7 @@ certain conditions; type `show c' for details.The hypothetical commands `show w' and `show c' should show the appropriate - parts of the General Public License. Of course, your program's commands + parts of the General Public License. Of course, your programâs commands might be different; for a GUI interface, you would use an âabout boxâ.
You should also get your employer (if you work as a programmer) or school,
diff --git a/app/src/main/assets/en/images/ic_call_to_action.png b/app/src/main/assets/en/images/ic_call_to_action.png
new file mode 100644
index 0000000000000000000000000000000000000000..84c2e372dd4e3c0264f08f45cda6669e0f732e4b
GIT binary patch
literal 775
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#VfSn^G^BsTM#&C?KuE-du5RCs@5=J%4%R|K=hxFnO)TZ>~8Q
zs@!SQh7ndrH0oKKpM2s0mBwgLOunB5hAr#v@f-pTKW>I(@|*6zE>-LVB9L^u)(c}n
z?K`0>xYhb>
orbot is a modified version of the status icon from the Orbot project, which is copyright - 2009-2010 Nathan Freitas, The Guardian Project. It is released under the 3-clause BSD license. The full text of the license is below. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.
+ derivan de ic_security y de ic_language, que son parte del conjunto de iconos Android Material y son liberados bajo la Licencia Apache 2.0. + El texto completo de la licencia se encuentra debajo. Copyright de modificaciones © 2016 Soren Stoutner. Las imágenes resultantes se liberan bajo la + licencia GPLv3+. +orbot es una versión modificada del icono de estado del proyecto Orbot, + que tiene copyright 2009-2010 por Nathan Freitas, The Guardian Project. Es liberado bajo la licencia BSD modificada (de 3 cláusulas). + El texto completo de la licencia se encuentra debajo. Copyright de modificaciones © 2017 Soren Stoutner. + La imagen resultante se libera bajo la licencia GPLv3+.
cookie fue creado por Google. Es liberado bajo la licencia Apache 2.0 y puede ser descargado desde Material Design Icons. Está sin cambios, excepto por la información de diseño como el color y el tamaño.
Los siguientes iconos proceden de Android Material icon set, el cual es liberado bajo la licencia Apache 2.0. - Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código. Los iconos originales y los nombres se muestran a continuación.
+ Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código. Los iconos y los nombres originales se muestran a continuación.ic_add.
ic_arrow_back.
ic_arrow_forward.
ic_bookmark_border.
ic_bug_report.
+ic_call_to_action.
ic_chrome_reader_mode.
ic_close.
ic_create_new_folder.
@@ -82,6 +85,7 @@ic_find_in_page.
ic_folder.
ic_folder_special.
+ic_fullscreen.
ic_home.
ic_import_contacts.
ic_important_devices.
@@ -92,9 +96,11 @@ic_location_off.
ic_more.
ic_question_answer.
+ic_refresh.
ic_search.
ic_select_all.
ic_settings.
+ic_smartphone.
ic_subtitles.
ic_text_fields.
ic_vertical_align_bottom.
@@ -1015,36 +1021,34 @@ limitations under the License.Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met:
+La redistribución y el uso en las formas de código fuente y binario, con o sin + modificaciones, están permitidos siempre que se cumplan las siguientes condiciones:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - âAS ISâ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ESTE SOFTWARE SE SUMINISTRA POR LOS PROPIETARIOS DEL COPYRIGHT Y COLABORADORES + âCOMO ESTÃâ Y CUALQUIER GARANTÃAS EXPRESA O IMPLÃCITA, INCLUYENDO, PERO NO + LIMITADO A, LAS GARANTÃAS IMPLÃCITAS DE COMERCIALIZACIÃN Y APTITUD PARA UN + PROPÃSITO PARTICULAR SON RECHAZADAS. EN NINGÃN CASO LOS PROPIETARIOS DEL COPYRIGHT + Y COLABORADORES SERÃN RESPONSABLES POR NINGÃN DAÃO DIRECTO, INDIRECTO, INCIDENTAL, + ESPECIAL, EJEMPLAR O COSECUENCIAL (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÃN + O SUSTITUCIÃN DE BIENES O SERVICIOS; LA PÃRDIDA DE USO, DE DATOS O DE BENEFICIOS; + O INTERRUPCIÃN DE LA ACTIVIDAD EMPRESARIAL) O POR CUALQUIER TEORÃA DE + RESPONSABILIDAD, YA SEA POR CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO + (INCLUYENDO NEGLIGENCIA O CUALQUIER OTRA CAUSA) QUE SURJA DE CUALQUIER MANERA DEL + USO DE ESTE SOFTWARE, INCLUSO SI SE HA ADVERTIDO DE LA POSIBILIDAD DE TALES DAÃOS.